单片机课程设计报告(利用蜂鸣器播放音乐)

上传人:pu****.1 文档编号:508723208 上传时间:2023-08-16 格式:DOC 页数:11 大小:447.50KB
返回 下载 相关 举报
单片机课程设计报告(利用蜂鸣器播放音乐)_第1页
第1页 / 共11页
单片机课程设计报告(利用蜂鸣器播放音乐)_第2页
第2页 / 共11页
单片机课程设计报告(利用蜂鸣器播放音乐)_第3页
第3页 / 共11页
单片机课程设计报告(利用蜂鸣器播放音乐)_第4页
第4页 / 共11页
单片机课程设计报告(利用蜂鸣器播放音乐)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《单片机课程设计报告(利用蜂鸣器播放音乐)》由会员分享,可在线阅读,更多相关《单片机课程设计报告(利用蜂鸣器播放音乐)(11页珍藏版)》请在金锄头文库上搜索。

1、成绩课程设计:嵌入式系统应用题目名称:利用蜂鸣器实现音乐播放功能姓 名:学 号:班 级:完成时间:1设计的任务设计内容:动手焊接一个51单片机设计目标:利用单片机上的蜂鸣器实现音乐播放功能2 设计的过程2.1 基本结构1.STC89C52RC在本次的试验中采用了STC89C52RC单片机.STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机.指令代码完全兼容传统8051单片机.12时钟/机器周期.工作电压:5.5V3.3V5V单片机/3.8V2.0V3V单片机.工作频率范围:040MHz.相当于普通8051的080MHz.实际工作频率可达48MHz.用户应用程序空间

2、为8K字节。STC89C52RC引脚图STC89C52RC单片机的工作模式:(1) 典型功耗0.1A,可由外部中断唤醒.中断返回后.继续执行原程序(2) 空闲模式:典型功耗2mA(3) 正常工作模式:典型功耗4Ma7mA4唤醒.适用于水表、气表等电池供电系统及便携设备2.蜂鸣器及其工作原理:蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后.振荡器产生的音频信号电流通过电磁线圈.使电磁线圈产生磁场.振动膜片在电磁线圈和磁铁的相互作用下.周期性地振动发声。本实验采用的是电磁式蜂鸣器。蜂鸣器按其是否带有信号源又分为有源

3、和无源两种类型。有源蜂鸣器只需要在其供电端加上额定直流电压.其内部的震荡器就可以产生固定频率的信号.驱动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一样.需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。本实验采用的是有源蜂鸣器。蜂鸣器与单片机连接电路图2.2 软件设计过程1. 蜂鸣器发声原理本实验由于采用有源蜂鸣器.只需将引脚端口P34清零.蜂鸣器即可发声;P34置位.蜂鸣器停止发声。采用置1置0的方法只能使蜂鸣器发声或停止发声.想要使蜂鸣器发出声音.必须对蜂鸣器发出声音的音频和节拍进行控制。音乐基础音调:不同音高的乐音是用C、D、E、F、G、A、B来表示.这7个字母就是音乐的音名.

4、它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7.相当于汉字多来米发梭拉西的读音.这是唱曲时乐音的发音.所以叫音调.即Tone。把C、D、E、F、G、A、B这一组音的距离分成12个等份.每一个等份叫一个半音。两个音之间的距离有两个半音.就叫全音。在钢琴等键盘乐器上.CD、DE、FG、GA、AB两音之间隔着一个黑键.他们之间的距离就是全音;EF、BC两音之间没有黑键相隔.它们之间的距离就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音.那些在它们的左上角加上号或者b号的叫变化音。叫升记号.表示把音在原来的基础上升高半音.b叫降记音.表示在原来

5、的基础上降低半音。例如高音DO的频率1046Hz刚好是中音DO的频率523Hz的一倍.中音DO的频率523Hz刚好是低音DO频率266 Hz的一倍;同样的.高音RE的频率1175Hz刚好是中音RE的频率587Hz的一倍.中音RE的频率587Hz刚好是低音RE频率294 Hz的一倍。节拍:节拍是让音乐具有旋律固定的律动.而且可以调节各个音的快满度。节拍,即Beat.简单说就是打拍子.就像我们听音乐不自主的随之拍手或跺脚。若1拍实0.5s.则1/4 拍为0.125s。至于1拍多少s.并没有严格规定.就像人的心跳一样.大部分人的心跳是每分钟72下.有些人快一点.有些人慢一点.只要听的悦耳就好。音持续

6、时间的长短即时值.一般用拍数表示。休止符表示暂停发音。1) 控制发声频率要产生音频脉冲.只要算出某一音频的周期1/频率.然后将此周期除以2.即为半周期的时间。利用定时器计时这半个周期时间.每当计时到后就将输出脉冲的I/O反相.然后重复计时此半周期时间再对I/O反相.就可在I/O脚上得到此频率的脉冲。利用STC89C52RC的内部定时器使其工作在计数器模式MODE1下.改变计数值TH0及TL0从而产生不同频率。此外结束符和休止符可以分别用代码00H和FFH来表示.若查表结果为0x00.则表示曲子终了;若查表结果为0xff.则产生相应的停顿效果。以标准音高A为例.A的频率是440Hz.周期T=1/

7、440=2272us。在占空比为50%的情况下.导通时间=断开时间=半周期t=2272us/2=1136us.利用P34端口的位操作.经过不断地反相变换即可得到标准音高A的音频脉冲。端口导通时间与断开时的时间利用定时器实现。具体的方法是将单片机定时器的中断触发时间设为半周期t.这样每隔半周期端口反相.输出连续的对应音高的频率。设晶振的频率为f0.中断触发时间半周期为t.定时器工作在模式1时计数器的初值为THL.高8位为THL.低8位为TL。时钟周期即为1/f0.定时器每一次累加用去一个机器周期.一个机器周期包含12个时钟周期.即定时器每次加一所用时间是12/f0。定时器在模式1下计时采用16位

