001109030105基于51单片机的大功率LED恒流控制系统设计论文.docx
《001109030105基于51单片机的大功率LED恒流控制系统设计论文.docx》由会员分享,可在线阅读,更多相关《001109030105基于51单片机的大功率LED恒流控制系统设计论文.docx(21页珍藏版)》请在冰豆网上搜索。
001109030105基于51单片机的大功率LED恒流控制系统设计论文
摘要
现代家居设计大多数开始抛开白炽灯以及冷光灯,而更加倾向于大功率LED照明系统,LED的内在特征决定了它是最理想的光源去代替传统的光源,它有着广泛的用途。
它具有体积小(LED基本上是一块很小的晶片被封装在环氧树脂里面,所以它非常的小,非常的轻。
)耗电量低(LED耗电非常低,一般来说LED的工作电压是2-3.6V。
工作电流是0.02-0.03A。
这就是说:
它消耗的电不超过0.1W。
)使用寿命长(在恰当的电流和电压下,LED的使用寿命可达10万小时。
)高亮度、低热量,环保(LED是由无毒的材料作成,不像荧光灯含水银会造成污染,同时LED也可以回收再利用。
)坚固耐用(LED是被完全的封装在环氧树脂里面,它比灯泡和荧光灯管都坚固。
灯体内也没有松动的部分,这些特点使得LED可以说是不易损坏的。
)等优势。
本设计采用AT89S52单片机控制DAC0832来控制运放驱动恒流源。
关键字:
AT89S52,恒流源,DAC0832
目录
摘要1
目录2
一系统总体设计框图2
二器件简介4
1.数模转换DAC08324
(1)D/A转换器DAC0832内部结构4
(2)DAC0832引脚与应用简介5
2.发光二极管6
(1)LED分类8
(2)LED结构及发光原理9
(3)LED的特点9
(4)单色光LED的种类及其发展历史10
(5)单色光LED的应用10
3.主控制器AT89S5211
(1)MSC-51芯片资源简介11
(2)单片机的引脚12
(3)89S51单机的电源线13
(4)89S51单片机的外接晶体引脚13
(5)89S51单片机的控制线14
(6)89S51单片机复位方式14
三大功率LED恒流驱动系统设计15
1.硬件电路设计15
(1)单片机最小系统15
(2)数模转换系统15
(3)LED恒流驱动系统16
(4)供电电路16
2.系统软件设计16
四调试过程27
1.检测AT89C51运行否27
2.恒流系统测测试27
总结28
参考文献29
一系统总体设计框图
二器件简介
1.数模转换DAC0832
(1)D/A转换器DAC0832内部结构
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。
如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。
运算放大器输出的模拟量V0为:
图4-82
由上式可见,输出的模拟量与输入的数字量(
)成正比,这就实现了从数字量到模拟量的转换。
一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。
输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
图4-83是DAC0832的逻辑框图和引脚排列。
(2)DAC0832引脚与应用简介
D0~D7:
数字信号输入端。
ILE:
输入寄存器允许,高电平有效。
CS:
片选信号,低电平有效。
WR1:
写信号1,低电平有效。
XFER:
传送控制信号,低电平有效。
WR2:
写信号2,低电平有效。
IOUT1、IOUT2:
DAC电流输出端。
Rfb:
是集成在片内的外接运放的反馈电阻。
Vref:
基准电压(-10~10V)。
Vcc:
是源电压(+5~+15V)。
AGND:
模拟地NGND:
数字地,可与AGND接在一起使用。
DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。
实验线路如图所示。
IN0~IN7:
8路模拟信号输入端。
A1、A2、A0:
地址输入端。
ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。
START:
启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。
EOC:
转换结束输出信号(转换接受标志),高电平有效。
OE:
输入允许信号,高电平有效。
CLOCK(CP):
时钟信号输入端,外接时钟频率一般为640kHz。
Vcc:
+5V单电源供电。
、
Vref(+),Vref(-):
基准电压的正极、负极。
一般Vref(+)接+5V电源,Vref(-)接地。
D7~D0:
数字信号输出端。
由A2、A1、A0三地址输入端选通8路模拟信号中的任何一路进行A/D转换。
2.发光二极管
LED是发光二极管(LightEmittingDiode,LED)的简称,也被称作发光二极管,这种半导体组件一般是作为指示灯、显示板,它不但能够高效率地
直接将电能转化为光能,而且拥有最长达数万小时~10万小时的使用寿命,同时具备不若传统灯泡易碎,并能省电等优点。
发光二极管简称为LED。
由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。
磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。
发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。
不同的半导体材料中电子和空穴所处的能量状态不同。
当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。
常用的是发红光、绿光或黄光的二极管。
发光二极管的反向击穿电压约5伏。
它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。
限流电阻R可用下式计算:
R=(E-UF)/IF
式中E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流。
发光二极管的两根引线中较长的一根为正极,应按电源正极。
有的发光二极管的两根引线一样长,但管壳上有一凸起的小舌,靠近小舌的引线是正极。
与小白炽灯泡和氖灯相比,发光二极管的特点是:
工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。
由于有这些特点,发光二极管在一些光电控制设备中用作光源,在许多电子设备中用作信号显示器。
把它的管心做成条状,用7条条状的发光管组成7段式半导体数码管,每个数码管可显示0~9十个数目字。
(1)LED分类
发光二极管还可分为普通单色发光二极管、高亮度发光二极管、超高亮度发光二极管、变色发光二极管、闪烁发光二极管、电压控制型发光二极管、红外发光二极管和负阻发光二极管等。
A.普通单色发光二极管普通单色发光二极管具有体积小、工作电压低、工作电流小、发光均匀稳定、响应速度快、寿命长等优点,可用各种直流、交流、脉冲等电源驱动点亮。
它属于电流控制型半导体器件,使用时需串接合适的限流电阻。
普通单色发光二极管的发光颜色与发光的波长有关,而发光的波长又取决于制造发光二极管所用的半导体材料。
红色发光二极管的波长一般为650~700nm,琥珀色发光二极管的波长一般为630~650nm,橙色发光二极管的波长一般为610~630nm左右,黄色发光二极管的波长一般为585nm左右,绿色发光二极管的波长一般为555~570nm。
常用的国产普通单色发光二极管有BT(厂标型号)系列、FG(部标型号)系列和2EF系列,见表4-26、表4-27和表4-28。
常用的进口普通单色发光二极管有SLR系列和SLC系列等。
B.高亮度单色发光二极管和超高亮度单色发光二极管高亮度单色发光二极管和超高亮度单色发光二极管使用的半导体材料与普通单色发光二极管不同,所以发光的强度也不同。
通常,高亮度单色发光二极管使用砷铝化镓(GaAlAs)等材料,超高亮度单色发光二极管使用磷铟砷化镓(GaAsInP)等材料,而普通单色发光二极管使用磷化镓(GaP)或磷砷化镓(GaAsP)等材料。
常用的高亮度红色发光二极管的主要参数见表4-29,常用的超高亮度单色发光二极管的主要参数见表4-30。
C.变色发光二极管变色发光二极管是能变换发光颜色的发光二极管。
变色发光二极管发光颜色种类可分为双色发光二极管、三色发光二极管和多色(有红、蓝、绿、白四种颜色)发光二极管。
变色发光二极管按引脚数量可分为二端变色发光二极管、三端变色发光二极管、四端变色发光二极管和六端变色发光二极管。
常用的双色发光二极管有2EF系列和TB系列,常用的三色发光二极管有2EF302、2EF312、2EF322等型号。
D.闪烁发光二极管闪烁发光二极管(BTS)是一种由CMOS集成电路和发光二极管组成的特殊发光器件,可用于报警指示及欠压、超压指示。
闪烁发光二极管在使用时,无须外接其它元件,只要在其引脚两端加上适当的直流工作电压(5V)即可闪烁发光。
E.电压控制型发光二极管普通发光二极管属于电流控制型器件,在使用时需串接适当阻值的限流电阻。
电压控制型发光二极管(BTV)是将发光二极管和限流电阻集成制作为一体,使用时可直接并接在电源两端。
(2)LED结构及发光原理
50年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于1960年。
LED是英文lightemittingdiode(发光二极管)的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。
发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。
在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。
PN结加反向电压,少数载流子难以注入,故不发光。
这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。
当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。
(3)LED的特点
A.电压:
LED使用低压电源,供电电压在6-24V之间,根据产品不同而异,所以它是一个比使用高压电源更安全的电源,特别适用于公共场所。
B.效能:
消耗能量较同光效的白炽灯减少80%
C.适用性:
很小,每个单元LED小片是3-5mm的正方形,所以可以制备成各种形状的器件,并且适合于易变的环境
D.稳定性:
10万小时,光衰为初始的50%
E.响应时间:
其白炽灯的响应时间为毫秒级,LED灯的响应时间为纳秒级
F.对环境污染:
无有害金属汞
G.颜色:
改变电流可以变色,发光二极管方便地通过化学修饰方法,调整材料的能带结构和带隙,实现红黄绿兰橙多色发光。
如小电流时为红色的LED,随着电流的增加,可以依次变为橙色,黄色,最后为绿色
H.价格:
LED的价格比较昂贵,较之于白炽灯,几只LED的价格就可以与一只白炽灯的价格相当,而通常每组信号灯需由上300~500只二极管构成。
(4)单色光LED的种类及其发展历史
最早应用半导体P-N结发光原理制成的LED光源问世于20世纪60年代初。
当时所用的材料是GaAsP,发红光(λp=650nm),在驱动电流为20毫安时,光通量只有千分之几个流明,相应的发光效率约0.1流明/瓦。
70年代中期,引入元素In和N,使LED产生绿光(λp=555nm),黄光(λp=590nm)和橙光(λp=610nm),光效也提高到1流明/瓦。
到了80年代初,出现了GaAlAs的LED光源,使得红色LED的光效达到10流明/瓦。
90年代初,发红光、黄光的GaAlInP和发绿、蓝光的GaInN两种新材料的开发成功,使LED的光效得到大幅度的提高。
在2000年,前者做成的LED在红、橙区(λp=615nm)的光效达到100流明/瓦,而后者制成的LED在绿色区域(λp=530nm)的光效可以达到50流明/瓦。
(5)单色光LED的应用
最初LED用作仪器仪表的指示光源,后来各种光色的LED在交通信号灯和大面积显示屏中得到了广泛应用,产生了很好的经济效益和社会效益。
以12英寸的红色交通信号灯为例,在美国本来是采用长寿命,低光效的140瓦白炽灯作为光源,它产生2000流明的白光。
经红色滤光片后,光损失90%,只剩下200流明的红光。
而在新设计的灯中,Lumileds公司采用了18个红色LED光源,包括电路损失在内,共耗电14瓦,即可产生同样的光效。
汽车信号灯也是LED光源应用的重要领域。
1987年,我国开始在汽车上安装高位刹车灯,由于LED响应速度快(纳秒级),可以及早让尾随车辆的司机知道行驶状况,减少汽车追尾事故的发生。
另外,LED灯在室外红、绿、蓝全彩显示屏,匙扣式微型电筒等领域都得到了应用。
3.主控制器AT89S52
(1)MSC-51芯片资源简介
89S51是MCS-51系列单片机的典型产品,我们就这一代表性的机型进行系统的讲解。
89S51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
图3.1单片机内部结构示意图
A.中央处理器
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
B.数据存储器(RAM)
89S51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
C.程序存储器(ROM)
89S51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。
D.定时/计数器:
89S51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
E.并行输入输出(I/O)口:
89S51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
(2)单片机的引脚
89S51单片机内部总线是单总线结构,即数据总线和地址总线是公用的.89S51有40条引脚,与其他51系列单片机引脚是兼容的.这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分.89S51单片机为双列直插式封装结构,如图3.2所示.
(3)89S51单机的电源线
(1)VCC:
+5V电源线。
电源线
(2)GND:
接地线。
(4)89S51单片机的外接晶体引脚
(1)XTAL1:
片内振荡器反相放大器的输入端和内部时钟工作的输入端。
采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。
(2)XTAL2:
片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。
采用外部振荡器时,该引脚悬空。
外接晶体引脚。
80C51单片机内部有一个高增益反相放大器,用于构成振荡器。
反相放大器的输入端为XTAL1,输出端为XTAL2,分别是80C51的19脚和18脚。
在XTAL1和XTAL2两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。
如图2所示:
图2振荡电路
石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,使MCS-51片内的OCS电路按石英晶振相同频率自激震荡。
通常,OCS的输出时钟频率fosc为0.5MHZ~16MHZ,典型值为12MHZ电容器C1和C2通常取30pF左右,对震荡频率有微调作用。
调节它们可以达到微调震荡周期fosc的目的。
(5)89S51单片机的控制线
(1)RST:
复位输入端,高电平有效。
(2)ALE/PROG:
地址锁存允许/编程线。
(3)PSEN:
外部程序存储器的读选通线。
(4)EA/Vpp:
片外ROM允许访问端/编程电源端。
(6)89S51单片机复位方式
复位是单片机的初始化操作。
其主要功能是把程序计数器PC值初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键重新启动单片机。
RST引脚是复位信号的输入端,高电平有效,其有效时间应持续24个震荡周期(即两个机器周期)以上。
若使频率为6MHZ的晶振,则复位信号持续时间超过4μs才能完成复位操作。
复位操作由上电复位和按键手动复为两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图所示。
只要电源VCC的上电时间不超过1ms,就可以实现自动上电复位,即接通电源就完成了系统的复位初始化。
89S51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位.复位后,PC程序计数器的内容为0000H,片内RAM中内容不变.复位电路一般有上电复位、手动开关复位和自动复位电路3种.
三大功率LED恒流驱动系统设计
1.硬件电路设计
(1)单片机最小系统
(2)数模转换系统
(3)LED恒流驱动系统
(4)供电电路
2.系统软件设计
软件程序清单:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
uchartt,aa;
sbitkjia=P3^4;
sbitkjian=P3^5;
sbitk1=P3^6;
sbitk2=P3^7;
ucharmiao,fen,shi,a1,a2,a3,a4,a5,a6;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};
ucharmiao1,miao2,fen1,fen2,shi1,shi2;
voiddelay(uintms)
{
uinti,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
voidinit()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
voiddisplay(ucharaa,ucharbb,ucharcc,uchardd,ucharee,ucharff)
{
P2=table[aa];
P1=0x7f;
delay
(1);
P1=0xff;
P2=table[bb];
P1=0xbf;
delay
(1);
P1=0xff;
P2=0x40;
P1=0xdf;
delay
(1);
P1=0xff;
P2=table[cc];
P1=0xef;
delay
(1);
P1=0xff;
P2=table[dd];
P1=0xf7;
delay
(1);
P1=0xff;
P2=0x40;
P1=0xfb;
delay
(1);
P1=0xff;
P2=table[ee];
P1=0xfd;
delay
(1);
P1=0xff;
P2=table[ff];
P1=0xfe;
delay
(1);
P1=0xff;
}
voidtimer0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==20)
{
tt=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
}
}
}
}
}
voidmain()
{
init();
aa=0xf0;
while
(1)
{
a1=miao%10;
a2=miao/10;
a3=fen%10;
a4=fen/10;
a5=shi%10;
a6=shi/10;
display(a1,a2,a3,a4,a5,a6);
if(kjia==0)
{
delay(5);
if(kjia==0)
{
aa++;
}
}
if(kjian==0)
{
delay(5);
if(kjian==0)
{
aa--;
}
}
P0=aa;
if(k1==0)
{
delay(100);
if(k1==0)
{
fen++;
}
}
if(fen==60)
{
fen=0;
}
if(shi==24)
{
shi=0;
}
if(k2==0)
{
delay(100);
if(k2==0)
{
shi++;
}
}
}
}
voiddelay(uintms)
{
uinti,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
voidchush()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=0;
ET0=1;
TR0=1;
}
voidtimer0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
voidmain()
{
chush();
aa=0xf0;
while
(1)
{
if(kjia==0)
{
delay(10);
if(kjia==0)
{
aa++;
}
}
if(kjian==0)
{
del