电子系统设计大作业课题:简易音乐喷泉的制作组员:任课老师:目录一、设计任务和分析 -------------------------------------------------------- 1二、硬件电路设计 ---------------------------------------------------------- 12.1总体设计------------------------------------------------------------ 12.2各模块设计---------------------------------------------------------- 22.2.1单片机最小系统------------------------------------------------ 22.2.2 A/D转换模块------------------------------------------------- 32.2.3 音频放大模块-------------------------------------------------- 32.2.4 LED灯及电机------------------------------------------------- 4三、程序设计-------------------------------------------------------------- 53.1主程序设计---------------------------------------------------------- 53.1.1设计框图------------------------------------------------------ 53.1.2程序代码------------------------------------------------------ 53.2 A/D转换程序设计--------------------------------------------------- 63.2.1 A/D转换程序原理--------------------------------------------- 63.2.2 A/D转换程序框图--------------------------------------------- 73.2.3 A/D转换子程序代码------------------------------------------- 83.3 PWM调压设计------------------------------------------------------- 93.3.1 程序框图 ---------------------------------------------------- 93.3.2 PWM调压子程序----------------------------------------------- 9四、调试和测试结果分析 --------------------------------------------------- 114.1调试--------------------------------------------------------------- 114.2 结果分析 ---------------------------------------------------------- 12一、设计任务和分析基本任务:用MCS-51单片机设计一个音乐喷泉,要实现喷水高度的连续控制,就必须能够调节喷头出水水压,而通过调节水泵转速可以达到平滑调节水压的目的。
系统采用对单片机进行编程,通过单片机输出改变的PWM来控制直流电机工作转速,进而使水柱发生变化。
当有音乐信号时,获取声音强度,通过A/D 转换采集音频电压强度,再通过软件计算占空比输出PWM,作用到电机上,使喷头产生随音乐起伏的效果。
同时通过将PWM的占空比与设定的8档值比较来控制8盏LED灯随音乐起伏的效果。
二、硬件电路设计2.1总体设计本设计方案为当有音乐信号时,获取声音强度,通过A/D转换采集音频电压强度,再通过软件计算占空比输出PWM,作用到电机上,使喷头产生随音乐起伏的效果。
同时通过将PWM的占空比与设定的8档值比较来控制8盏LED灯随音乐起伏的效果。
图2.1 总体设计图2.2各模块设计2.2.1单片机最小系统STC89C52单片机的最小系统电路包含以下几个部分:◆ 单片机供电电路:AT89S52需要具有可靠的5V 供电,在电路图中的VCC 和GND 为供电网络标识符; ◆ 振荡电路:AT89S52需要一个稳定的振荡电路才能够正常工作,在该电路采用了24Mhz 的晶振作为AT89S52的时钟源;◆ 复位电路:复位电路是单片机正常运行的一个必要部分,复位电路应该保证单片机在上电的瞬间进行一次有效的复位,在单片机正常工作时将RST 引脚置低。
此外通过一个按键进行手动复位,在单片机运行不正常时使用。
单片机 AD 转换 功放喇叭频谱彩灯显示驱动水泵电源图 2.22.2.2 A/D转换模块ADC0832 是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
ADC0832 具有以下特点:· 8位分辨率;·双通道A/D转换;·输入输出电平与TTL/CMOS相兼容;· 5V电源供电时输入电压在0~5V之间;·工作频率为250KHZ,转换时间为32μS;·一般功耗仅为15mW;图 2.3 · 8P、14P—DIP(双列直插)、PICC 多种封装2.2.3 音频放大模块LM386是一种音频集成功放,具有自身功耗低、更新内链增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点的功率放大器,广泛应用于录音机和收音机之中。
LM386特性:●静态功耗低,约为4mA,可用于电池供电;●工作电压范围宽,4-12V or 5-18V;●外围元件少;图 2.4 ●电压增益可调,20-200;●低失真度;2.2.4 LED灯及电机图2.5 电机驱动电路图2.6 LED电路三、程序设计3.1主程序设计3.1.1设计框图图3.1 主程序框图3.1.2程序代码void main(){while(1){penquan(); //调用PWM调压函数,通过延时改变输出高低电平,//并根据占空比控制LED}}3.2 A/D转换程序设计3.2.1 A/D转换程序原理图3.2 ADC0832通道选择如图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+进行输入。
图3.3 ADC0832转换时序图当时钟信号到第3 个脉冲的下降沿时,DO/DI端开始利用数据输出DO进行转换数据的读取。
从第4个脉冲下降沿开始由DO端输出转换数据最高位DATA7,随后每一个时钟下降沿DO端输出下一位数据。
直到第11个时钟脉冲时发出最低位数据DATA0,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个时钟下降沿输出DATD0。
随后输出8位数据,到第19 个时钟下降沿时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。
3.2.2 A/D转换程序框图图3.4 A/D转换程序框图3.2.3 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;i<8;i++){SCL=1;SCL=0; //开始从第四个下降沿接收数据value<<=1;if(DO)value++;}for(i=0;i<8;i++){ //接收校验数据value1<<=1;if(DO)value1+=0x80;SCL=1;SCL=0;}CS=1;SCL=1;if(value==value1) //与校验数据比较,正确就返回数据,否则返回0return value;return 0;}3.3 PWM 调压设计3.3.1 程序框图图3.5 PWM 调压程序框图3.3.2 PWM 调压子程序void penquan() //PWM 调压{uchar h1,h2,date;date=ad0832read(1,0); //读取音频信号电压值,通道CH0h2= 255-date; //取PWM 占空比,h2为低电平时间,h1为高电平时间 h1=h2*10; //占空比放大十倍,增加分辨率out=0; //输出PWM 低电平delay((h2-100)); //PWM 低电平延时if(h1>300) led1=1; else led1=0;if(h1>700) led2=1; else led2=0;if(h1>1000) led3=1; else led3=0;if(h1>1300) led4=1; else led4=0;if(h1>1600) led5=1; else led5=0;if(h1>1800) led6=1; else led6=0;if(h1>2000) led7=1; else led7=0;if(h1>2200) led8=1; else led8=0;out=1;delay((date-100));}四、调试和测试结果分析4.1调试调试分为两步,一是硬件调试,二是软件调试。
本人主要负责软件调试也参与了硬件调试。
在硬件调试方面由于电机运转会给电路带来噪声,想要完全去除噪声在现有条件下很难做到,因此我们只能尽量减少了噪声。
查阅资料发现电机的噪声对电源影响较大,于是在电源模块增加了滤波处理,主要通过与地之间串接电容来实现。
另一方面,在LM386功放输出端加了大电容接喇叭来减少输出到喇叭的噪声。