基于89c51单片机控制的LED音乐彩灯控制器的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Word资料基于89c51单片机控制的LED音乐彩灯控制器的设计随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,便宜的造价以及简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建础物已经成为一种时尚。但目前市场上各种各样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性……本方案提出一种基于8951单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以8951单片机作为主控核心,在主控模块上设有3个按键和8个LED显示灯,根据需要可以编写若干种亮灯模式,利用其部定时器T0实现一个基本单位时间为1ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。与普通LED彩灯相比,具有体积小、价格低、功耗低等优点。2系统功能LED彩灯用软件控制硬件的方式来控制彩灯闪烁,即彩灯控制器和管LED模块。彩灯采用8951提供+5V电压工作,经过电源变换,输出直流工作电压,一方面为管LED模块提供+5V工作电源,另一方面为主控模块单片机系统彩灯控制器提供5V工作电源。整个系统工作由软件程序控制运行,根据需要用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。上电后系统经过初始化,查询是否有功能切换键按下:有,则进入设定模式状态;无,则进入默认工作状态。在设定模式状态下,可以根据个人爱好及不同场合的需要来指定调用哪种模式,并且可以改变每种模式的时间T1、频率F1参数,在工作状态下,LED彩灯控制器按照程序设定好的若干亮灯花样模式程序顺序调用往下走,开始工作,依次8个等亮完为一个亮灯周期,然后再回主循环继续工作,同样如果想进入其它设定模式状态,只需按下功能切换键即可。整个3种亮灯模式时间可以看作一个大周期T,对于每一个模式编写一个独立工作子程序,其中设定了从左到右点亮LED,从右到左点亮LED,还有自己定义的LED点亮方式。因此在LED彩灯上电工作后,可以方便地通过主控模块上的显示器指定LED彩灯当前工作模块,工作时间Ti,频率Fi等实时参数。若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,可以通过主控模块上的按键来设定LED不同的闪烁频率Fi和亮灯时间Ti,以便符合实际需要。此外如果对某一种模式感兴趣需要仔细观看该种亮灯模式,可以让程序循环。硬件设计LED彩灯系统包括,即LED彩灯控制器(8951主控模块),LED彩灯在8951外部接一个震荡时钟频率。用8951的控制器,具有按键、显示等功能,并利用8951的P0口的8个输出端上面焊有8个LED彩灯,使用彩灯在软件的控制下工作。主控模块电路设计主控模块电路如图1所示。主控模块主要设计器件有89C51,8个LED显示器,3个开关按键,1个稳压器(5V电压),1个外部晶振振荡器信号输出驱动,4个电阻。通过软件设计,使单片机P0口作为三色LED驱动信号输出口及移位时钟CLOCK信号,8951的P0为LED的输出口。软件设计LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。系统中软件可以分为主程序和中断服务子程序。上电后在按键控制灯的闪烁方式,通过软件来控制循环,以一个单位实际1ms的T0定时为中断服务子程序。在这个1ms的T0定时基础上,可以根据需要来确定各种模式工作时间Ti,以及确定在各种亮灯点亮和熄灭各种状态LED灯等。整个系Word资料统软件由程序、各种模式子程序、1ms中断服务子程序、调用循环程序组成。利用T0定时器作为定时基本单位,根据模式需要计算好各控制信号的发生时刻,根据移位触发的翻转时刻步调一致,使LED彩灯按照设计的模式工作。除了T0定时中断之外,程序的大部分时间是在处理按键的查询和LED显示的延时。3个按键分别为:K1按键,从左到右点亮LED,K2按键,从右到左点亮LED,用户自己定义方式点亮LED。在每次的T0定时中断服务子程序里,需要对各种时间寄存器和模式寄存器进行加1或者清0,为主程序查询作准备,同时查询是否已中断1ms,若1ms到了,则对按键一次,是否有按下并进行相应子程序处理。主程序除了调用各种子模式子程序,调用LED显示子程序和延时子程序之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。程序流程如图2所示亮灯模式,只要控制好各色灯触发和熄灭时刻就可以组合础各种亮灯效果。2.1原理框图扬声器功率放大电路LM386电源电路彩灯驱动显示电路复位电路时钟电路2.2电路原理图2.3工作原理根据设计要求可以把电路组成部分分为音乐控制部分,整个系统有3个或以上的控制开关。控制彩灯闪烁快慢的时钟信号CLK-IN,音乐控制按钮,清零端CLRDENG等。利用单片机89C51产生乐曲音符,再把音谱翻译成计算机音乐语言,由单片机进行信息处理,再经过信号放大,由喇叭放出乐曲。由于音符和节拍都由计算机产生,所以发言音符和节拍准确。单片机奏乐的原理:通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音阶的声音,再来源延迟常数,作为数据表格存放在存储器中。由程序查表得到定时常数和延迟常数,分别用以控制定时器产生方波的频率和发出该频率方波的持续时间。当延迟时间到时,再查下一个的定时常数和延迟常数,依次下去,就可以自动演奏乐曲。工作程序流程图如下:开始T0初始化,A清零,开中断,中断计数20H单元,清零查首地址送DPTR查表取常数是结束符00H?延时100msN是休止符FFH?YY恢复初始条件A清零延时1s后再循环Word资料N音阶常数送6取节拍常数送R7启动T0计数P2.0取反按R6延时节拍时间是否到?N停止T0计数,中断计数,20H单元清零,DPTR加1Y2.4音乐彩灯控制程序代码音乐播放源程序:(采用定时器T0,定时器方式1)ORG000HLJMPSTARTORG000BHAJMPCONTORG0100HSTATR:MOVSP,#50HMOVTH0,#0DBHMOVTL0,#0FFHMOVTMOD,#01HMOVIE,#82HMUSIC0:MOVDPTR,#DAT;表首地址送DPTRMOV20H,#00H;中断计数单元清零MUSIC1:CLRAMOVCA,@A+DPTR;查表取音阶常数JZEND0;是结束符?CJNEA,#0FFH,MUSIC5;是休止符?LJMPMUSIC3;产生100MS停顿MUSIC5:NOPMOVR6,A;音阶常数送R6INCDPTR;DPTR+1MOVA,#0MOVCA,@A+DPTR;取节拍常数送R7MOVR7,ASETBTR0;启动定时器T0MUSIC2;NOPCPLP1.0;输出电平取反MOVA,R6MOVR3,A;音阶常数送R3LCALLDEL20MOVA,R7;节拍常数送ACJNEA,20H,MUSIC;节拍时间到否?Word资料MOV20H,#00H;为下一个音阶常数做准备INCDPTRLJMPMUSIC1MUSIC3:NOP:休止100MSCLTTR0MOVR2,#14H;R2=20MUSIC4:NOPMOVR3,#250;R3=250LCALLDEL20DJNZR2,MUSIC4INCDPTR;为取下一个音阶常数准备LJMPMUSIC1END0:MOVR2,#200;歌曲结束,延时1秒后继续MUSIC6:MOVR3,#250LCALLDEL20DJNZR2,MUSIC6LJMPMUSIC0DEL:MOVR4,#05HDEL4:NOPDJNZR4,DEL4DJNZR3,DELRETCONT:INC20H;计数单元容加1MOVTH0,#0DBH;重新送100MS定时初值MOVTL0,#0FFHRETIDAT:DB18H,30H,1CH,10H,20H,40H,1CH,10H;八月桂花遍地开的谱表DB18H,10H,20H,10H,1CH,10H,18H,40HDB1CH,20H,20H,20H,1CH,20H,18H,20HDB20H,80H,0FFH,20H,30H,1CH,10H,18HDB20H,15H,20H,1CH,20H,20H,20H,26HDB40H,20H,20H,2BH,20H,26H,20H,20HDB20H,30H,80H,0FFH,20H,20H,1CH,10HDB18H,10H,20H,20H,26H,20H,2BH,20HDB30H,20H,2BH,40H,20H,20H,1CH,10HDB18H,10H,20H,20H,26H,20H,2BH,20HDB30H,20H,2BH,40H,20H,30H,1CH,10HDB18H,20H,15H,20H,1CH,20H,20H,20HDB26H,40H,20H,20H,2BH,20H,26H,20HDB20H,20H,30H,80H,20H,30H,1CH,10HDB20H,10H,1CH,10H,20H,20H,26H,20HDB2BH,20H,30H,20H,2BH,40H,20H,15HDB1FH,05H,20H,10H,1CH,10H,20H,20HWord资料DB26H,20H,2BH,20H,30H,20H,2BH,40HDB20H,30H,1CH,10H,18H,20H,15H,20HDB1CH,20H,20H,20H,26H,40H,20H,20HDB2BH,20H,26H,20H,20H,20H,30H,30HDB20H,30H,1CH,10H,18H,40H,1CH,20HDB20H,20H,26H,40H,13H,60H,18H,20HDB15H,40H,13H,40H,18H,80H,00HEND时钟控制部分源程序:ORG00HJMPSTARTORG0BHJMPTIM0START:MOV28H,#00MOV2AH,#12HMOV2BH,#00MOV2CH,#00MOVTMOD,#00000001BHMOVTH0,#(65536-4000)MOVTL0,#(65536-4000)MOVIE,#10000010BHMOVR4,#250SETBTR0LOOP:JBP0.0,N2CALLDELAYMOVA,2CHADDA,#01HDAAMOV2CH,ACJNEA,#60H,N1MOV2CH,#00HN1:JNBP0.0,$CALLDELAYN2:JBP0.1,N4CALLDELAYMOVA,2BHADDA,#01HDAAMOV2BH,ACJNEA,#60H,N3MOV2BH,#00HN3:JNBP0.1,$CALLDELAYN4:JBP0.2,LOOPWord资料CALLDELAYMOVA,2AHADDA,#01HDAAMOV2AH,ACJNEA,#24H,N5MOV2AH,#00N5:JNBP0.2,$CALLDELAYJMPLOOPTIM0:MOVTH0,#(65536-4000)MOVTL0,#(65536-4000)PUSHAPUSHPSWDJNZR4,X2MOVR4,#250CALLCLOCKCALLDISPX2:CALLSCANPOPPSWPOPARETISCAN:MOVR0,#28HINC@R0CJNE@R0,#6,X3MOV@R0,#0X3:MOVA,@R0ADDA,#20HMOVR1,AMOVA,@R0SWAPAORLA,@R1MOVP1,ARETCLOCK:MOVA,2CHADDA,#1DAAMOV2CH,ACJNEA,#60H,X4MOV2CH,#00MOVA,2BHADDA,#1DAAMOV2BH,AWord资料CJNEA,#60H,X4MOV2BH,#00MOVA,2AHADDA,#1DAAMOV2AH,ACJNEA,#24H,X4MOV2AH,#00X4:RETDISP:MOVR1,#20HMOVA,2CHMOVB,#10HDIVABMOV@R1,BINCR1MOV@R1,AINCR1MOVA,2BHMOVB

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功