当前位置:文档之家› 红外控制灯

红外控制灯

红外控制灯
红外控制灯

华侨大学厦门工学院

《红外控制灯》

设计报告

专业:电气工程及其自动化

班级:

学号:

姓名:

时间:

指导教师:

摘要:

红外控制是家用电器中用得较多的控制方式,其特点是不影响周边环境的、不干扰其他电器设备,有体积小、功耗低、功能强、成本低等。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰。本设计以市面常见的车载MP3遥控器为发射端,以HS0038B作为一体化接受头,运用STC89C5RC单片机进行软件编码解码实现用红外控制RGB-LED进行不同种类的颜色变化。

关键字:红外控制; 红外接收头;单片机;RGB-LED

目录

一、设计方案与比较 (4)

二、设计原理 (4)

1、红外遥控器发射原理 (4)

2、红外接收原理 (5)

3、NEC协议及解码原理 (6)

4、全彩LED显示原理 (6)

5、系统总电路及实现原理 (8)

三、系统测试及结果 (9)

参考文献 (10)

附录一: (11)

一、设计方案与比较

方案一:我们使用专用遥控器作为控制信号发出装置,当按下遥控器的设置键后,一体化红外接收装置接收到遥控器发出的设置控制信号,然后将信号送到专用的解码芯片中进行解码,解码后将信号送到单片机,由单片机查表判断这个信号是不是设置信号,当确认是设置信号后,启动设置子程序实现对RGB-LED的控制。

方案二:我们采用普通车载MP3遥控器作为控制信号发出装置,当按下遥控器的设置键后,红外接收装置接收到遥控器发出的红外线控制信号,然后把这个信号转换成电信号,传到单片机中,利用单片机对这个信号进行解码,解码完成后查表确定是不是设置信号,当这个信号是设置信号后,启动设置子程序,即可实现对RGB-LED进行对应的控制。

方案一为硬件解码方案,硬件解码需要使用与遥控器相配套的专用的解码器芯片,而解码芯片一般不易得到,价格也较贵,或者自行开发解码电路(但电路太复杂,性能欠佳)。方案二为软件解码方案,软件解码可以不考虑遥控器的芯片是什么型号的,因为我们只需检测到它的发射编码,然后用软件方式来对它进行处理,从而得到所要的信息。软件解码具有灵活、硬件精简(仅需集成红外接收头和一片单片机)、可靠性高,成本低等特点。经以上的论证,可以采用软件解码方案,成本低,方便实现,并且系统整体性能和可靠性高。故我们在本设计中采取方案二。

二、设计原理

1、红外遥控器发射原理

红外发射部分包括键盘矩阵、编码调制、LED红外发送器(如图2-1-1),遥控发射器专用芯片很多,由于发射系统一般用电池供电,这就要求芯片的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常一点误差可以忽略不计。根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类. 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”.上述“0”和“1”组成的42位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射.红外线通过红外发光二极管(LED)发射出去,红外发光二极管(红外发射管)内部构造与普通的发光二极管基本相同,材料和普通发光二极管不同,在红外发射管两端施加一定电压时,它发出的是红外线而不是可见光。

图2-1-1红外发射部分

2、红外接收原理

接收部分包括光、电转换放大器、解调、解码电路(如图2-2-1)。红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。一体化红外接收头(如图2-2-2)。

图2-2-1红外接收部分

图2-2-2红外接收一体头

3、NEC协议及解码原理

NEC协议载波38khz,其逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us(如图2-3-1)。首次发送的是9ms的高电平脉冲,其后是4.5ms 的低电平,接下来就是8bit的地址码(从低有效位开始发),而后是8bit的地址码的反码(主要是用于校验是否出错)。然后是8bit 的命令码(也是从低有效位开始发),而后也是8bit 的命令码的反码(如图2-3-2)。一直按住那个按键,一串信息只能发送一次。如果一直按着按键,发送的则是以110ms为周期的重复码,重复码是由9ms 的AGC高电平和 4.5ms的低电平及一个560us 的高电平组成。

图2-3-1逻辑0和逻辑1

图2-3-1完整发送一次的编码

4、全彩LED显示原理

LED具有亮度高、低功耗、寿命长、启动快,功率小、无频闪、不容易产生视视觉疲劳等优点,同时LED还有色彩鲜艳,易于控制的特点,使得其广泛应用于我们的日常生活中。Led从功率上一般分为小功率(小于1W)和大功率(大于1W)灯珠,从颜色上又分为单色灯珠(红色,绿色,蓝色,黄色,白色,紫色,橙色等)、双色灯珠(红绿色一体灯珠,在这种情况下灯珠可以分为共阳或者共阴极接法,也就是在LED灯珠内部把阳极或者阴极连接到一起)、和全彩灯珠(将红色、绿色、蓝色三种基色封装到一个灯珠支架中的这种方式脚全彩灯珠,全彩灯珠一般是4脚或者6脚,4脚也分共阳或共阴极接法)。LED 点亮条件有两种额定电压:满足LED灯珠正常点亮所需要的工作电压。常规红光、黄光灯珠的额定电压为:1.8-2.2V;白光,绿光,蓝光,紫光的额定电压为:2.8-3.4V。额定电流:满足LED灯珠正常点亮所需要的工作电流。由于LED灯

珠的种类繁多电流值也截然不同。.LED恒流驱动:流源定义为电流恒定不变,电压可变,常规的恒压源也很容易改制成恒流源。本设计中采用AMC7135恒流驱动贴片(输出电流350MA)。

