51单片机汇编电子琴2

一、设计思路:在上期中运用定时器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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值