《单片机课程设计报告利用蜂鸣器播放音乐.pdf》由会员分享,可在线阅读,更多相关《单片机课程设计报告利用蜂鸣器播放音乐.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、成绩 课程设计:嵌入式系统应用 题目名称:利用蜂鸣器实现音乐播放功能 姓名:学号:班级:完成时间:1 设计的任务 设计内容:动手焊接一个51 单片机 设计目标:利用单片机上的蜂鸣器实现音乐播放功能 2 设计的过程 基本结构 在本次的试验中采用了STC89C52RC单片机,STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12 时钟/机器周期,工作电压:5V 单片机/3V 单片机,工作频率范围:040MHz,相当于普通 8051 的 080MHz,实际工作频率可达48MHz,用户应用程序空间为 8K 字节;STC89C52RC引
2、脚图 STC89C52RC单片机的工作模式:(1)典型功耗 拍手:|XXXXX|XXXX0XX|小节线 正如五綫谱一样,小节与小节之间以纵綫称分隔,乐曲终止以一粗一细的直綫表示但是一般不分粗细;重复乐段以纵綫后两点表示开始,纵綫前两点表示终止;拍号 的表达方式为:“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 为主音;五线
3、谱有,简谱同样有升降号;在简谱中,若需表达升降号,就把符号加在数字 1 至 7 的前方,让该音升高或降低;若要把升降号加在调号跟CDEFGAB 七个字母,就须加在它们的后方;在五綫谱中,C 小调要把 B-E-A 三个音降低半音;所以表达它的和声小调时,就会把一个放在 B前面;简谱就一定得写 5,因为 5 不能下降;延音线、圆滑线与其他音乐符号 简谱 Tie 跟 slur 都是跟五线谱相同,一定得置在数字上方;表达staccato 时需要特别小心,因为很容易会跟低八度的那一点混淆,因此在表达跳音时把那一点写得粗点及低点;简谱编码 将简谱中的每个音符进行编码,每个音符用一个 unsignedcha
4、r 字符类型表示,简谱可用一个 unsignedchar 字符数组表示;字符的前四位表示音频,可以表示 0-f共十六个音符;本实验中采用了中音区和高音区;中音 do-si 分别编码为 17,高音do-si 分别编码为 8E,停顿编为 0;字符的后四位表示节拍,节拍以十六分音符为单位在本程序中为 165ms,一拍即四分音符等于 4 个十六分音符,编为 4,其它的播放时间以此类推;以 0 xff 作为曲谱的结束标志;程序从数组中取出一个数,然后分离出高4 位得到音调,将值赋给定时器 0,得到音调;接着分离出该数的低 4 位,得到节拍;本实验中播放音乐使用简谱如下:将其编码成:ucharcodezb
5、jbxf=0 x64,0 xA3,0 xC1,0 xA2,0 x62,0 x84,0 x61,0 x81,0 x61,0 xA4,0 xA1,0 x91,0 xA1,0 x81,0 x64,0 xA3,0 xC1,0 xD2,0 xD2,0 xD2,0 xA2,0 xC4,0 xA1,0 xC1,0 xA1,0 xC1,0 xD2,0 xD2,0 xD2,0 xA2,0 xC4,0 xC2,0 x62,0 xC2,0 x62,0 xA2,0 xA2,0 x84,0 x94,0 x94,0 x92,0 x81,0 x91,0 xA2,0 xC2,0 xD4,0 xE4,0 xA4,0 xE4,0
6、 xA2,0 xE2,0 xA2,0 xE2,0 xA2,0 xA2,0 x84,0 x94,0 x94,0 x92,0 x81,0 x91,0 xA2,0 xC2,0 xD8;程序流图及说明 主程序流程图 程序代码:include defineucharunsignedchar defineuintunsignedint sbitfm=P34;算机与单片机的连接不上问题 计算机与单片机的连接需要在电脑端安装相应的 USB 转串的驱动,由于我组没有使用实验室windowsxp 系统,而使用的是个人计算机 windows7 系统,所以需要针对 win7 的驱动;后来联网搜索下载相应的驱动之后解决
7、了这一问题;2.如何使蜂鸣器发出声音而非 Be-Be 声 为了解决这个问题,我们深入研究了蜂鸣器发声原理与乐谱相关的知识;通过学习相关知识发现,不同的音符对应不同的音高,音高取决于发声频率;所以可以通过构造不同频率的方波来使蜂鸣器发出不同频率的声音,具体实现时利用定时器计时,定时器每一次累加消耗一个机器周期,即 12 个时钟周期;本实验采用晶振频率为 12MHz,即定时器每一次累加消耗 1us,通过设置定时器初值设定蜂鸣器取法的时间间隔,从而产生相应的音频;每个音符不但有频率属性,还有节拍属性;对不同节拍的控制可以采用延迟一定的时间来得到;5 总结 在本次课程设计中,我们进一步加深了对小型嵌入式系统的认识;实验初期单片机需要自己焊接,通过亲手焊接电路板,了解了如何将实验原理图转化为具体的硬件实物连接;通过使用 TN 单片机开发板和 STC89C52RC 系统,对单片机应用开发有了初步的熟悉;在实验的过程中,使用到了 C51 的编译环境KeilC和单片机通讯程序STC_ISP,两者是单片机开发所不可缺少的工具;在具体实施的过程中,通过一一解决遇到的问题,增强了动手实践能力;