📄 off_key.asm
字号:
;*******************************Copyright (c)********************************
;** 广州周立功单片机发展有限公司研究所
;** http://www.zlgmcu.com
;********************************文件信息*************************************
;文件名:Off_Key.asm
;功能:使用DP-51S实验仪学习键盘的连接处理方法和程序的设计方法
;说明:
;1.检测键盘K1,禁止连击功能.
;2.键盘K1有效一次,显示的数据加1
;3.正确设置跳线JP3使P3.3与KEY1相连,即把跳线置于上端
;5.注意领会禁止连击程序的编写方法和软件实现的键盘去抖动的方法
;最后修改时间:2003年3月21
;*************************************************************************
LED_ADDR EQU 2000H ;定义键盘、数码管操作地址
DATA_BUF DATA 30H ;定义显示缓冲区首地址
DATA_SL DATA 37H
ORG 8000H ;伪指令,指定程序从8000H开始存放
AJMP MAIN ;跳转指令,程序跳转到MAIN处
ORG 8100H ;伪指令,指定以下程序从8100H开始存放
MAIN:
MOV SP,#60 ;给堆栈指针赋初值
MOV DATA_BUF,#01H ;数据“1“
MOV DATA_BUF+1,#02H ;数据“2”
MOV DATA_BUF+2,#03H ;数据“3”
MOV DATA_BUF+3,#04H ;数据“4”
MOV DATA_BUF+4,#05H ;数据“5”
MOV DATA_BUF+5,#06H ;数据“6”
ON_PROG:
JB P3.3,NO_KEY ;有K1键按下?
ACALL DATA_INC ;是,则执行相应的加1程序
NO_KEY:
ACALL DISPLAY ;调用显示子程序
JNB P3.3,NO_KEY ;判断该案件是否释放?
ACALL DISPLAY ;调用显示子程序
ACALL DISPLAY ;调用显示子程序
ACALL DISPLAY ;调用显示子程序
ACALL DISPLAY ;调用显示子程序
ACALL DISPLAY ;调用显示子程序
AJMP ON_PROG
;***********************
;显示数据加一子程序
;***********************
DATA_INC:
MOV A,DATA_BUF+5 ;取显示的最后一位数据
INC A
CJNE A,#10,DATA_NEXT ;判断数据是否满10?
MOV A,#00 ;是,则重新赋初值
DATA_NEXT:
MOV DATA_BUF+5,A ;把该数据送缓冲区保存
RET
;***********************
;LED数码管显示子程序
;***********************
DISPLAY:
MOV R7,#06H ;给R7赋初值,存放数码管的个数
MOV R0,#DATA_BUF ;把显示缓冲区首地址送R0
MOV DATA_SL,#0FEH
LOOP:
MOV A,@R0 ;取若显示的数据
ANL A,#0FH ;屏蔽高位数据
ACALL TABLE ;查段码表,得出该数据对应的段码
MOV DPTR,#LED_ADDR ;LED数码管地址送DPTR
MOVX @DPTR,A
MOV A,DATA_SL ;位码送A
MOV P1,A ;输出位码
ACALL DELAY ;调延时子程序
MOV P1,#0FFH ;输出位码
Rl A ;取下一个数码管
MOV DATA_SL,A ;保存该位码值
INC R0 ;取下一个数据显示
DJNZ R7,LOOP ;6位数据显示完否?
RET
;**************
;延时子程序
;**************
DELAY:
MOV R6,#10H
DELAY0: MOV R5,#40H
DELAY1: DJNZ R5,DELAY1
DJNZ R6,DELAY0
RET
;查表子程序
TABLE: INC A ;基地址加一
MOVC A, @A+PC ;查段码表,取其相应的段码
RET
DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,80H,090H ;0-9的段码
DB 088H,083H,0c6H,0a1H,86H,8eH,0bfH,89H,8cH ;A-F、-、P的段码
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -