基于at89c51单片机的音乐盒的设计内容摘要:

鸣器响起上一首乐曲。 如图55所示:D键动作当前显示 D键动作后图55 C键动作效果图(4)按下E键,则蜂鸣器停止当前音乐的播放,而且LCD上播放的时间也停留在当前,再次按下E键后,音乐继续播放,播放时间继续计时。 如图45所示:E键动作当前显示 E键动作后图56 E键动作效果图 程序调试中出现的问题及解决的办法:1. 有时会出现程序一点错误也没有,但就是不能正常运行的现象,最后我们发现是因为程序中有的指令书写得不规范导致的,例如有的RET返回指令一定要按正确格式书写或在两行指令间最好不要留空行。 2. 程序中的跳转指令的运用很重要,为保险起见,都用LJMP,我们就遇到过跳转指令用错程序无法正常运行的现象。 当用JNZ指令时,跳转范围比较少,这时要用一个标号中转。 3. 编程时要注意,在程序开始时,要写入各定时器中断的入口地址。 4. 编程过程中要注意加注释或分割线,否则,在程序过长时容易变得很乱,不便于查找或更改。 5. 程序的结构要设计的合理,避免上下乱调用的现象,这样会使程序更加清晰化。 6. 编程前要加流程图,这样会使思路清晰,如设计思路完全可以按着MP3的工作方式列写流程图。 7. LCD计时正常显示的解决办法:a. 两个定时器同时工作,存在中断时序问题,刚开始时我们把定时器1设定在方式3,计250us,由于定时中断过于频繁,使CPU负载过大,导致音乐不能正常播放,时间不能正常显示。 解决办法:将定时器1设定在工作方式1,16位计数,计50ms,效果有很大改观。 b. 当音乐为全4拍起始时,此时音乐节奏与定时器T1中断频率错开,LCD显示和音乐播放都会好一些。 c. 另外,在歌曲中,当遇到一个音符发音为4拍,在编曲中为*CH,托因时间较长,当定时器T1此时来中断时,就会对歌曲播放产生影响,若改为发音一拍,中断对歌曲播放影响减弱,但音乐效果变差。 d. 改进方案:若采用可以定时时间更长的单片机,可以避免其中的一些问题。 第6章 设计小结及建议1.本学期学习单片机的时间只有8周时间,对单片机的硬件设计,软件设计掌握的深度不够,但通过此次课程设计,却改变了很多, 首先,对于硬件电路的工作原理有了进一步的学习,同样就有了进一步的认识;其次,软件方面,在程序的设计,程序的调试方面都学到了很多东西。 2.在一个好的氛围里才能踏下心来做东西,在这几天课程设计的时间里,电子协会的氛围对我的影响很大,这也是我能完成课程设计的动力。 另外在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我也是这么做的,这在课程设计中十分重要。 ,而我们应该把所学的用到现实生活中去,此次的音乐盒设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应社会激烈的竞争。 4.最后要提一点建议,希望下一次课程设计中,每个人都能有一块实验开发板,这样能使每个人都能得到充分的锻炼。 致谢经过近一个星期的忙忙碌碌,这次的单片机课程设计已经快要接近尾声了。 在这次的单片机课程设计过程中,无论是在理论学习阶段,还是在设计的选题、资料查询和撰写的每一个环节,我都得到到了许多人的悉心的指导和帮助。 首先,借此机会我向我们的单片机授课教师及课程设计指导老师师王冠凌老师表示衷心的感谢,王老师的悉心指导和帮助,是我顺利完成本次课程设计的基础和前提。 同时,我要感谢授课的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。 另外,感谢各位同学的帮助和勉励。 同窗之谊和手足之情,我将终生难忘。 我愿在未来的学习和研究过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有老师、同学和朋友。 参考文献【1】 韩志军,沈晋源,(第一版)[M].北京:机械工业出版社,2005.【2】 张毅刚. 单片机原理及应用[M]. 北京:高等教育出版社,2003.【3】 王为青. 程国钢. 单片机Keil Cx51应用开发技术[M]. 北京:人民邮电出版社,2007.【4】 张靖武,(第一版)[M]..【5】 [M].北京:北京航空航天大学出版社,1990.附录附录一 元器件清单:名 称数量(个)型号/参数备 注单片机1AT89C51液晶屏1LM016按键开关16BUTTON普通电阻210K(1个),1K(1个)排阻1RESPACK810K电容330pf(2个),10uf(1个)晶振112MHz三极管1PNP蜂鸣器1SPEAKER附录二 部分源程序代码:25RS BIT。 定义液晶显示端口标号RW BIT E BIT ORG 0000HLJMP MAINORG 000BHLJMP TT0ORG 001BHLJMP T1INTORG 1000HMAIN:。 液晶初始化MOV SP,70H MOV P0,01H。 清屏CALL ENABLEMOV P0,38H。 8位,2行显示LCALL ENABLEMOV P0,0FH屏显ON,光标ON,闪烁ONLCALL ENABLEMOV P0,06H计数地址加1,显示幕ONLCALL ENABLE。 内存初始化LCALL INITIL。 KEY1:LCALL KEYLCALL MODD LJMP KEY1。 键盘扫描KEY:NOPN。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。