單片機(jī)應(yīng)用系統(tǒng)中使用的顯示器主要有LED和LCD兩種。近年來(lái)也有用CRT顯示的。前者價(jià)格低廉,配置靈活,與單片機(jī)接口方便;后者可進(jìn)行圖形顯示,但接口較復(fù)雜,成本也較高。LED(Ling Emiting Diode)是發(fā)光二極管的縮寫(xiě)。實(shí)際應(yīng)用非常普遍的是八段LED顯示器。LED顯示器在大型報(bào)時(shí)屏幕,銀行利率顯示,城市霓虹燈建設(shè)中,得到廣泛應(yīng)用。在這些需要多位LED顯示的場(chǎng)合,怎樣實(shí)現(xiàn)系統(tǒng)穩(wěn)定,價(jià)格低廉的顯示,成為決定其成本的關(guān)鍵所在。
2 74HC595實(shí)現(xiàn)LED靜、動(dòng)態(tài)顯示基本原理
74HC595是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的通用移位寄存器芯片。并行輸出端具有輸出鎖存功能。與單片機(jī)連接簡(jiǎn)單方便,只須三個(gè)I/O口即可。而且通過(guò)芯片的Q7引腳和SER引腳,可以級(jí)聯(lián)。而且價(jià)格低廉.
2.1 靜態(tài)顯示
每位LED顯示器段選線(xiàn)和74HC595的并行輸出端相連,每一位可以獨(dú)立顯示(見(jiàn)圖1)。在同一時(shí)間里,每一位顯示的字符可以各不相同(每一位由一個(gè)74HC595的并行輸出口控制段選碼)。
N位LED顯示要求N個(gè)74HC595芯片及N+3條I/O口線(xiàn),占用資源較多,而且成本較高。這對(duì)于多位LED顯示很不利。
2.2 動(dòng)態(tài)顯示
在多位LED顯示時(shí),為了簡(jiǎn)化電路,降低成本,節(jié)省系統(tǒng)資源,將所有的N位段選碼并聯(lián)在一起,由一片74HC595控制(見(jiàn)圖2)。由于所有LED的段選碼皆由一個(gè)74HC595并行輸出口控制,因此,在每一瞬間,N位LED會(huì)顯示相同的字符。想要每位顯示不同的字符,就必須采用掃描的方法,即在每一瞬間只使用一位顯示字符。在此瞬間,74HC595并行輸出口輸出相應(yīng)字符段選碼,而位選則控制I/O口在該顯示位送入選通電平,以保證該位顯示相應(yīng)字符。如此輪流,使每位分時(shí)顯示該位應(yīng)顯示字符。由于74HC595具有鎖存功能,而且串行輸入段選碼需要一定時(shí)間,因此,不需要延時(shí),即可形成視覺(jué)暫留效果。
N位LED顯示時(shí),只需要一片74HC595即可完成,成本最低。但是,此種方法的最大弱點(diǎn)就是當(dāng)LED的位數(shù)大于12位時(shí),出現(xiàn)閃爍現(xiàn)象,這是所有動(dòng)態(tài)LED顯示方式共同的弱點(diǎn)。
3 多位LED顯示方法的實(shí)現(xiàn)
74HC595具有一個(gè)8位串行輸入并行輸出的移位寄存器和一個(gè)8位輸出鎖存器。
;================================================
;74HC595 走馬燈演示程序
;================================================
SDATA_595 EQU P1.0 ;串行數(shù)據(jù)輸入
SCLK_595 EQU P1.1 ;移位時(shí)鐘脈沖
RCK_595 EQU P1.2 ;輸出鎖存器控制脈沖
;================================================
ORG 0000H
LJMP MAIN
ORG 0030H
;================================================
MAIN:
MOV SP,#60H
MOV R0,#0FEH
MAIN1:
CALL OUT_595
CALL DELAY
MOV A,R0
RL A
MOV R0,A
JMP MAIN1
;---------------------------------------------------------------
;輸出鎖存器輸出數(shù)據(jù)子程序
;---------------------------------------------------------------
OUT_595:
LCALL WR_595
CLR RCK_595
NOP
NOP
SETB RCK_595 ;上升沿將數(shù)據(jù)送到輸出鎖存器
NOP
NOP
NOP
CLR RCK_595
RET
;--------------------------------------------------------------
;移位寄存器接收數(shù)據(jù)子程序
;--------------------------------------------------------------
WR_595:
MOV R4,#08H
MOV A,R0
WR_LOOP:
RLC A
MOV SDATA_595,C
SETB SCLK_595 ;上升沿發(fā)生移位
NOP
NOP
CLR SCLK_595
DJNZ R4,WR_LOOP
RET
;--------------------------------------------------------------
;延時(shí)子程序
;--------------------------------------------------------------
DELAY:
MOV R5,#03H
DEL0:
MOV R6,#0FFH
DEL1:
MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,DEL1
DJNZ R5,DEL0
RET
;---------------------------------------------------------------
END
圖3 多位LED動(dòng)態(tài)顯示驅(qū)動(dòng)電路連線(xiàn)圖
為實(shí)現(xiàn)24位或更多位LED顯示,本文提出了一種全新的方法。此方法結(jié)合了動(dòng)態(tài)和靜態(tài)顯示的優(yōu)點(diǎn),可以說(shuō)是兩者的結(jié)合。連線(xiàn)圖如圖3所示。段選碼由三片74HC595控制,段選數(shù)據(jù)由74HC595的SER引腳串行輸入,由于輸出使能時(shí)鐘RCLK并接在一起,因此,三片74HC595并行輸出端同時(shí)輸出。而三個(gè)LED位選信號(hào)也并接在一起,因此,一次可以同時(shí)點(diǎn)亮三位LED。此過(guò)程類(lèi)似于靜態(tài)顯示。每片74HC595并行輸出端并接8位LED,用于掃描輸出,此過(guò)程類(lèi)似于動(dòng)態(tài)掃描過(guò)程。此方法運(yùn)用3片74HC595,n條位選信號(hào),即可實(shí)現(xiàn)3n位LED顯示。成本低廉,而且節(jié)省資源。此種方法實(shí)現(xiàn)多位LED顯示程序框圖為圖4所示,MCU為89S52。