三基色混色原理:三基色描述:三基色是指红,绿,蓝三色,人眼对红、绿、蓝最为敏感,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生。同样绝大多数单色光也可以分解成红绿蓝三种色光。这是色度学的最基本原理,即三基色原理。红绿蓝三基色按照不同的比例相加合成混色称为相加混色,除了相加混色法之外还有相减混色法。可根据需要相加相减调配颜色。

⑴自然界中的绝大部分彩色,都可以由三种基色按一定比例混合得到;反之,任意一种彩色均可被分解为三种基色。⑵作为基色的三种彩色,要相互独立,即其中任何一种基色都不能由另外两种基色混合来产生。⑶由三基色混合而得到的彩色光的亮度等于参与混合的各基色的亮度之和。⑷三基色的比例决定了混合色的色调和色饱和度2相加混色原理红色+绿色=黄色绿色+蓝色=青色红色+蓝色=品红红色+绿色+蓝色=白色(如图2-4-1)

图2-4-1加色规律

在一般的全彩显示设备中,通常使用两种相加混色法: 1.空间混色法:它将三种色光投射到同一表面上彼此相距很近的三个点上.由于人眼的分辨率力有限,能产生一种基色光混合的色彩感觉。2.时间混合法:它把三种基色光轮流投射到同表面上,只要轮流速度足够快,由于人的视觉惰性,就能达到相加混色的效果。

5、系统总电路及实现原理

系统电路如图2-5-1所示:

图2-5-1系统电路设计

系统电路主要有89C52RC单片机及其最小系统,RGB-LED(D1,D2,D3)红外一体接收头HS0038B,驱动电路部分(AMC7135)构成。当按下遥控按键后,遥控器内部芯片很据NEC协议发出相应信号(13.5ms的引导码部分+8位用户码+8位用户反码+8位数据编码+8位数据编码反码),由于接收到的信号与发送的信号刚好相反所以红外接接收头最开始接收到的引导码为与其相反的低电平。红外接收头把接收到的信号转换为电信号送到单片机的P3.2口进入中断程序进行解码,再把所得解码进行查询的程序,如果符合条件的话则执行相应的子程序,即RGB-LED显示出不同的颜色。如果按键一直按着不放的情况下,在发送完第一帧数据之后则将一直交替发送高电平和低电平。在实际电路中,由于LED 的特性所在,为了使其一直处于正常工作状态,必须提供恒压源或恒流源。又因为RGB-LED是又红绿蓝三色灯珠组成,它们额定电压不同,所以最好的方案是采取提供恒流源进行驱动。在本设计中,采用了AMC7135恒流驱动芯片来提供350MA的恒流电流,使其持续稳定工作。

三、系统测试及结果

所用遥控器的用户码为00FF,编码如图3-1所示,在本设计程序中运用到的编码对应的颜色:16---灭灯,0c---白色,18---品红,5e---青色,08---黄色,1c---绿色,5a---蓝色,42---红色,52---七种颜色循环变化,4A---颜色渐变。程序定义按下对应按键会显示对应的颜色,没有用到的按键为无效按键(灭灯)。首次在没有接入AMC7135恒流驱动芯片,RGB-LED直接连接在单片机的情况下,输出电流值过小,LED为几乎不亮的状态,无法进行正常的显示。当接入AMC7135后,其驱动电流为350MA附近,LED能够进行正常工作,且符合设想的要求,按下对应按键实现不同显示。当按下按键时,RGB-LED显示出正常的颜色,再按下其他对应按键时,其显示结果也符合所设定的要求(如图3-2)。经测试其结果符合设计预想的效果,且可正常使用。

图3-1遥控器编码

参考文献

[1] 朱纯益,路建华. 单片机用作通用红外遥控接收器的设计[M]. 北京.清华-华录信息技术研究所,2002,40-45

[2] 倪健,董强. 编码解码技术在红外遥控器中的实现[J].中国民航飞行学院学报, 2004,(6):70-71

[3] 陈永甫. 红外探测与控制电路[M]. 北京:人民邮电出版社2004,120-121

附录一:

程序:

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar color1,color2,color3,color4;

sbit gl=P2^1;

sbit rl=P2^0;

sbit bl=P2^2;

sbit IR=P3^2;

uchar j,k;

uchar a,b,c,d,e,f;

unsigned char g,r;

uchar Time;

uint cons;

uchar color_1,color_2,color_3,color_4;

uchar IRdata[4];

uchar code dig[]={0x00,0x07,0x05,0x006,0x03,0x02,0x04,0x01}; uchar code dig2[]={0x01,0x05,0x006,0x03,0x02,0x04,0x07};

/*************************************************

延时程序

*************************************************/ void delay(unsigned int x) //0.14ms

{

unsigned char i;

while(x--)

{

for (i = 0; i<13; i++)

{}

}

}

void delay3ms(void) //误差0us

{

unsigned char a,b;

for(b=111;b>0;b--)

for(a=12;a>0;a--);

}

void delay600ms(void) //误差0us

{

unsigned char a,b,c;

for(c=55;c>0;c--)

for(b=82;b>0;b--)

for(a=65;a>0;a--);

}

void timer(unsigned char t)

