当前位置:首页 > 毕业设计(论文)-基于单片机的微型电子琴设计 - 图文
乐山师范学院毕业论文(设计)
弹奏程序流程图 弹奏子程序 开中断并允许中断设定定时器工作方式 取键值 根据键值查音律给定时器T0赋值 开始计进入中断 CPL P3.0 退出中断 延时 返回键盘扫描程序 17
乐山师范学院毕业论文(设计)
自动播放歌曲程序流程图 自动播放音乐程序
A<< 0,DPTR<<歌谱地址
开中断,设定定时器T1工作模式 取简谱码 取该音符的节拍码
Y STOP A=0
N Y 返回键盘扫描 休止符 A=0FFH N 查音律表,给定时器赋值
INC DPTR
开始计时
进入中断
CPL3.0 退出中断
延时
7.3 部分设计源程序 7.3.1歌曲播放子程序 ;=== 歌曲播放子程序 === START0:
18
乐山师范学院毕业论文(设计)
mov 30H,# SONG0 ;取简谱码指针(第1首) next: mov a,30h
mov dptr,#tab1
movc a,@a+dptr ;至相关页码,高4位为音符的高低 mov r2,a ;低4位为音符的节拍 jz end0 ;检查简谱码是否已结束(有无00?) anl a,#0fh ;取节拍(低4位)
mov r5,a ;存入r5,节拍的时间 mov a,r2 swap a
anl a,#0fh ;取音频值(高4位) jnz sing ;是否为0,是0则不发音 clr TR1 ;开始,则不发音 jmp d1
sing: dec a ;因0不列入 mov 22h,a ;存入(22h) rl a ;乘2 mov dptr,#tab1
movc a,@a+dptr ;至tab1取码,取t的值 mov th1,a ;取到的高位字节存入th1 mov 21h,a ;取到的高位字节存入(21h) mov a,22h ;再载入取到的音符码 rl a ;乘2 inc a ;加1
movc a,@a+dptr ;至table取相对的低位字节计数值 mov tl1,a ;取到的低位字节存入tl0 mov 20h,a ;取到的低位字节存入(20h) setb TR1 ;启动TIMER0 d1: call delay
inc 30h ;取简谱码指针加1 jmp next
end0: clr TR1 ;停止TIMER0
mov a,31h ;载入计次指针 xrl a,#00h ;是否按第1次? jnz end1 ;不是则跳至end1 jb KEY,$ ;按第2次? call delay1 ;消除抖动 jnb KEY,$ ;放开否?
inc 31h ;计次地址(31h)加1 MOV 30h,# song1 ;第2首歌指针 jmp next
7.3.2延时程序 DELY10MS:
19
乐山师范学院毕业论文(设计)
MOV R6,#10 D10: MOV R7,#248 DJNZ R7,$ DJNZ R6,D10 RET 7.3.3音符参数表
;==== 音符参数表===
TABLE: DB 06H,5BH,4FH,66H,6DH,7DH,07H,06H DB 06H,5BH,4FH,66H,6DH,7DH,07H,06H
8 系统调试与测试结果分析
8.1 系统调试
在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:中心控制模块的调试,音乐播放模块的调试,按键控制模块的调试等,最后将各模块组合后进行整体测试。首先对各模块的功能进行调试,主要调试各模块能否实现指定的功能。然后通过WAVE6000软件对编好的程序进行调试,检查语法错误。最后将调试好的软件程序导入到硬件模块中,调试系统实现的功能。
调试主要方法和技巧:软件调试和硬件调试 8.1.1系统软件调试
通常一个调试程序应该具备至少四种性能
[16]
:跟踪、断点、查看变量、更改
数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。 8.1.2 系统硬件调试
硬件调试主要是针对单片机部分进行调试。
在上电前,先确保电路中不在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。
在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要键盘单片机控制部分、数码管点亮部分、和音频转换电路硬件调试。
20
共分享92篇相关文档