5.3.2电路原理图
图 5-1 稳压电源电路原理图
19
第6章 软件系统设计
6.1 软件流程设计
本设计采用了自定下下的设计流程,即在编制一个程序时,先考虑程序的总体结构而忽略一些细节问题,然后逐步的一步一步的细化,直至用程序语言完全描述每一个细节为止。主要程序流程有:主程序、判断有无按键子程序、键盘扫描子程序、显示键号/歌曲号子程序、开机画面子程序、按键值播放歌曲子程序、播放时间初始化子程序、液晶显示屏写指令子程序、液晶显示屏写数据、字符串显示子程序播放时间显示子程序、播放歌曲子程序、播放时间更新子程序。程序中使用了两个定时中断,定时中断0用于产生整个音程的频率,以便驱动扬声器。定时器T1用于刷新播放时间,当发生一秒定时中断时,将秒加一,达到60秒时,将分加一,达到60分时,将时加一。程序设置了溢出处理,即当时间为23:59:59时,自动将时间更新为00:00:00。程序的总体流程是当P1由按键按下时,读键盘,并储存键值,若为F键则通过查表的方式,调用字符串显示子程序显示开机画面,同时用查表的方式求出键号的ASCII值,并调用显示键号/曲号自称序,将键号显示出来。若为1-A,程序根据储存的键号,将相应歌曲的表头地址赋给DPTR,取出曲谱,判断是否为休止符,通过查表的方式将表中的定时器初值装入定时器T0,在定时中断0里面,重装初值,将输出口取反,完成发声。本设计中,每发一个调,调用一个30MS的延时,一次当做曲谱的节拍码。在此过程中若有功能键按下,将当前歌曲的表头地址加513/减513或等待。于此同时调用播放时间初始化子程序,显示00:00:00,装定时器T1的初值,准备更新播放时间。程序流程图如图6-1所示
20
开始 液晶初始化 内存初始化 无 有无按键? 有 判断键值并存储 取键值ASCII码显示 是 F键? 开机画面 否 否 1-A键? 是 播放时间初始化 按键值存储相应曲谱首地址 取乐谱进行演奏 有无功能键? 无 装T1初值刷新播放时间 否 单曲唱完? 是 否 全部唱完? 是 结束 是 否 再一次按下? 有 是 暂停? 否 是 上1曲 否 下1曲乐谱首地址减513 等待 是 乐谱首地址加513 否 图 6-1 系统程序流程图 21
6.2性能分析
在本设计中,一共设置了9首MID乐曲,分别是第一首《精忠报国》、第二首《月亮代表我的心》、第三首《看我七十二变》、第四首《同一首歌》、第五首《大海》、第六首《两只蝴蝶》、第七首<<世上只有妈妈好>>、第八首歌《彩云追月》、第九首<<十年>>、第十首<<你的爱给了谁>>。在本设计中由于对音乐知识欠缺,曲谱为网络下载。采用LCD显示,稳定清晰,可靠性高,为了及时响应按键,在每段子程序里面都调用了按键判断子程序,并且主程序是以按键扫描为主线编写的,系统的灵敏度高。除此之外,在按键扫描子程序中还带有延时再判断,软件去抖动功能,大大提高了系统的抗干扰性。采用定时中断更新播放时间,增强了系统的准确性,鉴于于作者水平有限,播放歌曲程序为了简单实用,节拍码被设置为固定的30ms,演奏也只是在一个八度里面完成,系统适应性有待提高。
22
结论
本设计报告主要介绍了用单片机实现的音乐发生器的设计方法。系统介绍了该电路的硬件构成和软件工作过程,系统以AT89C51为核心,主要采用中断控制系统,结合所学的单片机的知识,实现系统的功能要求。设计中很好的使软、硬件相结合,基本上达到了设计的要求。通过这次毕业设计,使我对单片机及其附属电路有了一定的了解,对课本上的知识有了近一步的掌握,也深刻明白了自己的不足。
随着毕业日子的到来,毕业设计也接近了尾声。经过几个月的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这短短几个月的制作,我感觉到自己从课本上学到的理论知识和实践仍有很大的差距。很多元器件根本不知道有什么功效,在仿真仪器中是什么代码。有的知识,自己感觉已经掌握得差不多了,但是实际操作起来就有问题出现了。我遇到了不少问题,花费了很多的时间。这让我重新反思我们的学习,深刻领悟到我们这个专业动手实践的重要性。理论不经过实践考验,是没法实施的,就像我们编的程序,很多方面考虑的都不够,几乎没有涉及到实际应用时的防范方法措施。知识是永无止境的,在今后的工作中,我会理论联系实际,不停的去学习,不停的去感悟,以弥补我先天的不足以及后天的差距
在毕业设计过程中,我真正体会到了实践的重要性,很多自己认为万无一失的软件代码或者硬件电路,在调试的过程中都不会是风平浪净的,此次毕业设计经历了从概念到成品的漫长过程,在此过程中我学习了许多以前没有掌握而又是电子类毕业生必须掌握的知识,比如proteus,从设计的第一天起,我就被proteus的强大功能所折服,学会了proteus,就相当于拥有一个电子设计开发平台。两个多月来,我有过惊喜、失落、乐观、自信、自卑,这次毕业设计也磨练了我的心志,坚定了我的信念,让我学会了平淡的看待得失、冷静的分析问题,真诚的对待他人,自信的面对生活。
23