1、 实验项目名称
基于单片机的音乐播放器
2、 实验目的
Ⅰ设计方案
设计一个基于AT89C51系列单片机的音乐盒利用按键控制切换演奏出不同的音乐。蜂鸣器发出某个音调与之对应的LED灯亮起。使用两个按键一个用来切换歌曲另一个切换LED的变化花样。
Ⅱ研究内容
①电路有两种模式演奏音乐模式和花样灯模式
A演奏音乐模式演奏完整的一首歌曲LED随着音乐变化B花样灯模式LED变化出各种花样蜂鸣器随着发出“滴滴”声②按下按键1进入演奏音乐模式再按切换歌曲共两首歌曲
按下按键2进入花样灯模式再按切换LED花样共三种花样。
Ⅲ总体方案图a组成框图
音乐盒的系统结构以AT89C51单片机位控制核心加上2个按键、时钟复位电路、蜂鸣器、LED模块组成。单片机负责接收按键的输入根据输入控制音乐播放曲目和音乐花样灯的显示样式以及蜂鸣器发音。系统组成框图如下所示
b功能结构图
Key1负责切换播放歌曲共两首。分别是祝你生日快乐和寂寞沙洲冷Key2负责切换LED显示花样共3种顺序显示由两边向中间移动然后向两边移动循环显示。
3、 实验器材
Windows7操作系统Proteus仿真软件ke i l 4软件AT89C51单片机
共阴极数码管开关电容晶振
电阻发光二极管蜂鸣器
4、 实验要求
1 以单片机为主控处理器用蜂鸣器播放歌曲
2系统要求有选择上一首、下一曲功能
3两个按键可在播放和显示花样中进行切换
4用一个键控制花样类型的显示功能
5用LED灯闪烁“伴奏”。
5、 实训基本原理附原理图、源程序清单
1硬件设计
①LED显示电路设计与原理
LED显示电路是由8个LED发光二极管组成连接方式是共阳极LED接到单片机的P1口若是低电平可使LED亮。发光二极管的亮灭是由内部程序控制的 8个LED发光二极管分别对应不同的音阶所以LED会随着音阶的变化按规律亮灭。
②硬件电路图及其功能介绍
1 电路中用P3.2、 P3.3控制键
2P1 .0~P1 .7控制LED
3 P2.3控制蜂鸣器
4电路为12MHZ晶振频率工作起振电路中C 1、 C2均为30PF。
③时钟振荡电路
AT89C51中有一个用于构成内部振荡器的高增益反向放大器引脚
XTAL1和XTAL2分别是该放大器的输入和输出端。
④蜂鸣器播放
声音是通过振动产生的。单片机对某一引脚以一定的频率循环置1置0 该引脚便产生一定频率的方波方波通过放大作用于一定
的物理实件扬声器 就产生了一定频率的声音。若改变输出方波的频率产生的声音随之改变。通过控制输出方波的时间长短声音的长短也可以得到控制因此根据乐谱以类似的音及同样的节拍单片机就可以产生电子音乐。音乐的播放模式及选择可以通过按键的输入得以实现。在本次设计中将蜂鸣器连接到AT89C52的P3^7接口处。
通过控制单片机定时器的定时时间产生不同频率的音频脉冲使得蜂鸣器发出不同音节的声音即声调。用软件延时来控制发音时间的长短控制节拍。把乐谱中的音符和相应的节拍变换为定时常数和延时常数作为数据表格存放在存储器中由程序查表得到定时常数和延时常数分别用来控制定时器产生的脉冲频率和发出该音频脉冲的持续时间。
2软件设计
①在本程序中设置了两个标志 count 和count 分别初始化为和。按键使得count 在和之间切换按键使得count 在 之间切换。程序检测count 的值 count等于时播放第一首歌曲 时播放第二首。同时根据count 的值来切换LED的花样。 count1和count2的值是互斥的设置count1等于1、 2时 count2同时设置为0 设置count2等于1~4时 count1也同时设置为0。
②音调的确定
1 要产生音频脉冲只要计算出某一音频的周期 1/频率 然
后将此周期除以2 即为半周期的时间。利用定时器计时这半个周期的时间每当计时到后就将输出脉冲的I/O反相然后重复计时此半周期时间再对I/O反相就可在I/O脚上得到此频率的脉冲。
2可利用AT89C51的内部定时器使其工作在计数器模式MODE1下改变计数值TH0和TL0产生不同频率的方法。
3C调各音符频率与计数值T的对照表
低音 频率 T 参数 中音 频率 T 参数 高音 频率 T 参数
Do 262 1908 229 Do 523 956 115 Do 1046 57 57Do 277 1805 217 Do 554 903 108 Do 1109 54 54Re 294 1701 204 Re 587 852 102 Re 1175 51 51Re 311 1608 193 Re 622 804 97 Re 1245 48 48Mi 330 1515 182 Mi 659 759 91 Mi 1318 45 45Fa 349 1433 172 Fa 698 716 86 Fa 1397 43 43Fa 370 1351 162 Fa 740 676 81 Fa 1480 41 41So 392 1276 153 So 784 638 77 So 1568 38 38So 415 1205 145 So 831 602 72 So 1661 36 36La 440 1136 136 La 880 568 68 La 1760 34 34La 464 1078 129 La 932 536 64 La 1865 32 32Si 494 1012 121 Si 988 506 61 Si 1976 30 30
③节拍的确定
音乐是由许多不同的音符组成而每个音符对应着不同频率这样就可以利用不同的频率组合加以与拍数对应的延时构成音乐。
④编码do re mi fa so la si分别编码为1~7 重音do编为8,重音re编为
9 停顿编为0。播放长度以十六分音符为单位在本程序中为165ms 一拍即四分音符等于4个十六分音符编为4,其它的播
放时间以此类推。音调作为编码的高4位而播放时间作为低4位如此音调和节拍就构成了一个编码。以0 xff作为曲谱的结束标志。
歌曲播放的设计。先将歌曲的简谱进行编码储存在一个数据类型为unsigned char的数组中。程序从数组中取出一个数然后分离出高4位得到音调接着找出相应的值赋给定时器0 使之定时操作蜂鸣器得出相应的音调接着分离出该数的低4位得到延时时间接着调用软件延时。
⑤程序流程图及代码
主程序流程图
主程序代码:void main ()
{ uchar x;count1=0;//流水灯无花样count2=1 ;//唱第一首歌
P34=0;//选取矩阵键盘的一列
EA=1;//开总中断
EX0=1;//开外部中断0
IT0=1 ;//外部中断0下降沿触发方式EX1=1;//开外部中断1
IT1=1 ;//外部中断1下降沿触发方式TMOD=0x01;//定时器0工作在方式1TH0=0;
TL0=0;
ET0=1;while(1)
{
if(count1 !=0) //音乐停止花样灯开始按照花样闪烁{switch(count1)
{case 1 :for(x=0;x<14;x++)
{duan=1;
P1=huayang 1[x] ;beep() ;delay1(300) ;duan=0;if(count1 !=1)break;
}break;case 2:for(x=0;x<14;x++)
{duan=1;
P1=huayang2[x] ;beep() ;delay1(300) ;duan=0;if(count1 !=2)break;
}break;case 3:for(x=0;x<16;x++)
{duan=1;
P1=huayang3[x] ;beep() ;delay1(300) ;duan=0;if(count1 !=3)break;
}break;
}
}else
{
今天CloudCone发布了最新的消息,推送了几款特价独立服务器/杜甫产品,美国洛杉矶MC机房,分配100Mbps带宽不限流量,可以选择G口限制流量计划方案,存储分配的比较大,选择HDD硬盘的话2TB起,MC机房到大陆地区线路还不错,有需要美国特价独立服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2...
最近发现一个比较怪异的事情,在访问和登录大部分国外主机商和域名商的时候都需要二次验证。常见的就是需要我们勾选判断是不是真人。以及比如在刚才要访问Namecheap检查前几天送给网友域名的账户域名是否转出的,再次登录网站的时候又需要人机验证。这里有看到"Attention Required"的提示。我们只能手工选择按钮,然后根据验证码进行选择合适的标记。这次我要选择的是船的标识,每次需要选择三个,一...
香港云服务器最便宜价格是多少钱一个月/一年?无论香港云服务器推出什么类型的配置和活动,价格都会一直吸引我们,那么就来说说香港最便宜的云服务器类型和香港最低的云服务器价格吧。香港云服务器最便宜最低价的价格是多少?香港云服务器只是服务器中最受欢迎的产品。香港云服务器有多种配置类型,如1核1G、2核2G、2核4G、8到16核32G等。这些配置可以满足大多数用户的需求,无论是电商站、视频还是游戏、小说等。...