基于51单片机的光控led

基于51单片机的光控led

ID:869146

大小:83.53 KB

页数:16页

时间:2017-09-21

基于51单片机的光控led_第1页
基于51单片机的光控led_第2页
基于51单片机的光控led_第3页
基于51单片机的光控led_第4页
基于51单片机的光控led_第5页
资源描述:

《基于51单片机的光控led》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、光控LED摘要本作品采用光敏电阻采光实现光电转换;采用12位串行ADCMAX144将光电转换后的电压值转换为数字量,转换的数字量经12位串行DACMAX531转换成电压后控制电流控制白光LED的亮度,实现了光控的目的;流过LED的电流值可预置并显示。一、系统方案设计与论证经过分析和论证,此光控LED可分为光电转换、模数转换、数模转换、电压控制电流及功率放大这几个模块。1、光电转换方案论证与选择光敏电阻是利用半导体光电导效应制成的一种特殊电阻器,对光线十分敏感。无光照时呈高阻状态,暗电阻可达MΩ级,当有光照

2、射时,其电阻值迅速减小,亮电阻只有几十至百KΩ。其光强范围宽,灵敏度高,无极性之分使用方便,适用于该自动控制系统中:将光敏电阻与一10KΩ的电阻相连接+5V电压,光照变化可使其电压在+1.7~+4.5V变化,实现从光到电的转换。2﹑模数转换方案论证MAX144是一款低功耗,具有较高精度的串行模数转换器,其与单片机之间采用SPI通信,只需要三个口与单片机相连,节省了单片机的引脚资源。输入通道接入光敏电阻两端电压可将其转换成数字量送入单片机处理。3﹑数模转换方案论证MAX531是一款低功耗,输出端口输出电压,

3、SPI串行口通信的12位DAC。它可实现将A/D转换后的结果或按键预置的数据转换成模拟量,其分辨率高达Vef/4096,所以电压变电流后可以满足在0~100mA之间步进0.1mA的精度要求。4、压变流方案及功率放大方案论证与选择按照白光LED的电流、电压变化规律,一般应用正向电压为3.0-3.6V左右,典型值电压为3.3V,当加于LED两端的正向电压超过3.6V后,正向电压很小的增加,LED的正向电流都有可能会成倍增涨,使LED发光体温升过快,从而加速LED光衰减,使LED的寿命缩短,严重时甚至烧坏LED

4、.也就是若单纯施加一定的顺向电压时,顺向电流会作大范围的变化,因此采用电流驱动方式,是比较理想的LED驱动方式,它能避免LED正向电压的改变而引起电流变动,同时使LED的亮度稳定,缺点是成本较高。当驱动较多LED不能给它提供足够的电流时,需要运放驱动输出级的BJT来实现电流放大(扩流)后反馈到运放的同相端。确定的详细的系统框图如图1-1所示。二﹑电路与程序设计1﹑光电转换电路设计如图2-1所示。2﹑模数转换电路设计光敏电阻将光转换成电压后,接入MAX144的通道一进行数模转换电路2-1所示。图2—1图2—

5、2模数转换电路3﹑数模转换电路单片机受到MAX144模数转换后的数据送给MAX531进行数模转换成电压控制LED的驱动电路,电路如图2—3所示。图2—3数模转换电路4﹑LED的驱动电路将MAX531经数模转换后的电压变成电流并驱动BJT放大电流,电路如图2—4所示。图2—4LED驱动电路5、程序设计采用51单片机做主控制器,程序流程图如图2—5所示。开始初始化模数转换数模转换显示电流结束是否按下手控键是否返回是否按下+键是否按下-键数据+4数据-4NYNYYYYNN图2—5程序流程图附录详细程序清单#in

6、clude#include#defineucharunsignedchar//宏定义#defineuintunsignedint#definedelay4us(){_nop_();_nop_();_nop_();_nop_();}//输入端口设定sbitmax144_CS=P1^7;sbitmax144_DOUT=P1^6;//定义max144端口,Vref=4.5Vsbitmax144_SCLK=P1^5;sbitkey_cut=P3^2;//切换sbitkey_

7、add=P3^3;//+sbitkey_dec=P3^4;//-sbitkey_back=P3^5;//返回//输出端口sbitLCD_RS=P2^4;sbitLCD_RW=P2^5;//LCD位申明sbitLCD_EN=P2^6;//sbitmax531_DIN=P2^0;//定义max531端口sbitmax531_CLR=P2^1;sbitmax531_SCLK=P2^2;sbitmax531_CS=P2^3;uintI[]={'0','0','0'};//数据分解为电流XX.XucharcodeD

8、sp_Title[]={"CurrentI:"};ucharCurrent_I_Dsp_Buffer[]={"I-.mA"};uintData,result;bitsign;//延时voiddelay(intms){uchari;while(ms--)for(i=0;i<250;i++)delay4us();}//LCD忙检查bitbusy_check(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。