{

unsigned char b;

for(b=0;b

{_nop_();

_nop_();

_nop_();}

}

/*************************************************

LED渐变

*************************************************/ void ledout(unsigned char g,r,b)

{

unsigned char a;

for(a=0;a<10;a++)

{

if(g!=0)

{gl=1;timer(g);gl=0;}

if(r!=0)

{rl=1;timer(r);rl=0;}

if(b!=0)

{bl=1;timer(b);bl=0;}

}

}

/*************************************************

初始化hs0038b(中断)

*************************************************/ void hsint()

{

IT0=1;

EX0=1;

EA=1;

IR=1;

}

/*************************************************

主程序

*************************************************/ void main()

{ d=220;

P2=0x00;

hsint();

g=200;r=0;b=0;

while(1)

{

if(IRdata[2]==0x16) c=0;

if(IRdata[2]==0x0c) c=1;

if(IRdata[2]==0x18) c=2;

if(IRdata[2]==0x5e) c=3;

if(IRdata[2]==0x08) c=4;

if(IRdata[2]==0x1c) c=5;

if(IRdata[2]==0x5a) c=6;

if(IRdata[2]==0x42) c=7;

if(IRdata[2]==0x52) c=8;

if(IRdata[2]==0x4a) c=9;

if(c<8)

{

P2=dig[c];

}

if(c==8)

{

if(f==7) f=0;

P2=dig2[f];

f++;

delay600ms();

}

if(c==9)

{ if(g+r+b!=200)

{g=200;r=0;b=0;}

if(g!=0&&b==0)

{g--;r++;}

if(r!=0&&g==0)

{r--;b++;}

if(b!=0&&r==0)

{b--;g++;}

if(g+r+b!=200)

{g=200;r=0;b=0;}

ledout(g,r,b);

}

}

}

/*************************************************

中断程序

*************************************************/ void IRinter() interrupt 0

{

Time=0;

delay(70);

if(IR==0)

{

cons=1000;

while((IR==0)&&(cons>0)) {

delay(1);

cons--; }

if(IR==1)

{

delay3ms();

cons=500;

while((IR==1)&&(cons>0))

{

delay(1);

cons--;

}

for(k=0;k<4;k++)

{

for(j=0;j<8;j++)

{

cons=60;

while((IR==0)&&(cons>0))

{

delay(1);

cons--;

}

cons=500;

while((IR==1)&&(cons>0))

{

delay(1);

Time++;

cons--;

if(Time>30)

{

return;

}

}

IRdata[k]>>=1;

if(Time>=8)

{

IRdata[k]|=0x80;

}

Time=0;

}

}

}

if(IRdata[2]!=~IRdata[3]) {

return;

}

}

}

双单片机控制流水灯(精)

案例8 双单片机通信控制流水灯 用串行工作方式进行单片机之间的通信,电路图如下图所示。两个89S51单片机通过串行口进行通信,设置U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,U1的RXD接U2的TXD,U1的TXD接U2的RXD,U2接8个发光二极管,要求由U1向U2发送数据,使8个发光二极管按从左到右逐一点亮的流水灯效果。 MCS-51单片机之间的串行异步通信 1.串行口的编程串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下: (1)按选定串行口的工作方式设定SCON的SM0、SM1两位二进制编码。 (2)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据(地址为1,数据为0)。 (3)若选定的工作方式不是方式0,还需设定接收/发送的波特率。 (4)设定SMOD的状态,以控制波特率是否加倍。 (5)若选定工作方式1或3,则应对定时器T1进行初始化以设定其溢出率。 2.案例分析由于串行口通信时传输的“0”或者“1”是通过相对于“地”的

电压区分的,因此使用串行口通信时,必须将双方的“地”线相连以使其具有相同的电压参考点。需要注意的是,异步通信时两个单片机的串行口波特率必须是一样的。由于U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,因此二者的串行口初始化程序不完全一样。假设使用240bit/s的波特率,使用串行工作方式1,Tl使用自动装载的方式2,则Ul的TH1应初始化为136,U2的TH1应初始化为16。 对应的程序完成如下功能:Ul和U2进行双工串行通信,Ul给U2循环发送流水灯控制字,U2收到控制字后送到P0口,点亮相应发光二极管,双方都用中断方式进行收发。 (1)单片机U1的源程序 #include unsigned char sdata=0xfe; void isr_uart(); void main() { TMOD=0X20; TH1=136; TL1=136; SCON=0x40; PCON=0; TR1=1; EA=1;ES=1; SBUF=sdata; while(1); } void isr_uart() interrupt 4 {

LED全彩灯同步控制器使用说明书-V1.2

J S-D K系列L E D全彩控制器 使用说明书(V1.2) J S-D K-T1a_1024(L E D全彩单通道同步控制器) J S-D K-T2a_1024(L E D全彩双通道同步控制器) J S-D K-T4a_1024(L E D全彩四通道同步控制器) J S-D K-T8a_1024(L E D全彩八通道同步控制器) J S-D K-T1b_512(L E D全彩单通道单机控制器) J S-D K-T1b_1024(L E D全彩双通道单机控制器) J S-D K-T2b_1024(L E D全彩四通道单机控制器) J S-D K-T4b_1024(L E D全彩四通道单机控制器) J S-D K-T8b_1024(L E D全彩八通道单机控制器)

一、概述 J S-D K系列L E D全彩控制器目前上市九款:包括J S-D K-T1a_1024、J S-D K-T2a_1024、J S-D K-T4a_1024、J S-D K-T8a_1024、J S-D K-T1b_512、J S-D K-T1b_1024、J S-D K-T2b_1024、J S-D K-T4b_1024、J S-D K-T8a_1024。L E D全彩同步控制器通过交流220V市电进行同步播放,可以多台联合使用。L E D全彩灯单机控制器D C+5~+24V控制,只能单机使用。 L E D全彩同步控制器主要适用于:L E D模组、全彩穿孔灯、外控护栏管、灯条、全彩点光源等。 二、技术参数 输入电压:同步控制器(交流220V,50H z市电) 单机控制器(直流+5V~直流+24V) 控制路数:J S-D K-T1a_1024(1路)、J S-D K-T2a_1024(2路)、J S-D K-T4a_1024(4路)、 J S-D K-T8a_1024(8路)、 J S-D K-T1b_512(1路)、J S-D K-T1b_1024(1路)、 J S-D K-T2b_1024(2路)、J S-D K-T4b_1024(4路)、J S-D K-T8b_1024(8路)同步模式:自动检测50H工频信号(同步控制器)。 驱动芯片:三线芯片,四线芯片。 三、产品特点 l智能化软件设计支持自动布线、手动布线,大大提高工作效率。 l便捷化软件设计10分钟学会软件设计、布线操作,简单实用。 l数据文件U盘导入,方便灵活,适应性强。 l软件24位伽马校正,展现绚丽画面。 l白光全亮测试,迅速排查接线及电源供电问题。 l经过严格电磁兼容性测试,防静电、抗干扰、防谐波,坚实可靠! 四、产品说明 (图一)

(整理)应用8255A实现交通灯控制设计

二○一一~二○一二学年第二学期信息科学与工程学院课程设计报告书 课程名称:微机原理课程设计 班级:电子信息工程2009级6 班学号:200904135150 姓名:张强 指导教师:徐守明 二○一二年二月二十日

前言 随着计算机科学技术的不断发展,微型计算机得到了广泛的应用,是人们利用计算机设计和开发各种应用系统的基础。同时微型计算机接口技术也是一门实践性较强的课程,理论与实践相结合可以更好的掌握知识,这也是这次交通灯系统控制的设计目的。交通灯是交通安全的关键,已广泛应用于城乡的十字路口,它的有无作为交通安全检查的重要依据,是交通秩序正常进行的有力保障。 十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。目前,有一种使用“模糊控制”技术控制交通灯的方法。能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。 本次的交通灯控制系统主要由8255A并行口、8253定时/计算器、8259单极中断控制器以及74LS139译码器实验等芯片组成。整个课程设计主要使用8255A的A口和B口模拟十字路口交通灯的闪烁情况。主要包括以下五个方面:1.课程设计题目名称;2.课程设计要求完成的任务;3.系统设计文档(包括了总体设计、详细设计以及程序设计等文档);4、课程设计总结;5.参考文献本次课程设计以固定的程序实现对交通灯实行控制,没有实现智能化,但智能化是交通控制系统是交通控制系统发展的必然趋势,也是满足日益发展的社会需要。通过本次的课程设计,更好的学习微机接口的应用技术,使我们将课堂所学到的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。 由于时间仓促和水平所限,本次课程设计难免有欠妥之处,请不吝批评指正。 摘要:本文介绍了以计算机为核心.利用可编程并行接口芯片8255A的软硬件功能,实现对交通灯控制 关键词:计算机可编程并行接日芯片交通灯 8255A

交通灯控制模拟程序

交通灯控制模拟程序设计 ;*************定义数据段*********************************************** data segment title1 db 'Traffic-System' deng db '# # #' sing1 db 'South-North' sing2 db 'East - West' sing3 db 'Red time(scend):' time db 'Time:' sing4 db 'Yellow time(scend):' buff db 4 ;键盘缓冲区 buff1 db 3 dup(?) ;工作计数区 buff2 db 3 dup(?) ;数据保存区 yellow db ? ;黄灯时间 mode db 'Mode:auto(Y/N)?:' ans db ? ting3 db 'Red time(scend):030' ting4 db 'Yellow time(scend):5' ;************************主程序段********************************************** data ends code segment assume cs:code,ds:data,es:data start:mov ax,data mov ds,ax mov es,ax call title2 ;初始化标题 q0: call mode1 ;模式选择自动或手动 call scanf call atuo ; 默认设置参数启动 lea si,ans cmp byte ptr[si],'y' jz q1 cmp byte ptr[si],'n' jnz q0 call ask1 ;设置红灯时间 call scanf0 call ask2 ;设置黄灯时间

(完整word版)51单片机流水灯

51单片机的流水灯控制 班级:100712 姓名:全建冲 学号:10071047

一、设计要求 用51单片机设计一个流水灯的控制方案,要求采用定时器定时,利用中断法控制流水灯的亮灭,画出电路图和程序流程图,写出程序代码以及代码注释。 二、电路原理图 原理图分析: 本原理图采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片机的P1端口,正极通过1KΩ排阻连接到电源上。原理图中还给出了晶振与复位端,以保证控制器的稳定工作。

三、程序流程图

四、程序代码及注解 1.非中断定时器控制 #include #include//包含了_crol_函数的头文件 #define uchar unsigned char #define uint unsigned int uint i=0; uchar a=0xfe; void main() { TMOD=0x01;//设置工作方式为定时器0,16位手动重装初值 TH0=(65536-46080)/256;//50毫秒定时赋初值 TL0=(65536-46080)%256; TR0=1;//启动定时器0 while(1) { If(TF==1)//读溢出标志位 { TH0=(65536-46080)/256;//重新赋初值 TL0=(65536-46080)%256;

i++; if(i==10)//500毫秒定时 { i=0; P1=a;//P1端口赋值 a=_crol_(a,1);//循环左移 } TF=0;//清除定时器溢出标志 } } } 程序分析:本程序采用非中断定时器法控制流水灯,核心语句在于读取标志位TF位,TF为定时器溢出标志位,溢出时硬件自动置一,所以循环读取标志位以判断定时器是否溢出,而每次溢出需要手动清零,否则定时器无法再次溢出,利用标志i读取10次即可达到500毫秒的定时。另外需要注意的是单片机晶振为11.0592MHz,所以计时一个数的时间为12/11.0592=1.085us,故定时50毫秒的计数为50000/1.085=46080。 2.中断定时器控制 #include

LED灯控制器

实验名称综合实验-LED灯控制器成绩 一、任务要求 利用C8051F310单片机设计一个LED灯控制器 主要功能和技术指标要求: 1. LED灯外接于P0.0端。 2. 采用PWM方式调节LED灯的亮度,亮度分为16个等级,亮度顺序为 0-1-2…E-F-E-D…1-0-1-2…F-E…2-1-0,每个亮度等级延时2秒钟。 0对应熄灭,F最亮。 3. 在LED显示器上显示当前亮度等级。 4. 在LED灯亮度最大最小时蜂鸣器分别鸣响1次(0.5秒钟)。 5. 利用单片机内部定时器定时,要求采用中断方式。 提高要求: 1)使用按键(KINT)开关LED灯,要求采用中断方式。 2)改变LED的亮度调节范围为0-31,并在在LED显示器上显示当前亮度值。

