1、毕业设计论文设计课题:_设计者 1:_设计者 2:_设计者 3:_指导教师:_答辩时间:_摘要本设计是以单片机技术应用为主线,主控芯片采用 AT89S51 芯片,采用汇编语言设计程序。随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的音乐盒可以给人们带来好的回忆,提高人们的精神文化享受。传统音乐盒多是机械型的,体积笨重,发 音单调,不能实现批量生产。本课程设计的音乐盒式以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,能弹奏 do、re、mi、fa、so、la、si七个音,可以当作一个小小电子琴,由弹奏者弹奏想要的歌曲,给弹奏者提供无限音乐乐趣,还可以播
2、放 7 首歌,曲目可自由选择。本程设计的音乐盒功能多,使用方便,并具有一定的商业价值,可以生产为小朋友的智力开发玩具,也可生产为年轻人和老年人生活中的不可缺少的音乐盒。1、 系统总体设计方案及硬件设计1.1 系统总体设计方案利用单片机于外接独立式按键,通过按键可随意选择播放曲目,按键按下一次,歌曲播放一遍。通过切换键,可切换音乐盒功能与电子琴功能。电子琴是利用各音节的频率与延时时间的结合,不同频率的脉冲经扬声器驱动电路放大后,就会发出 7 不同音调,达到电子琴固有的基本功能。通过接有一个 LM386 功率放大器的扬声器播放声音。系统总体设计图如图 1。单片机按键电路最小系统电路功放电路图 1
3、系统总体设计图1.2 硬件设计硬件功能模块划分:单片机最小系统电路模块、按键电路模以及功放电路模块。(1)最小系统电路模块最小系统图包括单片机、复位电路、晶振电路以及电源电路。如图 2图 2 最小系统图(2)按键模块由 P3 控制按键 S1S8,每个 I/O 口引脚上都加了上拉电阻 R1R8,在此硬件电路设计中,按键输入都设置为低电平有效。上拉电阻保证了按键断开时,I/O 口线有确定的高电平。如图 3图 3 按键电路图(3) 功放电路模块由 P2.0 口控制一个 LM386 功率放大器,经功率放大器控制发声器件扬声器。当 P1.0口输出为低电平时,功率放大器导通,扬声器通电;当 P1.0 口输
4、出为高电平时,功率放大器截止,扬声器断电。如图 4图 4 音频功放电路图2、 软件设计及调试2.1 程序流程通过 8 个独立式按键对单片机进行控制,判断其正在运行的是电子琴功能还是音乐播放以及通过按键扫描以实现电子琴发不通频率的音阶功能和播放不同的音乐曲目功能。用扬声器接收单片机的信号,实现电子琴发音和音乐播放的功能。(1)主程序流程图:对中断定时器、液晶显示进行初始化,有关单元清 0(如图 5)开始T 0 初始化 , A 清 0 , 开中断 , 中断单元 2 0 H 计数清 0 , P 1 . 7 指示灯亮判断按键 S 8 按下否 ?释放了吗 ?电子琴程序 d i a n z i q i n
5、指示灯暗 ?音乐盒程序 p l a y m u s i c等待释放NYNYNY图 5 主程序流程图(2)电子琴程序:程序中音阶是由 R3 的内容决定的,而声音的长短是由 R5 的内容决定的。通过连续不断周期性地改变 P1.0 口的高、低电平,就会产生一定频率的矩形波,扬声器就会发出一定频率的声音再配合延时程序控制高、低电平的持续时间,就能改变音调。音阶 频率/HZ R3 音阶 频率/HZ R3中 1 DO 523 30H 中 5 SO 784 20H中 2 RE 587 2BH 中 6 LA 880 1CH中 3 MI 659 26H 中 7 SI 988 19H中 4 FA 698 24H
6、18H表 1 音阶、频率、R3 内容对照表电子琴程序判断 k e y . 0 按下否 ?设置音阶中音 D O调用子程序 l o o p 发声判断 k e y . 1 按下否 ?判断 k e y . 4 按下否 ?判断 k e y . 3 按下否 ?判断 k e y . 2 按下否 ?设置音阶中音 R E设置音阶中音 S I设置音阶中音 L A设置音阶中音 S O设置音阶中音 F A设置音阶中音 M E调用子程序 l o o p 发声调用子程序 l o o p 发声调用子程序 l o o p 发声调用子程序 l o o p 发声调用子程序 l o o p 发声调用子程序 l o o p 发声判断
7、 k e y . 7 按下否 ?判断 k e y . 6 按下否 ?判断 k e y . 5 按下否 ?释放了吗 ?返回到主程序 m a i nYYNYYNYNYNYNYNYN返回到电子琴程序等待释放判断指示灯亮NN图 6 是电子琴程序流程图(1) 音乐盒程序模块:资源分配:寄存器 R4 用于存放软件延时时间常数;R3 用于存放音阶常数,R6 用于存放音阶频率; R7 用于存放节拍常数; R1 用于液晶显示。节拍长短控制是用定时器 T0 产生 10MS 的基准定时,用 20H 单元作为中断计数单元,记录定时器 T0 产生 10MS 定时中断的次数,通过比较 20H 单元计数值与节拍常数来控制节
8、拍时间的长短。在编程中将每一音阶对应的音阶常数和节拍常数作为一组,再按乐曲中音阶的排列顺序将各组参数排列成表格,编制成谱表,然后在程序中用查表指令一次查出与每一个音阶常数和节拍常数。谱表中还增加了结束符、休止符代码,用代码 00H 表示曲子终了,用 FFH 表示停顿效果。流程图为图 7音乐盒程序 p l a y _ m u s i c判断按键 S 1 按下否 ?判断按键 S 2 按下否 ?跳转到相应曲目表首地址送 D P T R查表取常数结束符 0 0 H ?休止符F F H ?恢复初始条件 A 清 0延时 1 S 后再循环音阶常数送 R 6取节拍常数送 R 7启动 T 0 计数P 1 . 0
9、 取反 , 按 R 6 常数延时节拍时间到否 ?停止 T 0 计数 , 中断计数 2 0 H 清0 , D P T R + 1延时 1 0 0 M SNNYN判断按键 S 8 按下否 ?判断按键 S 7 按下否 ?判断按键 S 6 按下否 ?判断 5 键 S 5 按下否 ?判断按键 S 4 按下否 ?判断按键 S 3 按下否 ?判断按键 S 2 按下否 ?判断按键 S 3 按下否 ?判断按键 S 4 按下否 ?判断按键 S 5 按下否 ?判断按键 S 6 按下否 ?判断按键 S 7 按下否 ?判断按键 S 1 按下否 ?判断按键 S 8 按下否 ?释放了吗 ?电子琴程序 d i a n z i
10、 q i n 返回到 p l a y _ m u s i c等待释放NYN指示灯标志位取反YYYYYYYYNNNNNNYNNN判断按键 S 8 按下否 ?跳到 S O N G 1跳到 S O N G 7跳到 S O N G 6跳到 S O N G 5跳到 S O N G 4跳到 S O N G 3跳到 S O N G 2指示灯标志位取反跳转到 d i a n z i q i nNYNYYNYNYNYNYNNYY图 7 音乐盒流程图2.2 软件设计及调试(1)程序初步编写完毕,编译成功后,进入 ISIS 7 Professional 软件进行仿真模拟,仿真没有出现效果,返回程序,检查修改。(2)
11、修改完成后,再次进行仿真模拟,可以实现一些功能,但是部分显示不出来,转换指示灯不会亮,经检查发现时仿真出现了错误,改正后,程序的仿真功能都能实现了。3、设计总结在设计过程中,程序设计初步完成后,编译出现了很多错误,经过一步步跟踪检查程序,修改了部分后,再进行编译,还是存在错误,再次进行修改,一直出现同样的错误,最后在老师和同学的帮助下,程序终于编译成功了。开始进入仿真调试,仿真出来的效果是部分功能没有实现,经检查是仿真电路有点差错,仿真电路图完善后,仿真调试实现了所要求的功能。将软件调试成功的程序下载到硬件实验板上调试功能,刚开始按键识别不了,检查硬件电路,发现有电路出现虚焊,重新焊硬件电路,硬件实验板上也能实现功能。由于条件有限,本设计的功能较为简单。通过这次设计,我们还是学到很多东西。虽然在调试过程中,从大问题到小问题,但是期间能力都得到考验和提升。4、参考文献1 何利民.单片机初级教程单片机基础. 第 2 版. 北京航空航天大学出版社 ,20062 张永枫. 单片机应用实训教程. 清华大学出版社, 20083 何立民. 单片机实验与实践教程(三). 北京航空航天大学出版社, 20065、附 1