AVR单片机在儿童智能玩具中的应用音乐玩具

AVR单片机在儿童智能玩具中的应用音乐玩具

ID:36646237

大小:240.21 KB

页数:10页

时间:2019-05-13

AVR单片机在儿童智能玩具中的应用音乐玩具_第1页
AVR单片机在儿童智能玩具中的应用音乐玩具_第2页
AVR单片机在儿童智能玩具中的应用音乐玩具_第3页
AVR单片机在儿童智能玩具中的应用音乐玩具_第4页
AVR单片机在儿童智能玩具中的应用音乐玩具_第5页
资源描述:

《AVR单片机在儿童智能玩具中的应用音乐玩具》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、AVR单片机在儿童智能玩具中的应用--音乐玩具利用单片机开发儿童智力玩具大有作为,尤其单片机扩展存贮器方便,而大容量存贮器价格也很低,64KB的EPROM可存放300多首歌曲,8M位EPROM可存放5000多首歌曲,几个芯片就可组成一个音乐库,这是用其它方法难办的利用AVR单片机产生乐曲音符,再把乐谱翻译成计算机音乐语言,由单片机进行信息处理,再经过信号放大,由耳机或喇叭放出乐曲声.由于音符和节拍是由计算机产生的,所以发音音符和节拍准确,可见音乐从娃娃开始抓起,音乐玩具是儿童笫一个好老师利用单片机的中断,I/O口控制功能,可以做到电脑放音机有自

2、动连续放音功能,乐曲全部放完自动从头开始连续放音,循环不断如何产生音乐频率:1.要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,然后利用计时器计时此半周期时间,每当计时到后就将输出脉冲对I/O口反相,然后重复计时此半周期时间再对I/O口反相,如此就可在I/O口引脚上得到此频率的脉冲(程序驱动I/O口反相,即正负各半周期为一个周期,才能使喇叭”吸放”发声);2.利用AVR单片机的内部计时器让其工作在计数模式MODE1(16位定时计数器)下,改变计数值TCNT1H及TCNT1L以产生不同的频率;3.例如以6

3、MHZ晶振为例:要产生频率为523HZ,其周期T=1/523=1912us,其半周期为1912/2=956us,因此只要令计数器计时956us/1us=956(为半周期).所以在每计数956次时将I/O反相,就可得到中音DO(523HZ).计数脉冲值与频率的关系公式如下:N=Fi(6MHz晶振,CPU产生的频率)2(半周期)FrN:计数值Fi:以6MHZ晶振为例,内部计时(数)一次需2us,频率单位为1周期/秒,即HZ1周期/2us=1周期/2X10-6秒=500000次/秒=500000HZ故其频率为500000HZFr:要产生的频率4.其计

4、数值的求法如下:T(16位计数器计多少后溢出)=65536(16位二进制计数器,计满数溢出时的计数值为2的16次方)-N=65536-Fi/2/Fr例如:求低音DO(262HZ),中音DO(523HZ),高音DO(1046HZ)的计数值?设K=65535F=500000=Fi=0.5MHZT=65536-N=65536-Fi/2/Fr=65536-500000/2/Fr=65536-250000/Fr低音DO的T=65535-1908=63627(十进制数)中音DO的T=65535-0956=64579(十进制数)高音DO的T=65535-04

5、78=65057(十进制数)5.C调各音符频率与计数值T的对照表:音符频率HZ半周期TCNT值音符频率HZ半周期TCNT值低1DO2621908S63627#4FA#7400676S64859#1DO#277180563730中5SO784063864897低2RE294170063835#5SO#831060264933#2RE#311160863927中6LA880056864967低3M330151664020#6LA#932053664999低4FA349143364012中7SI988050665029#4FA#37013506418

6、5高1DO1046047865057低5SO392127664259#DO#1109045165084#5SO#415120564330高2RE1175042665109低6LA440113664399#2RE#1245040265133#6LA#466107264463高3M1318037265156低7SI494101264523高4FA1397035865177中1DO523095664579#4FA#1480033865197#1DO#554090364632高5SO1568031965216中2RE578084264683#5S0#1

7、661029265243#2RE#622080464731高6LA1760028465251中3M659075964776#6LA#1865026865267中4FA698071664819高7SI1976025365282"#"表示半音,用于上升或下降半个音如何产生节拍:每个音符使用1个字节,每个节拍使用1个字节,AVR程序存储器可以设为16位,即1个字,或称双字节,所以一个字的高8位存放音符码,低8位存放节拍码如果1拍节为0.4秒则1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间,我们假设1/4拍为1DELY单位,则1拍应为4个DEL

8、Y,以此类推,只要求得1/4拍的DELY单位时间,其余的节拍就是它的倍数.1/4拍的延迟时间=187亳秒节拍与节拍码对照表节拍码节拍数(拍)节拍码节拍

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。