3)可用键盘设置亮度值。 4)其它个性化设计。 二、设计思路 基础部分:使用定时器产生不同占空比的信号,具体操作如下:每0.5ms中断一次,每次中断A加1或减1,当A≥R0时输出高电平,当A<R0时输出低电平,这样就能产生不同占空比的信号。同时每2s中断一次,每次中断R0加1或减1。再给A,与R0设定周期,这样就能实现LED从暗到亮再从亮到暗。数码管根据亮度等级通过查表方式实现亮度显示。每次R0=0H,或R0=0FH时蜂鸣器打开并用定时器定时0.5s。 提高部分:按键KINT将作为外部0中断的信号来源,采用低电平触发。当低电平持续一段时间后进入键盘输入模式,持续时间不足则会进入另外两种模式,模式1暂停并关闭LED,模式2恢复LED。调节占空比的方式采用F310内部的PWM功能,一个亮度等级对应一个PWM 值。数码管的显示此时变为两位,通过快速切换显示实现两个数码管同时显示。在键盘输入模式中,先查询是否有按键按下,有按键按下开始进行键盘扫描,通过行扫描和列扫描得到行值与列值,再得到键值,再将键值进行转化即可实现键盘亮度调节。同时对于按键的使用应进行消抖。LED阵列是单片机通过控制74HCT164来间接控制,74HCT164是一个移位寄存器,可以通过一个数据输入端以及一个时钟信号输入端实现跑马灯的效果。

