资源描述:
《《单片机原理及应用》课程设计_八音盒设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机课程设计《单片机原理及应用》课程设计—八音盒设计班级:机081-4学号:200823501433姓名:信召峰完成日期:2011年7月5日-27-单片机课程设计目录一、课程设计任务书3二、设计项目简介32.1、设计思路32.2、音符产生方法32.3、节拍产生方法4三、电路原理图6四、系统功能简介6五、程序框图7六、程序清单9七、总结26参考文献:27-27-单片机课程设计8051八音盒一、课程设计任务书8051八音盒本设计利用8051单片机结合内部定时器LCD设计一个八音盒,按下单键可以演奏预先设置的歌曲旋律。本设计可以学习8051定时器程序设计,按键扫描及歌曲
2、旋律简单直觉式输入法的设计方法。其基本功能为:1、使用LCD显示器来显示目前演奏的歌曲编号;2、具有16个按键操作来选择演奏哪一首歌曲;3、内建10首歌曲旋律,按下单键可以演奏歌曲;4、演奏时可以按键中断。程序执行后工作指示LED闪动,表示程序开始执行,按下单键0~9便可以演奏歌曲,歌曲演奏中,可以按键中断。二、设计项目简介1、设计思路:(1)选用Philips公司P87C51RB+单片机,它具有16KB的内部ROM,3个定时器/计数器,2个中断。(2)通过中断实现歌曲的播放和暂停。(3)通过定时实现LED闪烁和音乐频率的变化(4)通过键盘实现歌曲的选择。2、音符产
3、生方法:-27-单片机课程设计不同的音调有不同的频率。频率不同,音调也就不同。利用定时器,使其工作在模式0,定时中断,然后控制P3.7引脚的输出每次取反,就可以在P3.7的引脚输出相应的方波频率。改变计数初值,就改变了频率。定时器的定时时间等于半个周期,定时时间到就输出脉冲取反,重复此过程,就可在P3.7引脚得到一音频的脉冲。如:C调中音1的频率=523HZ,周期T=1/523=1912us;定时器的定时时间为:T/2=1912/2us=956us;则其计数初值为:TH0=(8192-C)/32;TL0=(8192-C)%32;下面是音符及其程序中对应的编码音符音符
4、编码音符音符编码音符音符编码低音1l_dao中音1dao高音1h_dao低音2l_re中音re高音2h_re低音3l_mi中音mi高音3h_mi低音4l_fa中音fa高音4h_fa低音5l_sao中音sao高音5h_sao低音6l_la中音la高音6h_la低音7l_xi中音xi高音7h_xi3、节拍产生方法:音乐中的节拍用延时时间产生。假设1/4拍执行一次延时程序,这1/2拍就执行两次延时程序,所以只要求出1/4延时时间,其余的节拍就是他的倍数。为方便记谱,将节拍数也进行编码,如下:-27-单片机课程设计节拍节拍编码(基本延时次数)1/411/223/434/44
5、建立曲谱编码表,例如:简谱编码:re,sao,mi,re,mi,sao,mi,re,dao,re,re,sao,re,mi,sao,mi,re,dao,l_la,dao,dao,mi,re,mi,l_sao,re,l_xi,l_la,l_sao,l_la,dao,re,l_xi,l_la,l_sao,l_mi,l_sao,0xff节拍编码:4,4,2,2,4,2,2,2,2,8,4,4,4,2,2,2,2,2,2,8,4,4,2,2,4,2,2,2,2,4,6,2,2,2,2,2,16-27-单片机课程设计三、电路原理图:四、系统功能简介:1、此8051八音盒具有矩
6、阵式键盘共十个按键,0~9按键用于选择歌曲,通过P2口与单片机相连。2、LCD通过用于显示,显示当前正在播放的歌曲编号。P0口输出编号,P1.4、P1.5、P1.6用于控制LCD。3、有中断按键,在单片机播放旋律时可以按中断0键实现歌曲暂停,再按中断1实现歌曲暂停后的播放。-27-单片机课程设计4、LED灯连接在P1.7口,用LED灯闪烁指示单片机处于工作状态。5、歌曲音调经P3.7口的喇叭播放出来。五、程序框图:-27-单片机课程设计-27-单片机课程设计六、程序清单:-27-单片机课程设计#include//包含51单片机寄存器定义的头文件#i
7、nclude//包含_nop_()函数定义的头文件#includeunsignedintC;//储存定时器的定时常数//以下是C调低音的音频宏定义#definel_dao262//将“l_dao”宏定义为低音“1”的频率262Hz#definel_re286//将“l_re”宏定义为低音“2”的频率286Hz#definel_mi311//将“l_mi”宏定义为低音“3”的频率311Hz#definel_fa349//将“l_fa”宏定义为低音“4”的频率349Hz#definel_sao392//将“l_sao”宏定义为