傳統(tǒng)的鍵盤顯示驅(qū)動(dòng)器件(如INTEL8279)通常采用并行接口,占用單片機(jī)至少10個(gè)I/0端口,因此該鍵盤顯示驅(qū)動(dòng)器不適用于單片機(jī)資源緊張的應(yīng)用。而改進(jìn)的采用SPI(Serial PeripIleral Interface)串行總線的ZLG7289器件與采用I2C(Intel IC Bus)串行總線的ZLG7290器件均須接入獨(dú)立的晶體振蕩器才能工作,不能直接支持RC振蕩器電路,復(fù)位端必須接RC復(fù)位電路才使器件可靠復(fù)位,且片選端CS一般不可直接接地,否則顯示可能出現(xiàn)閃爍,軟件延時(shí)調(diào)試比較困難。而鍵盤顯示驅(qū)動(dòng)專用器件HD7279A則不存在這樣的問題,能夠穩(wěn)定可靠工作,外圍電路簡單,可廣泛應(yīng)用于儀器儀表、工業(yè)控制器、條形顯示器、控制面板等。這里給出了HD7279A接口的典型應(yīng)用設(shè)計(jì)。
2 HD7279A簡介
HD7279A是一款具有簡單SPI串行接口" title="串行接口">串行接口的器件,可直接驅(qū)動(dòng)8位共陰式數(shù)碼管(或64個(gè)獨(dú)立的LED),管理多達(dá)64鍵鍵盤,單片即可完成LED顯示和鍵盤接口的全部功能,大大簡化電路設(shè)計(jì),占用單片機(jī)資源極少(最少2線),完全免調(diào)試,外圍電路更簡單。HD7279A內(nèi)部含有譯碼器可直接接收BCD碼或16進(jìn)制碼,也可不譯碼,并同時(shí)具有兩種譯碼方式。此外,該器件還具有多種控制指令,諸如消隱,閃爍,左移,右移和段尋址等,顯示控制方式靈活,其段尋址能力可用于獨(dú)立的LED顯示或信息指示燈控制。圖l為HD729A的引腳配置,其各引腳功能描述如表1所列。HD7279A具有片選信號(hào),可方便實(shí)現(xiàn)高于8位的顯示或高于64鍵的鍵盤接口,采用多片級(jí)聯(lián),對(duì)片選信號(hào)進(jìn)行譯碼即可實(shí)現(xiàn)。當(dāng)應(yīng)用系統(tǒng)" title="應(yīng)用系統(tǒng)">應(yīng)用系統(tǒng)中只有一片HD7279A時(shí),片選端CS可直接接地,圖2為其典型應(yīng)用電路。
應(yīng)用中,未用的鍵盤或LED數(shù)碼管均可省去,而且互不影響。如果不用鍵盤,典型電路中8只10 kΩ位選電阻和8只100 kΩ下拉電阻均可省去,如果僅接下一個(gè)按鍵,則8只100 kΩ下拉電阻必須全部連接。除非不接LED,否則8只200 Ω限流電阻均不能省去。外接RC振蕩電路的典型值為:R=1.5 kΩ,C=15 pF。下拉電阻與位選電阻的阻值應(yīng)遵循一定的比例關(guān)系。在不影響顯示的情況下,下拉電阻應(yīng)盡可能小,大大提高鍵盤抗干擾能力。驅(qū)動(dòng)大功率的LED時(shí)需增加驅(qū)動(dòng)電路,或盡量采用高亮度LED以簡化設(shè)計(jì)。復(fù)位端RESET也可由單片機(jī)直接控制以增加可靠性,但需占用單片機(jī)資源,因此應(yīng)根據(jù)實(shí)際應(yīng)用要求選擇最佳連接方式。因?yàn)镠D7279A采用動(dòng)態(tài)掃描方式,一般電流較大.故須在靠近電源端并聯(lián)去耦電容以減少于擾,該電容典型值為100μF。
3 HD7279A的工作原理
HD7279A最顯著的優(yōu)點(diǎn)是與單片機(jī)的接口簡單,最多只需5條連接線,分別是復(fù)位端RESET,片選輸入端CS,同步時(shí)鐘" title="同步時(shí)鐘">同步時(shí)鐘輸入端CLK,數(shù)據(jù)輸入輸出端DATA和按鍵有效輸出端KEY。在一般應(yīng)用系統(tǒng)中,RESET可直接接電源,當(dāng)應(yīng)用系統(tǒng)中只有一片HD7279A器件時(shí),CS也可以直接接地,此時(shí)只需占用3條單片機(jī)的I/O端口線,如果應(yīng)用系統(tǒng)中沒有鍵盤,僅具有顯示功能,或者即使有鍵盤,但單片機(jī)軟件任務(wù)不復(fù)雜,均可不接KEY線,使用定時(shí)讀取鍵盤鍵值代碼的方法,則此時(shí)只需占用2條單片機(jī)的I/0端口線。
HD7279A與單片機(jī)采用SPI串行接口方式連接,共有3種類型16條命令格式,即不帶數(shù)據(jù)的純指令,帶數(shù)據(jù)的指令和讀鍵盤鍵值代碼指令。
(1)復(fù)位(清除)指令A(yù)4H 該指令清除所有顯示,所有設(shè)置的字符消隱、閃爍等屬性也一并清除,實(shí)際上電和系統(tǒng)上電初始化后所處狀態(tài)完全相同,相當(dāng)于初始化命令。該指令為純指令。
(2)下載數(shù)據(jù)且按方式0譯碼指令該指令第一字節(jié)數(shù)據(jù)是命令,其中a2,al,a0是8位LED的某一位的二進(jìn)制編碼。第二字節(jié)數(shù)據(jù)(D0~D7)的第D7位DP表示是否顯示LED的小數(shù)點(diǎn),DP=l顯示,否則不顯示;D6~D7是X位,是無關(guān)位;D3~D0分別為d3,d2,d1,dO,這4位按照方式0譯碼規(guī)則在該位LED顯示某個(gè)數(shù)字(0~9)或符號(hào)(H,E,L,P,一,空)。
(3)讀鍵盤鍵值代碼指令15H該指令讀取鍵盤鍵值代碼,第一字節(jié)數(shù)據(jù)D7~D0是從單片機(jī)流向HD7279A的命令,第二字節(jié)數(shù)據(jù)D7~D0是從HD7279A流向單片機(jī)的鍵值代碼,其值的范圍是OOH~3FH:共64個(gè),無有效按鍵時(shí)讀出的鍵值代碼是0FFH。其余指令均與上述3條指令類似。圖3為SIP/串行接口時(shí)序。
4 HD7279A典型應(yīng)用
4.1 硬件設(shè)計(jì)
以基于單片機(jī)的醫(yī)療設(shè)備控制系統(tǒng)中的鍵盤顯示模塊" title="顯示模塊">顯示模塊為例,該模塊中HD7279A器件與單片機(jī)AT89C52只有3條線相連,如圖4所示,其中3引腳插座J1是單片機(jī)AT89C52與HD7279A的連接線.占用單片機(jī)的3條I/0端口線:P1.7/CLK是單片機(jī)產(chǎn)生的控制同步時(shí)鐘,P1.6/CS是HD7279A的片選線;P1.5/DATA是命令數(shù)據(jù)輸出/輸入線。鍵盤中斷線KEY懸空,CS端由單片機(jī)控制是基于省電考慮,也可接地。HD7279A器件控制4個(gè)LED數(shù)碼管動(dòng)態(tài)顯示,并監(jiān)測16鍵鍵盤。CLK時(shí)鐘頻率約100 kHz,由單片機(jī)編程延時(shí)決定。在CLK的同步時(shí)鐘作用下,控制命令、顯示數(shù)據(jù)以及采用查詢方式讀取鍵盤鍵值代碼數(shù)據(jù)等均由DATA端輸入/輸出。采用查詢方式讀取鍵值代碼可節(jié)省一條單片機(jī)的I/0端口線,但需占用較多軟件資源,由于該實(shí)例中單片機(jī)的任務(wù)并不復(fù)雜,因此每間隔30 ms讀取一次鍵值代碼。
圖4中DIG4~DIG7既是4位共陰式數(shù)碼管位選控制線,又是鍵盤列掃描線。SSA~SSG,SDP共8條線是4位數(shù)碼管的段選控制線,分別通過200Ω的限流電阻與HD7279A器件的SA~SG,DP相連接,其中SSD~SSG同時(shí)為鍵盤的行掃描線。排電阻RX1是8×lO kΩ的下拉電阻,不可省去。連接到HD7279A器件RC端的振蕩電路中,電阻R13=1.5 kΩ,電容C2=15 pF都是必須的,且R13在1~2 kΩ的阻值范同內(nèi)變化,C2在10P~20 pF范圍內(nèi)變化時(shí),該電路均能穩(wěn)定工作,而在此范圍之外有可能導(dǎo)致LED意外閃爍或響應(yīng)鍵盤不靈敏,需要注意的是R13與C2必須盡量靠近HD7279A器件的RC端放置,以防止相互干擾。Cl=100μF,為濾波電容,有利于降低LED大電流工作對(duì)電源的沖擊。LDl~LD4選用4位獨(dú)立共陰式高亮度數(shù)碼管LED,HD7279A采用動(dòng)態(tài)掃描方式控制LED的顯示,因此應(yīng)該將4位不顯示位全部消隱,進(jìn)一步提高亮度。為了使4位LED全亮并保證足夠的亮度,整個(gè)顯示模塊的工作電流降低到50 mA,可以將8個(gè)限流電阻增大到250~270Ω。需要注意的是HD7279A不具有雙鍵鎖定功能,因此在需要雙鍵鎖定功能的應(yīng)用場合,可利用另外的單片機(jī)的I/O線與HD7279A器件聯(lián)合判定。
由于HD7279A與單片機(jī)采用串行接口(最少2線),對(duì)鍵盤的行列監(jiān)控掃描線與顯示控制的位選段選線共用,外圍元件少,元件取值范圍較寬,工作電流較小,工作穩(wěn)定可靠,因此接口電路設(shè)計(jì)簡單簡潔,操作方便,性價(jià)比極高。
4.2 軟件設(shè)計(jì)
針對(duì)圖4中的鍵盤顯示模塊,給出了圖5所示的軟件編程流程圖。常規(guī)任務(wù)是指單片機(jī)應(yīng)用系統(tǒng)需要執(zhí)行的其他任務(wù),一次執(zhí)行時(shí)間不超過20 ms;顯示任務(wù)是指單片機(jī)發(fā)送給HD7279A器件的顯示或控制命令,執(zhí)行時(shí)間不超過5 ms;鍵盤一次按下保持時(shí)間一般在60 ms以上,而定時(shí)讀取鍵值代碼的時(shí)間間隔大約為30 ms,因此只要合理安排軟件執(zhí)行時(shí)序,則常規(guī)任務(wù)、顯示任務(wù)和鍵盤操作就不會(huì)產(chǎn)生任何沖突,而且不會(huì)漏掉任何一次按鍵動(dòng)作。
5 結(jié)語
鍵盤顯示專用器件HD7279A與單片機(jī)的連接采用串口方式,占用資源很少,與鍵盤和顯示器件的連接簡單,控制命令豐富,顯示方式多樣,易于線路板布局,價(jià)格低廉,軟件結(jié)構(gòu)清晰易學(xué),是一款性價(jià)比極高的器件,因此廣泛應(yīng)用于儀器儀表開發(fā)。