毕业设计54彩灯控制器的设计Word文档下载推荐.docx
《毕业设计54彩灯控制器的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《毕业设计54彩灯控制器的设计Word文档下载推荐.docx(23页珍藏版)》请在冰点文库上搜索。
5设计的扩展―――――――――――――――――――――――――15
6结束语――――――――――――――――――――――――――――13
参考文献――――――――――――――――――――――――――――14
1绪论
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
并且这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
本文提出了一种基于AT一89C51单片机的彩灯控制方案,实现对LED彩灯的控制。
本方案以AT一89C51单片机作为主控核心,与键盘、显示等模块组成核心主控制模块。
在主控模块上设有4个按键和1位七段码LED显示器,根据用户需要可以改变若干种亮灯模式,利用其内部INT0中断源来选择彩灯工作模式,根据各种工作模式的不同,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。
该新型LED彩灯及其控制器是某公司委托开发产品,产品实际应用效果较好,亮灯模式多。
2系统功能
该彩灯控制系统设置了四种工作模式:
模式0、模式1、模式2、模式3,当它工作在模式i时,都能够通过数码管显示出来。
系统上电时默认的是模式0,它工作时依次调用其它三种工作模式,当按下与之工作模式对应的按键时,则该系统将会工作在该模式下,直至有按键按下才能切换该工作模式。
LED彩灯控制器按照程序设定好的若干亮灯花样模式程序模式0顺序调用往下走,从模式1开始工作,自模式1到模式3为一个亮灯周期,然后再回到模式1循环继续工作,同样如果想进入用户设定模式状态,只需按下功能切换键即可(按键1——4)。
整个4种亮灯模式时间可以看作一个大周期,其中的每一种花样工作模式模式i(1,2,3,4)时间为小周期T对于每一个模式编写一个独立工作子程序模式i,其中设定了LED彩灯的点亮时刻和熄灭时刻,以及模式工作时间和该模式LED闪烁频率F。
七段码显示器显示当前工作模式的序号模式i,对系统工作状态起到了很好的实时监控作用。
因此在LED彩灯上电工作后,用户可以方便地通过主控模块上的显示器知道LED彩灯当前工作模式模式i等实时参数。
实际应用需要根据不同场合来改变彩灯闪亮效果,以便满足实际需要。
如果用户对某一种模式感兴趣需要仔细观看该种亮灯模式,可以通过键盘选定任意第模式i模式使系统循环重复工作在该花样模式下。
3硬件设计
新型LED彩灯系统采用AT89C51单片机作为核心芯片,通过添加外围元件来实现对彩灯工作模式的控制。
工作模式利用四个按键控制,并通过数码管显示出来。
该系统的彩灯工作效果通过外围的发光二极管显示。
3.1主控模块电路设计
主控模块主要设计器件有AT89C51,一个74Ls21,4个功能按键和一个复位按键,8个LED管,红、绿、黄三种颜色,1个5V串联稳压电源。
通过软件设计,使单片机P0口作为三色LED驱动信号输出口,考虑到S51的驱动能力,P0口外围的发光二极管的另一端接电源。
P1口作为按键输入口。
总原理图见附录一。
模式切换由四个按键K1、K2、K3、K4组成,分别对应于模式0到模式3。
5V电源通过电阻R1~R4给P1口提供高电位,当按下K1时,P1.0接低电位工作,通过S51内部的程序识别并加以处理后,使彩灯工作在模式0下,且数码管显示0;
同样,当其他按键按下时,K2对应模式1,数码管显示1;
K3对应模式2,数码管显示2;
K3对应模式3,数码管显示3。
当有按键按下时,为了响应中断,将四个按键的输出端连接到74Ls21的四输入端,这样当有一个按键按下时,74Ls21的一个输出端将输出低电平,响应S51的INT0端,这样才能使S51内部的程序检测到外部的中断信号,并加以处理后来快速切换彩灯的工作模式。
电路设计如模块控制电路图1
模块控制电路图1
3.2LED板模块设计
LED板模块电路见上图。
管内LED板模块设计主要器件有LED彩灯(红、绿、蓝)、电阻等。
根据实际应用彩灯长度需要,可将不同数量的LED模块实现级连,组成一个完整的LED彩灯。
为了得到更多的花样模式效果,可以采用多组使红绿2种灯从前往后驱动点亮闪烁,蓝灯从后往前驱动点亮闪烁,这样具有很好的动感视觉效果。
3.3电源设计:
采用开关电源为电路提供5V电压电路图如电源电路图2:
电源电路图2
4软件设计
该新型LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。
系统中软件可以分为主程序和中断服务子程序。
上电后在缺省状态以顺序方式从模式1到模式4循环执行,花样亮灯模式流程为主程序,以一个单位时间500ms的(TIME)10ms延时程序。
在这个10ms的定时基础上,可以根据需要来确定各种模式工作时间,以及确定在各种亮灯模式Model—i内点亮和熄灭各种颜色LED灯的时刻。
整个系统软件由主程序(Main)、各个模式子程序(Model—i)、10ms延时程序、键盘扫描处理子程序(Key)等程序组成。
利用定时器作为定时基本单位,根据模式需要计算好各控制信号的发生时刻,根据不同的模式Model—可以设定不同的工作时间和脉冲翻转频率F-通过P0口输出,使各色LED灯的驱动时刻与移位触发的翻转时刻步调一致,使LED彩灯按照设计的模式工作。
除了TO定时中断之外,程序的大部份时间是在处理按键的查询和LED显示的延时。
5个按键分别为:
1个复位按键和4个模式选择按键,开机时首先复位进入默认模式(在没一按键按下的情况下从模式1到模式4循环执行),当检测到有按键按下时开始判断是哪个按键按下,从而执行相应的模式直道有其他按键按下,Model—i
4.1模式状态流程如模式状态流程图3所示。
模式状态流程图3
4.2程序实现:
下面是控制程序代码:
;
****************************************************************
ORG0000H
LJMPMAIN
ORG0003H
AJMPSERVE
ORG0030H
;
*******************************************************************
主程序:
MAIN:
MOVR1,#00H;
主程序
SETBEX0
SETBIT0
SETBEA
MOVP2,#0C0H
LOOP1:
CJNER1,#00H,LOOP2;
模式0
LCALLONE
LCALLTWO
LCALLTHREE
SJMPLOOP1
LOOP2:
CJNER1,#01H,LOOP3;
模式1
SJMPLOOP2
LOOP3:
CJNER1,#02H,LOOP4;
模式2
SJMPLOOP3
LOOP4:
CJNER1,#03H,LOOP1;
模式3
SJMPLOOP4
中断服务程序
ORG0600H
SERVE:
MOVP1,#0FFH;
中断服务程序,进行键抖动处理
MOVA,P1
CPLA
ANLA,#0FH
JZSERVE
LCALLD10ms
MOVB,A
KEY:
JNZKEY
MOVA,B
JNBACC.0,L1;
判断哪一个按键按下,并做相应处理
MOVR1,#00H
RETI
L1:
JNBACC.1,L2
MOVR1,#01H
MOVP2,#0F3H
L2:
JNBACC.2,L3
MOVR1,#02H
MOVP2,#0C4H
L3:
JNBACC.3,L4
MOVR1,#03H
MOVP2,#0C1H
L4:
RETI
D10ms:
MOVR6,#10H;
10ms延时程序
TS1:
MOVR5,#0FFH
TS2:
DJNZR5,TS2
DJNZR6,TS1
RET
500ms延时程序:
TIME:
MOVR4,#05H
Ta:
MOVR3,#0FFH
Tb:
MOVR2,#0FFH
Tc:
DJNZR2,Tc
DJNZR3,Tb
DJNZR4,Ta
彩灯控制模式1
*******************************************************************ONE:
MOVP0,#0FEH;
自低位向高位依次点亮
LCALLTIME
MOVP0,#0FCH
MOVP0,#0F8H
MOVP0,#0F0H
MOVP0,#0E0H
MOVP0,#0C0H
MOVP0,#80H
MOVP0,#00H
MOVP0,#01H;
自低位向高位依次熄灭
MOVP0,#03H
MOVP0,#07H
MOVP0,#0FH
MOVP0,#1FH
MOVP0,#3FH
MOVP0,#7FH
MOVP0,#0FFH
MOVP0,#7FH;
自高位向低位依次点亮
MOVP0,#01H
MOVP0,#80H;
自高位向低位依次熄灭
MOVP0,#0FEH
MOVP0,#0E7H;
自中间向两边依次点亮
MOVP0,#0C3H
MOVP0,#81H
MOVP0,#18H;
自中间向两边依次熄灭
MOVP0,#3CH
MOVP0,#7EH
MOVP0,#7EH;
自两边向中间依次点亮
MOVP0,#18H
MOVP0,#81H;
自两边向中间依次熄灭
MOVP0,#0E7H
********************************************************************
彩灯控制模式2
********************************************************************TWO:
MOVP0,#0FCH;
自低位向高位每两位依次点亮
MOVP0,#0C0H;
自高位向低位每两位依次熄灭
MOVP0,#3FH;
自高位向低位每两位依次点亮
MOVP0,#03H;
自低位向高位每两位依次熄灭
MOVP0,#0FAH;
奇偶两位交叉自低向高依次点亮
MOVP0,#0A0H
MOVP0,#5FH;
奇偶两位交叉自高向低依次点亮
MOVP0,#05H
*********************************************************************
彩灯控制模式3
********************************************************************THREE:
MOVR7,#02H;
奇偶交替点亮并交替熄灭各3次
LO1:
MOVP0,#0CCH
MOVP0,#55H
DJNZR7,LO1
自低位向高位依次点亮并依次熄灭
LO2:
MOVP0,#0FDH
MOVP0,#0FBH
MOVP0,#0F7H
MOVP0,#0EFH
MOVP0,#0DFH
MOVP0,#0BFH
自高位向低位依次点亮并依次熄灭
DJNZR7,LO2
5设计的扩展
若有用户需求还可将该彩灯控制器功能加以扩充,实现让用户自己调控彩灯闪烁的频率,同时还可以加上同步闪烁音乐音频的功能
具体实现如下:
ORGO1OOH
MAlN:
MOVSP,#50H//设计堆栈
MOVTMOD,#O1H//置定时器TO位方式1
M0VTH0,#0FEH
MOVTL0,#0D4H//定时为3ms所有计数器,显示器,P1口都清零
ANLRED一0N,#OOH
ANLRED一0FF,#OOH
ANLGREEN—ON。
#OOH
ANLGREEN—OFF。
#00H
ANLBLUE—ON。
ANLBLUE—OFF。
#OOH
ANLCLOCKCOUNT。
#00H
ANLKEYCOUNT,#OOH//显示器全灭
MOVL1。
#OAH
MOVL2。
MOVL3,#0AH
ANLL4,#OAH
ANLL5,#OAH
ANLTlME。
ANLP1,#OOH
MOVR4。
MOVCLOCKDATE1。
#O1H//设定1频率3ms时钟翻转一次
MOVCLOCKDATE2,#O2H//设定2频率6ms时钟翻转一次
MOVCLOCKDATE3,#O3H//设定3频率9ms时钟翻转一次
MOVTlMEDATE1,#O2H//设定每一个模式工作O.45S
MOVTlMEDATE2,#04H//设定每一个模式工作1.35S
MOVTlMEDATE3,#O6H//设定每一个模式工作2.25S
MOVTlMEDATE4,#O1H//设定每一个模式工作4