串行接口LED數(shù)碼管及鍵盤管理ZLG7289A的原理與應(yīng)用
3.2 帶有數(shù)據(jù)的指令
(1)下載數(shù)據(jù)且按方式0譯碼指令
該指令的格式如下:
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | 0 | 0 | 0 | 0 | a2 | a1 | a0 |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
DP | X | X | X | d3 | d2 | d0 | d1 |
該命令由二個字節(jié)組成。前半部分為指令,其中a2 a1 a0 為位地址,d0~d3為數(shù)據(jù)。具體分配方式如表2所列。當(dāng)系統(tǒng)接收到此指令時(ZLG7289A將按譯碼方式0進(jìn)行譯碼)具體的譯碼方式如表3所列。小數(shù)點的顯示可由DP位控制,DP為1時,小數(shù)點顯示,DP為0時,小數(shù)點不顯示。在該指令格式中,x表示沒有影響。
表2 位地址分配表
a2 | a1 | a0 | 顯示位 |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 2 |
0 | 1 | 0 | 3 |
0 | 1 | 1 | 4 |
1 | 0 | 0 | 5 |
1 | 0 | 1 | 6 |
1 | 1 | 0 | 7 |
1 | 1 | 1 | 8 |
表3 譯碼方式表
d0~d3 | d3 | d2 | d1 | d0 | 7段顯示 |
00H | 0 | 0 | 0 | 0 | 0 |
01H | 0 | 0 | 1 | 1 | 1 |
02H | 0 | 0 | 0 | 0 | 2 |
03H | 0 | 0 | 1 | 1 | 3 |
04H | 0 | 1 | 0 | 0 | 4 |
05H | 0 | 1 | 0 | 1 | 5 |
06H | 0 | 1 | 1 | 0 | 6 |
07H | 0 | 1 | 1 | 1 | 7 |
08H | 1 | 0 | 0 | 0 | 8 |
09H | 1 | 0 | 0 | 1 | 9 |
0AH | 1 | 0 | 1 | 0 | - |
0BH | 1 | 0 | 1 | 1 | E |
0CH | 1 | 1 | 0 | 0 | H |
0DH | 1 | 1 | 0 | 1 | L |
0EH | 1 | 1 | 1 | 0 | P |
0FH | 1 | 1 | 1 | 1 | 空無顯示 |
(2)下載數(shù)據(jù)且按方式1譯碼指令
這種指令與上一個指令基本相同。所不同的是,該指令的d0~d3對應(yīng)的數(shù)據(jù)位0AH~0FH分別為七段顯示中的A、B、C、D、E、F。該指令的具體格式如下:
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | 1 | 0 | 0 | 1 | a2 | a1 | a0 |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
DP | X | X | X | d3 | d2 | d0 | d1 |
(3) 讀鍵盤數(shù)據(jù)指令
該指令從ZLG7289A讀出當(dāng)前的按鍵代碼,格式如下:
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
d7 | d6 | d5 | d4 | d3 | d2 | d0 | d1 |
與其它指令不同的是,此命令的前一個字節(jié)0001010B 為單片機(jī)傳送到ZLG7289A的指令,而后一個字節(jié)d0~d7則為ZLG7289A返回的按鍵代碼。 其范圍為0~3FH(無鍵按下時為0xFF)。在此指令的前半段,ZLG7289A 的DATA 引腳處于高阻輸入狀態(tài),可以用來接收來自微處理器的指令;在指令的后半段,DATA 引腳從輸入狀態(tài)轉(zhuǎn)為輸出狀態(tài),此時將輸出鍵盤代碼的值。故微處理器連接到DATA 引腳的I/O口應(yīng)當(dāng)有一個從輸出態(tài)到輸入態(tài)的轉(zhuǎn)換過程。
當(dāng)ZLG7289A檢測到有效的按鍵時,KEY 腳將從高電平變?yōu)榈碗娖剑⒁恢北3值桨存I結(jié)束。在此期間,如果ZLG7289A 接收到“讀鍵盤數(shù)據(jù)指令”,則輸出當(dāng)前按鍵的鍵盤代碼;如果在接收到“讀鍵盤數(shù)據(jù)指令”時沒有有效按鍵,ZLG7289A將輸出FFH(11111111B)。
(4)其它指令
除以上幾個指令外,ZLG7289A還具有下載數(shù)據(jù)但不譯碼、閃爍控制、消隱控制、段點亮指令、段關(guān)閉等指令,限于篇幅,此處不再詳述。
圖2
4 典型應(yīng)用
ZLG7289A 的典型應(yīng)用電路如圖2所示,圖中,ZLG7289A 應(yīng)連接共陰式數(shù)碼管,應(yīng)用中無需用到的數(shù)碼管和鍵盤可以不連接,因而可省去數(shù)碼管。此外,設(shè)置消隱屬性也不會影響鍵盤的使用。
由于ZLG7289采用的是循環(huán)掃描的工作方式,因此,如果采用普通的數(shù)碼管,亮度可能不夠,故應(yīng)采用高亮度或超高亮度的數(shù)碼管,且尺寸也不宜選的過大,一般字符高度不超過1 英寸,如使用大型的數(shù)碼管,則應(yīng)選用適當(dāng)?shù)尿?qū)動電路。
ZLG7289A的RESET復(fù)位端在一般情況下,可以直接和VCC相連;而在需要較高可靠性的情況下,則可以連接外部復(fù)位電路或直接由MCU 控制。在上電或RESET 端由低電平變?yōu)楦唠娖胶?,通常要?jīng)過大約18~25ms的時間,ZLG7289A才會進(jìn)入正常工作狀態(tài)。
圖3
5 應(yīng)用實例
圖3是以AT89C51單片機(jī)為例給出的ZLG7289A與單片機(jī)的接口電路。圖中,AT89C51所用時鐘頻率為12MHz如果使用不同的CPU時鐘頻率,則應(yīng)注意調(diào)整延時時間。下面給出的是該系統(tǒng)的部分程序:
;*****************RAM定義
BIT_COUNT DATA 07FH
TIMER DATA 07EH
TIMER1 DATA 07DH
TEN DATA 07CH
DATA_IN DATA 020H
DATA_OUT DATA 021H
;**************I/O定義
DAT BIT P0.6 ;ZLG8279A的 DATA,連接AT89C51的P0.6
KEY BIT P0.7 ; ZLG8279A的KEY,連接AT89C51的P0.7
CS BIT P0.4 ; ZLG8279A的CS,連接AT89C51的P0.4
CLK BIT P0.5 ; ZLG8279A的CLK,連接AT89C51的P0.5
ORG 0000H
AJMP START
ORG 0030H
START:MOV SP,#2FH ;堆棧定義
MOV P1,#11011011B ;I/O初始化
MOV TIMER,#50 ;25ms定時
START_DELAY: MOV TIMER1,#255
START_DELAY1: DJNZ TIMER1,START_DELAY1
DJNZ TIMER,START_DELAY
MOV DATA_OUT,#10100100B ;復(fù)位指令
CALL SEND ;發(fā)指令到ZLG8279A
SETB CS ;恢復(fù)CS高電平
MAIN:JB KEY,MAIN ;是否有鍵按下
MOV DATA_OUT,#00010101B ;有鍵按下,發(fā)讀鍵盤指令
CALL SEND
CALL RECEIVE
SETB CS ;CS置高電平
MOV B,#10 ;16進(jìn)制到BCD碼轉(zhuǎn)換
MOV A,DATA_IN
DIV AB
MOV TEN,A
MOV DATA_OUT,#10100001B ;左移指令
CALL SEND
評論