• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > 可編程數碼管/鍵盤串行接口芯片HD7279A的原理與應

    可編程數碼管/鍵盤串行接口芯片HD7279A的原理與應

    作者: 時間:2004-12-07 來源:網絡 收藏
    摘要:HA是一種智能鍵盤和LED專用控制芯片,它帶有串行接口,可同時驅動8位共陰式數碼管或64只獨立LED。文中詳述了該芯片的工作原理、工作時序及控制指令,給出了與CPU的實際接口電路及設計程序,同時指出了實際應用中的一些注意事項。

    關鍵詞:;工作時序;接口電路

    1 主要特性

    HD7279A是比高公司生產的單片具有串行接口、可同時驅動8位共陰式數碼管(或64只獨立LED)的智能顯示驅動芯片,該芯片同時可連接多達64鍵的鍵盤矩陣,一片即可完成LED顯示及鍵盤接口的全部功能。HD7279A和微處理器之間采用串行接口,其接口和外圍電路比較簡單,且占用口線少,加之它具有較高的性能價格比,因此,在微型控制器、智能儀表、控制面板和家用電器等領域獲得了日益廣泛的應用。

    HD7279A的主要特點如下:

    ●帶有串行接口,無需外圍元件便可直接驅動LED;

    ●各位可獨立控制譯碼/不譯碼、消隱和閃爍等屬性;

    ●具有(循環)左移/(循環)右移指令;

    ●具有段尋址指令,可方便地用來控制獨立的LED顯示管;

    ●64鍵鍵盤控制器內含去抖動電路。

    2 引腳說明

    HD7279A一共有28個引腳,各引腳的主要功能如下:

    RESET:復位端。當該端由低電平變成高電平,并保持25ms后,復位過程結束。通常,該端接+5V電源;

    DIG0~DIG7:8個LED管的位驅動輸出端;

    SA~SG:LED數碼管的A段~G段的輸出端;

    DP:小數點的驅動輸出端;

    RC:外接振蕩元件連接端,其中電阻的典型值為1.5kΩ?電容的典型值為15pF。

    HD7279A與微處理器僅需4條接口線,其中CS為片選信號(低電平有效)。DATA為串行數據端,當向HD7279A發送數據時,DATA為輸入端;當HD7279A輸出鍵盤代碼時,DATA為輸出端。CLK為數據串行傳送的同步時鐘輸入端,時鐘的上升沿表示數據有效。KEY為按鍵信號輸出端,該端在無鍵按下時為高電平;而在有鍵按下時變為低電平,并一直保持到按鍵釋放為止。

    3 控制指令和接口時序

    HD7279A的控制指令分為純指令和帶有數據的指令兩大類,以下分別給予介紹。

    3.1 純指令

    HD7279A控制指令中的純指令有復位(清除)指令A4H、左移指令A1H和右移指令A0H。其中,復位(清除)指令A4H用于清除所有的顯示,同時清除所有設置的字符消隱和閃爍等屬性。執行該指令后,芯片所處的狀態與系統上電后所處的狀態一樣。左移指令A1H可使所有的顯示自右向左(從第1位向第8位)移動一位(包括處于消隱狀態的顯示位),但對各位所設置的消隱及閃爍屬性不起作用。右移指令A0H與左移指令類似,但所做移動為自左向右(從第8位向第1位)移動,移動后,最左邊一位為空。

    3.2 帶有數據的指令

    帶有數據的指令包括以下5種:

    D7D6D5D4D3D2D1D0
    10000a2a1a0
    D7D6D5D4D3D2D1D0
    DPXXXd3d2d1d0

    (1)下載數據且按方式0譯碼

    這種指令的格式為:

    該命令由二字節組成,前半部分為指令,其中a2~a0為位地址,d0~d3為數據,收到此指令時,HD7279A將按照以下規則(譯碼方式0)進行譯碼。即:

    0000:顯示0 ; 1001:顯示9

    1010:顯示 -; 1111:顯示空白

    (2)下載數據且按方式1譯碼

    此指令與上一條指令基本相同,所不同的只是譯碼方式。該指令的譯碼方式為:d0~d3的值對應于0~9和A~F。格式如下:

    D7D6D5D4D3D2D1D0
    11001a2a1a0
    D7D6D5D4D3D2D1D0
    DPXXXd3d2d1d0

    (3)下載數據但不譯碼

    該指令的格式如下:

    D7D6D5D4D3D2D1D0
    10010a2a1a0
    D7D6D5D4D3D2D1D0
    DPABCDEFG

    在該指令格式中,a2,a1,a0為位地址,A~G和DP為顯示數據,分別對應7段LED數碼管的各段。當相應的數據位為1時,該段點亮,否則,該段不亮。實際上,此指令是比較靈活的,設計時可以通過造字形表來顯示用戶所需的字符。

    (4)閃爍控制88H

    此命令用于控制各個數碼管的閃爍屬性,d1~d8分別對應數碼管1~8。在相應的各位中?0表示閃爍,1表示不閃爍。開機后的缺省狀態為各位均不閃爍。具體指令格式如下:

    D7D6D5D4D3D2D1D0
    10001000
    D7D6D5D4D3D2D1D0
    d8d7d6d5d4d3d2d1

    (5)讀鍵盤數據指令15H

    該指令的格式如下:

    D7D6D5D4D3D2D1D0
    00010101
    D7D6D5D4D3D2D1D0
    d7d6d5d4d3d2d1d0

    該指令主要用于從HD7279A讀出當前的按鍵代碼。與其它指令不同的是,此命令的前一個字節00010101B為微控制器傳送到HD7279A的指令,而后一個字節d0~d7才是HD7279A返回的按鍵代碼,該代碼的具體范圍是0~3FH(當無鍵按下時,為0xFF)。

    當HD7279A檢測到有效按鍵時,KEY引腳從高電平變為低電平,并一直保持到按鍵結束。在此期間,如果HD7279A接收到“讀鍵盤數據指令”,則輸出當前按鍵的鍵盤代碼;而如果在接收到“讀鍵盤指令”時沒有有效按鍵被按下時,HD7279A則輸出FFH(11111111B)。

    3.3 串行接口時序

    綜上所述?在HD7279A的指令結構類型中?不帶數據的純指令的指令寬度為8BIT,即微處理器需發送8個CLK脈沖。而帶有數據的指令寬度為16BIT,即微處理器需發送16個CLK脈沖。但其中的讀取鍵盤數據指令?寬度也是16BIT?的前8個BIT為微處理器發送到HD7279A的指令,后8個BIT為HD7279A返回的鍵盤代碼。執行此指令時,HD7279A的DATA端在第9個CLK脈沖的上升沿變為輸出狀態,并于第16個脈沖的下降沿恢復為輸入狀態,以等待接收下一個指令。圖1是HD7229A的3種指令接口時序圖。

    圖2


    4 HD7279A的應用

    4.1 硬件電路

    HD7279A的典型應用電路如圖2所示,使用時HD7279A應連接共陰式數碼管,無需用到的鍵盤和數碼管可以不連接。如果不用鍵盤,則典型電路圖中連接到鍵盤的8只10kΩ電阻和8只100kΩ下拉電阻均可以省去。而如果使用鍵盤,則電路中的8只100kΩ下拉電阻則不能省略。除非不接入數碼管,否則連接至DP及SA~SG的8只200Ω電阻也不能省去。

    4.2 軟件編程

    通過下面的一些子程序可對鍵盤進行監視,并在有鍵按下時讀取按鍵代碼,以便調用顯示程序將該鍵值顯示在LED顯示器上。在圖2所示的接口電路中,HD7279A的外接振蕩元件可使用典型值。AT89C51的晶振頻率為6MHz。

    如果將P1.0接到CS,P1.1接到CLK,P1.2接到DATA,而將P1.3接KEY,那么,其具體的軟件程序代碼如下:

    (1) 發送一字節子程序:(發送數存于A中)

    STFS: MOV R7,#08H

    LP1: RLC A

    MOV P1.2,C

    SETB P1.1

    MOV R6?#02H

    LP2: DJNZ R6, LP2 ;延時8μs

    CLR P1.1

    MOV R6, #02H

    LP3:DJNZ R6,LP3 ;延時8μs

    DJNZ R7,LP1

    RET

    (2)接收一字節子程序:(接收字符存于A中)

    STJS: MOV R7,#08H

    LP1:SETB P1.1

    SETB P1.2

    MOV R6,#02H

    LP2: DJNZ R6,LP2 ;延時8μs

    MOV C, P1.2

    RLC A

    CLR P1.1

    MOV R6,#01H

    LP3: DJNZ R6,LP3 ;延時

    DJNZ R7,LP1

    RET

    (3)顯示程序(采用下載數據但不譯碼方式,其字形表由用戶根據需要和硬件連線來確定,指令碼為90~97):

    DTR: MOV R5,#05H

    MOV R0,#40H

    MOV R1,#95H

    LP1: CLR P1.0 (CS=0)

    MOV R6,#0CH

    LP2: DJNZ R6,LP2 ;延時50μs

    MOV A,R1

    ACALL STFS ;發指令

    MOV R6,#04H

    LP3: DJNZ R6,LP3 ;延時25μs

    MOV A,@R0

    ADD A,#0DH

    MOVC A,@A+PC

    ACALL STFS ;發顯示代碼

    MOV R6,#02H

    LP4: DJNZ R6,LP4 ;延時8μs

    SETB P1.0 ;CS=1

    INC R0

    DEC R1

    DJNZ R5,LP1

    RET

    TAB DB 7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BH,

    DB 77H,1FH,4EH,3DH,4FH,47H,00H,67H

    (4) 讀鍵值子程序:所讀的鍵值保存在A、B單元中,其值與按鍵在鍵盤中的位置及硬件連線有關。

    ST: ACALL KEY1

    CJNE A,#0FFH,LP1

    CLR 00H

    RET

    LP1: JB 00H,LP2

    SETB 00H

    RET

    LP2: MOV B, #FFH

    RET

    KEY1:CLR P1.0 ;CS=0

    MOV R6,#0CH

    LP1: DJNZ R6,LP1 ;延時50μs

    MOV A?#15H

    ACALL STFS ;發指令

    MOV R6,#06H

    LP2? DJNZ R6,LP2 ;延時25μs

    ACALL STJS ;讀鍵值

    MOV B, A

    SETB P1.0 ;CS=1

    RET



    關鍵詞: 7279A HD 可編程

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 郓城县| 中江县| 巴里| 土默特左旗| 闵行区| 拉萨市| 左云县| 永寿县| 乌什县| 同江市| 布尔津县| 广德县| 沁源县| 汉沽区| 余江县| 柳州市| 漾濞| 沙洋县| 万荣县| 北海市| 祁连县| 白河县| 吉木乃县| 昌宁县| 杨浦区| 策勒县| 电白县| 邹平县| 杂多县| 台前县| 千阳县| 浮山县| 长海县| 光泽县| 玉林市| 通江县| 重庆市| 台安县| 凤翔县| 若尔盖县| 罗甸县|