基于单片机的音乐喷泉 联系客服

发布时间 : 星期三 文章基于单片机的音乐喷泉更新完毕开始阅读

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

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

3.1喷泉运行过程

当喷泉的背景音乐开始响起,喷泉开始喷水的时候,多个喷头如何进行相应的变化,在这里我们可以设计出很多种变化方案。我们称喷泉喷池里喷头的变化所用数据为花样数据,它可以决定喷泉的变化形态。首先如图3.1所示,我们讲喷泉里的多个喷头进行编号, 从外圈开始顺时针依次由1到13进行编号。那么在不考虑其他控制的情况下,在这里图4.1的喷泉喷池需要两个输出的寄存器。 在这里,我们希望喷池的喷头这样变化运行: (1+2+3+4+5+6+7+8)到(1+3+5+7)到(2+4+6+8)到(1)到(2)到(3)到(4)到(5)到(6)到(7)(8)然后重新开始循环。即当喷泉开始工作的时候外圈全部喷头同时开始喷水工作,然后每隔一个喷头一共四个同时开始工作,接下来是另外四个喷头开始工作,最后顺时针方向一个接着一个开始喷水,这样一组动作完成开始进入第二轮的循环当中,在此期间,内圈喷头及中心的喷头不变,时钟处于接通状态持续喷出水柱。当然,由此也可发现,关于喷泉喷头的花样数据还可以编写出很多种的花样。 8 X 7 X 6 X 5 13 4 12 3 11 2 10 1 9 其各位控制喷头定义如下:

图3.1喷头布局例

2

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

SBIT L1=P1^0 SBIT L8=p1^7

Sbit seg[]={0x03,0x0f,??0xff}; While(1) {

For(i=0,i<8,i++) P1=seg[i]; }

我们在这里预先设定当下面的数据为1是表示为喷头开始喷水,然后为0的时候,喷头不喷水,那么这个时候喷泉的外圈的喷头数据为:

1111 1111B 1010 1010B 0101 0101B 1000 0000B 0100 0000B 0010 0000B 0001 0000B 0000 1000B 0000 0100B 0000 0010B 0000 0001B

若该花样数据定义为HYSJ01则数据定义如下: HYSJ01:

DB 03H,0FH,3FH,0FFH,0FCH,0FOH,0COH,00H;外圈的喷头数据 DB 0,0,0,0,0,0,0,0 ; 里圈和中心喷头数据 编写好的喷泉的花样数据,在喷泉工作的时候会会按照相应的顺序依次以列为单位输出,并且这样的数据在运行完一个周期以后重新开始循环取出一列输出。那么由此也可看出,花样数据的搭配还可以编写出很多种不同的样式,并且也可将两个及三个以上的数据配合在一起经行输出,又可以出现更为复杂的样式。

3

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

3.2主程序框图

程序从0000H开始的进入主程序当中去,其流程图如图3.2所示。可以看出:开关K连接着单片机的借口P1.4,其决定了是否测试输出通道; P1.5电平的高低由音乐信号控制,其是否开始演奏,决定了喷池喷头何时开始喷水。薄码开关决定延迟时间,为多少倍的0.1秒的动作改变时间间隔,当喷泉花样数据用完一圈以后,就会重新开始循环。

3.3 控制潜水泵软件设计模块

潜水泵作为一种深井提水的重要工具,使用操作非常简单,用途十分很广泛,而且由于成本消耗也很低,所以可以用于将地下水提生到地表主要用于灌溉农田,矿山抢险等工作。还有我们今天设计所用到的喷泉景观。但是潜水泵开关的喷水量速率是单一的,那么如果我们想要实现用潜水泵输出水压并且实现喷水量随着音乐的频率高低变化那么就需要去控制要控制潜水泵的流量变化。

在这里,我们想要设计一种不使用触电触头进行开关的分时接通方法,来是潜水泵的转速发生变化,那么如果我们的硬件电路大体上不做任何的改动,在这样的前提条件之下,为了能使潜水泵产生十八当的转速调速能力已经更加好的节约能源的效果,我们做了一下的改变和设计来实现。

4

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

开始初始化自检取音符常数取节拍常数启动T0节拍时间到休止符调花形子程序取简谱码指针查表取常数结束码循环TR0清零0结束TR0清零,指针+15S? 图3.2 主程序流程图

3.3.1 潜水泵开关调速的原理

在潜水泵调速电路中我们采用的原理为分时接通的方法来实现对潜水泵的调速。首先由字母 L、M、H分别表示为单相潜水泵抽头的低速,中速,和搞速。潜水泵三个调档下的抽头是通过三个双向的晶闸管的控制来实现与电源是否接通的,它采用了电容运行的方式。在这里这三个晶闸管分别表示为TL,TM和TH。当TL导通时潜水泵的低速抽头与电源连接,此时潜水泵开始低速运转,相同原理,当TM导通时潜水泵与电源接通并开始以中速运转,当TH导通的时后潜水泵与电源接通开始高速运转。由于我们采用的方式为分时接通的方法来调节转机 的转速,从而使潜水泵可以获得18当的变速能力。在此我们设电源的频率为50HZ,周期为0.02S,在这里我们取一个档位的调速周期TS=6T(T为电源周期),那么在低速L调速的时候的,若在调速周期内电源不接通任何一个晶闸管,那么此时则潜水泵的转速就为0转速,如果在调速周期全部接通晶闸管TL,那么在这个时候潜水泵就会开始低速的运转,根据分时调控的原理,如果在6个电源周期内,其中有N个周期都接通晶闸管TL(0≤N≤6),而在其他的时间内不接通

5