LED调光电路的设计Word格式.docx

上传人:b****5 文档编号:16026146 上传时间:2022-11-17 格式:DOCX 页数:11 大小:203.98KB
下载 相关 举报
LED调光电路的设计Word格式.docx_第1页
第1页 / 共11页
LED调光电路的设计Word格式.docx_第2页
第2页 / 共11页
LED调光电路的设计Word格式.docx_第3页
第3页 / 共11页
LED调光电路的设计Word格式.docx_第4页
第4页 / 共11页
LED调光电路的设计Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

LED调光电路的设计Word格式.docx

《LED调光电路的设计Word格式.docx》由会员分享,可在线阅读,更多相关《LED调光电路的设计Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

LED调光电路的设计Word格式.docx

3.1.1最小系统电路·

4

硬件电路设计·

3.2.1自动循环电路设计·

3.2.2手动循环电路设计·

3.2.3光控照明电路·

5

软件程序设计·

4电路原理图·

8

5元器件清单·

9

6调试进程及测试数据(或仿真结果)·

通电前检查·

10

7设计体会·

参考文献·

12

 

1选题背景

解决问题

目前LED调光电路在市场上已是一个很成熟的技术,从学生生活中的LED照明手电到大型LED照明灯,都涉及到了LED调光电路,他们或简单或复杂。

今天咱们做的设计目的是用作简单的思路实现LED亮度的调节,通过改变限流电阻的单片机控制选用,来选择实现LED的亮度调节。

原理的简单易于实现与修正,本设计的关键在于利用单片机实现LED的自动调光,实现选用不同的程序,控制LED限流电阻的选用。

技术要求

(1)设计并制作一种可手动和自动循环的led调光电路;

(2)自动调光时可使等在熄灭、微亮、较量及最亮四种状态中不断循环;

(3)要求灯光的循环速度能够进行调节(循环时刻别离为为2s、4s、6s、8s、10s、12s);

2方案论证

可用方案列举

完成此功能LED亮度调节可行方案有2种:

第一种利用三极管搭建,用四个LED组成,通过控制其集电极电流强度来实现LED亮度的调节。

第二种是利用D/A转换器通过单片机调节其数字量的输出,从而改变其输出电流大小来控制LED亮度的调节;

可行性分析

分析上面两种方案,其整体不同是第一种是用四个LED灯来实现,而第二种是在一个LED灯上实现调节,从吃本钱上考虑第一种的本钱价比较低,而第二种由于要用到D/a转换器必要用运放,所以本钱比较高,而且集成度比较低,但仍是其更适合现代人们运用LED灯的要求。

由以上分析和自己实验验证,最后选择了第一种方案;

整体方案论述

用单片机作为自动调光驱动电路的主体,通过调节P2口的输出来点燃不同顺序的灯而

LED的限流作用是利用三极管的放大特性来实现的,从而实现自动调光;

在此题中,我将手动调光设计为更为人性化的光控照明电路,能够通过外界光的强度来调节LED灯的亮度。

3进程论述

.主控电路的设计

3.1.1最小系统电路设计

STC89C52单片机介绍:

单片机是指一个集成在一块芯片上的完整运算机系统。

虽然他的大部份功能集成在一块小芯片上,可是它具有一个完整运算机所需要的大部份部件:

CPU、内存、内部和外部总线系统,目前大部份还会具有外存。

同时集成诸如通信接口、按时器,实不时钟等外围设备。

而此刻最壮大的单片机系统乃至能够将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

单片机也被称为微控制器(Microcontroler),是因为它最先被用在工业控制领域。

单片机由芯片内仅有CPU的专用途置器进展而来。

最先的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使运算机系统更小,更易集成进复杂的而对提及要求严格的控制设备当中。

INTEL的Z80是最先依照这种思想设计出的处置器,从此以后,单片机和专用途置器的进展便分道扬镳。

初期的单片机都是8位或4位的。

其中最成功的是INTEL的8031,因为简单靠得住而性能不错取得了专门大的好评。

尔后在8031上进展出了MCS51系列单片机系统。

STC89C52具体介绍如下:

1主电源引脚(2根)VCC(Pin40):

电源输入,接+5V电源GND(Pin20):

接地线

2外接晶振引脚(2根)XTAL1(Pin19):

片内振荡电路的输入端XTAL2(Pin20):

