网站大量收购独家精品文档,联系QQ:2885784924

课程设计作品音乐喷泉.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计作品音乐喷泉

课程设计作品:音乐喷泉 郭晓杨 张超 王彭彭 一 课程设计目的 1实现通过音乐的大小来控制喷泉喷水的高低和彩灯的散烁。 2 通过对本课程的设计加深对AVR单片机的认识、了解以及掌握。 3 加深对硬件电路的了解以及掌握,掌握对模数转换部分以及对中断部分的应用。 4 培养自己的动手能力,锻炼自己发现问题、分析问题、解决问题的能力。 5 培养团队意识,锻炼分工合作以及协调能力。 二 作品用途以及功能 本作品可以实现:①喷泉的水柱随着音乐的高低起伏变化,就是说音乐高则水柱高,音乐低则水柱低,随着音乐的不同,喷水的高低会不同;②彩灯随着音乐一起散烁。 三 硬件设计思想以及原理图 1基本原理 当Mp3播放音乐时,声音大的时候其耳机输出的功率大,此时其输出的电压也就大,正是利用这一点,我们利用Mega16将电压这一模拟信号转化为了数字信号,数字信号经过单片机处理后送L298功率驱动,然后信号一部分送直流电机,达到控制电机的目的,与此同时一部分送彩灯部分。 基本示意图如下图所示: 电机驱动模块机原理图 我们使用的电机是汽车的风窗洗涤器,其额定是电压是十二伏。L298 的驱动电机的原理图如下图所示(注:Vs和VDD接十二伏电源,PWM接PORTD7,) 3所用到的硬件开列如下:AVR开发板 L298芯片一片 散热片 汽车洗涤器一个 4148二极管4个 LED8个 12伏电源线 JTAG ICE仿真器 MP3 耳机线 音响 导线若干 4实物照片如下 四 软件部分 详细程序如下 //ICC-AVR application builder : 2008-5-25 11:44:06 // Target : M16 // Crystal: 4.0000Mhz #include iom16v.h #include macros.h volatile char speed; volatile int adc_data; volatile char time_1s_ok; #pragma interrupt_handler timer0_comp_isr:20 void timer0_comp_isr(void) { adc_data=ADCH*4; time_1s_ok=1; } //#pragma interrupt_handler adc_isr:15 //void adc_isr(void) //{adc_data=ADCH*4; //ADCSRA|=0X10; //} void delay100us(char x) {char i; for(i=147;x!=0;x--) while(--i); } void delays(char m) { for(;m!=0;m--) delay100us(250); } void main(void) { DDRD=0X98; PORTD=0X10; DDRA=0X00; PORTA=0X00; DDRB=0XFF; PORTB=0XFF; // TCNT2=0X01; TCCR2|=(1WGM21)|(1WGM20)|(1COM21)|(1CS22); TIMSK|=0X03; OCR2=0x66; ADMUX=0 //DC7单端输入 ACSR=0x80; SFIOR=0x1F; SFIOR|=0x60; // 选择T/C0比较匹配中断为ADC触发源 ADCSRA=0xAD; // ADC允许、自动触发转换、ADC转换中断允许、ADCclk=125Kz TCCR0=0x0b; // 内部时钟,64分频(4M/64=62.5KHz),CTC模式 TCNT0=0x00; OCR0 = 0x7C;//(124),(124+1)/62.5=2ms TIMSK=0x02; SEI(); // 允许T/C0比较中断 while (1) { if(time_1s_ok) {if(adc_data=300) {PORTB=0 speed=0xff; OCR2=speed; delays(1); } if((adc_data=250)(adc_data300)) {PORTB=0 speed=0xff; OCR2=speed; de

文档评论(0)

5201314118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065201001000004

1亿VIP精品文档

相关文档