基于at89s51的音乐喷泉控制系统_毕业论文(编辑修改稿)内容摘要:

定义与命名,以使程序易于修改、调试和升级。 本系统将 TO 溢出中断用于软件看门狗。 喷池数据 喷池数据是用以对喷池内的水泵、电磁阀和彩灯等进行开与关控制的数据。 一组可循环使用的这种数据, 就决定了喷泉和彩灯的一个特定的变化形态。 这组喷池数据可称为花样数据。 对一个特定构造的喷池,这种花样数据可编写出很多。 下面以图 为例说明花样数据的编排方法。 假设希望外圈喷头每隔一定时间顺次增喷 2个喷头,且从 2个经 4步顺时针增至 8个后,再顺次以同样的方向同样的速度每次减喷 2个喷头,即从 8 个喷头经 4 步减至 0。 以后不断按上述规律循环变化。 在这期间,里圈和中心喷头一直不喷。 在不考虑其它控制的情况下,图 喷池只需 2个输出寄存器,其各位控制喷头定义如下: 8 7 6 5 4 3 2 1 X X X 13 12 11 10 9 图 喷头布局例第 3 章 喷泉控制系统软件设计 13 以上各位若为 1 时相应的喷头喷水,为 0时不喷水,则外圈喷头数据应为: 0000 0011B 0000 1111B 0011 1111B 1111 1111B 1111 1100B 1111 0000B 1100 0000B 0000 0000B 若该花样数据定义为 HYSJ01 则数据定义如下: HYSJ01: DB 03H, 0FH, 3FH, 0FFH, 0FCH, 0FOH, 0COH, 00H;外圈喷头数据 DB 0,0, 0, 0, 0, 0, 0, 0 ;里圈和中心喷头数据 每次将花样数据输出时都是顺次取一列输出的,且可循环取用。 显然这样的花样数据可以编不少,还可将两个以上的数据搭配起来,组成新的更复杂一些的花样数据。 主程序框图 程序重新设置后,进入 0000H 开始的主程序,其流程图如图 所示。 可以看出: P1. 4 上的开关 K 决定是否测试输出通道;乐曲是否演奏决定了喷池是否有动作,即 P1. 5的电平;拔码开关的设定值决定了延时多少倍的 0. 1秒时间,即喷池动作改变的时间间隔:奏曲每停一次 (大多数乐曲奏曲中间不会停 ),下次再奏曲就换一组花样数据 ,若用完了最后一组,以后就从头再取。 也就是多个乐曲依次轮流循环使用编制好的喷池花样数据。 淮安信息职业技术学院毕业设计论文 14 控制潜水泵软件设计模块 目前,潜水泵结构简单,成本较低,控制方便,只有一种转速。 要控制 潜水泵的流量变化,就必须使潜水泵的转速发生变化 . 我们使用无触点开关分时接通的方法提高潜水泵的转速档次,在硬件电路基本不变的条件下,使潜水泵具有十八档转速的调速能力和更好的节能效果,这种方法无需增加较多的硬件,仅在控制器中采用新的调速程序,即可达到提高潜水泵转速档次和节能的目的。 图 32 主程序流程图 第 3 章 喷泉控制系统软件设计 15 潜水泵开关调速原理 潜水泵调速电路中, L、 M、 H 分别为单相潜水泵的低速抽头、中速抽头和高速抽头,单相潜水泵采用电容运行方式,三个抽头与电源的连接由三个双向晶闸管 TL、 TM、 TH来控制,当 TL 导通时潜水泵的低速抽头与电源连接,潜水泵低速运转,同样, TM 导通时潜水泵中速运转, TH 导通时潜水泵高速运转。 我们采用分时接通 L、 M、 H的方法,可以调节潜水泵的转速,使潜水泵获得十八档转速的变速能力。 设电源频率为 50HZ,其周期为 ,取调速周期 TS=6T( T 为电源周期),低速调速时,调速周期内不接通 任何一个晶闸管,则潜水泵的转速0,调速周期内全接通晶闸管 TL,则潜水泵低速运转,但如果在 6个电源周期内,N 个周期接通晶闸管 TL( 0≤ N≤ 6),其他时间不接通,那么,在潜水泵的低速下可获得 6 档更低的转速。 同样,中速调速时,调速周期内全接通晶闸管 TL,则潜水泵低速运转,全接通晶闸管 TM,则潜水泵中速运转,如果在 6 个电源周期内 N个周期接通晶闸管 TM,( 6N)个周期接通 TL,那么在潜水泵的低速和中速之间可获得 6 档转速。 同样道理,在中速和高速间又可获得 6档转速。 由此可见采用分时接通的方法,可以使潜水泵具有十八档转速 的调速能力。 潜水泵开关调速的软件设计 单相潜水泵采用单片机 AT89S51 控制,单片机的输出端口 、 、 经反相器与晶闸管 TL、 TM、 TH 的控制极连接,当 =“ 0”时,晶闸管导通,潜水泵可低速运转,反之, =“ 1”时,晶闸管截止,潜水泵停转,即由 输出电位控制潜水泵的低速档;同样,由 输出电位控制潜水泵的中速档, 控制潜水泵的高速档。 采集的音乐信号经过傅立叶变换再去查幅值对应的分贝转速表直接得到转速代码,这样就可以控制潜水泵的转速,再此只以生日快乐音 乐程序为例,控制潜水泵转速的方法如下: 每个音符对应一种转速代码,潜水泵的转速随音符改变而改变。 调速程序必须经过一个最小时间 1/4 拍 才能输出一个转速代码的转速,在调速程序中,采用一个存储单元( 90H)作为转速输入单元,另一个存储单元( 95H)记录晶闸管导通时间,并通过延时程序来实现。 在调速程序中,我们采用 8 位数据记录电机的转速代码,其中低 3 位( b2b1b0)表示接通比例 N,第 5位( b4b3)表示接通档次,高 3位( b7b6b5)不用。 按接淮安信息职业技术学院毕业设计论文 16 档次表示调速为低速调速、中速调速还是高速调速,其值为 b4b3={00B, 01B, 10B,11B},当接通档次为 00B 时,在转速代码设定的接通比例内接通晶闸管 TL,接通比例外不接通晶闸管;当接通档次为 01B 时,在转速代码设定的接通比例内接通晶闸管 TM,接通比例外接通晶闸管 TL,当接通档次为 10B 时,在转速代码设定的接通比例内接通晶闸管 TH,接通比例外接通晶闸管 TM;当接通档次为 11B时,接通比例只有 00H 一种,这时在整个调速周期内接通晶闸管 TH,潜水泵高速运转。 接通比例的取值范围 000B110B,由此可知,转速代码的取值范围为00H06H, 09H0EH, 11H16H 总共十八个代码,其中 00H06H 为低速档代码,09H0EH 为中速档代码, 11H16H 为高速档代码。 所以潜水泵除零速外共有十八档转速。 上述方法可以使潜水泵具备十八档转速的调速能力,但这个方法也有一些缺点,主要是: ① 潜水泵的转矩是脉动的,使潜水泵的机械噪声增大,在此我采取防止转子轴向运动的措施减少噪声,把潜水泵和水管固定。 ② 低速档接通比例较低时,潜水泵主轴出现蠕行,不能正常工作,必须限制最小转速代码。 可去掉低速档转速代码中最低接通比例的三个代码,保留转速较高的十五档转速。 采用改进的控制位波 形和限制最小转速代码之后,潜水泵在应用中取得较好的调速和调节流量的效果。 控制电磁阀软件设计模块 控制阀主要是控制喷池花型,由于采用 PA0到 PA7,PB0到 PB4口控制电磁阀,除去相同的花型喷头,所以喷池花型只有 1 到 256 种。 可以人工按键选择,其喷池花型值通过 LED 数码管显示出来,即第几号花型,选择了喷池花型值就使相应的电磁阀通电, 高电平口使电磁阀有电。 高电平口使电磁阀有电,电磁阀编号与PA、 PB 口的编号对应,则 PA、 PB 口的 喷头数据一样。 控制电磁阀子程序模块 DIAN: MOV A, 31H; 求出花型数据 ADD A, 32H ADDC A, 33H 第 3 章 喷泉控制系统软件设计 17 MOV 34H, A; 保存起来 MOV DPTR, 0F700H; 指向 18155 命令口 MOV A, 3H; 设置命令字 MOVX @DPTR, A INC DPTR; 指向 1PA 口 MOV A, 34H MOVX @DPTR, A; 高电平口使电磁阀有电 INC DPTR; 指向 1PB 口 MOV A, R7 MOVX @DPTR, A RET 歌曲存储模块 音频脉冲的产生 若要产生音频脉冲,只要算出某一音频的周期( 1/频率),再将此周期除以2,即为半周期的时间。 利用定时器计时半周期时 间,每当计时终止后就将 I/O反相,然后重复计时再反相。 就可在 I/O 引脚上得到此频率的脉冲。 利用 单片机的内部定时器使其工作计数器模式( MODE1)下,改变计数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周期 T= 1/523= 1912μs ,因此只要令计数器计时 956μs/1μs = 956,每计数 956 次时将 I/O 反相,就可得到中音 DO( 523Hz)。 淮安信息职业技术学院毕业设计论文 18 表 C 调各音符频率与计数值 T的对照表 音符 频率 Hz 简谱码 (T值 ) 音符 频率 Hz 简谱码 (T值 ) 低 1DO 262 63628 4FA 740 64860 DO 277 63731 中 5SO 784 64898 低 2RE 294 63835 5SO 831 64934 2RE 311 63928 中 6LA 880 64968 低 3M 330 64021 6 932 64994 低 4FA 349 64103 中 7SI 988 65030 4FA 370 64185 高 1DO 1046 65058 低 5SO 392 64260 1DO 1109 65085 5SO 415 64331 高 2RE 1175 65110 低 6LA 440 64400 2RE 1245 65134 6 466 64463 高 3M 1318 65157 低 7SI 494 64524 高 4FA 1397 65178 中 1DO 523 64580 4FA 1480 65198 1DO 554 64633 高 5SO 1568 65217 中 2RE 587 64684 5SO 1661 65235 2RE 622 64732 高 6LA 1760 65252 中 3M 659 64777 6 1865 65268 中 4FA 698 64820 高 7SI 1967 65283 每个音符使用一个字节,字节的高 4位代表音符的高低,低 4 位代表音符的节拍,表 节拍与节拍码的对照。 如果 1 拍为 秒, 1/4 拍是 秒,只要设定延迟时间就可求得节拍的时间。 假设 1/4 拍的节拍时间为 DELAY,则 1拍应为 4DELAY,以此类推。 所以只要求得 1/4 拍的 DELAY 时间,其余的节拍就是它的倍数,如表 为 1/4 和 1/8 节拍的时间设定。 表 节拍与节拍码的对照 节 拍码 节拍数 节拍码 节拍数 1 1/4 拍 1 1/8 拍 2 2/4 拍 2 1/4 拍 3 3/4 拍 3 3/8 拍 4 1 拍 4 1/2 拍 第 3 章 喷泉控制系统软件设计 19 5 1 又 1/4 拍 5 5/8 拍 6 1 又 1/2 拍 6 3/4 拍 8 2 拍 8 1 拍 A 2 又 1/2 拍 A 1 又 1/4 拍 C 3 拍 C 1 又 1/2 拍 F 3 又 3/4 拍 表 各调 1/4 节拍的时间设定 曲调值 DELAY 曲调值 DELAY 调 4/4 125 毫秒 调 4/4 62 毫秒 调 3/4 187 毫秒 调 3/4 94 毫秒 调 2/4 250 毫秒 调 2/4 125 毫秒 表 简谱对应的简谱码、 T值 简谱 发音 T 值 简谱码 简谱 发音 简谱码 T 值 5 低音 64260 1 6 中音 9 64968 6 低音 64400 2 7 中音 A 65030 7 低音 64524 3 1 高音 B 65058 1 中音 64580 4 2 高音 C 65110 2 中音 64684 5 3 高音 D 65157 3 中音 64777 6 4 高音 E 65178 4 中音 64820 7 5 高音 F 65217 5 中音 64898 8 高音 0 音乐程序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。