专业:电子信息工程 姓名:李昌明 学号:093411128
的仿真单片机及外围器件的工具。 4.2仿真测试
开始仿真后,音乐播放器处于暂停状态如图11:
图11 初始数码管显示图
点击播放,播放器进入播放状态,数码管显示为一,开始默认从第一首《军港之夜》开始播放如图12:
图12 开始播放仿真实现
按键一及p3.2低电位,开始播放上一曲(第三首《中华人民共和国国歌》)
16
专业:电子信息工程 姓名:李昌明 学号:093411128
如图13:
图13 开始播放上一曲仿真
按键二及p3.3低电位,开始播放下一曲(第二首《死了也要爱》)如图14:
图14 播放下一曲仿真
再次点击播放/暂停键,播放进入播放状态,数码管关闭。 4.3测试总结
音乐播放器很好的实现了播放/暂停、上一曲、下一曲的功能,并满足了数码管显示的特殊要求。 音效良好,能很好听出乐曲的曲名。当然设计的音乐播放器也存在着不足之处。8位LED数码管只能显示10以内的歌曲曲目,超过10将无法显示。
17
专业:电子信息工程 姓名:李昌明 学号:093411128
调试过程中所遇到的问题:
(1)运行程序时LED4位共阴数码管显示程乱码。 原因分析:数码管初始设置有错。 解决方案:重新设置数码管显示参数。
(2)数码管显示的时间与真正的时间进度不一致。
原因分析:定时器初值设置有误。本次设计的晶振为6MHZ,而程序中的初值却设置成了6MHZ晶振所采用的值5000,导致显示的时间比真正的时间要慢。
解决方案:将定时器初值改为6MHZ晶振初值的一半,及2500即可。
5.心得体会
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为自动化专业的学生来说掌握单片机的开发技术是十分重要的。
我的题目是音乐播放器硬软件的设计,对于我们这些工科学生来说,这是一次考验。怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好。这次课程设计通过自己的努力,同学的帮助,还有老师的辛勤指导下,最终顺利完成。
参考文献
18
专业:电子信息工程 姓名:李昌明 学号:093411128
[1] 郑郁正.单片机原理及应用.四川大学出版社,2003。 [2] 谭浩强.C程序设计(第二版).清华大学出版社,1999。
[3] 王晓君.安国臣等. MCS—51及兼容单片机原理与选型. 北京-电子工业出版社, 2003。
[4] 李启炎. Protel 99SE应用教程. 上海-同济大学出版社 2005.2 附录1:程序设计
OUT BIT P2.0 ;定义音频输出端口,p2.0 N EQU 3
;歌曲总数
;数码管显视当前所放歌曲曲数
OUT_NUM EQU P1 ORG 0000H AJMP MAIN ORG 0003H
AJMP LAST_SONG ;外部中断0用于接上一曲歌按键 ORG 000BH
AJMP F_T0 ;定时器0用于定时,作音符发生器用 ORG 0013H
q4: AJMP NEXT_SONG ;外部中断1接下一曲歌按键 ORG 001BH
AJMP START_PAUSE ;定时器1用计数,这里用作中断,接开始/暂停键,初值为0ffH,方式2 ORG 0030H
MAIN: MOV SP,#60H
MOV DPTR,#TABLE ;DPRT指向每首歌曲的入口地址的地址。
MOV R0,#30H ;R0中存入数据30H,这里在以30H开始的单元存放每首歌曲的入口地址,其中30H,31H存放
;歌曲的节拍入口地址,32H,33H存放歌
曲音符入口地址,每首歌占用四个存储存单元。 MOV R5,#00H
;R5中存放表TABLE中正在执行操作
19
专业:电子信息工程 姓名:李昌明 学号:093411128
的序号
MOV R6,#1
;R6存放正在设置入口信息的歌曲数
SET_TAB: MOV A,R5 ;设置每首歌曲的入口信息,存放在以30H开始的存储单元中。 MOVC A,@A+DPTR MOV @R0,A INC R5 INC R0 MOV A,R5
MOVC A,@A+DPTR MOV @R0,A INC R5 INC R0 MOV A,R5
MOVC A,@A+DPTR MOV @R0,A INC R0 INC R5 MOV A,R5
MOVC A,@A+DPTR MOV @R0,A INC R0 INC R5
INC R6 ;设置完一首歌曲后,歌曲数加一 CJNE R6,#N+1,SET_TAB 下面的操作
;*********************************** 对中断,计数器的相关参数进行设置
MOV TMOD, #61H 1工作方式2
MOV TH1,#0FFH 由于是工作方式2,所以
20
;是否设置完,没有便继续,否则进行
;计数器0工作方式1,计数器
;给计数器1置初值0FFH,又