单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,0,目录,1,、设计任务和硬件设计,2,、软件设计,3,、调试和测试结果分析,第1页/共20页,目录 1、设计任务和硬件设计2、软件设计3、调试和测试结果,1,设计任务,基本任务:用,MCS-51,单片机设计一个音乐喷泉,要实现喷水高度的连续控制,就必须能够调节喷头出水水压,而通过调节水泵转速可以达到平滑调节水压的目的。系统采用对单片机进行编程,通过单片机输出改变的,PWM,来控制直流电机工作转速,进而使水柱发生变化。当有音乐信号时,获取声音强度,通过,A/D,转换采集音频电压强度,再通过软件计算占空比输出,PWM,,作用到电机上,使喷头产生随音乐起伏的效果。同时通过将,PWM,的占空比与设定的,8,档值比较来控制,8,盏,LED,灯随音乐起伏的效果。,第2页/共20页,设计任务 基本任务:用MCS-51单片机设计一个音乐喷,2,总体设计,本设计方案为当有音乐信号时,获取声音强度,通过A/D转换采集音频电压强度,再通过软件计算占空比输出PWM,作用到电机上,使喷头产生随音乐起伏的效果。同时通过将PWM的占空比与设定的8档值比较来控制8盏LED灯随音乐起伏的效果。,单片机,AD,转换,功放,喇叭,频谱彩灯显示,驱动,水泵,电源,第3页/共20页,总体设计 本设计方案为当有音乐信号时,获取,3,单片机的最小系统,STC89C52单片机的最小系统电路包含以下几个部分:,单片机供电电路:AT89S52需要具有可靠的5V供电,在电路图中的VCC和GND为供电网络标识符;,振荡电路:AT89S52需要一个稳定的振荡电路才能够正常工作,在该电路采用了24Mhz的晶振作为AT89S52的时钟源;,复位电路:复位电路是单片机正常运行的一个必要部分,复位电路应该保证单片机在上电的瞬间进行一次有效的复位,在单片机正常工作时将RST引脚置低。此外通过一个按键进行手动复位,在单片机运行不正常时使用。,第4页/共20页,单片机的最小系统STC89C52单片机的,4,A/D转换电路,ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。,ADC0832 具有以下特点:,8位分辨率;,双通道A/D转换;,输入输出电平与TTL/CMOS相兼容;,5V电源供电时输入电压在05V之间;,工作频率为250KHZ,转换时间为32S;,一般功耗仅为15mW;,8P、14P,DIP(双列直插)、PICC 多种封装,第5页/共20页,A/D转换电路ADC0832 是美国国家,5,2024/11/15,LM386是一种音频集成功放,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。,LM386特性:,静态功耗低,约为4mA,可用于电池供电;,工作电压范围宽,4-12V or 5-18V;,外围元件少;,电压增益可调,20-200;,低失真度;,音频放大电路,第6页/共20页,2023/10/5LM386是一种音频集成功放,具有自身功耗,6,主程序设计,void main(),while(1),penquan()/调用PWM调压函数,通过延时改变输出高低电平,,/并根据占空比控制LED,开始,A/D,采集,PWM,调压,第7页/共20页,主程序设计 void main()开始,7,A/D,转换程序原理,如图2.1 所示,当SGL与ODD2 位数据分别为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。,第8页/共20页,A/D转换程序原理,8,当时钟信号到第3 个脉冲的下降沿时,DO/DI端开始利用数据输出DO进行转换数据的读取。从第4个脉冲下降沿开始由DO端输出转换数据最高位DATA7,随后每一个时钟下降沿DO端输出下一位数据。直到第11个时钟脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个时钟下降沿输出DATD0。随后输出8位数据,到第19 个时钟下降沿时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。,第9页/共20页,当时钟信号到第3 个脉,9,否,是,开始,初始化,通道选择,启动,A/D,转换,读取一位数据,8,位读取完毕?,读取,1,位校验数据,8,位读取完毕?,两次数据相等?,返回转换值,返回,0,返回,是,是,否,否,第10页/共20页,否是开始初始化通道选择启动A/D转换读取一位数据8位读取完毕,10,A/D转换子程序代码:,unsigned char ad0832read(bit SGL,bit ODD),unsigned char i=0,value=0,value1=0;,SCL=0;,DO=1;,CS=0;/开始,SCL=1;/第一个上升沿,SCL=0;,DO=SGL;,SCL=1;/第二个上升沿,SCL=0;,DO=ODD;,SCL=1;/第三个上升沿,SCL=0;/第三个下降沿,DO=1;,for(i=0;i8;i+),第11页/共20页,A/D转换子程序代码:unsigned char ad08,11,SCL=1;,SCL=0;/开始从第四个下降沿接收数据,value=1;,if(DO),value+;,for(i=0;i8;i+),/接收校验数据,value1300)led1=1;else led1=0;,if(h1700)led2=1;else led2=0;,if(h11000)led3=1;else led3=0;,if(h11300)led4=1;else led4=0;,if(h11600)led5=1;else led5=0;,if(h11800)led6=1;else led6=0;,if(h12000)led7=1;else led7=0;,if(h12200)led8=1;else led8=0;,out=1;,delay(date-100);,PWM调压子程序:,第14页/共20页,void penquan()/PWM调压PWM调压,14,调试和测试结果分析:,在硬件调试方面由于电机运转会给电路带来噪声,于是在电源模块增加了滤波处理,主要通过与地之间串接电容来实现。另一方面,在LM386功放输出端加了大电容接喇叭来减少输出到喇叭的噪声。同时由于音频电路对走线有较高要求,限于经验不足,未做到较完善的考虑,仅将喇叭接线的地尽量远离电源输入的地。经过以上改动后,噪声有明显减少,但不能完全消除。并且,功放的放大倍数对噪声也有影响。放大倍数大,会将噪声一并放大。虽然减小放大倍数可以一定程度上减小噪声,但是随着放大倍数的减小,A/D转换的电压范围也随之减小,即PWM的分辨率减小而使喷水的变化和LED的变化都随之减小,效果减弱。因此减小放大倍数时要适度。,第15页/共20页,调试和测试结果分析:在硬件调试方面由于电机,15,调试和测试结果分析:,在软件调试方面,由于软件只有两部分组成,即A/D转换和PWM调压。A/D转换方面不需要十分精确的数据,也考虑到喷泉是实时性的,对反应速度有要求,所以没有用到滤波处理。PWM调压主要实现了电机的PWM输出和LED的控制。鉴于两者有一定联系,将两部分整合在了一起,也可以提高反应速度。由于电机的调速是由PWM来控制,因此软件通过根据占空比分别延时输出高电平和低电平来实现PWM。其占空比的计算则通过AD采集的8位分辨率决定,设AD采集值为U。因为满量程为255,高电平时间为U,则低电平时间为255-U.。另外,通过U的值与预设的8档量程比较来控制LED的变化效果,电压越高,亮的LED就越多。由于AD为8位精度,而单片机对浮点数的运算能力又有限。所以为了提高精度,将U放大10倍。这样LED的变化效果可以更加明显。,第16页/共20页,调试和测试结果分析:在软件调试方面,由,16,通过调试,已基本可以实现设计目标。通过喇叭输出的音乐在高音量时基本听不出噪声,且LED的变化和喷水的变化已基本能达到预想的效果。在此基础上未来可以通过增加电机和喷头来实现连环喷水的效果,且LED也可以设置成专业的彩色频谱灯,来实现更加令人赏心悦目的效果。,结果分析:,第17页/共20页,通过调试,已基本可以实现设计目标。通过喇叭输出的音,17,2024/11/15,第18页/共20页,2023/10/5第18页/共20页,18,Thanks,!,第19页/共20页,Thanks!第19页/共20页,19,2024/11/15,感谢您的观看!,第20页/共20页,2023/10/5感谢您的观看!第20页/共20页,20,