單片機控制銀行利率屏的設(shè)計
銀行利率屏多采用單片機控制的LED顯示,盡管單片機控制LED顯示已不是什么新技術(shù),但由于利率屏所用LED數(shù)量多(達到數(shù)百到上千),每個LED的驅(qū)動電流大(達數(shù)百毫安時),壓降大(達2-3伏)時,依然有一些實際問題要解決。
一、LED的驅(qū)動形式
一般而言,當(dāng)系統(tǒng)中LED數(shù)量較多時,采用動態(tài)掃描的方法較為經(jīng)濟,但當(dāng)系統(tǒng)中LED的數(shù)量達到數(shù)百只,且每只LED的驅(qū)動電流達到數(shù)百毫安時,如仍采用動態(tài)掃描的方法,會使系統(tǒng)變得較為復(fù)雜,可靠性降低,且成本下降有限。為此選用靜態(tài)法,為每一只LED配一只CD4094和MC1413七達林頓驅(qū)動器,見圖1(A)。由于利率屏顯示時小數(shù)點固定,所以可以不用驅(qū)動小數(shù)點,直接用一個限流電阻將需點亮的小數(shù)點接到地即可。
二、單片機驅(qū)動CD4094的方式
CD4094是串/并轉(zhuǎn)換器,顯然單片機應(yīng)用串行口驅(qū)動,但如果將系統(tǒng)中所有的CD4094全部串接,然后接到串行口上,不僅串行口難以驅(qū)動,就算擴展驅(qū)動能力后能夠驅(qū)動,在編寫程序時也會很麻煩。為此采用擴展并行口,然后將并行口模擬成串行口的方法來解決,電路參考圖1(B),假設(shè)將數(shù)據(jù)端接到P1.2,而脈沖輸入端接到P3.3則輸出一個數(shù)的完整程序如下:
ORG 0000H
LJMP START
START:
SETB P3.3 ;將P3.3置為高電平為后面作準備
MOV 30H,#01H ; 30H為顯示緩沖區(qū)
S_1:
LCALL DISP
SJMP $
;以上主程序
DISP:
MOV A,30H
MOV DPTR,#ZX_TAB ;字形表首地址
MOVC A,@A+DPTR ;查字形
MOV R7,#2 ;R7用于控制循環(huán)次數(shù)
DISP_LOOP:
RL A
DJNZ R7,DISP_LOOP
;由于用P1.2作為數(shù)據(jù)輸出端,所以必須先把待送出的數(shù)左移二次將數(shù)據(jù)的第0位
;移到第2位,例要送的數(shù)為05H即00000101,移位二次變成00010100
MOV P1,A ;將移位后的數(shù)據(jù)送到P1口
CLR P3.3
SETB P3.3 ;形成一次脈沖的上升沿,將第一位數(shù)據(jù)
;送到CD4094去,以剛才例,即P1.2為;高電被送到CD4094中
MOV R7,#7
DISP_LOOP1:
RR A ;數(shù)據(jù)右移
MOV P1,A ;數(shù)據(jù)送P1口
CLR P3.3
SETB P3.3 ;形成一次脈沖上升沿,送入一位數(shù)據(jù)
DJNZ R7,DISP_LOOP1 ;循環(huán)7次,送入7位數(shù)據(jù)
RET
;以剛才的例子,移位7次分別是00001010、00000101、;10000010、01000001、10100000、01010000、00101000請注意粗、斜體的數(shù)字,它位加上第一次送出
;的1,正好就是10100000,與串行口發(fā)送是相同
ZX_TAB:
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
以上例子是發(fā)送一個數(shù)據(jù),稍作修改,即可一次發(fā)送多個數(shù)據(jù)。如果用其它的并行口位作數(shù)據(jù)輸出端或脈沖輸出端,也只要對程序稍作改動即可。
圖1(A)
圖1(B)
采用這一方法后,我們將LED分組,一般利率屏中一行的LED數(shù)量為18到20多只不等,將兩行或三行為一個單元為其配一個驅(qū)動單元(即并行口的兩位),這樣一個由300到500個左右的LED構(gòu)成的屏約需30個左右的并行口位,這只需要擴展一片8255加上P1口和P3口的一些位就夠了。串行口可以留作鍵盤擴展或作遠距遙控等用。
三、電平轉(zhuǎn)換及驅(qū)動能擴展
由于大尺寸LED的壓降較高,因此需要較高的驅(qū)動電壓,這樣在CD4094和單片機電路中就要有一個電平轉(zhuǎn)換,選用集電極開路同相器7406就可以完成這一工作(見圖3),同時它還兼有擴展驅(qū)動能力的作用,實踐證明,當(dāng)7406的上拉電阻取2.2K,8031的晶振為6MHZ時,即便給電路加上0.047UF的電容負載,電路仍能正常工作,可靠性很高。
評論