找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1207|回復: 1
打印 上一主題 下一主題
收起左側(cè)

51單片機鍵盤程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:761863 發(fā)表于 2020-5-26 19:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
BUFFER    DATA 30H                    ;鍵盤輸入緩沖區(qū)首地址
BUFFER1  DATA 40H                    ;8字節(jié)顯示緩沖區(qū)在首地址
CMD8279  XDATA 0BF01H           ;8279命 令/狀態(tài)字地
DATA8279  XDATA 0BFO0H         ;8279讀寫 數(shù)據(jù)口地址
KEYCOUNT  DATA 50H

ORG     0000H
LJMP    MAIN
ORG     0100H
MAIN:
RUN8279:  ACALL INIT                 ;8279初始化
                 MOV KEYCOUNT,#0   ;按鍵個數(shù)計數(shù)

STAR1:      LCALL SCAN_KEY         ;鍵掃描
                JNC STAR1                  ;無按鍵則循環(huán)
                XCH A,KEYCOUNT
                INC  A
                CJINE A,#9,STAR2
                MOV_ KEYCOUNT,#0
                LCALL INIT8279_1
                SJMP STAR1
STAR2:     XCH A,KEYCOUNT
               LCALL KEY_NUM
               MOV DPTR,#LED_TAB
               MOVC A,@A+DPTR
               LCALL WRITE_DATA
               SJMP STAR1                ;8279初始化INIT:

INIT:        MOV A,#34H               ;命令字:分頻系數(shù)20分頻
               MOV DPTR, #CMD8279
               MOVX @DPTR,A
               MOV A,#10H
               MOVX @DPTR,A
INIT8279_ 1: LCALL CLEAR            ;清顯示
                    MOV A,#90H            ;從最后-一個數(shù)碼管開始顯示移位
                    MOVX @DPTR,A
                    RET                          ;清顯示
CLEAR:     MOV A,#ODEH              ;清屏命令
               MOV DPTR,#CMD8279
               MOVX @DPTR,A
WATIT11: MOVX A,@DPTR
               JB ACC.7,WAIT11            ;顯示RAM清除完畢否?
               RET
;鍵盤掃描
SCAN_ KEY:   MOV DPTR,#CMD8279 ;讀狀態(tài)字
                     MOVX A, @DPTR
READ_ FIFO:  ANL A,#7
                     JZ NO_KEY                   ;判定是否有鍵按下

READ:       MOV A,#40H
                MOVX @DPTR,A               ;讀FIFO RAM命令字
                MOV DPTR,#DATA8279
                MOVX A,@DPTR
                SETB C
SCAN_KEY1: RET
NO_KEY:    CLR C
                 SJMP SCAN_KEY1
KEY_NUM: ANL A,#3FH
                 RET
WRITE_DATA: MOV DPTR,#DATA8279
                      MOVX @DPTR,A
                      RET
LED_TAB:  DB   0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
                DB   80H,90H,88H,83H,0C6H,0A1H,86H,8EH
        END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2020-5-29 01:08 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表