简易电子琴的设计与仿真.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
proteus 7的使用及调试
定时器、中断、键盘接口数字电路、模拟电路的相关知识2、实现及编程
2.1程序框图
)
2.2电路原理图
2.3程序内容 7个音调的产生方法 按k2让音调逆向输出 如何按k8+k2放出音乐和如何
让音乐停止
2.4汇编源程序 BUZZ EQU P2 BUZZ1 EQU P1.7 ORG OOOOH LJMP MAIN ORG 000BH
LJMP INT_T0 ORG 001BH LJMP TIME1 ORG 8000H MAIN: MOV SP,#90H MOV BUZZ,#0FFH
MOV TMOD,#11H SETB ET0 SETB ET1 SETB EA CLR TR0 START: MOV R0, BUZZ CJNE R0,#0FFH,KEY1 CLR TR0 SJMP START KEY1: CJNE R0,#0FEH,KEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP SET_TIMER KEY2:
CJNE R0,#0FDH,KEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP SET_TIMER KEY3:
CJNE R0,#0FBH,KEY4
MOV 30H,#0FCH MOV 31H,#0C1H LJMP SET_TIMER KEY4:
CJNE R0,#0F7H,KEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP SET_TIMER KEY5:
CJNE R0,#0EFH,KEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP SET_TIMER KEY6:
囉*
祖
1IU
■□■1l
・
■CkUJUfiia ▼"■VZ AfiJkAAl ■E * F Wi -54
■U A JM
"bn iunTb
—-
P XF ™n *T*Ll 2CH,02H,82H DB 16H,32H,56H,12H DB 0A6H,32H,56H,52H DB 66H,72H,0B6H,62H DB 62H,52H,58H,32H,22H DB 16H,12H,14H,32H,22H DB 16H,12H,14H,22H,32H DB 26H,92H,0A4H,12H,22H DB 1CH DB 00 K8键按后是否音调是逆 原来是忘了继续检测 END 3、调试及测试 3. 1调试(按实际做的步奏) 如按下k5后显示如下图: k1— k7音调输出 按一下k8。在按k1—k7音频逆向输出 先按着k8再+k1键后会在音频输出歌曲,k1键停止 3. 2测试 在proteus 环境下点击k1-k7看看发出的音是不是正确的 向的 K8+k1是否音乐输出 在调试源代码中采用分块测试:音频输出、按键音乐播放 最后采用组合调试 3. 3出现的问题及解决 在做k8按键检查k 到8直到k8放开才跳转一直出错。 p2 口 0 0 0 TM0D 设置错误