单片机c语言编程控制流水灯

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个LED(搞电子的应该知道LED是什么吧^_^) 我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST即可,一般情况下,AT89C51的31脚须接高电平。 #include //头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。 //在Keil安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效 } } 就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。 P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。那么这样就能达到了我们预先的要求了。 while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其他的LED,也类似上述语句。这里就不再讲了。 点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8个LED分别接在P1口的8个引脚上。硬件连接,在 P1_1--P1_7上再接7个LED即可。例程如下: #include sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7; void Delay(unsigned char a) { unsigned char i; while( --a != 0) {

基于单片机的LED灯光控制器的设计

目录 1.目的及意义 (1) 2.基本容和技术方案 (2) 2.1基本容: (2) 3系统硬件设计 (3) 3.1 主控模块电路设计 (3) 3.2 受控模块电路设计 (4) 3.3 主要元器件介绍 (4) 3.3.1 单片机AT89C51 (4) 3.3.2 LED彩灯限流电阻的确定 (6) 3.3.3 数码管结构及工作原理 (6) 4 试与仿真分析 (8) 4.1 硬件选材及电路制作 (8) 4.2 硬件调试 (8) 4.3 软件仿真结果及分析 (9) 5总结 (10) 参考文献 (11)

基于单片机的LED灯光控制器的设计 1目的及意义 1.1背景:随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快 ,智能度越来越高 ,应用围也得到了极大的扩展。在海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。在娱乐方面,场地的装饰离不开彩灯。在建筑方面也采用彩灯来装饰高楼大厦。彩灯又灵活多变的点亮方式,装饰效果非常好,特别时晚上使得高楼大厦更加漂亮。是彩灯的应用才使得城市的夜景非常迷人。节日彩灯将会在人类未来的夜晚生活成为一个个重要的景观,节日彩灯控制器的应用也会在现实生活中得到广泛的应用。 1.2意义:本设计通过对彩灯的设计,训练对电气、单片机、电子技术等容的应用能力,掌握对电子产品设计的流程以及各种要求。彩灯技术已广泛得在霓虹灯、广告彩灯、汽车车灯等领域中应用。单片机的控制电路的设计是彩灯应用的一个瓶颈。课程设计主要培养学生综合运用所学的知识与技能分析与解决问题的能力,并巩固和扩大学生的课堂知识。通过课程设计学会查阅、使用各种专业资料和网上资源,并以严肃认真、深入研究的工作作风完成设计任务,逐步向工程技术员转变,培养学生独立完成任务的能力,体现和检验综合设计能力,大力提高大学生的技术水平,培养新一代既有理论、又有动手能力的实用性人才,以适应国际建设和发展的需要。了解彩灯线路的基本理论,掌握单片机编程的基本设计方法和分析方法,对能够熟练地进行彩灯应用电路的设计与制作是十分必要和重要的。 中国彩灯从开始发展到现在,已有上千年的历史,发展到今天的灯会,已经是作为节日庆典的形式了.以传统节庆文化为背景,在特定的时间、地点,主题下举办,是一项综和性的群众文化活动。分为经营性灯会和公益性(非经营性)灯会。灯会这种特殊的造型和视觉语言,不仅仅用于灯会中观赏,还可以引入其他领域走向发展,进入人们生活的方方面面。比如:人居环境、城市美化、亮化的点缀物;彩灯雕塑,称为灯雕,可以丰富人居环境,城市美化的艺术形式;还可以用彩灯的制作语言,巧妙结合现代广告、

