- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于51单片机的LED调光系统
基于STC89C52单片机的LED调光系统
系统组成
LED调光系统组成框图如图1.1所示。
图1.1 LED调光系统组成框图
2. 单元硬件电路的设计
2.1 基于MAX1771的升压(Boost)电路
MAX1771是美信公司的电源管理芯片,可以做为升压电路使用,电路结构为Boost电路,如下图2.1所示。当电压输入电压的范围是5-12V,输出根据的调节,范围是24-36V。引脚1输出PWM来控制场效应管IRF3205的导通与截止。、和为反馈电阻,引脚3是电压反馈端,内置1.25V的稳压源。当输入到3脚的电压高于或低于1.25V时,芯片会自动调节PWM占空比的减小或增大,以得到稳定的输出。
(2.1)
(2.2)
图2.1 基于MAX1771的Boost电路原理图
LED驱动电路的设计
LED驱动电路原理图如图2.2所示。由于Buck电路的驱动比较复杂,故使用如下的电路,使在场效应管关断后让LED的负极电压升高,使得LED关闭。当场效应管导通时,LED的负极电压被拉低,使得LED发光。PWM调节方式使得驱动电路更简单,降低了制造成本,并可以获得较精确的亮度步进调节。
图2.2 LED驱动电路原理图
3.软件设计
采用STC89C52单片机输出频率为230Hz的PWM来驱动场效应管IRF3205的开断,其中用独立键盘来实现PWM占空比1%-99%连续可调,步进值为1%。同时使用液晶YJD12864C-1对LED的亮度即PWM的占空比进行显示,形成了良好的人机界面。软件流程图如图3.1所示。
图3.1 软件流程图
4.电路原理图及印制板图
⑴ 单片机及外围电路原理图
图4.1 单片机及外围电路原理图
⑵ 单片机及外围电路印制板底层图
图4.2 单片机及外围电路印制板底层图
⑶ 单片机及外围电路印制板元件布局图
图4.3 单片机及外围电路印制板元件布局图
⑷ LED驱动电路印制板底层图
图4.4 LED驱动电路印制板底层图
⑸ LED驱动电路印制板元件布局图
图4.5 LED驱动电路印制板元件布局图
⑹ 升压电路印制板底层图
图4.6 升压电路印制板底层图
⑺ 升压电路印制板元件布局图
图4.7 升压电路印制板元件布局图
程序清单
#include REGX51.H
#include intrins.h
#define uint unsigned int
#define uchar unsigned char
#define _Nop() _nop_()
#define nop() _nop_()
#define V_TH0 0XFF
#define V_TL0 0XF6
#define V_TMOD 0X01
sbit RS = P2^3; //H=data; L=command;
sbit RW = P2^4; //H=read; L=write;
sbit E = P2^5; //input enable;
sbit PSB= P2^7; //H=并口; L=串口;
sbit RST= P2^6; //Reset Signal 低电平有效
sbit busy=P0^7; //lcd busy bit
#define lcd_data_port P0
void lcd();
void init_sys(void); /*系统初始化函数*/
void Delay5Ms(void);
unsigned char ZKB1,ZKB2;
uchar num_to_char_table[]={0123456789abcdef};
uchar table0[]={ LED 调光系统 };
uchar table1[]={亮度: };
uchar table2[]={亮度+ 亮度- 复位};
void main (void)
{
init_sys();
ZKB1=80; /*p1.4占空比低电平初始值设定*/
ZKB2=20; /*p1.5占空比低电平初始值设定*/
lcd();
}
/*函数功能:对系统进行初始化,包括定时器初始化和变量初始化*/
void init_sys(void) /*系统初始化函数*/
{
/*定时
文档评论(0)