LED照明闭环控制系统Word格式.docx
《LED照明闭环控制系统Word格式.docx》由会员分享,可在线阅读,更多相关《LED照明闭环控制系统Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
但是集电极电流变化比基极电流变化大得多,这就是三极管放大作用。
IC变化量与IB变化量之比叫做三极管放大倍数B(P=AIC/AIB,A表示变化量。
),三极管放大倍数P一般在儿十到儿百倍。
三极管在放大信号时,首先要进入导通状态,即要先建立合适静态工作点,也叫建立偏置,否则会放大失真。
在三极管集电极与电源之间接一个电阻,可将电流放大转换成电压放大:
当基极电压UB升高时,IB变大,IC也变大,IC在集电极电阻RC压降也越大,所以三极管集电极电压UC会降低,且UB越高,UC就越低,AUC=AUBo本文设计要求,LED被电流驱动根据设计原理,本文采用三极管来驱动12个LED,型号统一为8550PNP管。
(3)A/D转换
A/D转化电路。
亦称“模拟数字转换器”,简称“模数转换器”。
将模拟量或连续变化量进行量化(离散化),转换为相应数字量电路。
A/D变换包含三个部分:
抽样、量化和编码。
一般情况下,量化和编码是同时完成。
抽样是将模拟信号在时间上离散化过程;
量化是将模拟信号在幅度上离散化过程;
编码是指将每个量化后样值用一定二进制代码来表示。
d/a转换器是把数字量转换成模拟量线性电路器件,已做成集成芯片。
由于实现这种转换原理和电路结构及工艺技术有所不同,因而出现各种各样d/a转换器。
目前,国外市场已有上百种产品出售,他们在转换速度。
转换精度。
分辨率以及使用价值上都各具特色。
d/a转换器主要参数:
衡量一个d/a转换器性能主要参数有:
(1)分辨率
是指d/a转换器能够转换二进制数位数,位数多分辨率也就越高。
(2)转换时间
指数字量输入到完成转换,输出达到最终值并稳定为止所需时间。
电流型d/a转换较快,一般在儿ns到儿百ns之间。
电压型d/a转换较慢,取决于运算放大器响应时间。
(3)精度
指d/a转换器实际输出电压与理论值之间误差,一般采用数字量最低有效位作为衡量单位。
(4)线性度
当数字量变化时,d/a转换器输出模拟量按比例关系变化程度。
理想d/a转换器是线性,但是实际上是有误差,模拟输出偏离理想输出最大值称为线性误差。
a/d转换器功能是把模拟量变换成数字量。
由于实现这种转换工作原理和釆用工艺技术不同,因此生产出种类繁多a/d转换芯片。
a/d转换器按分辨率分为4位。
6位。
8位。
10位。
14位。
16位和bed码31/2位。
51/2位等。
按照转换速度可分为超高速(转换时间W330ns),次超高速(330^3.3us),高速(转换时间
3.3'
333us),低速(转换时间>330us)等。
a/d转换器按照转换原理
可分为直接a/d转换器和间接a/d转换器。
所谓直接a/d转换器,是把模拟信号直接转换成数字信号,如逐次逼近型,并联比较型等。
其中逐次逼近型a/d转换器,易于用集成工艺实现,且能达到较高分辨率和速度,故目前集成化a/d芯片采用逐次逼近型考多;
间接a/d转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型(积分型),电压/频率转换型,电压/脉宽转换型等。
其中积分型a/d转换器电路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢。
有些转换器还将多路开关。
基准电压源。
时钟电路。
译码器和转换电路集成在一个芯片内,已超出了单纯a/d转换功能,使用十分方便。
由于本文设计需要,釆用TLC1543作为A/D转换。
⑷串口芯片MAX232
MAX232产品是由徳州仪器公司(TI)推出一款兼容RS232标准芯片。
该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。
每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。
根据需要本设计选用N1AX232作为串口芯片,使之来通信。
⑸单片机SST89E516RD
单片机到底是什么呢?
就是一个电脑,只不过是微型,麻雀虽小,五脏俱全:
它内部也用和电脑功能类似模块,比如CPU,内存,并行总线,还有和硬盘作用相同存储器件,不同是它这些部件性能都相对我们家用电脑弱很多,不过价钱也是低,一般不超过10元即可
用它来做一些控制电器一类不是很复杂工作足矣了。
我们现在用全自动滚筒洗衣机,排烟罩VCD等等家电里面都可以看到它身影!
它主要是作为控制部分核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要是有较强抗干扰能力,较低成本,这也是和离线式计算机(比如家用PC)主要区别。
单片机是靠程序,并且可以修改。
通过不同程序实现不同功能,尤其是特殊独特一些功能,这是别器件需要费很大力气才能做到,有些则是花大力气也很难做到。
一个不是很复杂功能要是用美国50年代开发74系列,或者60年代CD4000系列这些纯硬件来搞定话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场系列单片机,结果就会有天壤之别!
只因为单片机通过你编写程睜可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感,所以目前占统治地位软件还是最低级汇编语言(近儿年,C语言也开始广泛被应用),它是除了二进制机器码以上最低级语言了,既然这么低级为什么还要用呢?
很多高级语言已经达到了可视化编程水平为什么不用呢?
原因很简单,就是单片机没有家用计算机那样CPU,也没有像硬盘那样海量存储设备。
一个可视化高级语言编写小程序里面即使只有一个按钮,也会达到儿十K尺寸!
对于家用PC硬盘来讲没什么,可是对于单片机来讲是不能接受。
单片机在硬件资源方面利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样道理,如果把巨型计算机上操作系统和应用软件拿到家用PC上来运行,家用PC也是承受不了。
目前最常用单片机为MCS-51,是由美国INTEL公司(生产CPU英待尔)生产,89C51是这儿年在我国非常流行单片机,它是由美国ATMEL公司开发生产,其内核兼容MCS-51单片机。
本文采用型号为SST89E516RD单片机输出信号来控制LED亮度。
3、软件部分设计
本文设计所涉及到软件就是对A/D转换输出信号处理从而来控制LED亮度变化。
程序代码如下:
/*关于频率和占空比确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数*
*设定为C=10,即0.OlmS中断一次,则THO二FF,TLO二F6;
由于设定中断时间为0.01ms,这样*
*可以设定占空比可从1-100变化。
即0.01ms*100=lms
*/
%tx■丄"
■丄"
WX
ttdefineucharunsignedchar
■"
■丄"
■"
■<
!
*%^xkL^■”■丄"
■>
■["
*THO和TLO是计数器0高8位和低8位计数器,计算办
法:
TLO=(65536-C)%256;
*
*TH0二(65536-0/256,其中C为所要计数次数即多长时间产生一次中断;
TM0D是计数器*
*工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数
脉冲为65536,最长时*
*间为lms*65536二65.536ms
*
■卜■丄"
■卜■丄"
■“■卜■丄"
■“■丄"
%fx
%t^%fx%L^■卜%Lz%tz%fx■丄"
%L^%fx
^defineV_TH0OXFF
ttdefineV_TLO0XF6
^defineV_TMOD0X01
^include<
1602shiwu・h>
ftinclude<
at89x51.h>
ttdefineSUM20ttdefineCSPl_7
ftdefineCLKPl_4
ftdefineDINPl_5
ttdefineSDOPl_6
//增加键
//减少键
/*系统初始化函数*/
ttdefineEOCPl_3sbitSI二P2"
4;
sbitS2二P2"
5;
sbitS3二P2"
2;
voidinit_sys(void);
voidDelay5Ms(void):
voidtimerO(void):
unsignedcharZKB1;
//sbitcs=P3_0:
//sbitrd=P31:
//sbitwr二P33:
//sbitwr二P3_3;
//sbitp=Pl_l;
uchargetdata;
ucharcodetable[]二{"
0123456789"
};
uinttmpl,tmpO;
floattest;
uintTLC_1543_addr(ucharaddr)
{
uintdate^out^O;
uchark:
uchari;
ucharj;
CLK二0;
CS二0;
for(i二0;
i<
4;
i++)
DIN二(bit)(addr&
0x08);
CLK=1;
CLK=0;
addr<
<
=l;
}
for(j=0;
j<
6;
j++)〃填充6个CLOCK
CLK二1;
CS=1;
mDelay(5);
CS=0;
〃等待AD转换
for(k=0;
k<
10;
k++)
date_out<
if(SDO)date_out+=1;
CLK=0;
return(date_out);
/*voidstart()
wr=l;
//mmDelay(100);
wr=0;
//mmDelay(100);
}*/voiddisplay_num(unsignedlongintnumx,uintx)
WriteChar(table[numx/10000],x,0);
//?
?
WriteChar(table[(numx%10000)/1000J,x,1);
//?
WriteChar(table[((numx%10000)%1000)/100],x,2);
WriteChar(tablet(((numx%10000)%1000)%100)/10],x,3);
WriteChar(table[(((numx%10000)%1000)%100)%10],x,4);
WriteString(z,mV"
x,5);
charflag;
voiddelayms(unsignedcharms);
voiddelay(unsignedchart);
voidmain(){uinti;
unsignedlonginttmp;
PO二0;
SetCur(NoCur);
whi1e
(1)
{tmpl+二TLC_1543_addr(0x01);
//取20次AD转换结果,求平均值
//i--;
//if(i==0)
//{
//tmpl二tmpl/SUM;
tmp=tmp1*49999/1023;
//tmprMtmp;
tmpl二0;
i=SUM;
//EOC「EOC;
//}
//display_num(tmp,1);
//if(!
EOC)
//{
//i=SUM
tmpO+=TLC_1543_addr(0x00);
//取50次AD转换结果,
求平均值
//if(i==0)
//tmpO^tmpO/SUM;
tmp二tmp0*49999/1023;
//tmp二tmp;
tmpO^O;
display_num(tmp,1);
WriteString(〃ADC"
0);
//}
//EOE;
/*对占空比值限定范围*/
if(ZKB1>
99)ZKB1二1;
if(TLC_1543_addr(OxOO)〈二50)ZKB1二5;
if(50<
TLC^1543_addr(0x00)<
=204)
ZKB1二20;
if(204<
TLC1543addr(0x00)<
=408)
ZKB1二40;
if(408<
TLC_1543_addr(0x00)<
=612)
ZKB1二50;
if(612<
=816)
ZKB1二70;
if(816<
=916)
ZKB1二80;
if(612<
=1000)ZKB1=9O;
if(1000<
TLC_1543_addr(0x00))ZKB1二99;
*函数功能:
对系统进行初始化,包括定时器初始化和变量初始化*/voidinit_sys(void)/*系统初始化函数*/
/*定时器初始化*/
TM0D二V_TM0D;
//TO定时方式1
TH0=V_TH0;
TL0=V_TL0;
TRO=1;
//启动TO
ETO=1;
//允许TO中断
EA=1;
//开中断
//延时
voidDelay5Ms(void)
unsignedintTempCyc=1000;
while(TempCyc--);
/*中断函数*/
voidtimerO(void)interrupt1
staticucharclick=0;
/*中断次数计数器变量
*/
THO=V_THO;
/*恢复定时器
初始值*/
TLO=V_TLO;
++click;
if(click>
=100)click=0;
if(click<
=ZKBl)/*当小于占空比值时输出低电平,高于时是
高电平,从而实现占空比调整*/
S3=0;
else
S3=l;
4、结论
通过本文设计能让我更进一步对相关硬件了解和掌,特別是三极管电流驱动,这个三极管驱动不仅仅只适用于驱动12个LED灯,而且也可以用于其它场合,比如电动助力转向系统中就利用桥式三级管电流驱动电动机,从而达到助力转向。
由于水平有限,可能所设计系统存在问题,今后需要做进一步完善。
参考文献:
[1]周志敏,周纪海,纪爱华LED驱动电路设计与应用.北京:
人民邮电出版社,2006.
[2]周志敏,纪爱华,白光LED驱动电路设计与应用实例.人民邮电出版社,2009.9
[3]武庆生,单片机及其应用,电子科技大学出版社,2000.10.