基于51单片机AT89C51的小型音乐喷泉控制系统设计

简介: 基于51单片机AT89C51的小型音乐喷泉控制系统设计

根据目前音乐喷泉的发展现状,介绍了一个以AT89C51单片机为核心的小型音乐喷泉控制系统。给出了一个简洁的单片机控制电路,分析了输出地址,描述了不同类型的输出电路和输入电路;介绍了从特定构造的喷池中获得决定喷池动作的喷池数据的原理;给出了主程序框图和看门狗子程序。采用程序控制来控制花型。音频信号还影响灯光色彩和灯光光线明暗的变化。从而使灯光色彩、灯光的闪烁和喷泉水姿随音乐节奏而变化。




第1章 绪 论

(详见下载)


第2章 音乐喷泉控制系统硬件设计

2.1 控制系统硬件总体设计方案

该音乐喷泉控制系统的总体结构如图2.1所示,由音乐输入系统、数模转换系统、单片机控制系统和输出控制系统等组成。

db15fd133cd1846fcf693ef53c26ca6.png

2.2音乐信号的采集


前面已经介绍过,本文的研究针对的是采用外部音源的喷泉系统,因此在对音乐信号进行特征识别前首先要完成对模拟音乐信号的采集。音乐信号的采集主要包括音频放大和 A/D 转换两个过程,下面分别进行分析。


2.2.1 音频放大电路的设计


外部音源信号的幅度一般较弱,因此必须要对原信号进行放大处理后才能送入A/D 转换器。本文选择了 LM386 芯片设计音频放大电路。LM386 是美国国家半导体公司(NS)推出的系列功率放大集成电路的一种,LM386 具有功耗低、工作电压范围宽、所需外围元件少等特点,在电子设备的音频放大电路设计中应用非常广泛,它使用了 10 只晶体管构成了输入级、电压增益和电流驱动级。其中 T1~T6 组成 PNP 型复合差分放大器,T5、T6 为镜像恒流源,作为 T3、T4 的有源负载,使输入级有稳定的增益。电压增益级由接成共发射极状态的 T7 承担,其负载也使用了恒流源,整个集成功放的开环增益主要由该级决定。T8、T9 复合为一个 PNP 管,和 T10 共同组成互补对称射极输出电路,以供给负载以足够的电流。D1、D2 提供了 T8、T9、T10 所需的偏置,使末级偏置在甲乙类状态。R5~R7 构成内部反馈环路。从图 3.2.1 可以看出,LM386 采用双列 8 脚封装结构,它的工作电压范围为 4~12V,静态电流 4mA,最大输出功率 660mW,最大电压增益 46dB,增益带宽 300kHz,谐波失真 0.2%。

c5e541f6c7bab8b5f07b9f83ec6f7ab.png

在 LM386 的 DataSheet 上,提供了两种典型放大电路的设计方案。一种是在LM386 的 1 脚和 8 脚之间不接其他元件,此时放大电路的增益仅由内部电阻R5~R7决定,为 20 倍数(26dB),这种方式外部电路元件最少,也最为经济。另一种通过在 1 脚和 8 脚之间串接不同的阻容元件,改变放大电路的交流反馈量,从而改变放大电路的闭环增益。音乐信号的放大采集如图 2.2.2 所示。外部音源(声卡、CD 机等)的模拟音乐信号分左、右声道分别进入放大电路,经过信号放大后,得到幅值放大后的音频信号。从图 3.2.2 可以看出放大电路的具体设计。在 LM386 的 1 脚和 8 脚之间串接一个 10 微法的电容 C4,使内部电阻 R6 被交流旁路,放大电路的增益能达到最大值,200 倍数(46dB)。再对音频放大电路的外围电路进行设计,电路中电容 C1、C6 作为隔直电容,电位器 P1 用于调节音量的大小,元件 R2、C5 有助于旁路高频噪音和改善输出的音质。电容 C3 作为去耦电容,一方面是本集成电路的蓄能电容,另一方面旁路掉该器件的高频噪声。电容 C2 则是作为旁路电容,将信号的中高频噪音旁路到地。经过放大电路的音频信号就送入 A/D 转换器进行采样,这里 A/D转换器要设置为双极性,即能接收负信号。

c46b7cd3f6ca981af37cebd7f19a2db.png

2.2.2 采样定理

采样是指用一较高频率的开关脉冲对模拟信号进行取样,取出脉冲到来时刻所对应的模拟信号的幅度,这样就可以得到一连串幅度变化的离散脉冲。用这些离散脉冲序列代替原来时间上连续的信号,也就是在时间上将模拟信号离散化。

如图 3.2.2 所示,在对音乐信号进行放大处理后,就要通过 A/D 转换将模拟信号采集进计算机,这就是音乐信号的采样。我们在对一个连续的音乐信号进行采样时,为了使采样后的样本序列能够包含足够的信息以使其能够较正确地重现原来的模拟信号,在采样时应当使采样频率满足采样定理的要求。采样定理的描述为“对一个模拟信号进行离散化时,只要满足采样频率fs 大于或等于被采样信号的最高频率fm的2 倍,就可以通过理想的低通滤波器,从样本值序列信号中无失真地恢复出原始模拟信号”,这里的fm称为香农频率,这个采样定理又称为香农采样定理。实际应用中为了较好的防止频谱混叠失真,采样频率一般要稍大于信号最高频率的 2 倍。比如乐曲的音域频段如果在 50Hz~4000Hz 内,就要将 A/D 转换器的采样频率选定为 10kHz,才能满足香农采样定理的要求。


2.3 单片机电路

单片机要采集音乐信号,并据此调节I/O口的输出来控制水泵和彩灯。主芯片选用AT89C51单片机。AT89C51单片机是一个低功耗,高性能的51内核的CMOS 8位单片机,片内含8K空间的可反复擦写1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个I/O口,1个看门狗定时器,3个16位可编程定时器,具有ISP功能,能够满足设计要求。使用简单且价格非常低廉。故系统的主控制器采用此方案。

924c91cdf7ffc39b027dd49bbff0dde.png

2.3.1 单片机的概述

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存取器(RAM),器件采用ATMEL公司的ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。AT89C51提供一下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个双全工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。


单片机有四个数据输出端口,P0口、P1口、P2口、P3口。由于P3口还有许多特殊功能,如读写控制、串行通信、外部中断等功能,所以P3口不用作数据输入输出端口。P0口具有很强的带负载的能力,除了用作地址总线低八位以外,还兼作访问外接扩展程序内存时数据总线以及与A/D转换器ADC0809L连接的资料线。P1口、P2口带负载能力相对比教弱,而P2口需要用作访问外接内存的高八位地址线,因此P2口也不作为数据输入输出口,剩下的P1口作为资料输出口。


2.3.2 时钟电路的设计

AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器,如图2—13所示:

755cfef19c0e8c6154ce7cf02a4e8c0.png

2.4 AD转换电路

输入的电压为交流模拟量,不能直接送入单片机进行处理。因此首先采用全桥整流,滤波。使其成为直流信号,再采用全桥整流,滤波。使其成为直流信号,再采用了ADC电路。其中AD芯片为ADC0832。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32 s,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性强。独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。串行通信节约单片机I/O资源。

ADC0809各引脚功能:ADC0809采用双列直插式封装,共有28条引脚。

(1)IN0—IN7(8条) IN0—IN7为8路模拟电压输入线,用于输入被转换的模拟电压;

(2)地址输入和控制(4条) ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,ADDA、ADDB和ADDC三条地址线上的地址信号得以锁存,经译码后控制8路模拟开关工作,ADDA、ADDB和ADDC 为地址输入线,用于选择IN0—IN7上的哪一路模拟电压送给比较器进行A/D转换。

(3)数字量输出及控制线(11条)“START”为“启动脉冲”输入线,该线上的正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。EOC为转换结束输出线,该线上的高电平表示A/D转换已结束,数字量已锁入“三态输出锁存器”。OE为“输出允许”线。

(4)电源线及其他(5条) CLOCK为时钟输入线,用于为ADC0809提供逐次比较所需的时钟脉冲序列。VCC为+5电源输入线,GND为地线。VREF(+)和VREF(-)为参考电压输入线,用于给电阻阶梯网络供给标准电压。VREF(+)常与 VCC 相连VREF(-)常接地或负电源电压。


2.4.1 ADC0809与单片机89C51的连接

ADC0809的时钟信号来自单片机89C51的ALE信号,89C51采用12MHz时钟频率,ALE为2MHz,经四分频后为500KHz作为ADC0809的时钟频率。用P2.7控制A/D转换的启动与转换结束后数字量的读取。ADC0809的地址锁存允许管脚(ALE)H和启动管脚(START)相连。由P2.7和WR信号经或非门提供的信号使P0.2—P0.0提供的3位通道地址送入ADC0809进行锁存,用以选取通道号。转换结束信号EOC作为查询信号。具体接口电路如图2-4所示。

