标题: 51单片机键盘程序 [打印本页]

作者: launch2211    时间: 2020-5-26 19:00
标题: 51单片机键盘程序
BUFFER    DATA 30H                    ;键盘输入缓冲区首地址
BUFFER1  DATA 40H                    ;8字节显示缓冲区在首地址
CMD8279  XDATA 0BF01H           ;8279命 令/状态字地
DATA8279  XDATA 0BFO0H         ;8279读写 数据口地址
KEYCOUNT  DATA 50H

ORG     0000H
LJMP    MAIN
ORG     0100H
MAIN:
RUN8279:  ACALL INIT                 ;8279初始化
                 MOV KEYCOUNT,#0   ;按键个数计数

STAR1:      LCALL SCAN_KEY         ;键扫描
                JNC STAR1                  ;无按键则循环
                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               ;命令字:分频系数20分频
               MOV DPTR, #CMD8279
               MOVX @DPTR,A
               MOV A,#10H
               MOVX @DPTR,A
INIT8279_ 1: LCALL CLEAR            ;清显示
                    MOV A,#90H            ;从最后-一个数码管开始显示移位
                    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 ;读状态字
                     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


作者: admin    时间: 2020-5-29 01:08
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1