- 相關(guān)推薦
可編程數(shù)碼管/鍵盤串行接口芯片HD7279A的原理與應(yīng)用
摘要:HA7279A是一種智能鍵盤和LED專用控制芯片,它帶有串行接口,可同時(shí)驅(qū)動(dòng)8位共陰式數(shù)碼管或64只獨(dú)立LED。文中詳述了該芯片的工作原理、工作時(shí)序及控制指令,給出了HD7279A與CPU的實(shí)際接口電路及設(shè)計(jì)程序,同時(shí)指出了實(shí)際應(yīng)用中的一些注意事項(xiàng)。關(guān)鍵詞:HD7279A;工作時(shí)序;接口電路
1主要特性
。龋模罚玻罚梗潦潜雀吖旧a(chǎn)的單片具有串行接口、可同時(shí)驅(qū)動(dòng)8位共陰式數(shù)碼管(或64只獨(dú)立LED)的智能顯示驅(qū)動(dòng)芯片,該芯片同時(shí)可連接多達(dá)64鍵的鍵盤矩陣,一片即可完成LED顯示及鍵盤接口的全部功能。HD7279A和微處理器之間采用串行接口,其接口和外圍電路比較簡(jiǎn)單,且占用口線少,加之它具有較高的性能價(jià)格比,因此,在微型控制器、智能儀表、控制面板和家用電器等領(lǐng)域獲得了日益廣泛的應(yīng)用。
HD7279A的主要特點(diǎn)如下:
●帶有串行接口,無(wú)需外圍元件便可直接驅(qū)動(dòng)LED;
●各位可獨(dú)立控制譯碼/不譯碼、消隱和閃爍等屬性;
●具有(循環(huán))左移/(循環(huán))右移指令;
●具有段尋址指令,可方便地用來(lái)控制獨(dú)立的LED顯示管;
●64鍵鍵盤控制器內(nèi)含去抖動(dòng)電路。
。惨_說(shuō)明
HD7279A一共有28?jìng)(gè)引腳,各引腳的主要功能如下:
RESET:復(fù)位端。當(dāng)該端由低電平變成高電平,并保持25ms后,復(fù)位過(guò)程結(jié)束。通常,該端接+5V電源;
DIG0~DIG7:8?jìng)(gè)LED管的位驅(qū)動(dòng)輸出端;
。樱痢樱牵海蹋牛臄(shù)碼管的A段~G段的輸出端;
。模校盒(shù)點(diǎn)的驅(qū)動(dòng)輸出端;
。遥茫和饨诱袷幵B接端,其中電阻的典型值為1.5kΩ?電容的典型值為15pF。
。龋模罚玻罚梗僚c微處理器僅需4條接口線,其中CS為片選信號(hào)(低電平有效)。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)輸出端,該端在無(wú)鍵按下時(shí)為高電平;而在有鍵按下時(shí)變?yōu)榈碗娖,并一直保持到按鍵釋放為止。
。晨刂浦噶詈徒涌跁r(shí)序
。龋模罚玻罚梗恋目刂浦噶罘譃榧冎噶詈蛶в袛(shù)據(jù)的指令兩大類,以下分別給予介紹。
3.1純指令
。龋模罚玻罚梗量刂浦噶钪械募冎噶钣袕(fù)位(清除)指令A4H、左移指令A1H和右移指令A0H。其中,復(fù)位(清除)指令A4H用于清除所有的顯示,同時(shí)清除所有設(shè)置的字符消隱和閃爍等屬性。執(zhí)行該指令后,芯片所處的狀態(tài)與系統(tǒng)上電后所處的狀態(tài)一樣。左移指令A1H可使所有的顯示自右向左(從第1位向第8位)移動(dòng)一位(包括處于消隱狀態(tài)的顯示位),但對(duì)各位所設(shè)置的消隱及閃爍屬性不起作用。右移指令A0H與左移指令類似,但所做移動(dòng)為自左向右(從第8位向第1位)移動(dòng),移動(dòng)后,最左邊一位為空。
3.2帶有數(shù)據(jù)的指令
帶有數(shù)據(jù)的指令包括以下5種:
D7D6D5D4D3D2D1D010000a2a1a0D7D6D5D4D3D2D1D0DPXXXd3d2d1d0
(1)下載數(shù)據(jù)且按方式0譯碼
這種指令的格式為:
該命令由二字節(jié)組成,前半部分為指令,其中a2~a0為位地址,d0~d3為數(shù)據(jù),收到此指令時(shí),HD7279A將按照以下規(guī)則(譯碼方式0)進(jìn)行譯碼。即:
0000:顯示0;1001:顯示9
。保埃保埃猴@示-;1111:顯示空白
(2)下載數(shù)據(jù)且按方式1譯碼
此指令與上一條指令基本相同,所不同的只是譯碼方式。該指令的譯碼方式為:d0~d3的值對(duì)應(yīng)于0~9和A~F。格式如下:
D7D6D5D4D3D2D1D011001a2a1a0D7D6D5D4D3D2D1D0DPXXXd3d2d1d0
(3)下載數(shù)據(jù)但不譯碼
該指令的格式如下:
D7D6D5D4D3D2D1D010010a2a1a0D7D6D5D4D3D2D1D0DPABCDEFG
在該指令格式中,a2,a1,a0為位地址,A~G和DP為顯示數(shù)據(jù),分別對(duì)應(yīng)7段LED數(shù)碼管的各段。當(dāng)相應(yīng)的數(shù)據(jù)位為1時(shí),該段點(diǎn)亮,否則,該段不亮。實(shí)際上,此指令是比較靈活的,設(shè)計(jì)時(shí)可以通過(guò)造字形表來(lái)顯示用戶所需的字符。
。ǎ)閃爍控制88H
此命令用于控制各個(gè)數(shù)碼管的閃爍屬性,d1~d8分別對(duì)應(yīng)數(shù)碼管1~8。在相應(yīng)的各位中?0表示閃爍,1表示不閃爍。開機(jī)后的缺省狀態(tài)為各位均不閃爍。具體指令格式如下:
D7D6D5D4D3D2D1D010001000D7D6D5D4D3D2D1D0d8d7d6d5d4d3d2d1
(5)讀鍵盤數(shù)據(jù)指令15H
該指令的格式如下:
D7D6D5D4D3D2D1D000010101D7D6D5D4D3D2D1D0d7d6d5d4d3d2d1d0
該指令主要用于從HD7279A讀出當(dāng)前的按鍵代碼。與其它指令不同的是,此命令的前一個(gè)字節(jié)00010101B為微控制器傳送到HD7279A的指令,而后一個(gè)字節(jié)d0~d7才是HD7279A返回的按鍵代碼,該代碼的具體范圍是0~3FH(當(dāng)無(wú)鍵按下時(shí),為0xFF)。
當(dāng)HD7279A檢測(cè)到有效按鍵時(shí),KEY引腳從高電平變?yōu)榈碗娖,并一直保持到按鍵結(jié)束。在此期間,如果HD7279A接收到“讀鍵盤數(shù)據(jù)指令”,則輸出當(dāng)前按鍵的鍵盤代碼;而如果在接收到“讀鍵盤指令”時(shí)沒(méi)有有效按鍵被按下時(shí),HD7279A則輸出FFH(11111111B)。
。常炒薪涌跁r(shí)序
綜上所述?在HD7279A的指令結(jié)構(gòu)類型中?不帶數(shù)據(jù)的純指令的指令寬度為8BIT,即微處理器需發(fā)送8?jìng)(gè)CLK脈沖。而帶有數(shù)據(jù)的指令寬度為16BIT,即微處理器需發(fā)送16個(gè)CLK脈沖。但其中的讀取鍵盤數(shù)據(jù)指令?寬度也是16BIT?的前8?jìng)(gè)BIT為微處理器發(fā)送到HD7279A的指令,后8?jìng)(gè)BIT為HD7279A返回的鍵盤代碼。執(zhí)行此指令時(shí),HD7279A的DATA端在第9個(gè)CLK脈沖的上升沿變?yōu)檩敵鰻顟B(tài),并于第16個(gè)脈沖的下降沿恢復(fù)為輸入狀態(tài),以等待接收下一個(gè)指令。圖1是HD7229A的3種指令接口時(shí)序圖。
圖2
。矗龋模罚玻罚梗恋膽(yīng)用
4.1硬件電路
。龋模罚玻罚梗恋牡湫蛻(yīng)用電路如圖2所示,使用時(shí)HD7279A應(yīng)連接共陰式數(shù)碼管,無(wú)需用到的鍵盤和數(shù)碼管可以不連接。如果不用鍵盤,則典型電路圖中連接到鍵盤的8只10kΩ電阻和8只100kΩ下拉電阻均可以省去。而如果使用鍵盤,則電路中的8只100kΩ下拉電阻則不能省略。除非不接入數(shù)碼管,否則連接至DP及SA~SG的8只200Ω電阻也不能省去。
4.2軟件編程
通過(guò)下面的一些子程序可對(duì)鍵盤進(jìn)行監(jiān)視,并在有鍵按下時(shí)讀取按鍵代碼,以便調(diào)用顯示程序?qū)⒃撴I值顯示在LED顯示器上。在圖2所示的接口電路中,HD7279A的外接振蕩元件可使用典型值。AT89C51的晶振頻率為6MHz。
如果將P1.0接到CS,P1.1接到CLK,P1.2接到DATA,而將P1.3接KEY,那么,其具體的軟件程序代碼如下:
。ǎ)發(fā)送一字節(jié)子程序:(發(fā)送數(shù)存于A中)
STFS:MOVR7,#08H
LP1:RLCA
。停希郑校保玻
。樱牛裕拢校保
。停希郑遥?#02H
LP2:DJNZR6,LP2;延時(shí)8μs
。茫蹋遥校保
。停希郑遥,#02H
。蹋校常海模剩危冢遥,LP3;延時(shí)8μs
。模剩危冢遥,LP1
。遥牛
(2)接收一字節(jié)子程序:(接收字符存于A中)
。樱裕剩:MOVR7,#08H
。蹋校保海樱牛裕拢校保
SETBP1.2
。停希郑遥,#02H
LP2:DJNZR6,LP2;延時(shí)8μs
。停希郑,P1.2
RLCA
。茫蹋遥校保
。停希郑遥,#01H
。蹋校常海模剩危冢遥,LP3;延時(shí)
。模剩危冢遥,LP1
RET
。ǎ常╋@示程序(采用下載數(shù)據(jù)但不譯碼方式,其字形表由用戶根據(jù)需要和硬件連線來(lái)確定,指令碼為90~97):
。模裕:MOVR5,#05H
。停希郑遥埃#矗埃
。停希郑遥,#95H
。蹋校保海茫蹋遥校保埃ǎ茫樱剑埃
。停希郑遥,#0CH
LP2:DJNZR6,LP2;延時(shí)50μs
。停希郑,R1
。粒茫粒蹋蹋樱裕疲;發(fā)指令
。停希郑遥,#04H
。蹋校常海模剩危冢遥,LP3;延時(shí)25μs
。停希郑,@R0
ADDA,#0DH
。停希郑茫,@A+PC
ACALLSTFS;發(fā)顯示代碼
MOVR6,#02H
。蹋校:DJNZR6,LP4;延時(shí)8μs
SETBP1.0;CS=1
INCR0
。模牛茫遥
。模剩危冢遥,LP1
。遥牛
TABDB7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BH,
。模拢罚罚,1FH,4EH,3DH,4FH,47H,00H,67H
。ǎ)讀鍵值子程序:所讀的鍵值保存在A、B單元中,其值與按鍵在鍵盤中的位置及硬件連線有關(guān)。
。樱裕海粒茫粒蹋蹋耍牛伲
。茫剩危牛,#0FFH,LP1
。茫蹋遥埃埃
。遥牛
。蹋校:JB00H,LP2
SETB00H
。遥牛
LP2:MOVB,#FFH
。遥牛
KEY1:CLRP1.0;CS=0
MOVR6,#0CH
。蹋校保海模剩危冢遥,LP1;延時(shí)50μs
MOVA?#15H
。粒茫粒蹋蹋樱裕疲樱话l(fā)指令
。停希郑遥,#06H
。蹋校?DJNZR6,LP2;延時(shí)25μs
。粒茫粒蹋蹋樱裕剩樱蛔x鍵值
。停希郑,A
。樱牛裕拢校保;CS=1
。遥牛
【可編程數(shù)碼管/鍵盤串行接口芯片HD7279A的原理與應(yīng)用】相關(guān)文章:
串行接口LED數(shù)碼管及鍵盤管理器件ZLG7289A的原理與應(yīng)用08-06
專用鍵盤接口芯片的一種CPLD實(shí)現(xiàn)方案08-06
串行接口鍵盤控制器SK5278及其在單片機(jī)系統(tǒng)中的應(yīng)用08-06