8、数.最大计数为216-165535.再次加一65536溢出触发中断。根据以上分析可得如下关系:音频对应定时器初值的高8位TH=THL/=/256;音频对应定时器初值的低8位TL=THL%=%256;附:八度12音阶定时器初值表只含自然音低音音名频率Hz晶振12MHz晶振11.0592MHz中音音名频率Hz晶振12MHz晶振11.0592MHz高音音名频率Hz晶振12MHz晶振11.0592MHzDo2620xF8850xF91BDo5230xFC430xFC8EDo10460xFE210xFE47Re2940xF95A0xF9DFRe5870xFCAD0xFCEDRe11750xFE560xF

9、E76Mi3300xFA130xFA8AMi6590xFD0A0xFD43Mi13180xFE850xFEA1Fa3490xFA680xFAD8Fa6980xFD340xFD6AFa13970xFE9A0xFEC7So3920xFB040xFB68So7840xFD820xFDB3So15680xFEC10xFED9La4400xFB900xFBE9La8800xFDC80xFDF3La17600xFEE40xFEF9Si4940xFC0C0xFC5BSi9880xFE060xFE2DSi19760xFF030xFF162控制发声节拍每个音符的节拍可通过延时一定的时间来实现.在具体实现时需要有

10、一个基本的带参延时程序.用于主函数根据不同的音符调用不同的时延。若以十六分之一音符的时长为基本延时时间.则十六分音符只需调用一次延时程序.八分音符则需调用两次延时程序.以此类推。3) 简谱及其编码*简谱知识音阶CDEFGAB唱名doremifasolasi数字1234567音符音符用数字1至7表示。这7个数字就等于大调的自然音阶。如果是C大调.加上音名.就会是这样:八度如果是高一个八度.就会在数字上方加上一点。如果是低一个八度.就会数字下方加上一点。在中间的那一个八度就什么也不用加。如果要再高一个八度.就在上方垂直加上两点;要再低一个八度.就在下方垂直加上两点.如此类推。见下表所示:大调.小调

11、.音长通常只有数字的是四分音符。数字下加一条横线.就可令四分音符的长度减半.即成为八分音符;两条横线可令八分音符的长度减半.即成为十六分音符.余此类推;简单来説.下加横綫数目与五綫谱的符尾数目相对应。数字后方的横线延长音符.每加一条横线延长一个四分音符的长度。正如五綫谱的附点一样.数字后方加一点会将音符长度增加一半。休止符休止符用0来表示。比四分休止符长.就只需在每一个四分休止符再多加一个0.不需在后方加上横线。若整个小节均是休止状态的话.就在每个四分音符加一个0.就像是3拍4就写成| 0 0 0 |.而4拍4就写成| 0 0 0 0 |。无音高音符就像敲击乐的乐器那样是没有音高的.这时.简谱

12、就需要用X或x表达。例如啦啦队拍手时.简谱上就需如此表达:4/4 拍手:| X X X X X | X X X X 0 X X |小节线正如五綫谱一样.小节与小节之间以纵綫分隔.乐曲终止以一粗一细的直綫表示;重复乐段以纵綫后两点表示开始.纵綫前两点表示终止。拍号拍号的表达方式为:2/4、3/4、4/4、6/8等等。拍号一般都是置于调号的后方。变调与调号表示调号有两种方法:可以直接写C调.C小调或Key: C.Key: Cm。亦可写清楚主音代表哪一个音.例如1=C.就是C大调大调以1为主音。6=C就是C小调小调以6为主音。2=D就是D多利安调多利安调以2为主音。五线谱有升降号.简谱同样有升降号。

13、在简谱中.若需表达升降号.就把符号加在数字1至7的前方.让该音升高或降低。若要把升降号加在调号跟和弦CDEFGAB七个字母.就须加在它们的后方。在五綫谱中.C小调要把B-E-A三个音降低半音。所以表达它的和声小调时.就会把一个还原号放在B前面。简谱就一定得写5.因为5不能下降。延音线、圆滑线与其他音乐符号简谱延音线Tie跟圆滑綫slur都是跟五线谱相同.一定得置在数字上方。表达跳音staccato时需要特别小心.因为很容易会跟低八度的那一点混淆.因此在表达跳音时把那一点写得粗点及低点。*简谱编码将简谱中的每个音符进行编码.每个音符用一个unsignedchar字符类型表示.简谱可用一个unsi

14、gnedchar字符数组表示。字符的前四位表示音频.可以表示0-f共十六个音符。本实验中采用了中音区和高音区。中音do-si分别编码为17.高音do-si分别编码为8E.停顿编为0。字符的后四位表示节拍.节拍以十六分音符为单位在本程序中为165ms.一拍即四分音符等于4个十六分音符.编为4,其它的播放时间以此类推。以0xff作为曲谱的结束标志。程序从数组中取出一个数.然后分离出高4位得到音调 .将值赋给定时器0.得到音调;接着分离出该数的低4位.得到节拍。本实验中播放音乐使用简谱如下:将其编码成:uchar code zbjbxf=0x64,0xA3,0xC1,0xA2,0x62,0x84,0x61,0x81,0x61,0xA4,0xA1,0x91,0xA1,0x81,0x64,0xA3,0xC1,0xD2,0xD2,0xD2,0xA2,0xC4,0xA1,0xC1,0xA1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号