资源描述
基于单片机的小型音乐喷泉控制系统设计摘 要随着人们生活水平的提高和建立绿色城市的向往,音乐喷泉以其独特的魅力和特殊的功能,愈来愈成为休闲娱乐产业中的一项重要产品,音乐喷泉的兴建也越来越多。根据目前音乐喷泉的开展现状,介绍了一个以AT89C51单片机为核心的小型音乐喷泉控制系统。给出了一个简洁的单片机控制电路,分析了输出地址,描述了不同类型的输出电路和输入电路;介绍了从特定构造的喷池中获得决定喷池动作的喷池数据的原理;给出了主程序框图和看门狗子程序。采用程序控制来控制花型。音频信号还影响灯光色彩和灯光光线明暗的变化。从而使灯光色彩、灯光的闪烁和喷泉水姿随音乐节奏而变化。关键词:音乐喷泉;单片机;单片机控制;喷池数据目录摘 要I目录II第1章 绪 论1课题背景11.2 音乐喷泉的开展和现状1第2章 音乐喷泉控制系统硬件设计32.1 控制系统硬件总体设计方案3音乐信号的采集32.2.1 音频放大电路的设计32.2.2 采样定理52.3 单片机电路62.3.1 单片机的概述62.3.2 时钟电路的设计72.4 AD转换电路72.4.1 ADC0809与单片机89C51的连接8输入电路9潜水泵调速硬件方案设计10灯光硬件方案设计11解决系统时间滞后硬件电路设计11第3章 喷泉控制系统软件设计13喷池数据13主程序框图143.3 控制潜水泵软件设计模块143.3.1 潜水泵开关调速的原理15潜水泵开关调速的软件设计16控制电磁阀软件设计模块173.5 歌曲存储模块17.1音频脉冲的产生17音乐程序19灯光控制模块22看门狗子程序23实验仿真23结 论25参考文献26附 录27附录127附录228第1章 绪 论课题背景随着人们生活水平的提高,人们对环境的要求越来越高,城市环境建设日益为人们所重视。喷泉作为一种欣赏性较高的艺术水景,不断的出现在城市的广场、公园及其它公共场所,早些的喷泉都是固定不可调的,显得有些单调,随着科技的开展音乐喷泉也进入了我们的城市。音乐喷泉是现代科技与艺术的综合,音乐喷泉将喷水图形、彩色灯光及音乐旋律构成一个有机的整体,随着乐曲旋律和节奏的变化,各种不同的喷水花形相应的配合变换,在五彩绚丽的变幻灯光照耀下,构成一幅幅奇妙无比的景观、令人赏心悦目,叹为观止,在视听上获得极大的享受。音乐喷泉的起源于1930年,德国人首先带出喷泉的概念,此后经过多年的开展,其音乐喷泉的设计及构造已变得更大型及复杂。随着我国改革开放政策的不断实施,80年代中,我国也相继引进和自行设计建造了多座音乐喷泉,为美化环境,活泼人民的文化生活起了良好的作用。通过学习和引进国外先进技术,加上自行研究和开发,喷泉的面貌不断更新,各种新水型层出不穷,音乐喷泉还可以同水幕电影、激光表演和舞台表演相结合,产生令人难忘的艺术效果。我国现有上百家喷泉水景设备制造厂,经过市场竞争、优胜劣汰,我国已经出现了几家综合实力较强的大型喷泉水景工程公司,能够独立建设投资上千万元的特大型喷泉水景工程,并创造了一些世界之最的新记录。总体上说,我国的喷泉水景技术已经到达了国际先进水平,其建设规模和市场需求更是其他国家所难以相比的。 1.2 音乐喷泉的开展和现状 北京石景山古城公园的音乐喷泉,在悠扬动听的音乐声中,喷水可产生五六种变化,时而转动如银伞,时而飘忽如玉带,时而如金蛇狂舞,时而旋转飞溅喷出的花形有昙花、菊花、扶桑花、百合花和曼陀罗花,这是在80年代初期中国较早建设的一个音乐喷泉。南昌的秋水广场是由“落霞与孤鹜齐飞,秋水共长天一色的意境得名,秋水广场就是以喷泉为主题,集旅游、观光、购物的大型休闲广场。他的音乐喷泉最吸引人注目,是国内最大的音乐喷泉群,泉水面积1.2万平方米,主喷高达128米,是南昌的一俏丽景观,人们可以一边欣赏音乐,一边观看滕王阁的美景。新加坡圣淘沙旅游区的音乐的设计与效果也是值得参考的,它布置在一个空旷而略有坡度的空间,面积很大,与圣淘沙车站前的长形喷水池共同组成为一个长达数百米的综合系列喷泉,音乐喷泉位于系列喷泉的顶端。舞台为一假山堆叠的西洋式半圆柱廊组成,共分3层。白天,假山瀑布及两侧的喷泉群与3层水池形成一处动静结合的较为文雅悠扬的水景园,入夜那么有五光十色,优美动听的喷泉景观,整个舞台区域东西面阔近百米,南北深度约40m,成为目前亚洲最大的音乐喷泉之一。表现出壮阔、绚丽的水景之美。 以上几处音乐喷泉从建筑形势、音乐曲调及水舞表演的角度展现了音乐喷泉的美丽姿态,但是都属于大型的音乐喷泉,其控制系统也多采用PLC逻辑编程控制,造价高,流量需求大,一般为专门的定量设计。即使这样,国内外的音乐喷泉控制系统设计均以到达成熟的水平,而且还有专门的生产设计厂家,提供设计、喷泉设备及安装等效劳。目前,国内的音乐喷泉逐渐向智能化、分散化、综合化、多样化的方向开展,于是对喷泉控制系统的设计也提出了更高的要求。第2章 音乐喷泉控制系统硬件设计2.1 控制系统硬件总体设计方案该音乐喷泉控制系统的总体结构如图2.1所示,由音乐输入系统、数模转换系统、单片机控制系统和输出控制系统等组成。 图2.1 系统总体结构框图前面已经介绍过,本文的研究针对的是采用外部音源的喷泉系统,因此在对音乐信号进行特征识别前首先要完成对模拟音乐信号的采集。音乐信号的采集主要包括音频放大和 A/D 转换两个过程,下面分别进行分析。 音频放大电路的设计外部音源信号的幅度一般较弱,因此必须要对原信号进行放大处理后才能送入A/D 转换器。本文选择了 LM386 芯片设计音频放大电路。LM386 是美国国家半导体公司NS推出的系列功率放大集成电路的一种,LM386 具有功耗低、工作电压范围宽、所需外围元件少等特点,在电子设备的音频放大电路设计中应用非常广泛,它使用了 10 只晶体管构成了输入级、电压增益和电流驱动级。其中 T1T6 组成 PNP 型复合差分放大器,T5、T6 为镜像恒流源,作为 T3、T4 的有源负载,使输入级有稳定的增益。电压增益级由接成共发射极状态的 T7 承当,其负载也使用了恒流源,整个集成功放的开环增益主要由该级决定。T8、T9 复合为一个 PNP 管,和 T10 共同组成互补对称射极输出电路,以供应负载以足够的电流。D1、D2 提供了 T8、T9、T10 所需的偏置,使末级偏置在甲乙类状态。R5R7 构成内部反应环路。从图 可以看出,LM386 采用双列 8 脚封装结构,它的工作电压范围为 412V,静态电流 4mA,最大输出功率 660mW,最大电压增益 46dB,增益带宽 300kHz,谐波失真 0.2%。图 LM386 封装形式及引脚定义在 LM386 的 DataSheet 上,提供了两种典型放大电路的设计方案。一种是在LM386 的 1 脚和 8 脚之间不接其他元件,此时放大电路的增益仅由内部电阻 R5R7决定,为 20 倍数26dB,这种方式外部电路元件最少,也最为经济。另一种通过在 1 脚和 8 脚之间串接不同的阻容元件,改变放大电路的交流反应量,从而改变放大电路的闭环增益。音乐信号的放大采集如图 所示。外部音源声卡、CD 机等的模拟音乐信号分左、右声道分别进入放大电路,经过信号放大后,得到幅值放大后的音频信号。从图 3.2.2 可以看出放大电路的具体设计。在 LM386 的 1 脚和 8 脚之间串接一个 10 微法的电容 C4,使内部电阻 R6 被交流旁路,放大电路的增益能到达最大值,200 倍数46dB。再对音频放大电路的外围电路进行设计,电路中电容 C1、C6 作为隔直电容,电位器 P1 用于调节音量的大小,元件 R2、C5 有助于旁路高频噪音和改善输出的音质。电容 C3 作为去耦电容,一方面是本集成电路的蓄能电容,另一方面旁路掉该器件的高频噪声。电容 C2 那么是作为旁路电容,将信号的中高频噪音旁路到地。经过放大电路的音频信号就送入 A/D 转换器进行采样,这里 A/D转换器要设置为双极性,即能接收负信号。图 音乐信号放大采集 采样定理采样是指用一较高频率的开关脉冲对模拟信号进行取样,取出脉冲到来时刻所对应的模拟信号的幅度,这样就可以得到一连串幅度变化的离散脉冲。用这些离散脉冲序列代替原来时间上连续的信号,也就是在时间上将模拟信号离散化。如图 所示,在对音乐信号进行放大处理后,就要通过 A/D 转换将模拟信号采集进计算机,这就是音乐信号的采样。我们在对一个连续的音乐信号进行采样时,为了使采样后的样本序列能够包含足够的信息以使其能够较正确地重现原来的模拟信号,在采样时应当使采样频率满足采样定理的要求。采样定理的描述为“对一个模拟信号进行离散化时,只要满足采样频率fs 大于或等于被采样信号的最高频率fm的2 倍,就可以通过理想的低通滤波器,从样本值序列信号中无失真地恢复出原始模拟信号,这里的fm称为香农频率,这个采样定理又称为香农采样定理。实际应用中为了较好的防止频谱混叠失真,采样频率一般要稍大于信号最高频率的 2 倍。比方乐曲的音域频段如果在 50Hz4000Hz 内,就要将 A/D 转换器的采样频率选定为 10kHz,才能满足香农采样定理的要求。2.3 单片机电路 单片机要采集音乐信号,并据此调节I/O口的输出来控制水泵和彩灯。主芯片选用AT89C51单片机。AT89C51单片机是一个低功耗,高性能的51内核的CMOS 8位单片机,片内含8K空间的可反复擦写1000次的Flash只读存储器,具有256bytes的随机存取数据存储器RAM,32个I/O口,1个看门狗定时器,3个16位可编程定时器,具有ISP功能,能够满足设计要求。使用简单且价格非常低廉。故系统的主控制器采用此方案。图2.3 89C51芯片 单片机的概述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口作为资料输出口。 时钟电路的设计AT89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器,如图213所示: 图2-13自激振荡器 2.4 AD转换电路输入的电压为交流模拟量,不能直接送入单片机进行处理。因此首先采用全桥整流,滤波。使其成为直流信号,再采用全桥整流,滤波。使其成为直流信号,再采用了ADC电路。其中AD芯片为ADC0832。ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32s,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性强。独立的芯片使能输入,使多器件挂接和处理器控制变得更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。串行通信节约单片机I/O资源。ADC0809各引脚功能:ADC0809采用双列直插式封装,共有28条引脚。 1IN0IN7(8条) IN0IN7为8路模拟电压输入线,用于输入被转换的模拟电压; 2地址输入和控制4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,ADDA、ADDB和ADDC三条地址线上的地址信号得以锁存,经译码后控制8路模拟开关工作,ADDA、ADDB和ADDC 为地址输入线,用于选择IN0IN7上的哪一路模拟电压送给比拟器进行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信号,89CP0.0提供的3位通道地址送入ADC0809进行锁存,用以选取通道号。转换结束信号EOC作为查询信号。具体接口电路如图2-4所示 图2-4ADC0809输入电路 在这里,输入电路是指能对乐曲启停、乐曲节奏和声音强弱等进行检测并将检到的信号以电平、脉冲或数字形式送至单片机的电路。为说明简单计,这里仅介绍能反映乐曲启停的奏曲信号电路。因为有了它,音乐已不再仅是背景音乐,音乐已用来控制整个喷池的动作与否,因而已到达了音乐喷泉的最根本要求。奏曲信号电路的框图如下图。左右两路立体声信号经混合后送限幅放大电路放大,这样即使是极弱的乐曲信号也能有足够强度媳信号输出。整流滤波电路用以将信号转为单向信号。电压比拟器用以将大于基准电压的单向信号变换成低电平有效的奏曲信号由之端输出。通过调整基准电压,可使电路既不受干扰的影响又灵敏度最大。奏曲信号电路的输出经R3送至光耦4N35在单片机P15引脚产生一低电平信号。图奏曲信号电路框图方案一:采用变频器,调速方便、容易,只要控制口电流范围为4到20毫安就可以,精度高,缺点价格偏贵。方案二:采用步进电机调速电路,这样会增加电路复杂性,控制精度偏低,优点是价格偏低。本系统本钱问题必须考虑,控制精度要求不是很高,步进电机调速电路就可以满足要求。本系统采用可控硅调相的方法控制喷泉水泵的转速。电路如下图,由单片机的I/O口输出矩形波,通过光耦控制可控硅的导通角,进而控制水泵电机的转速,调整喷泉的输出高度。选用单相可控硅BT169控制220V的双向交流电。交流通过二极管1N4007耐压值1000V组成的整流桥后变为100Hz脉动的直流,由单片机P0.4依据音乐采样结果输出矩形波,通过光耦控制可控硅的通断,以到达调相的目的。采用这种方法关键要保证矩形波与100Hz脉动直流保持同相,由AD采样的结果断定100Hz脉动直流的每一个周期有多长时间是导通的。所以将100Hz脉动直流分压后作为单片机内部比拟器的一个输入端,另一个输入端接一个由5V分来的固定电压。当比拟器的输出结果发生变化时,由定时器定一段时间,这样就找到了每个周期的起点,然后再根据AD采样决定不等的延时来输出矩形波导通可控硅。AD采样结果大,每个周期的延时短,可控硅导通的时间长,水泵电机转速快,反之亦然。 方案一:使用大功率,不同颜色的发光二极管。方案二:使用LED水下低压彩灯。LED-水下彩灯系列除广泛使用于喷泉,瀑布水下照明外,还可用于假山,桥梁等投光照明。 水下彩灯均采用著名荷兰菲利蒲公司产品,产品结构合理,色彩鲜艳,并进一步改良了其密封、防护和接线方式,广泛适合于各种喷泉。本次设计采用水下照明和闪光荣灯,水下照明采用LED水下低压彩灯两个,闪光荣灯采用不同颜色的发光二极管。 图2.6 彩灯的连接 由于单片机采集数据并处理需要一定的时间,加上电机响应和水柱显示也需要一定的时间。电机由一种转速到另一种转速的响应时间可以查电机参数得到,电动机的响应时间为0.04S,单片机采集处理数据程序约为100句,约为0.6ms,水柱的显示延时可以通过水闸效应计算出来,经计算总延时约为0.2S。提出两种解决方案。 方案一:采用预处理,即把要控制的音乐元素提前编辑好,提前控制。 方案二:采用把音乐延时播放,即在音乐源与音响间加延时电路,调节参数,使音乐与水柱的变化同步。音乐元素提前预处理一般使用在工控机等数字处理能力非常强的控制系统中,使用单片机一般实现不了这个预处理目标。因此采用延时电路6把音乐延时播放,选择方案二。第3章 喷泉控制系统软件设计 程序采用模块化结构,所有用到的常数或数组都用EQU或DATA或DB伪指令定义与命名,以使程序易于修改、调试和升级。本系统将TO溢出中断用于软件看门狗。 喷池数据是用以对喷池内的水泵、电磁阀和彩灯等进行开与关控制的数据。一组可循环使用的这种数据,就决定了喷泉和彩灯的一个特定的变化形态。这组喷池数据可称为把戏数据。对一个特定构造的喷池,这种把戏数据可编写出很多。下面以图3.1为例说明把戏数据的编排方法。假设希望外圈喷头每隔一定时间顺次增喷2个喷头,且从2个经4步顺时针增至8个后,再顺次以同样的方向同样的速度每次减喷2个喷头,即从8个喷头经4步减至02个输出存放器,其各位控制喷头定义如下:87654321XXX131211109以上各位假设为1时相应的喷头喷水,为0时不喷水,那么外圈喷头数据应为:0000 0011B0000 1111B0011 1111B1111 1111B1111 1100B1111 0000B1100 0000B0000 0000B假设该把戏数据定义为HYSJ01那么数据定义如下:HYSJ01:DB 03H,0FH,3FH,0FFH,0FCH,0FOH,0COH,00H;外圈喷头数据DB 0,0,0,0,0,0,0,0 ; 里圈和中心喷头数据每次将把戏数据输出时都是顺次取一列输出的,且可循环取用。显然这样的把戏数据可以编不少,还可将两个以上的数据搭配起来,组成新的更复杂一些的把戏数据。程序重新设置后,进入0000H开始的主程序,其流程图如图3.2所示。可以看出:P14上的开关K决定是否测试输出通道;乐曲是否演奏决定了喷池是否有动作,即P15的电平;拔码开关的设定值决定了延时多少倍的01秒时间,即喷池动作改变的时间间隔:奏曲每停一次(大多数乐曲奏曲中间不会停),下次再奏曲就换一组把戏数据,假设用完了最后一组,以后就从头再取。也就是多个乐曲依次轮流循环使用编制好的喷池把戏数据。3.3 控制潜水泵软件设计模块目前,潜水泵结构简单,本钱较低,控制方便,只有一种转速。要控制潜水泵的流量变化,就必须使潜水泵的转速发生变化。我们使用无触点开关分时接通的方法提高潜水泵的转速档次,在硬件电路根本不变的条件下,使潜水泵具有十八档转速的调速能力和更好的节能效果,这种方法无需增加较多的硬件,仅在控制器中采用新的调速程序,即可到达提高潜水泵转速档次和节能的目的。 图3.2 主程序流程图 潜水泵开关调速的原理潜水泵调速电路中, L、M、H分别为单相潜水泵的低速抽头、中速抽头和高速抽头,单相潜水泵采用电容运行方式,三个抽头与电源的连接由三个双向晶闸管TL、TM、TH来控制,当TL导通时潜水泵的低速抽头与电源连接,潜水泵低速运转,同样,TM导通时潜水泵中速运转,TH导通时潜水泵高速运转。我们采用分时接通L、M、H的方法,可以调节潜水泵的转速,使潜水泵获得十八档转速的变速能力。设电源频率为50HZ,其周期为0.02S,取调速周期TS=6TT为电源周期,低速调速时,调速周期内不接通任何一个晶闸管,那么潜水泵的转速0,调速周期内全接通晶闸管TL,那么潜水泵低速运转,但如果在6个电源周期内,N个周期接通晶闸管TL0N6,其他时间不接通,那么,在潜水泵的低速下可获得6档更低的转速。同样,中速调速时,调速周期内全接通晶闸管TL,那么潜水泵低速运转,全接通晶闸管TM,那么潜水泵中速运转,如果在6个电源周期内N个周期接通晶闸管TM,6-N个周期接通TL,那么在潜水泵的低速和中速之间可获得6档转速。同样道理,在中速和高速间又可获得6档转速。由此可见采用分时接通的方法,可以使潜水泵具有十八档转速的调速能力。潜水泵开关调速的软件设计单相潜水泵采用单片机AT89C51控制,单片机的输出端口P2.0、P2.1、P2.2经反相器与晶闸管TL、TM、TH的控制极连接,当P2.0=“0时,晶闸管导通,潜水泵可低速运转,反之,P2.0=“1时,晶闸管截止,潜水泵停转,即由P2.0输出电位控制潜水泵的低速档;同样,由P2.1输出电位控制潜水泵的中速档,P2.2控制潜水泵的高速档。采集的音乐信号经过傅立叶变换再去查幅值对应的分贝转速表直接得到转速代码,这样就可以控制潜水泵的转速,再此只以生日快乐音乐程序为例,控制潜水泵转速的方法如下:每个音符对应一种转速代码,潜水泵的转速随音符改变而改变。调速程序必须经过一个最小时间1/4拍才能输出一个转速代码的转速,在调速程序中,采用一个存储单元90H作为转速输入单元,另一个存储单元95H记录晶闸管导通时间,并通过延时程序来实现。在调速程序中,我们采用8位数据记录电机的转速代码,其中低3位b2b1b0表示接通比例N,第4、5位b4b3表示接通档次,高3位b7b6b5不用。接通档次表示调速为低速调速、中速调速还是高速调速,其值为b4b3=00B,01B,10B,11B,当接通档次为00B时,在转速代码设定的接通比例内接通晶闸管TL,接通比例外不接通晶闸管;当接通档次为01B时,在转速代码设定的接通比例内接通晶闸管TM,接通比例外接通晶闸管TL,当接通档次为10B时,在转速代码设定的接通比例内接通晶闸管TH,接通比例外接通晶闸管TM;当接通档次为11B时,接通比例只有00H一种,这时在整个调速周期内接通晶闸管TH,潜水泵高速运转。接通比例的取值范围000B-110B,由此可知,转速代码的取值范围为00H-06H,09H-0EH,11H-16H总共十八个代码,其中00H-06H为低速档代码,09H-0EH为中速档代码,11H-16H为高速档代码。所以潜水泵除零速外共有十八档转速。上述方法可以使潜水泵具备十八档转速的调速能力,但这个方法也有一些缺点,主要是: 潜水泵的转矩是脉动的,使潜水泵的机械噪声增大,在此我采取防止转子轴向运动的措施减少噪声,把潜水泵和水管固定。 低速档接通比例较低时,潜水泵主轴出现蠕行,不能正常工作,必须限制最小转速代码。可去掉低速档转速代码中最低接通比例的三个代码,保存转速较高的十五档转速。采用改良的控制位波形和限制最小转速代码之后,潜水泵在应用中取得较好的调速和调节流量的效果。控制阀主要是控制喷池花型,由于采用PA0到PA7,PB0到PB4口控制电磁阀,除去相同的花型喷头,所以喷池花型只有1到256种。可以人工按键选择,其喷池花型值通过LED数码管显示出来,即第几号花型,选择了喷池花型值就使相应的电磁阀通电,高电平口使电磁阀有电。高电平口使电磁阀有电,电磁阀编号与PA、PB口的编号对应,那么PA、PB口的喷头数据一样。控制电磁阀子程序模块DIAN: MOV A,31H; 求出花型数据 ADD A,32H ADDC A,33H MOV 34H,A; 保存起来 MOV DPTR, #0F700H;指向1#8155命令口 MOV A, #3H; 设置命令字 MOVX DPTR, AINC DPTR; 指向1#PA口 MOV A,34H MOVX DPTR,A; 高电平口使电磁阀有电 INC DPTR; 指向1#PB口 MOV A,R7 MOVX DPTR, A RET3.5 歌曲存储模块音频脉冲的产生 假设要产生音频脉冲,只要算出某一音频的周期1/频率,再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将I/O反相,然后重复计时再反相。就可在I/O引脚上得到此频率的脉冲。利用单片机的内部定时器使其工作计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO523Hz。 表3.1 C调各音符频率与计数值T的对照表音符频率Hz简谱码(T值)音符频率Hz简谱码(T值)低1DO26263628#4FA#74064860#DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283每个音符使用一个字节,字节的高4位代表音符的上下,低4位代表音符的节拍,表3.2节拍与节拍码的对照。如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4拍的节拍时间为DELAY,那么1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表3.3为1/4和1/8节拍的时间设定。表3.2 节拍与节拍码的对照节拍码节拍数节拍码节拍数11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍41/2拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍表3.3 各调1/4节拍的时间设定曲调值DELAY曲调值DELAY调4/4125毫秒调4/462毫秒调3/4187毫秒调3/494毫秒调2/4250毫秒调2/4125毫秒表3.4简谱对应的简谱码、T值简谱发音T值简谱码简谱发音简谱码T值5低音6426016中音9649686低音6440027中音A650307低音6452431高音B650581中音6458042高音C651102中音6468453高音D651573中音6477764高音E651784中音6482075高音F652175中音648988高音0音乐程序先根据乐谱的音符按表3.1建立T值表的顺序,把T值表建立在TABLE1,构成发音符的计数值放在TABLE中;简谱码音符,参照表3.4为高4位,节拍节拍数,参照表3.2为低4位,音符节拍码放在程序的“TABLE处。音乐程序模块START-MU: ORG 00H; 主程序起始地址 JMP START; 跳至主程序 ORG 0BH; TIMER0中断起始地址 JMP TIM0; 跳至TIMER0中断子程START: MOV TMOD,#01H; 设TIMER0在MODE1 MOV IE, #82H; 中断使能START0: MOV 30H, #00H; 取简谱码指针NEXT: MOV A, 30H; 简谱码指针载入A MOV DPTR,#TABLE; 至TABLE取简谱码 MOVC A, A+DPTR MOVR2, A; 取到的简谱码暂存于R2 JZ END0; 是否取到00结束码? ANL A, #0FH; 不是,那么取低4位节拍码 MOV 90H, A; 为调速保存数据 MOV R5, A; 将节拍码存入R5 MOV A, R2; 将取到的简谱码再载入A SWAP A; 上下4位交换 ANL A, #0FH; 取低4位音符码MOV 90H, A; 保存音符码,为调速做准备 JNZ SING; 取到的音符码是否为0? CLR TR0; 是,那么不发音 JMP D1; 跳至D1SING: DEC A; 取到的音符码减1不含0 MOV 22H, A; 存入22H RL A; 乘2 MOV DPTR, #TABLE1; 至TABLE1取相对的高位字节计数值 MOVCA, A+DPRT MOV TH0, A; 取到的高位字节存入TH0 MOV 21H, A; 取到的高位字节存入21H MOV A, 22H; 再载入取到的音符码 RL A; 乘2 INC A; 加1 MOVC A, A+DPRT; 至TABLE1取相对的低位字节计数值 MOV TL0, A; 取到的低位字节存入TL0 MOV 20H, A; 取到的低位字节存入20H SETB TB0; 启动TIMER0D1: CALL CHULIKOU; 调用以1/4拍为根本单位时间的调速子程序 INC 30H; 取简谱码指针加1 JMP NEXT; 取下一个码END0: CLR TR0; 停止TIMER0 JMPSTART0; 重复循环TIM0: PUSH ACC; 将A的值暂存于堆栈 PUSH PSW; 将PSW的值暂存于堆栈 MOV TL0, 20H; 重设计数值 MOV TH0, 21H POPPSW; 至堆栈取回PSW的值 POP ACC; 至堆栈取回A的值 RETI; 返回主程序TABLE1: DW 64260, 64400, 65524, 64580 DW 64684, 64777, 64820, 64898 DW 64968, 65030, 65058, 65110 DW 65157, 65178, 65217TABLE: DB 82H,01H,81H,94H,84H ;1DB0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB0C4H,0B4H,04H;2 DB 82H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4H DB 0C4H,0B4H,04H;3 DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H;4 DB 82H,01H,81H,0F4H,0D4H DB 0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4H DB C4H,0B4H,04H DB 00TABLE2: DB 04H,05H,06H DB 09H,0AH,0BH,0CH,0DH,0EH DB 11H,12H,13H,14H,15H, 16H ENDLC182是音频调制彩灯控制专用芯片,其内局部配器频率的上下受音频信号大小的调制,特别适用于声光音响控制场合,可直接驱动驱动众多发光二极管闪光,也可驱动交流彩色电灯作循环闪光。LC182为四路驱动输出。他们的内部均有信号整流电路。压控振荡器,脉冲分配器。在本系统中,单片机便开启LC182时,LC182四路输出依次变为高电平,其循环频率约为0.51HZ,一有音乐信号的输入,彩灯的循环频率随音频信号的大小而变化,其最高循环频率为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软件看门狗由“喂狗子程序和(看门狗定时器)TO溢出子程序组成。“喂狗子程序如下:DOG:MOV TH0,#02H;模式1定时器,在6MHZ晶振时,定时约130msMOV TL0, #18HRET此子程序应在系统程序的假设干处调用,保证在程序正常执行时TO总不溢出。当受到某种干扰程序跑飞时,“喂狗子程序得不到执行,经130ms后TO溢出中断,就会执行如下的(看门狗定时器)To溢出子程序:TOINT:POP YR1 ;舍去无用栈顶内容POP YR1 ;YRD和 YR1是两个RAM单元名MOV YR0,#49H ;0049H是本程序设定起始喷池把戏序号指令的存放地址MOV YR1#OPUSH YR0 ;使栈顶内容为0049HPUSH YR1RETI ;执行RETI时PC值=0049H,即从0号喷池把戏开始演出当执行从中断返回指令RETI时,栈顶内容0049H就会弹出至程序计数器PC,从而重新设定起始喷池把戏序号后,再进行乐曲控制初始化,喷池继续正常动作。实验仿真仿真是利用计算机对实际额屋里模型或数学模型进行试验虚拟仪器的虚拟实验,通过这样的模型试验来随一个实际系统的性能和工作状态进行分析和研究。近年来计算机仿真技术取得了快速的开展,同时推动了单片机仿真技术的进步。目前,用于单片机仿真的工具很多,有些主要用于软件仿真,侧重于算法的验证;有些用于硬件仿真的工具对CPU的仿真能力有限,至于对CPU外围的硬件仿真更是无能为力。Proteus在单片机CPU和外围器件方面表现出卓越的仿真能力使其成为目前最好的仿真工具之一。Proteus的显著特点如下: 1全部满足单片机软件仿真系统的标准,并在同类产品中有明显优势; 2具有模拟电路仿真、数字电路仿真、单片机及外围电路组成的系统仿真的功能; 3目前支持的单片机类型有:68000系列、51系列、AAVR系列等; 4支持大量的存储器和外围设备。由于实验室条件原因本设计仿真局部不能在实验室完成,因此仅在此将使用Proteus来实现本设计仿真的步骤进行描述如下:第一步:翻开Proteus 6 Professional绘图界面。第二步:添加所需元件并连接电路图。本设计所需元件有:AT89C51、LED灯、水泵、电磁阀、扬声器等。第三步:添加仿真文件。第四步:单击开始图标,开始仿真。此时喷泉开始运行,根据运行状态进行源代码的调试。 结 论喷泉不但是园林、城市街道广场和公共建筑等的装饰品之一,而且它的出现给人们带来了无限的欢乐,并且单一的喷泉逐步开展成种类繁多、造型优美、花型变化灵活的音乐喷泉,同时加上灯光艺术,使喷泉更加华美、更加引人注目,因此成为现代社会较为流行的一种欣赏景观。音乐喷泉的开发研究具有很大的开展前景,目前国内外同行业的技术无不表达着高科技技术在娱乐业的广泛应用。本文阐述的只是一些初步的研究与开发,如何提高音乐节拍与喷泉的同步,全面考虑音乐的要素的识别和提取、实现音乐与喷泉的完美结合应该是一个艰巨的挑战。本文设计的音乐喷泉控制系统是旅游景点内用的小型音乐喷泉,具有造型优美、营业性强、控制简单可靠的特点,充分表达了经济型和实用性的原那么,并且喷泉的安装方便、维护简单,能够满足用户的需求。在系统设计中,运用流体力学理论设计了喷泉的管路系统;运用单片机实现了乐曲播放和流量及花型控制;运用Protel软件设计出了控制系统的控制电路。缺乏之处在于:系统利用的是单片机产生方波信号控制扬声器发音,所以播放的只能是音乐的曲调,而不是真人真唱的歌曲。参考文献【1】肖玲琍. 音乐喷泉与现场总线技术J北京建筑工程学院学报, 2003,(03) 【2】陈一民,刘云超,陈琳,李元. 音乐喷泉系统的可视化设计及实时仿真J计算机工程, 1999,(08)【3】李华,胡汉才喷泉设计设备手册北京:高等教育出版社,2006 :56-70【4】孙育才供水系统设计M湖北:水利电力出版社,1979:40-45【5】任致程实用电动机控制电路350例M北京:人民邮电出版社,2002132134【6】吴仁华,祁大勇灯光控制系统的设计北京:北京航空航天大学学报,2003:35-35【7】崔玉周,杨吉,刘文斌接口技术水利与建筑工程学报,2007,5(1):73-75【8】黄振国应用电路技术四川:电子科技大学出版社,2003:62-65【9】李汉基于单片机的单相电动机调速方法及其实现广州航海高等专科学校学报,2004,12(1):38-40【10】张均,廖建波小型音乐喷泉控制系统设计江西农业大学学报,1999,21(4):619-621【11】吴金戌,沈庆阳8051单片机实践与应用T北京:清华大学出版社,2002:124-130附 录附录1附录2
展开阅读全文