资源描述:
《单片机电子琴的实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、姓名:班级:学号:小班学号:同组姓名:电子邮件:实验课题:基于AVR单片机电子琴的制作实验日期:2013.09.02—2013.09.1542目录:一、实验简介1.1实验目的.....................................................................41.2实验关键词……………………….…………………………………….41.3基础知识.....................................................................4二、实验
2、器材2.1核心部件:ATmega16单片机.....................................52.2电路元件......................................................................62.3管脚说明…………………………………………………………………..6三、实验原理3.1实验原理图………………………………………………………………7423.2实验流程图………………………………………………………………83.3实物效果图………………………………………………
3、………………8四、操作过程与运行结果4.1操作过程示意图……………………………………………………….94.2电子琴系统主要部分……………………………………………….114.3具体操作过程…………………………………………………….114.4运行结果………………………………………………………………….12五、实验中的排错、体会与建议5.1调试与排错过程………………………………………………………..125.2体会与建议………………………………………………………………..145.3小组分工…………………………………………………………………….15
4、5.4参考文献…………………………………………………………………….15六、附录426.1流水灯实验…………………………………………………………………166.2蜂鸣器实验…………………………………………………………………176.3秒表实验…………………………………………………………………….186.4简易交通灯实验…………………………………………………………256.5电子琴源代码…………………………………………………………….3042一、实验简介1.1实验目的通过设计一个模拟电子琴系统熟悉ATmega16单片机的使用及其基本功能。使其能够
5、通过键盘控制实现播放预存音乐,弹奏、储存弹奏音乐,变速播放,暂停及继续播放,停止播放功能。1.2实验关键词按键检测预存播放弹奏储存变速暂停停止1.3基础知识声波是振动产生的。频率即表示每秒钟振动的次数,采用CTC方式时avr单片机通过特定的端口(PD4及PD5)输出一定频率的方波,TCCR1A设为比较匹配时OC1A/OC1B电平取反,TCCR1B的计数上限为OC1A,根据公式OCnA=f/2N(1+OCRnA)计算出7个频率音阶所需的OCR1A,则只需将喇叭接在PD4或PD5,通过程序控制端口输出特定频率的方波波形(发声使用正弦波最好,方
6、波效果稍次但影响不大),喇叭就会发出七种不同的声音,依照人听觉分辨7个音阶分为三组,分别为高,中,低音阶频率,经计算可得,当OCR1A=(8000000/musicmem[i]-1)时,{131,147,165,175,196,220,247}存放低音阶频率,{262,294,330,349,392,440,494}存放中音阶频率,{524,588,660,698,784,880,988}则存放高音阶频率,所以需要定义三个数组存放各音阶的频率值。除了音符频率以外还需要音长,所以定义两个数组表示一段音乐,第一个表示频率,第二个表示音长,播放
7、时先访问频率数组,使喇叭发声,之后访问音长数组,确定喇叭发声时间。而有了音符频率数组,只要再得到任意一首歌的简谱,就可以将其转化为两个数组的形式,由音符对应的频率得出频率数组,然后再根据每个音符的音长,将其通过乐曲的节拍和音符的拍数计算出音符持续时间即可得出音长数组。下面我们举例来看《两只老虎》的简谱:42图一《两只老虎》简谱图①音符数组为:uintsound[32]={262,294,330,262,262,294,330,262,330,349,392,330,349,392,392,440,392,349,330,262,392,4
8、40,392,349,330,262,294,196,262,294,196,262};②音长数组为:uinttime[32]={500,500,500,500,500,500,500,500