一、设计思路:在上期中运用定时器T1每隔10MS,检测一次按键,比较两次按键是否相同,会造成时间延迟,感觉有点不好。这次更改程序,直接通过按键后保存键值,进行两次键值的比较,从而确定是否有按键按下,以及按键是否改变,让单片机做出更快的响应,不知还有没有更好的方法,敬请个位指教谢谢。程序都带有注释,可以直接移植使用。
;电子琴尝试第二种方法,每按一次送一次初值
;P3按键端口
;p2.0--数码管位选
;p0---数码管段选
;p2.4--蜂鸣器FMQ
FMQ bit P2.4
ORG 0000H
AJMP MAIN
ORG 000BH
CPL FMQ
MOV TH0, R3 ;重装初值
MOV TL0, R4
RETI
ORG 0030H
MAIN:
MOV TMOD,#01H
SETB ET0
SETB EA
CLR P2.0
// MOV R2,#00H ;用于记录按键位置
// MOV 40H,#00H ;用于比较两次按键是否有区别
LOOP:ACALL KEYSAN ;按键检测
AJMP LOOP
KEYSAN:
MOV P3,#0FFH ;p3设为输入
JB P3.0,KEY1
MOV R2,#01H
AJMP KEY

最低0.47元/天 解锁文章
4347

被折叠的 条评论
为什么被折叠?



