网站大量收购闲置独家精品文档,联系QQ:2885784924

基于51单片机的LED调光系统.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

yurixiang1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档