基于单片机多功能台灯.docx
《基于单片机多功能台灯.docx》由会员分享,可在线阅读,更多相关《基于单片机多功能台灯.docx(16页珍藏版)》请在冰豆网上搜索。
基于单片机多功能台灯
电子设计大赛
基于单片机技术
调光台灯说明书
设计课题:
多功能台灯
专业(系)电气工程系
班级工控091
学生姓名刘元龙
指导老师陈勇宏
完成日期2011.06.05
目录
0引言2
1系统硬件电路设计3
1.1单片机主控系统3
1.2三级管驱动系统3
1.3时钟系统4
1.4蜂鸣系统4
1.5按键系统4
1.6电源系统5
1.7硬件电路图5
2系统软件设计6
2.1系统主程序7
2.2按键检测和处理程序7
2.3定时器中断程序7
2.4主要程序7
3实验结果12
4结论12
[参考文献]13
0引言
随着全球能源危机和气候变暖问题的日益严重,绿色节能已经成为全球普遍关注的话题,人们正通过各种途径寻找新的节能方式。
照明是人类消耗能源的重要方面,在电能消耗中,发达国家照明用电占发电总量的比例是19%,我国也达到12%。
随着经济发展,我国的照明用电将有大比例的提高,因此绿色节能照明的研究越来越受到重视[1]。
LED作为一种固态冷光源,是继白炽灯、荧光灯、高强度放电灯(如高压钠灯和金卤灯)之后的第四代新光源。
基于白光LED的固态照明,是一种典型的绿色照明方式,与传统光源相比,具有节能、环保、寿命长、体积小、安全可靠等特点,代表着照明技术的未来,并符合当前政府提出的“建设资源节约型和环境友好型社会”的要求。
可以预见不久的将来,LED必然会进入普通照明领域取代现有的照明光源[2]。
目前,市场上采用白炽灯、卤素灯、荧光灯为光源的台灯普遍存在着低效率、高能耗、不易调光等缺点;至于寿命结束的含汞灯,一旦处理不当,将对环境造成严重危害;而且部分台灯产品功能单一,缺少亮度调节、时钟日历、温度显示等功能,无法适应现代家庭生活的实际需求。
为解决当前问题,本文设计了以AT89S51单片机为核心的多功能白光LED台灯系统,采用PT4115大功率LED恒流驱动方案,可实现对LED台灯的PWM调光控制;同时兼有时钟日历、声光闹钟、温度检测、液晶显示等多项功能。
在实现高效节能的同时,为家庭使用提供了极大的便捷。
1系统硬件电路设计
该多功能LED台灯系统采用20只5mm高亮白光LED灯珠为光源,以AT89S51单片机为主控芯片,由LED恒流驱动系统、时钟系统、蜂鸣系统、按键系统组成。
该系统可具体实现LED台灯的10级PWM调光控制;数码管实时显示时钟;用户可通过按键系统实现对时钟、LED亮度的调节
1.1单片机主控系统
本设计主控系统采用ATMEL公司的高性能AT89S51芯片实现,其P0口外接10K的上拉电阻,P0.0~P0.7同时作为数码管的段选P2.0~P2.7分别连接数码管的位选。
P1.0作为蜂鸣器控制端。
P3.3、P3.4、P3.6与P3.7作为S1~S4按键系统。
P1.2作为PWM信号的输出端并连接三极管9014上,用于PWM调光控制。
系统晶振电路由12MHZ晶振与两个30PF电容组成;复位电路则由S5按键、10K电阻与10uF电解电容构成。
1.2三级管驱动系统
本设计LED光源采用相互并联方式,共由20只5mm高亮度小功率LED灯珠组成;每只LED灯珠的压降约3.1V,工作电流约20mA。
由白光LED的正向伏安特性可知,当LED端电压超过其正向导通电压后,较小的电压波动都会导致工作电流的的剧烈变化,从而影响LED的正常使用,固LED宜采用三级管驱动方式。
极大的改善EMI,同时具有过温、过压、过流、LED开路保护等多种功能。
该驱动适合用于绿色照明LED灯的驱动电路,具有应用电路非常简洁的优点。
通过9014,8050三级管的基极,可以方便的进行模拟或PWM调光。
由于模拟调光是直接改变流过LED电流的大小来实现亮度调节,除了亮度会改变以外,也会影响白光的质量,即不同电流下发出的白光存在色偏。
因此,本设计采用PWM调光方案,PWM调光的基本原理是保持LED正向导通电流恒定,而通过控制电流导通和关断的时间比例,即改变输入脉冲信号的占空比,使LED产生亮暗变化;并利用人眼的视觉残留效应,当LED亮暗变化频率大于120Hz时,人眼就不会感觉到闪烁,而看到是LED的平均亮度。
PWM调光的优势是LED正向导通的电流是恒定的,LED的色度就不会像模拟调光时产生变化。
PWM脉冲信号则由单片机P1.2产生,其高低电平决定LED的通断状态。
将定时器T1溢出中断定为1/2500秒(即400μS),每10次脉冲作为一个周期,即频率为250HZ。
这样,在每1/250秒的方波周期中,通过改变方波的输出占空比,从而实现LED灯的10级亮度调节,即LED亮度等级由每个周期内的高电平脉冲数目决定。
当高电平脉冲个数为1时,占空比为1/10,亮度最低,其调光原理如所示;当高电平脉冲为10时,占空比为1,LED亮度最高。
1.3时钟系统
时钟系统采用AT89S51单片机中的一个定时中断,其频率为12MHZ的晶振。
1.4蜂鸣系统
蜂鸣系统用于报警声以及按键提示音。
由单片机P1.0口控制PNP三极管8050的通断实现对蜂鸣器声音控制;通过延迟函数实现蜂鸣报警声‘滴’用于按键提示音。
1.5按键系统
按键控制系统由S1~S5五个按键组成,分别为S1时设置键、S2分设置键、S3亮度减小键、S4亮度增加键。
S5用于复位键。
1.6电源系统
本系统设计最大功率约1.6W,可采用电池或稳压电源多种方式供电。
由于系统光源采用20只LED灯珠并联组成,供电电源在5V电压范围内均可使LED灯正常使用。
但单片机供电系统采用三端稳压芯片7805,该线性稳压芯片正常工作输入电压与输出电压差值应至少高于2V,若差值过大会增加额外功耗。
同时,系统设计简洁灵活,可根据用户需求适当调整驱动电路参数,即可扩展LED照明功率,最大可至2W左右。
1.7硬件电路图
驱动电路
单片机原图
2系统软件设计
该系统控制程序主要包含系统初始化程序、实时时钟处理程序、键盘检测与处理程序、闹钟中断以及定时器产生PWM程序构成。
2.1系统主程序
系统主程序主要包括系统初始化程序(包括I/O口初始化、、数码管的初始化、外部中断0与定时器T0设置)、按键检测和处理程序、时钟数据的读取与处理程序、报警的判断和处理程序、PWM调光处理程序等。
2.2按键检测和处理程序
按键控制系统由S1~S5五个按键组成,分别为S1时设置键、S2分设置键、S3亮度减小键、S4亮度增加键。
S5用于复位键。
S1、S2用于选择需要调整的时钟的(时分)这一参数,按下S1时加一,按下S2时分加一。
S3、4实现LED灯光亮度的10级调节,每按S3一次,LED亮度增大一级;当达到亮度最大时,再次按下则关闭LED灯光。
每次有按键按下,蜂鸣器都以短‘滴’声提示。
每按S4一次,LED亮度减少一级;当达到亮度最少时,再次按下则关闭LED灯光。
每次有按键按下,蜂鸣器都以短‘滴’声提示。
2.3定时器中断程序
为产生调节LED灯光亮度的PWM信号,定时器T0设置为工作方式0,即13位计数器定时,最多装载数值为213=8192个。
因为系统晶振采用12MHz,赋值使TH0=(8192-400)/32与TL0=(8192-400)%32,即可实现400μS的定时中断。
10次中断(即4mS)作为一个周期,通过调节每个周期内单片机P1.1(该控制口名称定义为LED_PWM)输出的占空比来产生PWM脉冲信号,程序设置对T0中断次数(即定义为T0_num)进行计数,以便判断一个周期到否;同时判断比较高电平脉冲个数(即定义为scale值,由调光键S6按下次数设置)用于实现不同亮度等级的调节。
在定时器T0中断服务程序中,首先T0重新装入定时为400μS的初值;定时器中断次数T0_num加1,判断一个方波周期到否,若到达,令T0_num归零,并将P1.1口输出电平置高(即LED_PWM=1);如果一个方波周期还没到,则与亮度等级scale值作比较,判断高电平脉冲个数scale到否,若到达,令P1.1口输出电平置低(即LED_PWM=0),否则继续保持P1.1口输出高电平(即LED_PWM=1);而后中断返回,等待下一次定时中断。
这样,P1.1口就产生了所需的PWM调光信号。
定时器生成PWM流程图所示。
2.4主要程序
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineS30xbf
#defineS40x7f
sbitS1=P3^0;
sbitS2=P3^1;
sbitbeep=P1^0;
ucharKeyValue;
ucharcodedisptab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
ucharcodebittab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
ucharhour=12;
ucharmin=0;
ucharq;
ucharsec=0;
uintcount;
voiddisp_2();
ucharpwm;
ucharnum;
voiddleplay(ucharf);
voidbee();
voidinit_t0();
voidinit_t1();
voidkoycan();
voidshu();
voiddelay(uchari);
ucharScanKey()
{
ucharkey;
P3=0xff;
key=P3;
if(key==0xff)return0xff;
delay(30);
P3=0xff;
key=P3;
if(key==0xff)return0xff;
while(P3!
=0xff)disp_2();
returnkey;
}
voiddisp_2()
{
staticucharmun=0,CON=255;
while(CON--);
mun++;
mun=(mun%8);
P0=0xff;
P2=bittab[mun];
switch(mun)
{
case0:
P0=disptab[sec%10];break;
case1:
P0=disptab[sec/10%10];break;
case2:
P0=0xbf;break;
case3:
P0=disptab[min%10];break;
case4:
P0=disptab[min/10%10];break;
case5:
P0=0xbf;break;
case6:
P0=disptab[hour%10];break;
case7:
P0=disptab[hour/10%10];break;
default:
break;
}
}
voidmain()
{
P2=0XFF;
P0=0XFF;
pwm=16;
num=0;
P1=0X00;
init_t0();
init_t1();
while
(1)
{
koycan();
shu();
}
}
voidbee()
{
beep=0;
delay(100);
beep=1;
delay(100);
}
voiddelay(uchari)
{uchary,x;
for(x=i;x>0;x--)
{
for(y=120;y>0;y--)
{
}
}
}
voidshu()
{
P3=0xff;
KeyValue=ScanKey();
switch(KeyValue)
{
caseS3:
hour++;
break;
caseS4:
min++;break;
default:
break;
}
if(q==1)
{TR1=0;
P0=0X8C;
P2=0X24;
}
else
{TR1=1;
disp_2();
}
}
voidkoycan()
{
if(S1==0)
{
delay(30);
if(S1==0)
{
if(pwm!
=0x20)
{
pwm++;
delay(250);
delay(250);
}
else
bee();
}
}
if(S2==0)
{
delay(30);
if(S2==0)
{
if(pwm!
=0x01)
{
pwm--;
delay(250);
delay(250);
}
else
bee();
}
}
}
voidinit_t0()
{
TMOD=0X01;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
EA=1;
ET0=1;
TR0=1;
}
voidt0()interrupt1
{
TR0=0;
TH0=(65536-500)/256;
TL0=(65536-500)%256;
num++;
if(num==33)
{
num=0;
}
if(num<=pwm)
{
P1=0xff;
}
else
P1=0X00;
TR0=1;
}
voidinit_t1()
{
TMOD=0X10;
TH1=0xfc;
TL1=0x18;
EA=1;
ET1=1;
TR1=1;
}
voidt1()interrupt3
{
TH1=0xfc;
TL1=0x18;
count++;
if(count==1000)
{
count=0;
sec++;
if(sec==60){sec=0;min++;}
if(min==60){min=0;hour++;}
if(hour==24){hour=0;}
}
}
3实验结果
根据以上设计方案,本文制作了该款基于PWM调光的多功能LED台灯。
经调试后系统运行稳定可靠,基本可以满足家庭生活的使用要求。
系统工作时,最低功率(即LED熄灭状态)为0.28W;最大功率(即LED最高亮度状态)约为1.52W;同时,数码管显示时间准确。
4结论
本文多功能LED台灯系统采用AT89S51单片机为控制核心,运用PWM调光技术实现LED台灯的多级调光控制,并兼有时间功能。
该系统具有控制电路简单、亮度调节精确、功能丰富、实用便捷等优点,适合于现代家庭的实际需要。
可以预见,随着LED照明技术的不断发展完善,节能高效的LED将在家用照明领域发挥着日益重要的作用。
[参考文献]
[1]黎平.LED驱动电源研究[D].重庆:
重庆大学硕士学位论文,2007.
[2]毛兴武,张艳雯,周建军.新一代绿色光源LED及其应用技术[M].北京:
人民邮电出版社,2009.
[3]楼然苗,李光飞.单片机课程设计指导[M].北京:
北京航空航天大学出版社,2007.
[4]陈雷,赵艳军.基于PT4115的大功率LED恒流驱动的设计[J].灯与照明,2008.12:
31~34.
[5]郑久云,韩志刚,罗胜钦.白光LED的应用与驱动[J].现代显示,2009.8:
43~45.
[6]张军.AVR单片机应用系统开发典型实例[M].北京:
中国电力出版社,2005.