基于74HC573為架構(gòu)的LED數(shù)碼管應(yīng)用
單片機(jī)中常用的顯示器有LED發(fā)光二極管顯示器、LCD液晶顯示器以及CRT陰極射線顯示器等等,LED顯示器的顯示結(jié)構(gòu)為段顯示即7位段顯示、8位段顯示、米字型等產(chǎn)品,8位段顯示比7位段顯示多一位小數(shù)點(diǎn)顯示位dp,例如:在單片機(jī)技術(shù)應(yīng)用中常用的LED顯示器如數(shù)碼管,有一位數(shù)碼管、兩位數(shù)碼、四位數(shù)碼管。LCD顯示器的顯示結(jié)構(gòu)為點(diǎn)陣顯示即8&TImes;8、16&TImes;16、32&TImes;32等產(chǎn)品,點(diǎn)陣的位數(shù)越多則顯示的效果越好。常用的LCD液晶顯示器有LCD1602等等。
一、LED數(shù)碼管的結(jié)構(gòu)與工作原理LED數(shù)碼管的基本構(gòu)成單位為半導(dǎo)體發(fā)光二極管,7段的LED數(shù)碼管是將7個長條形的發(fā)光二極管排成“日”字,按照從最上邊的橫開始,順時針排列用字母a~g表示,可以顯示0~9十位數(shù)字,還可以顯示簡單的英文字母如l、o、a、g等等。8段的LED數(shù)碼管就是在7段的基礎(chǔ)上再在數(shù)碼管的右下角加個點(diǎn)用字母dp表示,用來顯示小數(shù)位。
根據(jù)8個發(fā)光二極管的不同連接形式,可以將LED數(shù)碼管分成共陽極和共陰極兩種,將8個發(fā)光二極管的陽極都連在一起的稱之為共陽極LED數(shù)碼管;將8個發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED數(shù)碼管。為了使LED數(shù)碼管的發(fā)光二極管發(fā)光顯數(shù)字或字母,對于共陰極LED數(shù)碼管就要在輸入端輸入高電平即輸入為“1”,則發(fā)光二極管發(fā)光,在輸入端輸入低電平即輸入為“0”,則發(fā)光二極管不發(fā)光,而對于共陽極的LED數(shù)碼管正好相反。例如:以共陰極LED數(shù)碼管為例,如果讓LED數(shù)碼管顯示數(shù)字“5”時,即讓b、c、f、g段的發(fā)光二極管發(fā)光,賦值為“1”,而其它段a、d、e、dp段的發(fā)光二極管不發(fā)光,賦值為“0”,按照dp、g、f、e、d、c、b、a順序進(jìn)行賦值結(jié)果為01101101B,轉(zhuǎn)換成十六進(jìn)制數(shù)為0x5bH。
二、鎖存器的原理與作用鎖存器都是透明的D型鎖存器,當(dāng)使能(G)為高時,Q輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時,輸出將鎖存在已建立的數(shù)據(jù)電平上,輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時,新的數(shù)據(jù)也可以置入。
如果使用LED數(shù)碼管時不添加鎖存器,特別是在動態(tài)顯示的情況下,LED數(shù)碼管的顯示有可能發(fā)生不規(guī)則的跳動。此外,利用鎖存器可以使CPU的時間占用率較低,占用單片機(jī)的輸出端口較少,并且能夠支持端口復(fù)用。所以為了保證LED數(shù)碼管的顯示信號效果,在使用LED數(shù)碼管時,一般采用鎖存器,常用的鎖存器有74LS373、74HC573等等。
三、功能實(shí)現(xiàn)
利用美國ATMEL公司生產(chǎn)的AT89C52單片機(jī)、2個74HC573鎖存器、3個兩位數(shù)碼管、復(fù)位電路、晶振電路構(gòu)成。采用P0口分別與位選、段選鎖存器的D口相連接,段選的Q端口分別與LED數(shù)碼管的a~dp相連接,位選的Q端口分別與LED數(shù)碼管的片選端口相連接。位選端與單片機(jī)P2.0相連接,段選端與單片機(jī)P2.1相連接。
?。ㄒ唬㎜ED數(shù)碼管的靜態(tài)顯示
LED數(shù)碼管的靜態(tài)顯示是指在系統(tǒng)中多個LED數(shù)碼管位選端獨(dú)立,段選端連接在一起。在同一時間內(nèi),段選端的信號都是相同的,顯示的符號也應(yīng)該是相同的,但是位選端可以控制哪個LED數(shù)碼管發(fā)光。例如:以共陰極LED數(shù)碼管為例,位選、段選端為“1”時打開,為“0”時關(guān)閉,共陰極數(shù)碼管為“1”時發(fā)光,為“0”時不發(fā)光。
…… //52系列單片機(jī)頭文件
sbitduan=P2^1,wei=P2^0; //聲明段選端、位選端鎖存器的鎖存端
voidmain()
{wei=1;//打開位選端
P0=0xFE;//送入信號11111110B,即使第一個LED數(shù)碼管發(fā)光
wei=0; //關(guān)閉位選端
duan=1;//打開段選端
P0=0x5bH;//送入信號01101101B,即讓LED數(shù)碼管顯示數(shù)字“5”
duan=0;//關(guān)閉段選端}
(二)LED數(shù)碼管的動態(tài)顯示
LED數(shù)碼管的動態(tài)顯示又叫做LED數(shù)碼管的動態(tài)掃描顯示,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時顯示,而實(shí)際上某一瞬時只有一個數(shù)碼管在顯示數(shù)據(jù),且顯示時間較短,一般都在1~10MS之間。LED數(shù)碼管的動態(tài)顯示,CPU要定時掃描刷新顯示,一般適用于顯示位數(shù)較多的場合,占用端口少,電路設(shè)計比較簡單,但是編輯較復(fù)雜一些。