新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 串行接口LED數碼管及鍵盤管理ZLG7289A的原理與應用

        串行接口LED數碼管及鍵盤管理ZLG7289A的原理與應用

        作者: 時間:2012-05-14 來源:網絡 收藏

        3.2 帶有數據的指令

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

        該指令的格式如下:

        D7D6D5D4D3D2D1D0
        10000a2a1a0
        D7D6D5D4D3D2D1D0
        DPXXXd3d2d0d1

        該命令由二個字節組成。前半部分為指令,其中a2 a1 a0 為位地址,d0~d3為數據。具體分配方式如表2所列。當系統接收到此指令時(ZLG7289A將按譯碼方式0進行譯碼)具體的譯碼方式如表3所列。小數點的顯示可由DP位控制,DP為1時,小數點顯示,DP為0時,小數點不顯示。在該指令格式中,x表示沒有影響。

        表2 位地址分配表

        a2a1a0顯示位
        0001
        0012
        0103
        0114
        1005
        1016
        1107
        1118

        表3 譯碼方式表

        d0~d3d3d2d1d07段顯示
        00H00000
        01H00111
        02H00002
        03H00113
        04H01004
        05H01015
        06H01106
        07H01117
        08H10008
        09H10019
        0AH1010-
        0BH1011E
        0CH1100H
        0DH1101L
        0EH1110P
        0FH1111空無顯示

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

        這種指令與上一個指令基本相同。所不同的是,該指令的d0~d3對應的數據位0AH~0FH分別為七段顯示中的A、B、C、D、E、F。該指令的具體格式如下:

        D7D6D5D4D3D2D1D0
        11001a2a1a0
        D7D6D5D4D3D2D1D0
        DPXXXd3d2d0d1

        (3) 讀鍵盤數據指令

        該指令從ZLG7289A讀出當前的按鍵代碼,格式如下:

        D7D6D5D4D3D2D1D0
        00010101
        D7D6D5D4D3D2D1D0
        d7d6d5d4d3d2d0d1

        與其它指令不同的是,此命令的前一個字節0001010B 為單片機傳送到ZLG7289A的指令,而后一個字節d0~d7則為ZLG7289A返回的按鍵代碼。 其范圍為0~3FH(無鍵按下時為0xFF)。在此指令的前半段,ZLG7289A 的DATA 引腳處于高阻輸入狀態,可以用來接收來自微處理器的指令;在指令的后半段,DATA 引腳從輸入狀態轉為輸出狀態,此時將輸出鍵盤代碼的值。故微處理器連接到DATA 引腳的I/O口應當有一個從輸出態到輸入態的轉換過程。

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

        (4)其它指令

        除以上幾個指令外,ZLG7289A還具有下載數據但不譯碼、閃爍控制、消隱控制、段點亮指令、段關閉等指令,限于篇幅,此處不再詳述。

        圖2

        4 典型應用

        ZLG7289A 的典型應用電路如圖2所示,圖中,ZLG7289A 應連接共陰式數碼管,應用中無需用到的數碼管和鍵盤可以不連接,因而可省去數碼管。此外,設置消隱屬性也不會影響鍵盤的使用。

        由于ZLG7289采用的是循環掃描的工作方式,因此,如果采用普通的數碼管,亮度可能不夠,故應采用高亮度或超高亮度的數碼管,且尺寸也不宜選的過大,一般字符高度不超過1 英寸,如使用大型的數碼管,則應選用適當的驅動電路。

        ZLG7289A的RESET復位端在一般情況下,可以直接和VCC相連;而在需要較高可靠性的情況下,則可以連接外部復位電路或直接由MCU 控制。在上電或RESET 端由低電平變為高電平后,通常要經過大約18~25ms的時間,ZLG7289A才會進入正常工作狀態。

        圖3

        5 應用實例

        圖3是以AT89C51單片機為例給出的ZLG7289A與單片機的接口電路。圖中,AT89C51所用時鐘頻率為12MHz如果使用不同的CPU時鐘頻率,則應注意調整延時時間。下面給出的是該系統的部分程序:

        ;*****************RAM定義

        BIT_COUNT DATA 07FH

        TIMER DATA 07EH

        TIMER1 DATA 07DH

        TEN DATA 07CH

        DATA_IN DATA 020H

        DATA_OUT DATA 021H

        ;**************I/O定義

        DAT BIT P0.6 ;ZLG8279A的 DATA,連接AT89C51的P0.6

        KEY BIT P0.7 ; ZLG8279A的KEY,連接AT89C51的P0.7

        CS BIT P0.4 ; ZLG8279A的CS,連接AT89C51的P0.4

        CLK BIT P0.5 ; ZLG8279A的CLK,連接AT89C51的P0.5

        ORG 0000H

        AJMP START

        ORG 0030H

        START:MOV SP,#2FH ;堆棧定義

        MOV P1,#11011011B ;I/O初始化

        MOV TIMER,#50  ;25ms定時

        START_DELAY: MOV TIMER1,#255

        START_DELAY1: DJNZ TIMER1,START_DELAY1

        DJNZ TIMER,START_DELAY

        MOV DATA_OUT,#10100100B ;復位指令

        CALL SEND ;發指令到ZLG8279A

        SETB CS ;恢復CS高電平

        MAIN:JB KEY,MAIN ;是否有鍵按下

        MOV DATA_OUT,#00010101B  ;有鍵按下,發讀鍵盤指令

        CALL SEND

        CALL RECEIVE

        SETB CS  ;CS置高電平

        MOV B,#10 ;16進制到BCD碼轉換

        MOV A,DATA_IN

        DIV AB

        MOV TEN,A

        MOV DATA_OUT,#10100001B ;左移指令

        CALL SEND



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宜春市| 溧阳市| 海门市| 台安县| 涞源县| 长春市| 文安县| 达日县| 科技| 聂荣县| 贵阳市| 南澳县| 广德县| 夏河县| 莱芜市| 股票| 衡东县| 宜兰县| 公主岭市| 逊克县| 双牌县| 龙胜| 兴城市| 怀远县| 独山县| 安顺市| 宜君县| 清水县| 肃南| 图片| 焉耆| 宝山区| 福清市| 松溪县| 西乌珠穆沁旗| 砀山县| 葫芦岛市| 鄯善县| 渝中区| 恩施市| 尚志市|