版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机控制蜂鸣器 20年 月 日目录绪 论11、硬件设计21.1 总体设计图21.2 简易结构框图21.3各部分硬件设计及功能31.3.1 蜂鸣器发声电路:(如图1.3.1)31.3.2 电源稳压电路:41.4 元件清单42、软件设计52.1设计思想52.2 程序流程图52.3 音调、节拍以及编码的确定方法62.3.1音调的确定62.3.2 节拍的确定82.3.3 编码93、电路仿真与分析104、电路板焊接、调试114.1 焊接114.2 调试125、讨论及进一步研究建议126、心得127、单片机音乐播放器程序实例(卡农)13绪 论蜂鸣器播放音乐电路设计对于单片机初学者来说是一个简单易实现的课
2、题。通过编写程序使单片机产生一定频率的方波信号,方波信号进入蜂鸣器便产生我们熟知的音调。我们用定时/计数器使单片机产生方波,利用定时/计数器使输出管脚在一定周期内反复翻转,达到所需频率,而我们给定时/计数器的初始值就是我们的音符半周期数据表,通过我们播放的音乐的乐谱,来对数据表进行调用。我们用延时子程序来表示节拍,不同的节拍代表不同的延时。完成此次设计之后完全可以进行扩展,例如增加按键以及LED灯光效果,制成一个简易的音乐盒,给人以视觉听觉等全方位的享受。11、硬件设计1.1 总体设计图1.2 简易结构框图蜂鸣器STC89C52晶振电源1.3各部分硬件设计及功能1.3.1 蜂鸣器发声电路:(如
3、图1.3.1)图1.3.1 如图所示,蜂鸣器发声电路是播放音乐电路的主要执行电路,它由一个蜂鸣器,一个三极管和一个电位器组成。蜂鸣器负责发声,三极管将电流放大,而电位器则控制流过蜂鸣器电流的大小,来达到控制音量的目的。 1.3.2 电源稳压电路: 我们采用DC005电源供电,供电电压为5V。稳压电路用来达到稳定输入电压的目的,它由一个整流二极管,两个电容和一个三端稳压器组成。二极管和电容组成整流电路,将交流整流成直流,而三端稳压器则用来稳定电压。1.4 元件清单元件数量晶振11.0592M1电容30pf2STC89C52RC1三极管1电容10uF1极性电容47uf1极性电容1000 uf1单端
4、稳压器1二极管 1N40071DC005插头插座1蜂鸣器1电位器10K1电阻10K2电阻1K1按键12、软件设计2.1设计思想将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,选择需要的声响时间,即可完成一个音符的播放。该音符唱完后,接着取出下一个音符的相关参数,如此直到播放完毕最后一个音符。中间可根据需要将音符和音符之间插入时间延时,以产生需要的节拍,用01H或02H、03H等等,具体根据歌曲的实际需要设置。根据需要也可循环不停地播放整个乐曲。利用INTO在中断中是属于最高优先级的特点,外部端口P3.
5、2接中断0即可完成中断造成的歌曲选择下一首的播放。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。声音输出接一个三极管,利用通断放大声音。 开始2.2 程序流程图设置定时器根据乐谱读取数据产生方波蜂鸣器发声结束2.3 音调、节拍以及编码的确定方法一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。2.3.1音调的确定不同音高的乐音是用C、D、E、F、G、A、
6、B来表示,这7个字母就是音乐的音名,它们一般依次唱成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号的叫变化音。叫升记号
7、,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266 Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294 Hz)的一倍。知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我
8、们只需将定时器予置不同的定时值就可实现。那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例:A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =2272s由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136s这个时间t也就是单片机上定时器应有的中断触发时间。一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。设振荡器频率为f0,则定时器的予置初值由下式来确定:t = 12 *(TALL THL)/ f0式中TALL = 216 = 65536,THL为定时器待确定的计
9、数初值。因此定时器的高低计数器的初值为:TH = THL / 256 = ( TALL t* f0/12) / 256TL = THL % 256 = ( TALL t* f0/12) %256将t=1136s代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A在单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值为 :TH440Hz = (65536 1136 * 12/12) /256 = FBHTL440Hz = (65536 1136 * 12/12)%256 = 90H根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。
10、C调各音符频率与计数值T的对照表如表4.1所示。表2.3.1 C调各音符频率与计数值T的对照表低音频率T参数中音频率T参数高音频率T参数Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So392
11、1276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si197630302.3.2 节拍的确定若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。若1拍实0.5s,则1/4 拍为0.125s。至于1拍多少s,并没有严格规定,就像人的心
12、跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。表2.3.2节拍与节拍码对照节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/
13、4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,图5.2为节拍码的对照。如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如图5.3为1/4和1/8节拍的时间设定。表2.3.2 1/4和1/8节拍的时间设定曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调
14、3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒2.3.3 编码do re mi fa so la si分别编码为17,重音do编为8,重音re编为9,停顿编为0。播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。以0xff作为曲谱的结束标志。举例1:音调do,发音长度为两拍,即二分音符,将其编码为0x18。举例2:音调re,发音长度为半拍,即八分音符,将其编码为0x22歌曲播放的设计。先将歌曲的简谱进行编码,储存在一个数据类型为
15、unsigned char 的数组中。程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时。表2.3.3 简谱对应的简谱码、T值、节拍数音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA3496
16、4103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6
17、 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7 SI196765283表2.3.33、电路仿真与分析本次试验我们采用了两个软件,用protel和keil两个软件和程序下载机进行仿真。仿真 仿真原理图(简化画法):图3.1 图3.1 先在protel中绘制好电路图,然后在keil编写好程序,编译通过无错后生成一个.hex文件,打开.hex文件,将程序烧进单片机89c52中,进行调试。调试成功后喇叭发出悦耳的音乐声,说明调试成功。 4、电路板焊接、调试本次实验由于电路简单,线路不多,我们使用洞洞板。4.1 焊接在焊接之前,画好正确的电路
18、图是非常重要的。焊接当中要注意石英晶振焊接时间不要太长时间,以免烧坏。单片机不用到的引脚可以不用焊接上去,既可以节约资源有可以美观。由于之前已经以及平时有焊接经验,所以焊接,所以焊接过程并没有出现什么问题。只要遵照正常的步骤以及要求,如不要虚焊,走线平滑,焊点圆滑等,基本都能做到正确完成,并且美观。4.2 调试这个设计受外界环境的影响比较小,所以只要电路仿真成果以及焊接正确,基本实现并不很难。我们在此次设计当中运用模电知识,通过三极管后再接小喇叭,声音立刻变大了。由于一开始我们使用蜂鸣器,声音的柔和度非常差,歌曲播放当中经常出现严重的声音失真。因此,我们换了柔和度好的小喇叭,经过调试后声音极大
19、的得到改进,声度和柔和度都达到了非常好的理想状态。5、讨论及进一步研究建议本次设计的创新点就是能够播放多首歌曲。同时电路比较简单,所用器件相对较少。这个设计能够实现实验的要求,能够播放出音乐,但还可以再改进。比如说,可以加按键来实现上一曲下一曲的功能。本设计如果时间充裕,还可以增加显示正在播放第几首歌曲的功能,可用数码管来实现,只要程序进行修改并且接上相应的端口就可实现功能。6、心得本次试验我们选择了相对简单的音乐系统设计。在网上关于这个设计的资料也很多,甚至有现有程序,电路图。但是经过我们的比较与讨论,我们把电路简化到最简单,选择了简单易实现且播放音乐失真较小的程序。制作过程中出现了各种各样
20、的问题,比如说程序输入错误,连线错误或者焊接错误等,但是经过我细心研究,还是逐一的排除了。设计过程中,虽然困难重重,也曾在设计初期想过放弃,但是我最后还是选择坚持,相信凭着我的努力一定能够设计出来的,正是拼这这股信念才让我坚持到最后。各个项目设计中,有过坎坷时的烦闷,有过成功时的喜悦,最难得的是我始终没有放弃,结果虽然不能完全达到目的,但是在这个过程中学到很多的东西,不仅仅是知识上的。结果并不太重要,过程更能体现这次设计的目的。7、单片机音乐播放器程序实例(卡农)#include <reg52.h> sbit speaker = P36; unsigned char timer0h
21、, timer0l, time; / 频率-半周期数据表 高八位code unsigned char FREQH = 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, /低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, /中音1234567 0xFC, 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, /高音1234567 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF ; /超高音 1234567 / 频率-半周期数据表 低八位 code unsig
22、ned char FREQL = 0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, /低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, /中音1234567 0x8F, 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, /高音1 234567 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16; /超高音 1234567 /1/4拍为单位 /卡农音乐数据表code unsigned char yyb = 5,3,2,3,3,1,4,3,1,5,3,2,3,
23、3,1,4,3,1,5,3,1, 5,2,1,6,2,1,7,2,1,1,3,1,2,3,1,3,3,1,4,3,1,3,3,2,1,3,1,2,3,1,3,3,2,3,2,1,4,2,1, 5,2,1,6,2,1,5,2,1,4,2,1,5,2,1,3,2,1,4,2,1,5,2,1,4,2,2,6,2,1,5,2,1,4,2,2,3,2,1, 2,2,1,3,2,1,2,2,1,1,2,1,2,2,1,3,2,1,4,2,1,5,2,1,6,2,1,4,2,2,6,2,1,5,2,1,6,2,1, 7,2,1,1,3,1,5,2,1,6,2,1,7,2,1,1,3,1,2,3,1,3,3,1,4,3,1,5,3,1,3,3,2,1,3,1,2,3,1, 3,3,2,2,3,1,1,3,1,2,3,1,7,2,1,1,3,1,2,3,1,3,3,1,2,3,1,1,3,1,7,2,1,1,3,2,6,2,1, 7,2,1,1,3,2,1,2,1,2,2,1,3,2,1,4,2,1,3,2,1,2,2,1,3,2,1,1,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《焊接性能分析综合创新》教学大纲
- 我怎么做教育课件
- 玉溪师范学院《体育康复学》2021-2022学年第一学期期末试卷
- 玉溪师范学院《诗歌赏析与创作》2022-2023学年第一学期期末试卷
- 项目风险预测与防范及事故应急预案
- 管理会计第5版 考试B卷及答案
- 2023年工厂化育苗精量播种生产设备项目评估分析报告
- 2024年羊肉加工项目评估分析报告
- 2024年精密陶瓷劈刀项目评估分析报告
- 2024年经济与商务咨询服务项目成效分析报告
- 三年级上册语文课程纲要.doc
- 幼小衔接的主要内容
- 四年级数学期中质量分析ppt
- 做新时代好队员竞选小队长演示PPT课件
- Linux网络管理
- 生命成长,责任担当——主题班会(共26张PPT)
- 混凝土结构连接化学螺栓锚栓计算表
- 兴趣小组活动
- 第五章预应力混凝土工程
- 危大工程台账
- ASME_VIII-1培训教材
评论
0/150
提交评论