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