片内振荡电路的输出端

3控制引脚(4根)RST/VPP(Pin9):

复位引脚,引脚上出现2个机械周期的高电平将使单片机复位。

ALE/PROG(Pin30):

地址锁存允许信号PSEN(Pin29):

外部存储器读选通信号EA/VPP(Pin31):

程序存储器的内外部选通,接低电平从外部程序存储器读指令,若是接高电平则从内部程序存储器读指令。

4可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,别离位P0、P一、P二、P3口,每一个口有8位(8根引脚),共32根。

PO口(Pin39~Pin32):

8位双向I/O口线,名称为~

P1口(Pin1~Pin8):

8位准双向I/O口线,名称为~

P2口(Pin21~Pin28):

P3口(Pin10~Pin17):

STC89C52主要功能如下

主要功能特性兼容MCS51指令系统8K可反复擦写FlashROM32个双向I/O口3个16位可编程按时/计数器中断2个串行中断2个外部中断源2个读写中断口线低功耗空闲和掉电模式256x8bit内部RAM时钟频率0-24MHz可编程UART串行通道共6个中断源3级加密位软件设置睡眠和唤醒功能

STC89C52的引脚图

时钟电路

STC89C52内部有一个用于组成振荡器的高增益反相放大器,引脚RXD和TXD别离是此放大器的输入端和输出端。

时钟能够由内部方式产生或外部方式产生。

内部方式的时钟电路如上图所示,在RXD和TXD引脚上外接按时元件,内部振荡器就产生自激振荡。

按时元件通常采用石英晶体和电容组成的并联谐振回路。

晶体振荡频率能够在~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。

外部方式的时钟电路如图所示,RXD接地,TXD接外部振荡器。

对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。

片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机利用。

示,RXD接地,TXD接外部振荡器。

对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。

片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机利用。

RXD接地,TXD接外部振荡器。

对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。

片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机利用。

复位及复位电路

(1)复位操作复位是单片机的初始化操作。

其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除进入系统的正常初始化之外,当由于程序运行犯错或操作错误使系统处于死锁状态时,为摆脱窘境,也需按复位键从头启动。

除PC之外,复位操作还对其他一些寄放器有影响,它们的复位状态如下所示。

一些寄放器的复位状态寄放器PCACCPSWSPDPTRP0-P3IPIETMOD

复位状态0000H00H00H07H0000HFFHXX000000B0X000000B00H

寄放器TCONTL0TH0TL1TH1SCONSBUFPCON

复位状态00H00H00H00H00H00H

不定0XXX0000B

(2)复位信号及其产生RST引脚是复位信号的输入端。

复位信号是高电平有效,其有效时刻应持续24个振荡周期(即二个机械周期)以上。

若利用颇率为6MHz的晶振,则复位信号持续时刻应超过4us才能完成复位操作。

硬件系统设计

3.2.1自动循环电路设计

3.2.2手动循环电路设计

手动循环电路设计有两种方案

第一种是能够通过调节电位器,改变电阻阻值,从而改变电路电流,进而改变LED的发光强度,达到预期效果。

但这种调剂方式比较老一点,不能用于实际应用中,于是有了后面设计的光控照明电路的设计,

‘第二种方式就是在自动循环电路的硬件设计的前提下,利用外部中断来实现手动调节。

3.2.3光控照明电路的设计

光控照明电路的原理与三极管搭建的驱动LED电路的原理一样,在此不与前面重复叙述。

软件程序设计

#include<

>

bititerFlag;

intDelayTime1

voidmain(void)

{

charDiodeOnTime[6]={2,4,6,8,10,12};

chari,j;

charPortSelect;

initTime0();

while

(1)

{

for(i=0;

i<

6;

++i)

{

PortSelect=0x01;

for(j=0;

j<

4;

++j)

{

OutputPort=PortSelect;

delay(DiodeOnTime[i]);

PortSelect<

<

=1;

}

}

}

voidtime()interrupt1

TL0=(65536-50000)%256;

TH0=(65536-50000)/256;

if(!

--DiodeDelayTime)

iterFlag=0

voiddelay(intdelaytime)

delaytime*=1000/50;

DelayTime1=delaytime;

Flag=1

while(Flag);

}

voidinitTime0(void)

IE=0x82;

TH0=(65536-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1