5519dc4b67682f50dda399d5cbe4a46.png

2.4.2输入电路

在这里,输入电路是指能对乐曲启停、乐曲节奏和声音强弱等进行检测并将检到的信号以电平、脉冲或数字形式送至单片机的电路。为说明简单计,这里仅介绍能反映乐曲启停的奏曲信号电路。因为有了它,音乐已不再仅是背景音乐,音乐已用来控制整个喷池的动作与否,因而已达到了音乐喷泉的最基本要求。奏曲信号电路的框图如图2.4.2所示。左右两路立体声信号经混合后送限幅放大电路放大,这样即使是极弱的乐曲信号也能有足够强度媳信号输出。整流滤波电路用以将信号转为单向信号。电压比较器用以将大于基准电压的单向信号变换成低电平有效的奏曲信号由之端输出。通过调整基准电压,可使电路既不受干扰的影响又灵敏度最大。奏曲信号电路的输出经R3送至光耦4N35在单片机P1.5引脚产生一低电平信号。

20c76f78cca86194cfe71e5299f7913.png

2.5潜水泵调速硬件方案设计(详见下载)


2.6灯光硬件方案设计(详见下载)


2.7解决系统时间滞后硬件电路设计

由于单片机采集数据并处理需要一定的时间,加上电机响应和水柱显示也需要一定的时间。电机由一种转速到另一种转速的响应时间可以查电机参数得到,电动机的响应时间为0.04S,单片机采集处理数据程序约为100句,约为0.6ms,水柱的显示延时可以通过水闸效应计算出来,经计算总延时约为0.2S。提出两种解决方案。

方案一:采用预处理,即把要控制的音乐元素提前编辑好,提前控制。

方案二:采用把音乐延时播放,即在音乐源与音响间加延时电路,调节参数,使音乐与水柱的变化同步。

音乐元素提前预处理一般使用在工控机等数字处理能力非常强的控制系统中,使用单片机一般实现不了这个预处理目标。因此采用延时电路[6]把音乐延时播放,选择方案二。


第3章 喷泉控制系统软件设计

程序采用模块化结构,所有用到的常数或数组都用EQU或DATA或DB伪指令定义与命名,以使程序易于修改、调试和升级。本系统将TO溢出中断用于软件看门狗。


3.1喷池数据

喷池数据是用以对喷池内的水泵、电磁阀和彩灯等进行开与关控制的数据。一组可循环使用的这种数据,就决定了喷泉和彩灯的一个特定的变化形态。这组喷池数据可称为花样数据。对一个特定构造的喷池,这种花样数据可编写出很多。下面以图3.1为例说明花样数据的编排方法。假设希望外圈喷头每隔一定时间顺次增喷2个喷头,且从2个经4步顺时针增至8个后,再顺次以同样的方向同样的速度每次减喷2个喷头,即从8个喷头经4步减至0。以后不断按上述规律循环变化。在这期间,里圈和中心喷头一直不喷。在不考虑其它控制的情况下,图4.1喷池只需2个输出寄存器,其各位控制喷头定义如下:

8799a885d354d213e2ed82bf3cbbfb7.png

以上各位若为1时相应的喷头喷水,为0时不喷水,则外圈喷头数据应为:(详见下载)


若该花样数据定义为HYSJ01则数据定义如下:(详见下载)


每次将花样数据输出时都是顺次取一列输出的,且可循环取用。显然这样的花样数据可以编不少,还可将两个以上的数据搭配起来,组成新的更复杂一些的花样数据。


3.2主程序框图

程序重新设置后,进入0000H开始的主程序,其流程图如图3.2所示。可以看出:P1.4上的开关K决定是否测试输出通道;乐曲是否演奏决定了喷池是否有动作,即P1.5的电平;拔码开关的设定值决定了延时多少倍的0.1秒时间,即喷池动作改变的时间间隔:奏曲每停一次(大多数乐曲奏曲中间不会停),下次再奏曲就换一组花样数据,若用完了最后一组,以后就从头再取。也就是多个乐曲依次轮流循环使用编制好的喷池花样数据。

ec60de1adf946e27ec0a38e43da4c3d.png

3.3 控制潜水泵软件设计模块(详见下载)

3.4控制电磁阀软件设计模块(详见下载)

3.5 歌曲存储模块(详见下载)

3.6灯光控制模块

