资源描述
学号: 常 州 大 学 毕业设计(论文)(2012届)题 目 音乐喷泉控制器的设计 学 生 学 院 专业班级 校内指导教师 专业技术职务 校外指导老师 专业技术职务 二一二年六月音乐喷泉控制器的设计摘要:音乐喷泉的核心部分是控制器。音乐喷泉之所以能展现出各种不同的效果,是因为音乐喷泉控制器能控制喷头和灯光,显现多变的曲线和色彩。不同的喷泉所需的水泵和彩灯组数也不尽相同,所以喷泉控制器可以采用简单、通用、组数能灵活扩充的控制器。为了达到这一目的,本喷泉控制器由模拟电路与数字集成电路相结合,这种设计就可以灵活的改变水泵和彩灯组数。本设计的核心控制器是AT89S52单片机,主要包括音乐产生模块、运放模块、A/D转换模块、滤波放大模块、单片机控制模块、继电器模块以及彩灯模块。其系统原理是音乐信号分两路输出,一路信号经过运放电路之后为喇叭提供信号,另一路信号经过A/D转换之后提供给单片机,最后由单片机根据该信号控制电机、彩灯以及继电器。整个设计采用模块化设计易于该设计的推广使用。关键词:音乐喷泉;控制器;电机;继电器 Design of musical fountain controllerAbstract:The musical fountain controller is the centre of the musical fountain. The controller dominates sprinklers and lighting of fountain so that it manifests various spectaculars with different curves and colors. Since water pumps and the number of color lamp vary due to different types of fountains, so we need to design a controller with simple, general, and flexible expanding character. This eruptive fountain controller is the combination of analog circuits and the digital circuit design, which can change the operation of water pump and the colored lantern group number nimbly.In my research, the control core of fountain is AT89S52 MCU, including the music module, the op amp module, A/D converter module, filter amplifier module, microprocessor control module, relay module and the lantern module. The principle of the system is that the music signal is outputted through two routes, namely, through the op amp circuit, the loudspeaker can receive a part of the signal, and through A/D converter, the single chip can receive the other part of the signal. Then the single chip can control motors, lights and relays, according to the signal. This controller can be easily promoted for its modularized design.Key Words:Music fountain;Controller; Electrical appliances; Relay目 录摘要目次1 绪论11.1 课题背景以及意义11.2 国内外研究现状11.3 课题研究的内容及意义22 总体方案的设计32.1 方案比较32.2 系统简介43 芯片的选择与功能介绍63.1 AT89S52单片机63.2 音频信号放大器83.3 A/D转换芯片93.4 电机驱动L298N103.5 电机的选择与确定113.5.1 步进电机的介绍113.5.2 直流电机的介绍123.5.3 电机的选择134 硬件电路的设计144.1 音乐MP3模块144.2 音乐信号的滤波放大模块154.3 A/D转换电路164.4 运放模块(音频放大)184.5 单片机控制模块194.6电机驱动模块214.7 继电器模块234.8彩灯控制模块245 硬件设计与调试方法255.1 硬件原理图设计环境255.2 硬件调试266 软件程序设计及流程图286.1系统整体软件设计的环境286.2 软件设计流程图286.3 代码编写306.4 软件调试317 结论33致 谢35附 录A36附 录B38IV常州大学本科生毕业设计(论文)1 绪论1.1 课题背景以及意义 随着生活水平提高,人们对于美化生活环境的要求也是越来越高。在公园、广场以及其他一些公共场合的音乐喷泉也越来越多。人工的喷泉在城市广场、公共建筑、园林也是很常见的。它不仅是一种观赏性较高的艺术水景,而且也能够增加周围空气的湿度,减少空气中的尘埃,降低空气的温度。从喷头喷出来的水柱与空气中的水分子撞击后能产生大量的氧负离子,从而对改善环境起着重要的作用。 音乐喷泉作为人文景观和自然景观相结合的产物,已经深受广大人名群众的喜爱。所以有关音乐喷泉的研究也就丰富了起来。 目前,我国大型音乐喷泉技术已经趋于成熟,但是对于小型音乐喷泉的研究较少。控制系统作为整个音乐喷泉的核心部分,其余部分和普通类型的喷泉基本一致。音乐喷泉的控制系统可采用可编程控制器PLC作为核心,也可以采用单片机作为总的控制核心。对于小型音乐喷泉最适合的控制核心还是单片机。其适合于一般城市、小型广场和普通的居民区的小型音乐喷泉,由于其要求控制简单,使用单片机完全可以满足要求,而且成本较低更适合普及,是未来的音乐喷泉发展的必然趋势。 本课题主要研究的是用单片机作为音乐喷泉控制系统的核心,设计出一种控制简单,成本较低而且便于推广的小型音乐喷泉控制系统。本系统以单片机(AT89S52)作为核心处理器,通过MP3模块输出的音乐节奏的不同控制电机的不同转速跟灯光的闪烁,从而实现音乐与喷泉的同步,增加了音乐喷泉的欣赏价值。1.2 国内外研究现状 国外,目前世界上最大的喷泉是由美国Bellagio喷泉制造商WET公司设计而成的,它就是迪拜音乐喷泉。其投资总额达2.18亿美元,总长度为275米,最高喷射高度为150米,其最大喷水量为2.2万加仑,比原世界第一的美国Bellagio喷泉大了25%。同时,该喷泉有6600个灯和50个彩色的投影机。喷泉随着音乐起伏有上千种变化,或婉约或豪放,令人叹为观止,目不暇接。有报道称,在20英里内都能看到迪拜喷泉的灯光。 国内,西安大雁塔位于北广场中轴线上的音乐喷泉,南北横向长达350米,东西纵向宽为52米,最宽处有N 米,呈T字型,它由八级跌水池、百米瀑布水池及前端音乐水池三个区域组成,这三个部分既可以单独分区表演也可以整体表演。音乐喷泉流光溢彩,远远望去,如烟似雾。八级喷泉方阵的喷头有1024个,每个喷头是由一台水泵和变频器独立控制,喷泉共计有水泵1360台,变频器1124台,彩灯3300余盏,喷头2000多只。整个喷泉共有22种国内最新推出的科技含量较高的新颖独立水型。大型激光水幕有20米高,从水中喷出喷火泉有4台,在6米高空充分燃烧低温爆开,这些设计增加了整个喷泉的夺人气魄,取得了独特观赏效果。水下池面地灯、LED光带及岸上电脑灯多光源照明使喷泉融声、光、水、色于一体。 由此可见国内外的音乐喷泉设计均已达到了一个相当高的水平。现今的音乐喷泉应不断取得国内外传统的喷泉技术上新的突破,将喷泉的娱乐观赏性与创新的时代文化、前瞻的艺术创想、浓郁的地方特色有机的结合起来,别具一格,独领风骚,使音乐喷泉可以随音乐的曲调的变动而控制水型的变换从而展现音乐喷泉的美感。1.3 课题研究的内容及意义 本课题主要研究的内容如下:音乐信号由MP3模块产生提供,经过滤波放大模块对音乐信号处理之后,再传输给A/D转换模块,最后由单片机进行总控制。执行部分分为3个部分,第一部分是音乐信号经过运放之后通过喇叭播放,第二部分是通过单片机传输信号给彩灯控制模块执行,最后一部分就是通过单片机输出的PWM波控制电机驱动再控制直流电机。整个设计本着简单,快速,精准的方式实现了音乐喷泉的系统控制。音乐喷泉作为一种独特的人工景观,获得了广大人民的喜爱,不仅使得人们在视觉上得到了享受,而且在音乐背景下,能够激励我们的心智。目前音乐喷泉已经成为一种娱乐产业,具有很高的经济效益和社会效益,研究和设计高水平的音乐喷泉控制技术是非常重要的。2 总体方案的设计2.1 方案比较方案一:采用89S52单片机为主控制芯片的设计方案。本方案的的设计思路是首先对于MP3产生的音乐信号分2路,一路经过滤波放大、A/D转换等一系列操作之后,输入给AT89S52单片机进行控制,最后通过控制电机对喷泉流量的控制以及彩灯的控制,来达到音乐喷泉的效果。另一路通过一个运放电路之后给喇叭,提供给广场音乐。两路信号的同时进行使得声、光、水得到了和谐的控制。本方案是通过对音乐信号的电压进行采集,可以实现音乐,灯光跟喷泉的同步控制,使设计出的音乐喷泉给人以和谐跟美的感受。本方案的设计图如图2.1.1所示。图2.1.1:系统总体硬件框图方案2:基于全数字集成电路音乐喷泉控制器的设计方案。音乐经过峰值检波后,得到和音量大小相关的控制电压,将此控制电压,经过简单的A/D转换变成数字信号后,去控制存储器芯片的地址,该存储器地址对应的数据信号就会输出,输出信号经隔离驱动后就去推动彩灯工作。本方案的设计流程框图如下:图2.1.2:全数字集成电路音乐喷泉设计方案三:基于音乐信号分频段的音乐喷泉控制器的设计方案 本方案先对音乐信号进行分频段,之后再分别进行A/U转换、A/D转换之后将信息传输给单片机,单片机将处理过的信号传输给8255A电机驱动进行驱动步进电机和彩灯控制模块。此方案对于分频段的控制相对比较难实施,精度要求比较高,而且成本较高。图2.1.3:基于信号分频段的设计方案经过三个方案的对比,我选择方案一作为本设计的最终方案。三个方案中方案二的设计只是单独采集音乐信号音量大小的峰值,并没有对音乐信号进行放大处理,并不能很好的实现音乐喷泉的控制,方案三的设计分频段比较复杂,对于频率划分的比较精确,实际操作的时候难度较大,而且方案三选用的步进电机,相对而言的驱动电路复杂,不利于整个设计的推广。方案一的设计不仅能很好的控制音乐喷泉的各个部分的执行,与信息的采集,同时成本较低,便于推广。2.2 系统简介控制系统总体包括8个部分: 1) 音乐MP3模块; 2)音乐信号的滤波放大模块 3)A/D转换电路; 4)运放模块; 5)单片机控制模块; 6)电机驱动模块; 7)继电器模块 8)彩灯控制模块; 本控制器的设计是由主芯片AT89S52通过对音乐信号的采集处理,然后输出给相应的外部设备。由图2.1.1的总体系统框图我们可以看见,本设计是由音乐MP3模块、音乐信号的滤波放大模块、A/D转换电路、运放模块、单片机控制模块、电机驱动模块、继电器模块跟彩灯控制模块等8个模块组成,每个模块都有着其不可缺少的作用。首先, MP3模块产生音乐信号,音乐信号分为两路,一路经滤波放大之后再A/D转换输入到单片机;另一路先经过运放模块之后输出给广场信号(喇叭)。当MP3模块工作输出音乐信号时,单片机芯片跟广场喇叭同时收到音乐信号,单片机通过处理音乐信号传输控制信号给电机驱动,通过电机驱动来控制电机喷头以及彩灯。使得整个控制系统具有捕获音乐,控制喷泉、灯光,等输出控制的功能,同时对各组喷头进行一定时间内的一定规则内的随机轮换的效果。本音乐喷泉控制器实现了喷泉跟着音乐的跌宕起伏从而喷出不同高度的水柱,彩灯跟着音乐节奏的变化呈现出起伏的亮灯效果。很好的展示了音乐喷泉控制系统应该具备的声,光,水的同步控制。3 芯片的选择与功能介绍3.1 AT89S52单片机AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K的系统可编程Flash存储器。该芯片使用的是Atmel公司的非易失性高密度存储器技术来制造的,可以与现在市场上的51产品指令和引脚完全兼容。该芯片上允许程序存储器在系统可编程,同样也适于常规编程器。与此同时,该芯片还拥有8位的CPU和在系统可编程Flash,使得AT89S52芯片成为了市场上比较主流的一款单片机芯片。 该单片机的主要性能如下: * 可以与同类51单片机产品相兼容 * 可编程Flash存储器的大小为8K字节 * 具有1000次的擦写周期 * 静态操作的范围是0Hz到33Hz之间 * 程序存储器的加密方式为三级 * 可编程I/O口接线共有32个 * 具有三个16位计数器/定时器 * 中断源有8个 * 全双工UART串行通道 * 两种工作掉电模式为掉电模式和低功耗空闲 * 中断可在掉电后唤醒 * 具有看门狗定时器 * 具有双数据指针 * 具有掉电标识符 (2)89S52的引脚功能 VCC (40引脚): 电源电压 GND(20引脚): 接地 P0口(P0.0P0.7,3239引脚):P0口是一个8位漏极开路的双向I/O口。作为输出口,每位都能驱动TTL逻辑电平。使P0=1时,引脚则作为高阻抗输入。 当访问的是数据存储器或者外部程序时,P0口也可以被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口(P1.0P1.7,18引脚):P1口是一个具有内部上拉电阻的8位双向I/O 口,p1输出缓冲器能驱动TTL逻辑电平的数量是4个。使P1=1时,内部的上拉电阻把端口拉高,此时该口可以当做输入口。当P1口被用作输入口时,由于内部电路具有电阻的原因被外部拉低的引脚将输出电流。 此外,P1.0和P1.2还可以分别作为定时器/计数器2的外部计数输入和时器/计数器2的触发输入,具体如表1所示。 在flash的编程时,P1口接收低8位地址字节。表3.1.1:P1口引脚复用功能引脚端口功能描述P1.0口时钟输出、定时器、计数器2的外部记数输入P1.1口定时器、计数器2的捕捉、重载出发的信号、方向控制P1.5口系统编程是会被用到P1.6口系统编程时会被用到P1.7口系统编程时会被用到P2口(P2.0P2.7,2128引脚):P2口是拥有内部上拉电阻的8位双向I/O 口,P2输出缓冲器能驱动逻辑电平数量是4个。使P2=1时,内部上拉电阻把端口拉高,此时P2口还可以作为输入口。当P2口作为输入口时,由于内部电路电阻的原因,被外部拉低的引脚将输出电流。 在访问外部程序存储器或用16位地址读取外部数据存储器(如MOVX DPTR)时,P2口送出数据是高八位地址。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的数据。 在flash编程和校验时,P2口也可以接收高8位地址数据和一些控制信号。P3口(P3.0P3.7,1017引脚):P3口是一个具有内部上拉电阻的8位双向I/O 口,p2输出缓冲器能驱动逻辑电平的数量为4个。使P3=1时,内部上拉电阻把端口拉高,此时P3口可以被当做输入口。当P3口被当做输入口时,由于内部电路的电阻被外部拉低的引脚将输出电流。 P3口也作为AT89S52特殊功能口(第二功能)使用,如下表所示。在对Flash编程或程序校验时,P3还接收一些控制数据信号。表3.1.2:P3口引脚复用功能引脚端口第二功能描述P3.0端口串行输入口(RXD)P3.1端口串行输出口(TXD)P3.2端口外部中断0P3.3端口外部中断1P3.4端口定时器0的外部输入P3.5端口定时器1的外部输入P3.6端口WRP3.7端口RDRST(9引脚):作为复位输入口。当输入连续两个机器周期以上高电平时为有效时,就可以实现单片机的复位操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE(30引脚):该引脚是地址锁存控制信号端,在访问外部程序存储器时,该端口用于锁存单片机低8位地址数据。在一般情况下,ALE的固定频率输出脉冲是其晶振1/6,可被外部定时器或时钟使用。然而,在每次访问外部数据存储器时,将跳过一个ALE脉冲。(29引脚):是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。(31引脚):当该引脚为高电平状态时,可以访问程序的内部存储器。当该端口为低电平状态时,不能访问内部存储器,但可以访问外部存储器。XTAL1(19引脚):是振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):是振荡器反相放大器的输入端口。 MCS51共有7种寻址方式,现介绍如下: (1)立即寻址:操作数就写在指令中,和操作码一起放在程序存贮器中。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如MOV A,#20H。 (2)寄存器寻址:操作数放在寄存器中,在指令中直接以寄存器的名来表示操作数地址。如MOV A,R0就属于寄存器寻址,即R0寄存器的内容送到累加器A中。 (3)直接寻址:操作数放在单片机的内部RAM某单元中,在指令中直接写出该单元的地址。如前例的ADD A,70H中的70H。 (4)寄存器间接寻址:操作数放在RAM某个单元中,该单元的地址又放在寄存器R0或R1中。 如果RAM的地址大于256,则该地址存放在16位寄存器DPTR(数据指针)中,此时在寄存器名前加符号来表示这种间接寻址。如MOV A, R0。 (5)变址寻址:指定的变址寄存器的内容与指令中给出的偏移量相加,所得的结果作为操作数的地址。如MOVC A,A+DPTR (6)相对寻址:由程序计数器中的基地址与指令中提供的偏移量相加,得到的为操作数的地址。如SJMP rel。 (7)位寻址:操作数是二进制中的某一位,其位地址出现在指令中。如SETB bitMCS51的指令系统按功能分有:数据传送类、转移指令、算术运算类、逻辑运算类、和十进制指令及一些伪指令共111个。选用此单片机作为本设计的核心单片机主要有下面几个方面的原因:首先,该单片机是我们在学习单片机的时候主要学习的单片机;其次,该单片机是8位的单片机,在功能上完全能满足本设计的要求;最后就是该单片机的价格比较便宜。3.2 音频信号放大器通常MP3产生的音乐信号强度不是很高,所以在对音乐信号进行A/D转换之前需要进行一个信号放大的处理。通过与市场上音频放大芯片的对比,最总本设计采用的音频功率放大器芯片是LM386N-1。LM386N-1是美国一家半导体公司生产的音频放大器,主要应用于低电压供电而且外围元器件使用较少的电路。该音频放大器的电压的增益内置为20,但在1脚跟8脚增加一只外接电阻跟电容,使其可将电压增益为任意值,直至200。它的输入端以地为参考,同时输出端波自动编置到电源电压的一半,在6V的电源电压下,它的静态功耗仅为24W,使得LM386N-1特别适用于电池供电的场合。主要特性:* 静态功耗较低,约为4mA,可用于电池供电的场合。* 工作电压范围宽是4-12V 或者 5-18V。* 外围元器件少。* 电压增益可调的范围是20到200之间。*失真度比较低。该芯片的内部原理图如图3.2.1所示: 图3.2.1:LM386N-1内部电路图 图3.2.2:引脚功能图3.3 A/D转换芯片由于音乐信号是交流模拟量,所以不能直接送入单片机进行处理。考虑到音乐信号比较弱,首先要对其进行音频放大处理,其次再对该音乐信号采用滤波、整流处理;最后由A/D转换电路将其转换成数字信号才传输给单片机控制。对于A/D转换的芯片我选择的是ADC0804。ADC0804是属于连续渐进( Successive Approximation Method)的A/D转换器。它除了有着转换速度快、分辨率高外,还有着价格便宜的优点。其主要的电气特性如下:* 工作电压为+5V,即VCC=+5V。* 模拟输入电压范围:0-5V,即0 Vin 5V* 分辨率是8位,即分辨率为1/256,转换值介于0-255之间。* 当f=640KHz时,A/D转换时间为100us。* 转换误差为1LSB。* 参考电压为2.5V。ADC0804的管脚图如图3.3.1所示: 图3.3.1: ADC0804的芯片管脚该芯片的各个引脚功能如下:*CS:用于芯片选择信号(CS=0时,允许A/D转换)*RD:外部读取转换结果的控制输出信号。RD为高电平状态时,DB0DB7为高阻抗;RD为低电平状态时,转换好的数字数据才会输出。*WR:用来启动转换的控制输入,相当于ADC转换的开始(CS=0时),当WR由高电平转变为低电平状态时,转换器中的数据被清除;当WR由低电平转换为高电平状态时,A/D转换正式开始。*CLK IN,CLK R:分别对应时钟输入和接震荡无件(R,C),频率范围约100KHZ1460KHZ之间,如果使用RC震荡电路则其震荡频率为1*INTR:是中断请求信号输出端,低电平动作。*VIN(+),VIN(-):差动模拟电压输入。输入单端正电压时,VIN(-)接地;而差动输入时,直接加入VIN(+)和VIN(-)。*AGND,DGND:模拟信号以及数字信号的接地。*VREF:辅助参考电压。*DB0DB7:8位的数字输出。*VCC:电源供应以及作为电路的参考电压。3.4 电机驱动L298NL298N是ST公司生产的 一种高压的,大电流的电机驱动。该芯片采用的是15个引脚的封装。它的主要特点如下:*工作电压较高,最高的工作电压可达到46V;*输出电流也较大,瞬间峰值电流可达到3A,持续工作电流为2A;*芯片内部含有两个H桥的全桥式驱动器,可以用来驱动直流电动机或者步进电动机、继电器线圈等感性负载;*该芯片的信号控制采用的是标准逻辑电平;*同时该芯片具有两个使能控制端,在不受输入信号影响的情况下允许或禁止元器件的工作;*有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;*可以外接检测电阻,其作用是将变化量反馈给控制电路。使用L298N芯片驱动电机,既可以驱动接步进电机,也可以驱动直流电机,但本设计驱动的是直流电机,其使用操作比较方便。其引脚如图3.4.1所示:图3.4.1: L298N引脚图由上图可以看出引脚8管脚说明为GND(接地),且它与L298N芯片的散热片紧密靠在一起。由于该芯片的工作电流比较大,所以芯片产生的热量也比较多,所以在该芯片的散热片上连接一块铝合金片,以增强它的散热效果。该芯片的一些主要参数如下:(1) 逻辑部分输入电压为67V(2) 驱动部分输入电压为4.846V(3) 逻辑部分工作电流小于等于36mA(4) 驱动部分工作电流小于等于2A(5) 最大耗散功率为25W(6) 控制信号输入电平的范围:高电平为2.3VVinVss,低电平为-0.3V1.5V(7) 工作温度的范围是-25130(8)双路大功率H桥驱得驱动形式3.5 电机的选择与确定3.5.1 步进电机的介绍步进电机是一种开环控制元件,它将电脉冲信号转变为角位移或者线位移。在电机非超载的情况下,电机的转速以及位置的变化只取决于脉冲信号的脉冲数和频率,而不受负载变化所带来的影响,也就是说只要给电机加一个脉冲信号,电机就能转过一个角度。由于该线性关系的存在,再加上步进电机只有周期性的误差而没有累积误差等特点,使步进电机得在速度、位置等控制领域得到了广泛的应用。步进电机控制原理:它将外部接收的脉冲信号转变成角位移,也就是说只要给步进电机一个脉冲信号,它就转动一个角度,因此步进电机适合单片机的控制。目前步进电机有三种分别是反应式步进电机、混合式步进电机和永磁式步进电机。步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。3.5.2 直流电机的介绍直流电机是一种旋转电机,它能够将直流电能跟机械能相互转换,它具有良好的调速特性,其调速的效果是平滑、方便、调速的范围也比较广;同时直流电机也具有很好过载能力,能承受频繁的负载冲击;它能实现无级快速启动、制动和反转,以及能满足各种自动化设计的要求。直流电机的PWM调速原理:PWM控制是对脉冲宽度进行调制的技术,即通过对一系列脉冲的宽度来进行控制,从而有效的获得所需要的波形。基于PWM控制的调速电路相当于把“直流电压”切割成一系列脉冲,通过改变这些脉冲的占空比来获得所需要的输出电压。在PWM驱动控制的调速控制中,是通过改变电机电枢电压的导通时间与导通周期的比值(即占空比)来控制直流电机的转速。如图3.5.1所示,在脉冲的作用下,按一定的频率来接通和断开电源,电机的速度就能得到很好的控制。当电机通电的时间增加时,电机的转速就会加快;反之,当电机的通电时间减少时,电机的转速就会减慢。设计时只要按照一定的规律,改变一个周期内电机“导通”和“断开”的时间比例即可实现电机速度的控制。由图3.5.1可以很形象的看出电枢电压与平均电压之间的关系。 图3.5.1:电枢电压“占空比”与平均电压的关系3.5.3 电机的选择通过对于步进电机跟直流电机的对比,可以发现直流电机相对于步进电机具有以下优点:*直流电机的调速性能好;*直流电机能承受频繁的负载冲击,同时直流电机的过载能力很强;*直流电机能够实现频繁快速制动效果而步进电机相对于直流电机的最大的优点就是对于位置的控制,即可以控制电机转过的角度。但是对于音乐喷泉控制器来说,并不需要特别高的位置控制。由于音乐信号时经处理之后再有单片机输出控制信号给驱动电路来驱动电机的,所以一定范围内的误差是可以的,而本设计还需要能够快速反应当前信号状态,同时从价格上以及驱动电路的复杂程度来考虑,直流电机更加有优势。所以最终采用小型直流电机作为本系统的电机。4 硬件电路的设计整个电路的设计总共包含8个模块,分别是:音乐MP3模块(即信号产生模块)、音乐信号的滤波放大模块 、A/D转换电路、运放模块、单片机控制模块、电机驱动模块、继电器模块和彩灯控制模块。整个电路的设计本着模块化设计,更能够方便细化每个模块的功能,同时也方便出现问题之后能够快速的找出问题的出处以及问题的解决办法。4.1 音乐MP3模块 该设计的MP3模块是音乐喷泉的信号产生模块。如图4.1.1所示: 图4.1:音乐MP3模块首先该MP3模块体积小、使用简单、灵活、用处广泛的一款高保真放音模块。供电电压范围比较宽,适用于各种场合,同时具有可以一键对应一首歌曲直接播放(最多8首),也可以单键触发循环播放,32M到1G的储存空间对于本设计的音乐产生模块完全适合。同时该模块的使用比较方便,适合简单的单片机设计。该模块本设计所用到的引脚功能如下:P1:更换目录 P2:快退10首P3:快进10首 P4:音量减小P5:音量增大 P6:停止播放P7:下一首 P8:上一首p9:音量减 P10:音量加p14:暂停/播放 P17:右声道音频输出P18:左声道音频输出 P19:电源地P20:电源+音乐信号经p17和p18口分别输出给音频放大模块跟滤波放大模块。此模块的功能和普通MP3一样,把管脚对地接一个按键,即可使用。PL(播放/暂停键)的使用方法是把PL对地接一个按键,按一下,模块开始全部歌曲循环播放直到按STOP键或者断电为止,播放过程中如果按PL键,则暂停播放,暂停时按PL键,则恢复播放。播放顺序为:目录1的第1首一直到目录1的最后一首,然后播放目录2的第1首,依次循环播放。使用快进10首或快退10首的功能时,系统会自动计算并自动跳转目录。如当前正在播放目录1的倒数第5首,若此时按快进10首键,则系统自动跳转到目录2的第5首开始播放。P0为更换目录键,假设当前正在播放目录1中的歌曲,按下P0后,系统变更当前目录为目录2,并自动开始播放该目录的第1首歌曲。该模块的歌曲是通过将歌曲存储在SD卡里面,在通过此模块读出来的。4.2 音乐信号的滤波放大模块音乐信号的滤波放大模块是整个音乐喷泉控制系统对信号的处理模块。这个模块的放大部分跟运放模块一样,都是用的LM386N-1这个芯片对音乐信号进行功率放大处理。处理的信号进过一个RC-型滤波电路带通滤波之后起到了带通滤波的作用,最后进行一个阻低频的处理使得整个音乐信号得到了充分的处理,最终输出的是正电压信号。电路图连接如图4.2.1所示: 图4.2.1: 滤波放大模块该电路的前半部分是由主芯片LM386N-1构成的音频信号放大电路。图中1口和8口有电容电阻串联来控制电路的放大倍数,本设计的放大倍数是50倍。第3口是音乐信号的输入端,进过芯片内部放大后从第5口输出之后接滤波电路。由图的第二个部分可以看出该滤波电路是RC滤波电路。图中电阻R11对于交流、直流都具有降压的作用,但是它与电容串联、并联形成图中电路之后,就是脉动电压的交流分量大部分分在了电阻两端,较小的部分分在了负载上,这样就起到了一个滤波的效果。图中R11跟C1越大,电路的滤波效果就越好。接下来就是对滤波后的信号进行加直流、整流的处理。该部分的PCB图如图4.2.2所示。图4.2.2:滤波放大模块PCB4.3 A/D转换电路A/D转换模块是本设计的核心模块之一。因为MP3产生的音乐信号如果直接输入给单片机也是可以的,但是精度不是很高。将音乐信号经过一个A/D转换之后再输给单片机这样能更加准确的表达音乐信号所包含的信息。A/D模块如图4.3.1所示:图4.3.1:A/D转换电路 这个模块我用的是ADC0809CN这个芯片,该芯片是8位COMS依次逼近型的A/D转换器。通过该芯片采集前面整流放大处理过的电压信号,处理之后再送给单片机进行处理。首先A/D转换芯片的CS、RD、WR、INTR口分别接89S52单片机的P3.0口、P3.1口、P3.2口,P3.3口,这四个端口共同控制A/D转换的启动与停止。当CS=0时,也就是CS口是低电平时,允许A/D转换,当WR口由低电平跳转到高电平时,A/D转换开始,当INTR口为高电平时,且CS口也为高电平时停止A/D转换。图中A/D芯片的CLK IN跟CLK OUT口构成了A/D转换芯片的振荡电路,且有2个1K的电阻使其参考电压为2.5V。DB0口到DB7口是A/D转换的数据输出口。图中IN+口是信号的输入端,图中是由一个电阻跟一个滑动变阻器代替信号的输入,方便对A/D转换进行调试。A/D转换的PCB如图4.3.2所示。图4.3.2:A/D转换的PCB4.4 运放模块(音频放大) 运放模块是将MP3模块产生的音乐信号经过一个运放通过小喇叭输出。由于MP3模块产生的音乐信号强度不是很大,如果直接通给喇叭或者其他外部广场信号的话,我们通过耳朵并不能听到音乐信号,所以需要经过一个运放之后给喇叭我们才能在喇叭听到MP3模块产生的音乐。运放模块如图4.4.1所示: 图4.4.1:运放模块该运放模块用的是芯片LM386N-1,由图可以看出放大芯片的3口是音乐信号的输入端,1口跟8口是控制放大倍数的端口。本设计采用的放大倍数是50倍,由于可以看出由一个1.2K和一个10uf的电容组成即可。第7口是一个旁路,滤掉一些杂波。第5口是该芯片的音乐信号输出口,该端口连接的是电容跟电阻组成的滤波电路。图中C18电容的较大起到了阻低频的效果,另一路的电容C17由于其阻值较小起到了一个低通滤波的效果。最后经过处理的音乐信号提供给喇叭外放。4.5 单片机控制模块 音乐喷泉控制器的设计涉及到通过单片机采集音乐信号,来调节I/O口的输出来控制彩灯以及电机的转动,从而达到声、光、水的完美控制。作为整个设计核心,我选用的是AT89S52单片机的最小系统来实现的。该系统如图4.5.1所示: 图4.5.1: AT89S52单片机的最小系统该图中分别有AT89S52单片机,复位电路,时钟电路组成。其中复位电路是用来确定单片机的起始状态,完成单片机的启动过程。单片机在接通电源时产生复位信号,完成单片机的启动,同时手动按键也能产生复位信号完成单片机的启动。复位电路还有一个比较重要的用途就是,在单片机工作出现混乱或者“死机”时,使用手动手段可以使单片机“重启”。这样可以便于我们更好的控制和保护单片机以及各个芯片。复位电路如图4.5.2所示:图4.5.2:AT89S52的复位电路时钟电路是单片机的心脏,它控制着单片机工作的节奏,决定单片机的工作速度。时钟电路也就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的速度。AT89S52的时钟频率范围是:0-33MHz。图4.5.3为AT89S52单片机的时钟电路。 图4.5.3:AT89S52的时钟电路整个单片机是本设计的核心控制部分。单片机的P0口用来连接A/D转换的数据输出线,P1口本设计中没有使用,P2口用来接彩灯电路,P3口是整个系统的控制位以及电机口和继电器口。首先单片通过P3口控制A/D转7换的开启以及数据的接收,将接收到的数据按照一定的要求输出控制位,从而控制整个系统的运行。整个单片机最小系统的PCB如图4.5.4所示。图4.5.4:单片机最小系统PCB4.6电机驱动模块 对于驱动电路的芯片的选择,我选择了L298N。该芯片具有体积小,控制方便的特点,是一种专用的驱动电路,属于H桥集成电路,与L293D的差别是其输出电流增大,功率越强,其输出电流为2A,最高电流为4A,最高工作电压为50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相连,从而很方便的接受单片机的控制。对于电机的调速,我们采用PWM的调速方法。其原理就是开关管在一个周期内导体的时间为t,周期为T,则电机两端的平均电压U=Vcc*(t/T)=aVcc。其中,a=t/t(占空比),Vcc是电源电压。电机的转速与电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空比越大,电机转的越快。硬件原理图如图4.6.1所示: 图4.6.1:电机驱动原理图在硬件电路的连接上,我们将单片机的P3.7口连接到LN298的IN1口上,IN2口接地。通过改变P3.7口上的高低电平的占空比以控制电机的转速。电机驱动模块的PCB如图4.6.2所示:图4.6.2:电机驱动PCB4.7 继电器模块该模块的设计主要针对的是当整个系统的控制位输出的控制量达到最大时,也就是彩灯全部被点亮,电机转速也达到最快时,这就说明系统需要添加新的喷头,这里用继电器代替。如图4.7.1所示。图4.7.1:继电器模块 该模块主要的使用的是三极管跟继电器。这里三极管充当的是开关的作用,而继电器则是作为信号相应端。由图可以看出三极管的基极这一端连接的单片机最小系统的P3.6口。当系统需要继电器工作时,单片机P3.6口输出为高电平,这时使得三极管Q1导通从而使得继电器工作。这样就能使得单片能够很好的控制继电器的开关。4.8彩灯控制模块彩灯控制模块,采用的是直接通过52单片机直接控制的。发光二极管一端接电源,另一端接一个保护电阻再直接接到单片机的P0口。如图4.8.1所示: 图4.8.1:彩灯控制电路单片机把MP3模块产生的音乐信号经过滤波放大时候,再通过A/D转换之后的信号给单片处理之后,按照我们需要达到的效果,合理的输出,这样就能达到一个很好的效果。如果要是其中一个灯亮,只要控制相应的P0口为低电平即可,这样既能简单的控制彩灯的亮灭,同时也简化了编程的难度。5 硬件设计与调试方法5.1 硬件原理图设计环境 本设计的原理图使用的是Altium Designer。Altium Designer是一个完整的电子产品开发环境,它提供了统一电子产品开发环境,涵盖了电子产品发展过程中的各个方面包括:* 系统的设计与输入;* 物理PCB设计;* FPGA硬件设计* 嵌入式软件开发* 混合信号电路仿真* 信号完整性分析* PCB制作* FPGA系统的设计与调试上述的单一的设计领域统一集中在Altium Designer的设计开发集成平台上。它不仅包含了99se与Protel的版本功能,还增加了改进许多功能。在PCB部分,除了Protel中的通道复制,阻抗控制布线功能,自动布线器等功能以外还实现了PCB与FPGA之间的全面集成,从而实现自动引脚优化和非凡的布线效果。还提高了对高密度封装的交互布线功能,总布线功能,器件精确移动,快速铺铜等功能。其次在原理图部分,可以将一些不同的对象拷贝到原理图当中。比如一些网络标号,一页图纸的BOM表,都可以拷贝粘贴到原理图当中。在信号仿真部分,提供了完善的混合信号仿真,在对XSPICE标准的支持之外,还支持对Pspice模型和电路的仿真。对FPGA设计提供了丰富的IP内核,包括各种处理器、存储器、外设、接口、以及虚拟仪器。图5.1.1: Altium Designer的工作界面5.2 硬件调试 在硬件设计的过程中,我采用的是模块设计的方法,先进行每个模块的设计与调试,等每个模块的功能都基本实现之后再将所有的模块整合连接起来形成整个设计。具体设计的时候,关于整个系统的电路连接方面并没有出现太多的问题,只是出现了一些细节性的错误,这些错误后来细心检查的时候很快就进行了修正。主要的几个大的问题还是在模块电路工作不正常所引起的问题。下面介绍我遇到的几个问题以及解决办法:1.LM386运放模块接喇叭不出声原因及解决办法:经过整个模块的多次调试发现,刚开始信号输入运放时接有电阻,使信号很弱,最后将电阻调为零,问题解决。2.RC滤波电路,刚开始滤波效果不好。原因及解决办法:用电位器代替电阻,通过调节电位器,最终使效果达到设计需要。3.电机驱动模块,一开始电机和单片机一起供电,PWM波调节电机转速时,转速改变不明显。原因及解决办法:经过仔细研究发现,是电机供电不足的原因,一开始设计的时候本着简便的设想,电机跟单片机一起供电,PWM波调节电机转速时变化不是很明显,所以最后电机采用外部电源供电。4.A/D转换模块调试,A/D芯片烧坏原因及解决办法:在调试A/D转换电路的时候,由于A/D转换芯片的电源正负极接反导致整个A/D芯片被烧坏,只能从新更换A/D转换芯片进行调试。通过整个硬件的调试过程,我发现了许多的在设计阶段不会碰到的问题。比如电源电路正负极接反而导致整个调试心血付诸东流。同时我还发现实际操作与理论设计中有很大的出入,在理论设计的时候,我们并没有把所有的干扰都考虑进去。一开始的时候,我就范过这个错误,没注意到干扰而导致模块功能实现不了。6 软件程序设计及流程图6.1系统整体软件设计的环境本系统的软件设计实在Keil C51软件环境下实现的。Keil C51是美国Keil Software公司出品的基于C语言的单片机软件开发系统。它与汇编相比,C语言在功能上、结构上、可读性、可维护性上有明显的优势,因而很容易实施。如果用过汇编语言后再使用C来开发,会有更加深刻的体会。Keil C51软件有着丰富的库函数和很强的集成开发调试工具。另外更重要的一点, Keil C51生成目标代码的效率相对于汇编来说是非常效率的,而且很容易被理解。在开发大型软件时更能体现高级语言的优势。Keil C51的优点有:1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而很容易实现。用过汇编语言后再使用C来开发,会更深刻的体会。同时Keil C51软件拥有丰富的库函数和集成开发调试工具。6.2 软件设计流程图N图6.2.1系统软件设计原理图由上图可以看出整个软件设计由刚开始启动A/D转换程序、到读A/D转换的数据(电压值)、再到对电压数据进行分析、最后在输出到控制位,控制电机以及彩灯的状态。整个数据分析有五个选择:当电压V0.56时:彩灯1号灯亮,电机的速度设置为1;当电压0.56V0.60时:彩灯5号灯亮,电机转速设置为2;当电压0.60V0.66时:彩灯6-8号灯亮,电机转速设置为3;当电压0.66V0.70时: 彩灯1-4号灯亮,电机转速设置为4;当电压V0.70时: 彩灯1-8号灯亮,电机转速设置为5,同时打开电机2(硬件设计用继电器代替)。整个软件的设计整个流程就如上面所说。6.3 代码编写 代码编写的时候我采用的是模块设计。首先需要先确定单片机的主要工作内容,经过分析我分为以下4个部分:*启动A/D转换程序*读取A/D数据*PWM波的调节*延时程序整个代码编写需要实现首先需要开启A/D的采集,然后对采集的到的数据进行一个系统的分析,从图6.2.1中可以清晰的看到,分析完数据信息之后对应相应的数据输出,从而达到系统功能的实现。下面主要介绍A/D转换的数据判断与电机速度控制的编码设计。1.单片机各个口功能定义这个部分介绍了单片机各个接口的定义,其中注视详细说明了每个口在整个系统中的作用。#define ad0_7 P1 /AD数据口sbit cs=P30; /芯片选择信号,控制芯片的启动和结果读取,低电平有效sbit rd=P31; /读数据控制,低电平有效sbit wr=P32; /AD转换起动控制,上升沿有效sbit intr=P33; /AD转换结束输出低电平sbit pwm=P37; /pwm输出口sbit key=P36; /继电器控制口2.A/D转换子程序A/D转换子程序是通过CS、WR的信号控制来起到一个A/D转换启动的效果。void start_ad(void) cs=0; /允许进行A/D转换 wr=0;_nop_();wr=1; /WR由低变高时,AD开始转换 while(intr); /查询转换结束产生INTR 信号(低电平有效) cs=1; /停止AD转换3.A/D读取数据首先先使单片机CS=0,RD=0,这样单片机就进入的读取数据的模式,然后把读取到的数据存储在P2口里面,令CS=1,RD=1停止A/D数据读取。程序如下:read_ad() ad0_7=0xff;cs=0; /允许读rd=0; /读取转换数据结果数
展开阅读全文