📄 io_key.asm
字号:
;*******************************Copyright (c)********************************
;** 广州周立功单片机发展有限公司研究所
;** http://www.zlgmcu.com
;********************************文件信息*************************************
;文件名:IO_Key.asm
;功能:使用DP-51S实验仪学习I/O作基本输入口及其仿真调试程序的基本方法
;说明:
;1.键盘K1、K2作为输入口使用,不断读取键盘输入的状态
;2.若K1键被按下,点亮发光管L9~L11,若K2被按下熄灭L9~L11,同时蜂鸣器发出提示声响
;3.正确设置跳线JP1使P1.0~P1.2分别与L9~L11相连,即把跳线置于上端
;4.正确设置跳线JP3使P3.3~P3.5分别与KEY1~KEY3相连,即把跳线置于上端
;5.注意领会软件实现的键盘去抖动的方法
;最后修改时间:2003年3月21
;*************************************************************************
ORG 8000H ;伪指令,指定程序从8000H开始存放
AJMP MAIN ;跳转指令,程序跳转到MAIN处
ORG 8100H ;伪指令,指定以下程序从8100H开始存放
MAIN:
MOV SP,#60 ;给堆栈指针赋初值
TEST_KEY: JB P3.3,NEXT_KEY ;检测键盘K1是否按下
ACALL DELAY5MS ;调延时子程序出抖动
JNB P3.3,$ ;检测按键K1是否放开
ACALL MUSIC
CLR P1.0 ;本此按键有效,作出相应处理
CLR P1.1 ;点亮发光管L9~L11
CLR P1.2
NEXT_KEY: JB P3.4,TEST_KEY ;检测键盘K2是否按下
ACALL DELAY5MS ;调延时子程序出抖动
JNB P3.4,$ ;检测按键K2是否放开
ACALL MUSIC
SETB P1.0 ;本此按键有效,作出相应处理
SETB P1.1 ;熄灭发光管L9~L11
SETB P1.2
AJMP TEST_KEY
;***********************
;蜂鸣器输出声响子程序
;**********************
MUSIC:
MOV R5,#40H ;控制音长
MIC:
CPL P1.3
ACALL DELAY100US ;控制音调
DJNZ R5,MIC
RET
DELAY100US:
MOV R7,#0FFH
DJNZ R7,$
RET
;********************
;延时去抖动子程序
;********************
DELAY5MS:
MOV R7,#90H
DELAY0: MOV R6,#80H
DELAY1: DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -