ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:18.70KB ,
资源ID:8995925      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8995925.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(AVR单片机模拟电子琴.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

AVR单片机模拟电子琴.docx

1、AVR单片机模拟电子琴附一:#include config.h /决定是否播放 ,全局变量/uint16 *p;/歌曲选择指针 uint8 list=0;/歌曲选择变量 uint8 input=1; uint8 pause=1; uint8 state=0,stop=1,play=1,key; uint8 MUSIC_DATA502; uint8 i=0,length=50,key_buffer;/i 歌曲播放指针 /6 7 1 2 3 5 6 7 1flash uint16 Mode_Data16=440,494,523,587,659,698,784, 880,998,1046,1156,

2、1318,1396,1568,0;/存放声音的频率/* 音乐产生函数 * 功能:输出频率为x的方波,延时y MS* 范围:x:100-20000Hz,0:不发声 * y:0-65536 MS */extern void sound(uint16 i) /uint16 x;/x=music_datai0; /取音乐的频率数据if(i!=0) /x=; /1M时钟数据计算OCR1A=500000/i; /比较值赋值TCCR1A = 0x40; /允许比较反转输出elseTCCR1A = 0x00; /频率为0,休止符,不发声/* 延时函数:1M时钟时为MS */extern void delay_

3、ms(uint16 i) uint8 a;for(;i;i-) for (a = 220; a; a-) /倍率 原来220 ;flash uint16 kaqiusha2= 440,600,494,200,523,600,443,200,523,400,494,200,440,200,494,400,330,400,494,600,523,200,578,600,494,200,578,400,523,200,494,200,440,800,659,400,880,400,784,400,880,200,784,200,698,400,659,200,578,200,659,400,440,

4、400, 0,200,698,400,578,200,659,600,523,200,494,200,330,200,523,200,494,200,440,800,659,400,880,400,784,400,880,200,784,200,698,400,659,200,578,200,659,400,440,400, 0,200,698,400,578,200,659,600,523,200,494,200,330,200,523,200,494,200,440,800,0,0; void kaqiusha_sing(void) sound(kaqiushai0); /输出音符 / P

5、ORTA=seg7_data(i%16); delay_ms(kaqiushai1);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=15) list=0; flash uint16 moscow_night2= 440,400,523,400,659,400,523,400,587,800,523,400,494,400,659,800,587,800,440,1600,523,400,659,400,784,400,784,400,880,800,784,400,698,400,659,1600,740,800,831,800,988,400,880,400,6

6、59,1200,494,800,440,400,659,400,587,400,698,1600,784,400,698,400,659,800,587,400,523,400,659,800,587,800,440,1600,740,800,831,800,988,400,880,400,659,1200,494,800,440,400,659,400,587,400,698,1600,784,400,698,400,659,800,587,400,523,400,659,800,587,800,440,3200,0,0; void moscow_night_sing(void) sound

7、(moscow_nighti0); /输出音符 / PORTA=seg7_data(i%16); delay_ms(moscow_nighti1);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=15) list=0; flash uint16 super_mario2= 659,200,659,200,0,200,659,200,0,200,523,200,659,200,0,200,784,400,0,400,392,400,0,400,523,200,0,400,392,400,0,400,330,200,0,400,440,200,0,200,494,200

8、,0,200,466,200,440,200,0,200,392,266,659,266,784,266,880,200,0,200,698,200,784,200,0,200,659,200,0,200,523,200,587,200,494,200,0,400,523,200,0,400,392,400,0,400,330,200,0,400,440,200,0,200,494,200,0,200,466,200,440,200,0,200,392,266,659,266,784,266,880,200,0,200,698,200,784,200,0,200,659,200,0,200,5

9、23,200,587,200,494,200,0,800,784,200,740,200,698,200,622,200,0,200,659,200,0,200,415,200,440,200,523,200,0,200,440,200,523,200,587,200,0,400,784,200,740,200,698,200,622,200,0,200,659,200,0,200,1047,200,0,200,1047,200,1047,200,0,800,784,200,740,200,698,200,622,200,0,200,659,200,0,200,415,200,440,200,

10、523,200,0,200,440,200,523,200,587,200,0,200,622,200,0,400,587,200,0,400,523,200,0,600,392,200,392,200,0,200,262,200,0,400,784,200,740,200,698,200,622,200,0,200,659,200,0,200,415,200,440,200,523,200,0,200,440,200,523,200,587,200,0,400,784,200,740,200,698,200,622,200,0,200,659,200,0,200,1047,200,0,200

11、,1047,200,1047,200,0,800,784,200,740,200,698,200,622,200,0,200,659,200,0,200,415,200,440,200,523,200,0,200,440,200,523,200,587,200,0,200,622,200,0,400,587,200,0,400,523,200,0,600,392,200,392,200,0,200,262,200,0,400,0,0;/ super mario void super_mario_sing(void) sound(super_marioi0); /输出音符 / PORTA=seg

12、7_data(i%16); delay_ms(super_marioi1);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=15) list=0; flash uint16 butterfly_lovers2= 247,800,294,600,330,200,392,600,440,200,330,200,392,200,294,200,0,200,587,600,784,200,659,200,587,200,494,200,587,200,440,1400,0,200,440,400,440,200,494,200,370,400,330,400,294,600

13、,330,200,392,400,440,400,247,400,392,400,330,200,294,200,330,200,392,200,294,1400,0,200,494,600,587,200,370,400,440,400,330,200,392,200,294,1200,247,300,294,100,247,400,294,300,330,100,370,200,440,200,330,1200,294,200,330,200,392,600,440,200,587,400,494,400,440,400,494,200,440,200,392,400,330,200,29

14、4,200,247,400,0,400,392,400,0,400,330,300,392,100,330,200,294,200,247,200,294,200,330,200,392,200,294,1400,0,0; /梁祝歌曲 void butterfly_lovers_sing(void) sound(butterfly_loversi0); /输出音符 / PORTA=seg7_data(i%16); delay_ms(butterfly_loversi1);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=15) list=0; flash uint16

15、 Sdu_Song2= 698,300,698,100,698,200,698,200,698,200,698,200,659,200,587,200,587,200,523,1000,349,400,440,400,523,400,523,200,466,400,440,200,466,400,440,400,392,800,392,300,392,100,392,200,392,200,392,200,370,200,392,200,440,200,466,200,523,200,587,200,659,200,698,200,784,600,880,600,784,200,784,200

16、,523,600,698,1600,0,0;/song of SDUvoid Sdu_Song_sing(void) sound(butterfly_loversi0); /输出音符 / PORTA=seg7_data(i%16); delay_ms(Sdu_Songi1);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=15) list=0; flash uint16 music_data2=440,400,440,400,659,400,659,400,740,400,740,400,659,800,587,400,587,400,554,400,554,400

17、,494,400,494,400,440,800,659,400,659,400,587,400,587,400,554,400,554,400,497,800,659,400,659,400,587,400,587,400,554,400,554,400,497,800,440,400,440,400,659,400,659,400,740,400,740,400,659,800,587,400,587,400,554,400,554,400,494,400,494,400,440,800,0,0;/ abcdefgvoid music_data_sing(void) sound(music

18、_datai0); /输出音符 / PORTA=seg7_data(i%16); delay_ms(music_datai1);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=15) list=0; /* 端口初始化函数 */void port_init(void)DDRD|=0xa0; /D5口配置为输出,驱动蜂鸣器PORTD|=0x0f;DDRB=0xf0;PORTB=0X0F;DDRA=0xff;Seg7_Led_Init();MCUCR=0x00;GICR = 0x40;SEI();/*name: list_deal();function: deal wit

19、h many songs of the machine*/extern void list_deal(void) switch(list) case 0: butterfly_lovers_sing();break; case 1: moscow_night_sing();break; case 2: Sdu_Song_sing();break; case 3: super_mario_sing();break; case 4: kaqiusha_sing();break; case 5: music_data_sing();break; /*name: key_deal();function

20、: deal with states of the machine*/extern void key_deal(void)if(state=0)/播放状态 while(play&pause) list_deal(); /* sound(music_datai0); /输出音符 delay_ms(music_datai1);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=15; if(!music_datai+1) i=0; */调试用 /播放选择的音乐 /播放modeelse while(play&pause&(input) sound(Mode_DataMUSIC

21、_DATAi0); /输出音符 PORTA=seg7_data(i%16); delay_ms(400);/节拍延时 TCCR1A = 0x00; /奏完一个音符停止 PORTD|=1length) break;else i+=2;break; if(!play) if(+list5)list=0;break; case BACK: if(play=1) if(i2)i=0;break;else i-=2;break; if(!play) if(-list0)list=5;break; default :break; ; Seg7_Data_Port=seg7_data(i); else if(state) if(key=8)&input) add(key); MUSIC_DATAi+0=key; MUSIC_DATAi-11=400; sound(Mode_Datakey); delay_ms(200);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1