实验一 8255控制交通灯实验

D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7 10 RD 5WR 36A09A18RESET 35CS 6 8255 U36 D0D1D2D3D4D5D6D7WR RD RST A0 A1 PC5PC6PC7 PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678 VCC DS42 A0A1 CS CS1(0F000H) 510 R111510 R112 510R113510R114510R115510R116510R117510R118

.MODEL TINY COM_ADD EQU 0F003H PA_ADD EQU 0F000H PB_ADD EQU 0F001H PC_ADD EQU 0F002H .STACK 100 .DATA LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11010111B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式 OUT DX,AL MOV DX,PA_ADD ;灯全熄灭 MOV AL,0FFH OUT DX,AL LEA BX,LED_Data

交通灯控制模拟程序

交通灯控制模拟程序设计 data segment title1 db 'Traffic-System' deng db '# # #' sing1 db 'South-North' sing2 db 'East - West' sing3 db 'Red time(scend):' time db 'Time:' sing4 db 'Yellow time(scend):' buff db 4 ;键盘缓冲区 buff1 db 3 dup(?) ;工作计数区 buff2 db 3 dup(?) ; 数据保存区 yellow db ? ; 黄灯时间 mode db 'Mode:auto(Y/N)?:' ans db ? ting3 db 'Red time(scend):030' ting4 db 'Yellow time(scend):5' ?************************ J data ends code segment assume cs:code,ds:data,es:data start:mov ax,data mov ds,ax mov es,ax call title2 ; 初始化标题 q0: call mode1 ; 模式选择 自动或手动 call scanf call atuo ; 默认设置参数启动 lea si,ans cmp byte ptr[si],'y' jz q1 cmp byte ptr[si],'n' jnz q0 call ask1 ;设置红灯时间 call scanf0 call ask2 ;设置黄灯时间 ?************* 定义数据段 *********************************************** 主程序段 **********************************************

基于51单片机的流水灯

基于51单片机的流水灯 利用51单片机P0口实现8个LED(发光二极管)的流水灯控制。可以使用Proteus软件进行仿真调试。 1 硬件设计 利用单片机的PO口控制8个LED,其电路如下图所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“LSD.DSN”。在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示 都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 流水灯又称为跑马灯,在函数中可以将P0口的八种不同状态做成一维数组,循环执行即可,如下所示。当然也可以采用其它函授来实现,如左移一位<<1(或右移一位>>1),循环左移函授_crol_(或循环右移函授_cror_)等。 /****************************************************************** 流水灯

*******************************************************************/ #include "reg51.h" const tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delayms(unsigned int x) //延时 { unsigned int j; unsigned char k; for(j=0;j

单片机实验报告——LED灯控制器

《微机实验》报告LED灯控制器 指导教师: 专业班级: 姓名: 学号: 联系方式:

一、任务要求 实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。 实验内容:利用C8051F310单片机设计一个LED灯控制器 主要功能和技术指标要求: 1. LED灯外接于P0.0端。 2. LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。 3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。 4. 利用单片机内部定时器定时,要求采用中断方式。 提高要求: 使用按键(KINT)控制LED灯闪烁模式的切换。 二、设计思路 C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号为48个机器周期,所以T1定时器采用定时方式1,单次定时最长可以达到的时间为 1.027s,可以满足0.5Hz是的定时要求。 基础部分: 给TMOD赋值10H,即选用T1定时器采用定时方式1,三种频率对应的半周期时间为0.25s、0.5s、1s。计算得需给TH1和TL1为C1H、B1H;83H、63H;06H、C6H。 要使闪烁持续10s,三种模式需要各循环40、20、10次。 用LOOP3:MOV C,PSW.5 ;PSW.5为标志位,进定时器中断后置一 JNC LOOP3 代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。 为了减少代码长度,可以采用循环结构,循环主题中,将R1、R2分别赋给TH1、TL1,R7为循环次数(用DJNZ语句实现);定时中断里,重新给TH1、TL1赋值时同理。 这样,循环时只要把定时时间和循环次数赋给R1、R2、R7即可,达到减少代码长度的效果。 蜂鸣器也采用T1定时方式1,定时一秒。

8255交通灯控制系统(倒计时显示,紧急中断)

《单片机原理与应用》 课程设计报告 题目:简单交通灯控制系统 专业:计算机科学与技术 班级:09计算机1班 学号:09070009 姓名:陈民厅 天津理工大学中环信息学院 计算机工程系 2011年12月29 日

