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