标题:
单片机初学汇编按键检测,按一下亮再按灭,如此循环,不是很完美,希望抛砖引玉
[打印本页]
作者:
伟哥C51
时间:
2024-3-9 19:41
标题:
单片机初学汇编按键检测,按一下亮再按灭,如此循环,不是很完美,希望抛砖引玉
ORG 000H
KS: JB P3.5,$; 测按键
ACALL DELAY; 按键延时去抖动
JB P3.5,KS;再次测按键
JNB P3.5,$; 按键松开否
ACALL DELAY;
MOV A,P1; 读取P口值
ANL A,#001H;取P1.0位
JNZ MD; 测试P1.0口非0否,非零跳至MD点灯
SETB P1.0; 是0关灯
ACALL DELAY2; 延时200毫秒再测按键
SJMP KS
MD: CLR P1.0
ACALL DELAY2; 延时200毫秒再测按键
DELAY: MOV R1,#2
LOOP: MOV R2,#255
DJNZ R2,$
DJNZ R1,LOOP
RET
DELAY2: MOV R3,#2
LOOP3: MOV R4,#36
LOOP2: MOV R5,#255
DJNZ R5,$
DJNZ R4,LOOP2
DJNZ R3,LOOP3
RET
END
作者:
21cnsound
时间:
2024-3-10 17:40
MD: CLR P1.0
ACALL DELAY2; 延时200毫秒再测按键
这里少了一句 SJMP KS
作者:
伟哥C51
时间:
2024-3-24 14:39
21cnsound 发表于 2024-3-10 17:40
MD: CLR P1.0
ACALL DELAY2; 延时200毫秒再测按键
这里少了一句 ...
少这句是不是程序不能跳回KS重新开始检测,但是在实验板子上没区别
这条子程序返回语句 ACALL DELAY2; 延时200毫秒再测按键,执行完主程序下面没有语句了,程序怎么走,单片机是不能停下,就像CRT显像管电子束从上往下,一行一行的往下扫描
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1