用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管顯示總結(jié)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管有很多方法,按顯示方式分,有靜態(tài)顯示和動(dòng)態(tài)(掃描)顯示,按譯碼方式可分硬件譯碼和軟件譯碼之分。
靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出后就不再管,直到下一次顯示數(shù)據(jù)需要更新時(shí)再傳送一次新數(shù)據(jù),顯示數(shù)據(jù)穩(wěn)定,占用很少的CPU時(shí)間。動(dòng)態(tài)顯示需要CPU時(shí)刻對(duì)顯示器件進(jìn)行數(shù)據(jù)刷新,顯示數(shù)據(jù)有閃爍感,占用的CPU時(shí)間多。這兩種顯示方式各有利弊;靜態(tài)顯示雖然數(shù)據(jù)穩(wěn)定,占用很少的CPU時(shí)間,但每個(gè)顯示單元都需要單獨(dú)的顯示驅(qū)動(dòng)電路,使用的硬件較多;動(dòng)態(tài)顯示雖然有閃爍感,占用的CPU時(shí)間多,但使用的硬件少,能節(jié)省線路板空間。
硬件譯碼就是顯示的段碼完全由硬件完成,CPU只要送出標(biāo)準(zhǔn)的BCD碼即可,硬件接線有一定標(biāo)準(zhǔn)。軟件譯碼是用軟件來(lái)完成硬件的功能,硬件簡(jiǎn)單,接線靈活,顯示段碼完全由軟件來(lái)處理,是目前常用的顯示驅(qū)動(dòng)方式。
比較常用的顯示驅(qū)動(dòng)芯片有:74LS164 , CD4094+ULN2003(2803) ,74HC595+ULN2003(2803) , TPIC6B595,AMT9095B, AMT9595等許多。另外,市場(chǎng)上還有一些專用的LED掃描驅(qū)動(dòng)顯示模塊如MAX7219等,功能很強(qiáng),價(jià)格稍高一些。下面是一個(gè)用74LS164驅(qū)動(dòng)顯示的例子和一個(gè)用4094掃描驅(qū)動(dòng)顯示的例子:
上例圖中加了一個(gè)PNP型的三極管來(lái)控制數(shù)碼管的電源,是因?yàn)?64沒有數(shù)據(jù)鎖存端,數(shù)據(jù)在傳送過程中,對(duì)輸出端來(lái)說是透明的,這樣,數(shù)據(jù)在傳送過程中,數(shù)碼管上有閃動(dòng)現(xiàn)象,驅(qū)動(dòng)的位數(shù)越多,閃動(dòng)現(xiàn)象越明顯。為了消除這種現(xiàn)象,在數(shù)據(jù)傳送過程中,關(guān)閉三極管使數(shù)碼管沒電不顯示,數(shù)據(jù)傳送完后立刻使三極管導(dǎo)通,這樣就實(shí)現(xiàn)鎖存功能。這種辦法可驅(qū)動(dòng)十幾個(gè)164顯示而沒有閃動(dòng)現(xiàn)象。
這個(gè)例子是用4094做位選,用89C2051的P1口線做段驅(qū)動(dòng)來(lái)掃描驅(qū)動(dòng)9位數(shù)碼管的顯示。由于4094只有8個(gè)輸出口線,其中第九位是用CPU口線直接進(jìn)行位選的。9個(gè)LED的所有相同位置的段口線都接到一起,然后接到單片機(jī)的一個(gè)口線上,共八段,使用8條CPU口線。其軟件的工作過程是這樣的:要在LED上顯示1--9位數(shù),首先將1的段碼送到P1口線上,然后向4094送位選數(shù)據(jù)01,使4094的Q1口線輸出高電平,選中第一位數(shù)碼管,使陽(yáng)極得電,在第一位上就顯示出1,重復(fù)上述過程,一直到第九位,然后不斷重復(fù)這一過程,就實(shí)現(xiàn)了掃描顯示。