HD7279A的原理與應(yīng)用
HD7279A硬件電路圖HD7279A是一種管理鍵盤和LED顯示器的專用智能控制芯片。它能對(duì)8位共陰極LED顯示器或64個(gè)LED發(fā)光管進(jìn)行管理和驅(qū)動(dòng),同時(shí)能對(duì)多達(dá)8×8的鍵盤矩陣的按鍵情況進(jìn)行監(jiān)視,具有自動(dòng)消除鍵抖動(dòng)并識(shí)別按鍵代碼的功能,從而可以提高CPU工作的效率。HD7279A和微處理器之間采用串行接口,其接口電路和外圍電路簡(jiǎn)單,占用口線少,加之它具有較高的性能價(jià)格比,因此,在微型控制器、智能儀表、控制面板和家用電器等領(lǐng)域中日益獲得廣泛的應(yīng)用。
一、 引腳說明與接口電路
279A的硬件電路如圖1所示,它共有28個(gè)引腳。 RC引腳用于連接HD7279A的外接振蕩元件,其典型值為R=1.5kΩ,C=15pF。RESET為復(fù)位端。該端由低電平變成高電平并保持25ms即復(fù)位結(jié)束。通常,該端接+5V即可。DIG0~DIG7分別為8個(gè)LED管的位驅(qū)動(dòng)輸出端。SA~SG分別為L(zhǎng)ED數(shù)碼管的A段~G段的輸出端。DP為小數(shù)點(diǎn)的驅(qū)動(dòng)輸出端。HD7279A片內(nèi)具有驅(qū)動(dòng)電路,它可以直接驅(qū)動(dòng)1英吋及以下的LED數(shù)碼管,使外圍電路變得簡(jiǎn)單可靠。 DIG0~DIG7和SA~SG同時(shí)還分別是64鍵盤的列線和行線端口,完成對(duì)鍵盤的監(jiān)視、譯碼和鍵碼的識(shí)別。在8×8陣列中每個(gè)鍵的鍵碼是用十六進(jìn)制表示的,可用讀鍵盤數(shù)據(jù)指令讀出,其范圍是00H~3FH。 HD7279與微處理器僅需4條接口線,其中CS為片選信號(hào)(低電平有效)。當(dāng)微處理器訪問HD7279A(讀鍵號(hào)或?qū)懼噶睿r(shí),應(yīng)將片選端置為低電平。DATA為串行數(shù)據(jù)端,當(dāng)向HD7279A發(fā)送數(shù)據(jù)時(shí),DATA為輸入端;當(dāng)HD7279A輸出鍵盤代碼時(shí),DATA為輸出端。CLK為數(shù)據(jù)串行傳送的同步時(shí)鐘輸入端,時(shí)鐘的上升沿表示數(shù)據(jù)有效。KEY為按鍵信號(hào)輸出端,在無鍵按下時(shí)為高電平;而有鍵按下時(shí)此引腳變?yōu)榈碗娖讲⑶乙恢北3值芥I釋放為止。 (圖1 HD7279A硬件電路圖)
二、 電特性
表 1
三、 控制指令
1 HD7279A指令系統(tǒng)由6條純指令、7條帶數(shù)據(jù)指令和1條讀鍵盤指令組成。6條純指令為:
(1) 復(fù)位指令。指令代碼為A4H,其功能為清除所有顯示,包括字符消隱屬性和閃爍屬性。
(2) 測(cè)試指令。指令代碼為BFH,其功能為將所有的LED點(diǎn)亮并閃爍,可用于自檢。
(3) 左移指令。指令代碼為A1H,其功能為將所有的顯示左移1位,移位后,最右位空(無顯示),不改變消隱和閃爍屬性。
(4) 右移指令。指令代碼為A0H,其功能與左移指令相似,只是方向相反。
(5) 循環(huán)左移指令。指令代碼為A3H,其功能為將所有的顯示循環(huán)左移1位。移位后,最左位內(nèi)容移至最右位,不改變消隱和閃爍屬性。
(6) 循環(huán)右移指令。指令代碼為A2H,其功能與循環(huán)左移指令相似,只是方向相反。
2 帶數(shù)據(jù)指令均由雙字節(jié)組成,它們是:
(1) 按方式0譯碼下載指令
顯示位8為最高位,參見圖1。 第2字節(jié)為顯示內(nèi)容,其中DP為小數(shù)點(diǎn)控制位,DP=1,小數(shù)點(diǎn)顯示;DP=0,小數(shù)點(diǎn)熄滅。 d3 d2 d1 d0為數(shù)據(jù),按方式0譯碼時(shí)數(shù)據(jù)和顯示的關(guān)系如下:
[!--empirenews.page--]
該指令和按方式0譯碼下載指令的含義基本相同。按方式1譯碼時(shí)數(shù)據(jù)和顯示的關(guān)系如下:
XX:無影響。
該指令的作用是點(diǎn)亮某個(gè)LED數(shù)碼管中的某一段或64個(gè)LED發(fā)光管中的某一個(gè)。d0~d5的范圍是00H~3FH,所對(duì)應(yīng)的段如下:
XX:無影響。
該指令的作用是關(guān)閉某個(gè)數(shù)碼管中的某一段,其對(duì)應(yīng)關(guān)系同段點(diǎn)亮指令。
3? 讀取鍵盤指令:
該指令的作用是讀取當(dāng)前的鍵盤代碼。與其他帶數(shù)據(jù)的指令不同,它的第2個(gè)字節(jié)不是寫入HD7279A的數(shù)據(jù),而是從HD7279A讀回的按鍵代碼。如前說述,當(dāng)有鍵按下時(shí)其范圍是00H~3FH;而無鍵按下時(shí)代碼是FFH。
[!--empirenews.page--]
四、 時(shí)序
(1) 純指令時(shí)序:微處理器發(fā)出8個(gè)CLK脈沖,向HD7279A傳送8位指令。DATA引腳為高阻狀態(tài),如圖2所示。
(2) 帶數(shù)據(jù)指令時(shí)序:微處理器發(fā)出16個(gè)CLK脈沖,前8個(gè)向HD7279A傳送8位指令;后8個(gè)向HD7279A傳送8位數(shù)據(jù)。DATA引腳為高阻狀態(tài),如圖3所示。
(3) 讀鍵盤指令時(shí)序:微處理器發(fā)出16個(gè)CLK脈沖,前8個(gè)向HD7279A傳送8位指令, DATA引腳為高阻狀態(tài);后8個(gè)由HD7279A向微處理器返回8位按鍵代碼,DATA引腳為輸出狀態(tài)。在最后1個(gè)CLK脈沖的下降沿DATA引腳恢復(fù)高阻狀態(tài),如圖4所示。
五、 幾點(diǎn)說明
1?證正確的時(shí)序是HD7279A正常工作的前提條件。當(dāng)選定了HD7279A的振蕩元件RC和晶振之后,應(yīng)調(diào)節(jié)延時(shí)時(shí)間,使時(shí)序中的T1~T8滿足表2所列要求。由表2所列的數(shù)值可知,HD7279A時(shí)序規(guī)定的時(shí)間范圍很寬,達(dá)10~50倍,很容易滿足,但為了提高微處理器訪問HD7279A的速度,在要求系統(tǒng)運(yùn)行速度較快時(shí),應(yīng)仔細(xì)調(diào)試HD7279A的讀寫程序,使其運(yùn)行時(shí)間接近最短。
2 微處理器通過KEY引腳電平來判斷是否有鍵按下,在使用查詢方式管理鍵盤時(shí),該引腳接至微處理器的1位I/O端口;如果使用中斷方式,該引腳應(yīng)接至微處理器的外部中斷輸入端。同時(shí)應(yīng)將該中斷觸發(fā)控制位設(shè)置成下降沿有效的邊沿觸發(fā)方式。若置成電平觸發(fā)方式,則應(yīng)注意在按鍵時(shí)間較長(zhǎng)時(shí)可能引起的多次中斷問題。
3? HD7279A沒有提供組合鍵功能。如果某些場(chǎng)合確需雙鍵組合使用,可在微處理器某位I/O引腳接入一鍵,與HD7279A所連鍵盤共同組成雙鍵功能。
4? 圖1電路中有3種電阻:阻值為200Ω的電阻是限流電阻,用來限制LED數(shù)碼管的電流。在使用中不應(yīng)為了過分追求數(shù)碼管的亮度而任意減小其電阻值,以防HD7279A芯片過熱燒壞。阻值為100kΩ和10kΩ的電阻分別稱為下拉電阻和位選電阻,如果HD7279A僅用于顯示器管理,則這兩種電阻都可以去掉。
5? HD7279A的3,5,26腳均為空閑引腳,一律懸空。
六、 HD7279A與AT89C51的接口程序
這里以HD7279A與AT89C51的接口電路為例,給出1個(gè)包括純指令、帶數(shù)據(jù)指令和讀鍵盤指令的程序?qū)嵗T摮绦驅(qū)︽I盤進(jìn)行監(jiān)視,當(dāng)有鍵按下時(shí)讀取按鍵代碼并將其顯示在LED顯示器上。接口電路如圖5所示,其中HD7279A的外接振蕩元件使用典型值。AT89C51的晶振頻率為12MHz。
[!--empirenews.page--]
接口程序?qū)嵗?
MOV P1,#0F9H;I/O口初始化
ACALL DEY25;等待25ms復(fù)位時(shí)間
MOV 029H,#0A4H;發(fā)復(fù)位指令
ACALL SEND
SETB P1.0;置CS高電平
MAIN: JB P1.3, MAIN;檢測(cè)按鍵,無鍵按下等待
MOV 029H,#15H;發(fā)讀鍵盤指令
ACALL SEND
ACALL RECE
SETB P1,0;置CS高電平
MOV B,#10;十六進(jìn)制鍵碼轉(zhuǎn)換成BCD碼, ;以備顯示
MOV A,028H
DIV AB
MOV R1,A
MOV 029H,#0C9H;發(fā)送鍵碼的十位值,按 ;方式1譯碼下載顯示
ACALL SEND
MOV 029H,R1
ACALL SEND
MOV 029H,#0C8H;發(fā)送鍵碼的個(gè)位值,按 ;方式1譯碼下載顯示
ACALL SEND
MOV 029H,B
ACALL SEND
SETB P1.0;置CS高電平
WAIT: JNB P1.3,WAIT
AJMP MAIN
SEND: MOV R2,#08H;發(fā)送8位
CLR P1.0
ACALL DEY1;延時(shí)50μs(T1)
S_LOOP:MOV C,029H.7;輸出1位到HD7279A的 ;DATA端
MOV P1.2,C
SETB P1.1;置CLK高電平
MOV A,029H;待發(fā)數(shù)據(jù)左移
RL A
MOV 029H,A
ACALL DEY2;延時(shí)8μs(T2)
CLR P1.1;置CLK低電平
ACALL DEY2;延時(shí)8μs(T3)
DJNZ R2,S_LOOP;檢測(cè)8位是否發(fā)送完畢
CLR P1.2;發(fā)送完畢,DATA端置低,返回
RET
RESE: MOV R2,#08H;接收8位
SETB P1.2;DATA端置為高電平,輸入狀態(tài)
ACALL DEY1;延時(shí)50μs(T5)
R_LOOP:SETB P1.1;置CLK高電平
ACALL DEY2;延時(shí)8μs(T6)
MOV 028H,A
RL A;接收數(shù)據(jù)左移1位
MOV 028H,A
MOV C,P1.2;接收1位數(shù)據(jù)
MOV 028H.0,C
CLR P1.1;置CLK低電平
ACALL DEY2;延時(shí)8μs
DJNZ R2,R_LOOP;接收8位是否發(fā)送完畢
CLR P1.2;接收完畢,DATA端重新置成低電平(輸出狀態(tài))
RET延時(shí)子程序略。MES
參考文獻(xiàn)
1 何立民?MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1990
2 王幸之?單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù).北京:北京航空航天大學(xué)出版社,2000