交通灯控制系统设计 摘要 设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。同时用LED用倒计时方式显示各路口亮灯时间。 关键词:单片机,交通灯,应急开关,LED

1绪论 1.1设计背景 红绿交通灯自动控制系统在城市十字(或丁字)路口有着广泛的应用。随着社会的进步,人们生活水平的提高,私家车数量会不断增加,对城市交通带来前所为有的压力。道路建设也将随之发展,错综复杂的道路将不段增多。为维持稳定的交通秩序,红绿灯自动控制系统将得到更为广泛的应用。现在实际应用的红绿灯系统中一般没有倒计时功能,使司机和行人不知道指示灯还有多久将会改变现有状态。本设计应用基本数字电路知识,采用LED灯作红、绿、黄三交通灯,用七段数码管作同步倒计时显示。实现两方向通行时间不相等的控制并配有倒计时。 1.2设计目的 熟悉单片机控制系统,并了解系统设计的一般规律。 掌握8255芯片的结构及编程方法。 熟悉模拟交通灯控制的实现方法。 1.3设计任务及要求 设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。同时用LED用倒计时方式显示各路口亮灯时间。 2 设计使用的仪器和设备 2.1 达爱思教仪 本实验采用达爱思教仪型号是Dais-PG206FD 2.2八段数码管 码管, 2.3 8255芯片 8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(8255引脚如图1,8255编程模式如图2)。 的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接

AT89C52单片机控制交通灯系统

目录 1 交通信号灯控制系统设计任务和性能指标 (1) 设计任务 (1) 性能指标 (1) 2 交通信号灯控制系统设计方案 (1) 设计思路 (1) 设计思路 (1) 功能设计 (2) 总体设计 (2) 通行方案设计 (2) } 硬件设计方案 (4) 软件设计方案 (4) 3 交通信号灯控制系统硬件设计 (5) 系统硬件框图 (5) 单元电路设计 (5) 单片机最小系统 (5) 信号灯显示电路 (7) 倒计时显示电路 (8) 按键操作电路 (8) 4 交通信号灯控制系统程序设计 (8) - 理论基础知识 (8) 定时器原理 (8) 软件延时原理 (9) 中断原理 (9) 主程序框图 (9) 5 调试分析及所用器件 (10) 调试环境 (10) 所用芯片 (11) 6 心得体会 (11) 7 参考文献 (12) | 8 附录 (13) 附件1 程序清单 (13)

附件2 系统仿真图 (16) 摘要 交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本系统采用单片机AT89C52为中心器件来设计交通信号灯控制器,系统实用性强、操作简单、扩展性强。本设计系统就是由单片机最小系统、交通灯状态显示系统、LED 数码显示系统、复位电路和按键操作电路等几大部分组成。系统除具有基本的交通信号灯功能外,还具有倒计时、时间调整和紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。 \ 软件上采用KEIL C 编程,主要编写了主程序,LED数码管显示程序,中断程序,延时程序等。经过整机调试,实现了对十字路口交通灯的模拟。 关键字:AT89C52 交通灯PROTUES 中断程序

最新五种编程方式实现流水灯的单片机c程序讲课教案

五种编程方式实现流水灯的单片机C程序 //功能:采用顺序结构实现的流水灯控制程序 /*此方式中采用的是字操作(也称为总线操作)*/ #include void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1 = 0xfe; //点亮第1个发光二极管,0.000389s delay(200); //延时 P1 = 0xfd; //点亮第2个发光二极管,0.155403s,0.1558 delay(200); //延时 P1 = 0xfb; //点亮第3个发光二极管 delay(200); //延时 P1 = 0xf7; //点亮第4个发光二极管 delay(200); //延时 P1 = 0xef; //点亮第5个发光二极管 delay(200); //延时 P1 = 0xdf; //点亮第6个发光二极管 delay(200); //延时 P1 = 0xbf; //点亮第7个发光二极管 delay(200); //延时 P1 = 0x7f; //点亮第8个发光二极管 delay(200); //延时 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{ unsigned char j, k; //定义无符号字符型变量j和k for(k = 0; k < i; k++) //双重for循环语句实现软件延时 for(j = 0; j < 255; j++); } //功能:采用循环结构实现的流水灯控制程序 //此方式中采用的移位,按位取反等操作是位操作 #include //包含头文件REG51.H void delay(unsigned char i); //延时函数声明 void main() //主函数

微机原理实验四实验报告 8255控制交通灯实验

实验四 8255控制交通灯实验 一、实验目的与要求 1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。 2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。 3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。 二、实验设备 STAR系列实验仪一套、PC机一台 三、实验内容 1、编写程序:使用8255的PA0.. 2、PA4..6控制LED指示灯,实现交通灯功能。 2、连接线路验证8255的功能,熟悉它的使用方法。 四、实验原理图 五、实验步骤 六、演示程序

.MODEL TINY COM_ADD EQU 0F003H PA_ADD EQU 0F000H PB_ADD EQU 0F001H PC_ADD EQU 0F002H .STACK 100 .DATA LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11010111B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式 OUT DX,AL MOV DX,PA_ADD ;灯全熄灭 MOV AL,0FFH OUT DX,AL LEA BX,LED_Data START1: MOV AL,0 XLAT OUT DX,AL ;东西绿灯,南北红灯 CALL DL5S MOV CX,6 START2: MOV AL,1 XLAT OUT DX,AL ;东西绿灯闪烁,南北红灯 CALL DL500ms MOV AL,0 XLAT OUT DX,AL CALL DL500ms LOOP START2 MOV AL,2 ;东西黄灯亮,南北红灯 XLAT OUT DX,AL CALL DL3S MOV AL,3 ;东西红灯,南北绿灯