LC182是音频调制彩灯控制专用芯片,其内部分配器频率的高低受音频信号大小的调制,特别适用于声光音响控制场合,可直接驱动驱动众多发光二极管闪光,也可驱动交流彩色电灯作循环闪光。LC182为四路驱动输出。他们的内部均有信号整流电路。压控振荡器,脉冲分配器。在本系统中,单片机便开启LC182时,LC182四路输出依次变为高电平,其循环频率约为0.5~1HZ,一有音乐信号的输入,彩灯的循环频率随音频信号的大小而变化,其最高循环频率为15HZ。


LUMP:
    MOV   DPTR,  #0EF00H  ;      初始化2#8155,PA口为基本输出口
                                    PB口为基本输出口,PC口输入口
     MOV   A,     #1H
     MOVX @DPTR, A
       INC   DPTR
     INC   DPTR;                 指向2#8155PC口
     MOV  A,   #01H
     MOVX @DPTR, A
     RET


3.7看门狗子程序(详见下载)


3.8实验仿真

仿真是利用计算机对实际额屋里模型或数学模型进行试验(虚拟仪器的虚拟实验),通过这样的模型试验来随一个实际系统的性能和工作状态进行分析和研究。

近年来计算机仿真技术取得了快速的发展,同时推动了单片机仿真技术的进步。目前,用于单片机仿真的工具很多,有些主要用于软件仿真,侧重于算法的验证;有些用于硬件仿真的工具对CPU的仿真能力有限,至于对CPU外围的硬件仿真更是无能为力。Proteus在单片机CPU和外围器件方面表现出卓越的仿真能力使其成为目前最好的仿真工具之一。

Proteus的显著特点如下:

(1)全部满足单片机软件仿真系统的标准,并在同类产品中有明显优势;

(2)具有模拟电路仿真、数字电路仿真、单片机及外围电路组成的系统仿真的功能;

(3)目前支持的单片机类型有:68000系列、51系列、AAVR系列等;

(4)支持大量的存储器和外围设备。

由于实验室条件原因本设计仿真部分不能在实验室完成,因此仅在此将使用Proteus来实现本设计仿真的步骤进行描述如下:

第一步:打开Proteus 6 Professional绘图界面。

第二步:添加所需元件并连接电路图。本设计所需元件有:AT89C51、LED灯、水泵、电磁阀、扬声器等。

第三步:添加仿真文件。

第四步:单击开始图标,开始仿真。此时喷泉开始运行,根据运行状态进行源代码的调试。


(附录及其它详见下载)


相关文章
|
1月前
|
传感器 C语言 智能硬件
基于单片机的温度控制系统
基于单片机的温度控制系统
31 0
|
1月前
|
IDE 开发工具
基于单片机的简易步进电机控制系统
基于单片机的简易步进电机控制系统
20 0
|
3月前
|
传感器 人工智能 前端开发
单片机毕业设计|农家菜园自动灌溉控制系统设计
单片机毕业设计|农家菜园自动灌溉控制系统设计
|
8月前
|
传感器 芯片
【单片机课程设计】环境监测控制系统
【单片机课程设计】环境监测控制系统
94 0
|
4月前
|
传感器 人工智能 前端开发
单片机毕业设计|农家菜园自动灌溉控制系统设计
本系统是基于单片机的农家菜园自动灌溉控制系统设计,以51单片机作为控制核心,实现菜园自动灌溉及智能控制系统的设计,能够实现对土壤温湿度以及光照强度的检测,并且根据设置的阈值及时间进行自动检测与灌溉。
|
8月前
|
Java Android开发
【单片机课程设计】温室大棚控制系统
【单片机课程设计】温室大棚控制系统
97 0
|
10月前
|
传感器
基于 51 单片机室内灯光控制系统
基于 51 单片机室内灯光控制系统
269 0
|
C语言
蓝桥杯之单片机学习(二十六)——模拟风扇控制系统(附题目和完整代码)
蓝桥杯之单片机学习(二十六)——模拟风扇控制系统(附题目和完整代码)
284 0
蓝桥杯之单片机学习(二十六)——模拟风扇控制系统(附题目和完整代码)
|
存储 安全 网络性能优化
基于单片机的交通灯控制系统设计
基于单片机的交通灯控制系统设计
331 0
基于单片机的交通灯控制系统设计
|
传感器 缓存 监控
基于单片机的水库控制系统设计
基于单片机的水库控制系统设计
105 0
基于单片机的水库控制系统设计