交通灯控制程序

1引言 (2) 1.1编写目的 (2) 1.2背景 (2) 1.3定义 (2) 1.4参考资料 (2) 2总体设计 (2) 2.1需求规定 (2) 2.2运行环境 (2) 2.3基本设计概念和处理流程 (3) 2.4结构 (3) 2.5功能器求与程序的关系 (3) 2.6人工处理过程 (3) 2.7尚未问决的问题 (3) 3接口设计 (3) 3.1用户接口 (3) 3.2外部接口 (3) 3.3内部接口 (4) 4运行设计 (4) 4.1运行模块组合 (4) 4.2运行控制 (4) 4.3运行时间 (4) 5系统数据结构设计 (4) 5.1逻辑结构设计要点 (4) 5.2物理结构设计要点 (4) 5.3数据结构与程序的关系 (4) 6系统出错处理设计 (5) 6.1出错信息 (5) 6.2补救措施 (5) 6.3系统维护设计 (5)

概要设计说明书 1引言 1.1编写目的 创建一个可供日常交通灯使用的程序,目标读者为交通灯控制人员。 1.2背景 说明: a.交通路口复杂交通信号灯的设计 b.任务提出者,开发者:陈磊 用户:交通指挥系统 设计环境:使用Verilog HDL语言进行设计 使用Quartus 2编程环境进行开发。。 1.3定义 ORDER 选择信号 ROAD 亮灯控制信号 EN5 5秒延时使能信号 LIN5 5秒延时终止信号 EN25 25秒延时使能信号 LIN25 25秒延时终止信号 RST 系统复位信号 CLK 系统时钟信号 1.4参考资料 Verilog HDL数字系统设计与应用

2总体设计 2.1需求规定 输入项目: CLK 系统时钟信号 RST 系统复位信号 输出项目: ROAD 亮灯控制信号,ROAD=00,红灯亮;ROAD=01,黄灯亮;ROAD=10,绿灯亮;ROAD=11,黄灯亮。 处理要求: 根据ORDER的不同值,使相应的灯发亮。 2.2运行环境 运行环境:。Quartus II 9.0 2.3基本设计概念和处理流程

AT89C51单片机的LED彩灯控制器设计

AT89C51单片机的LED彩灯控制器设计 摘要:介绍了一种新型的LED彩灯控制系统的设计方法,以AT-89C51单片机作为主控核心,与按键、显示器等较少的辅助硬件电路相结合,利用软件实现对LED彩灯进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。 关键词:LED彩灯;AT89C51单片机;彩灯控制器;模块设计 1、引言 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 本文提出了一种基于AT89C51单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以AT89C51单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块。在主控模块上设有8个按键和5位七段码LED显示器,根据用户需要可以编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为5 ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。该新型LED彩灯及其控制器是上海某公司委托开发产品,产品实际应用效果较好,亮灯模式多,用户可以根据不同场合和时间来调节亮灯频率和亮灯时间。与普通LED彩灯相比,具有体积小、价格低、低能耗等优点。 2、系统功能 新型LED彩灯分为2部分,即彩灯控制器(主控模块)和管内LED板模块(受控模块)。彩灯控制器可直接与220 V交流市电相连接,经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供12 V工作电源,另一方面为主控模块单片机系统(彩灯控制器)提供5 V工作电源。整个系统工作由软件程序控制运行,根据需要,用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。上电后系统经过初始化,查询是否有功能切换键按下:有,则进入用户设定模式状态;无,则进入默认缺省工作状态。在用户设定模式状态下,用户可以根据个人爱好及不同场合的需要来指定调用哪些模式,并且可以改变每种模式的时间Ti、频率Fi参数,如果用户想进入缺省状态模式,只需按一下功能切换键即可跳入缺省模式,程序会自动顺序调用亮灯模式;在缺省工作状态下,LED彩灯控制器按照程序设定好的若干亮灯花样模式程序Model_i顺序调用往下走,从第Model_1模式开始工作,自Model_1到Model_2……到Mod el_n为一个亮灯周期,然后再回到Model_1循环继续工作,同样如果想进入用户设定模式状态,只需按下功能切换键即可。整个n种亮灯模式时间可以看作一个大周期T,其中的每一种花样工作模式Model_i (i=1,2,…,n)时间为小周期Ti,对于每一个模式编写一个独立工作子程序Model_i,其中设定了LED 三色灯(红、绿、蓝)的点亮时刻(RED_on,GREEN_on,BLUE_on)和熄灭时刻(RED_off,GREEN_off,BLU E_off),以及模式工作时间Ti以及该模式LED闪烁频率Fi。5位七段码显示器的前2位(L1,L2)显示当前工作模式的序号Model_i;后3位(L3,L4,L5)七段码显示三色LED的工作状态,若该颜色灯点亮则对应七段码显示位为“1”,反之熄灭时则显示位为“灭”即不显示,对系统工作状态起到了很好的实时监控作用。因此在LED彩灯上电工作后,用户可以方便地通过主控模块上的显示器知道LED彩灯当前工作模

相关主题
文本预览
相关文档 最新文档