基于51单片机的光控LED.doc

上传人:知****量 文档编号:28098456 上传时间:2022-07-26 格式:DOC 页数:15 大小:66.04KB
返回 下载 相关 举报
基于51单片机的光控LED.doc_第1页
第1页 / 共15页
基于51单片机的光控LED.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《基于51单片机的光控LED.doc》由会员分享,可在线阅读,更多相关《基于51单片机的光控LED.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、性之分使用方便,适用于该自动控制系统中:将光敏电阻与一10K的电阻相连接+5V电压,光照变化可使其电压在+1.7 +4.5V变化,实现从光到电的转换。2模数转换方案论证MAX144是一款低功耗,具有较高精度的串行模数转换器,其与单片机之间采用SPI通信,只需要三个口与单片机相连,节省了单片机的引脚资源。输入通道接入光敏电阻两端电压可将其转换成数字量送入单片机处理。3数模转换方案论证MAX531是一款低功耗,输出端口输出电压,SPI串行口通信的12位DAC。它可实现将A/D转换后的结果或按键预置的数据转换成模拟量,其分辨率高达Vef/4096,所以电压变电流后可以满足在0100mA之间步进0.1

3、mA的精度要求。4、压变流方案与功率放大方案论证与选择按照白光LED的电流、电压变化规律,一般应用正向电压为3.0-3.6V左右,典型值电压为3.3V,当加于LED两端的正向电压超过3.6V后,正向电压很小的增加,LED的正向电流都有可能会成倍增涨,使LED发光体温升过快,从而加速LED光衰减,使LED的寿命缩短,严重时甚至烧坏LED.也就是若单纯施加一定的顺向电压时,顺向电流会作大围的变化,因此采用电流驱动方式,是比较理想的LED驱动方式,它能避免LED正向电压的改变而引起电流变动,同时使LED的亮度稳定,缺点是成本较高。当驱动较多LED不能给它提供足够的电流时,需要运放驱动输出级的BJT来

4、实现电流放大(扩流)后反馈到运放的同相端。确定的详细的系统框图如图1-1所示。二电路与程序设计1光电转换电路设计如图2-1所示。2模数转换电路设计光敏电阻将光转换成电压后,接入MAX144的通道一进行数模转换电路2-1所示。图21图22 模数转换电路3数模转换电路单片机受到MAX144模数转换后的数据送给MAX531进行数模转换成电压控制LED的驱动电路,电路如图23所示。图23 数模转换电路4LED的驱动电路将MAX531经数模转换后的电压变成电流并驱动BJT放大电流,电路如图24所示。 图24 LED驱动电路5、程序设计采用51单片机做主控制器,程序流程图如图25所示。开 始 初 始 化模

5、 数 转 换数 模 转 换 显 示 电 流结束是否按下手控键是否返回是否按下+键是否按下-键数 据 +4数 据 -4NYNYYYYNN图25 程序流程图 附录 详细程序清单#include#include#define uchar unsigned char /宏定义#define uint unsigned int#define delay4us() _nop_();_nop_();_nop_();_nop_();/输入端口设定sbit max144_CS=P17; sbit max144_DOUT=P16; /定义max144端口,Vref=4.5Vsbit max144_SCLK=P15

6、;sbit key_cut=P32; / 切换sbit key_add=P33; / +sbit key_dec=P34; / - sbit key_back=P35; /返回/输出端口sbit LCD_RS=P24;sbit LCD_RW=P25; /LCD位申明sbit LCD_EN=P26;/sbit max531_DIN = P20; /定义max531端口sbit max531_CLR = P21;sbit max531_SCLK = P22; sbit max531_CS = P23;uint I=0,0,0;/数据分解为电流XX.Xuchar code Dsp_Title = C

7、urrent I:;uchar Current_I_Dsp_Buffer = I- . mA;uint Data,result;bit sign;/延时void delay(int ms) uchar i;while(ms-)for(i=0;i250;i+) delay4us();/LCD忙检查bit busy_check() bit result;LCD_RS=0;LCD_RW=1;LCD_EN=1;delay4us();result=(bit)(P0&0x80);LCD_EN=0;return result;Data=result;/LCD写指令void write_(uchar )whi

8、le(busy_check();LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P0=;delay4us();LCD_EN=1;delay4us();LCD_EN=0;/LCD写数据void write_data(uchar dat)while(busy_check();LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delay4us();LCD_EN=1;delay4us();LCD_EN=0;/设置显示位置void set_pos(uchar pos)write_(pos | 0x80 );/LCD初始化void init()wri

9、te_(0x38);delay(5);write_(0x0c);delay(5);write_(0x06);delay(5);write_(0x01);delay(5);/显示void dsp(uchar addr,uchar s)uchar i;set_pos(addr);for(i=0;i10;i+)write_data(si);/将模数转换后得到的结果分解存入缓冲void convert_to_I() /最大值为4000,对应于100mA,4000/100=40I2=(Data/40)/10+0;/十位数I1=(Data/40)%10+0;/个位?I0=0+0;/小数位/读取A/D转换结

10、果void read_144_convert_Data() uchar i,j;max144_SCLK=0;max144_CS=1;max144_CS=0;_nop_();_nop_();for(i=0;i16;i+) max144_SCLK=1;j=max144_DOUT;Data=1;Data|=j;max144_SCLK=0;max144_CS=1;Data&=0X0FFF;void read_keycontrol_data()Data=Data;if(!key_add)delay(8);if(!key_add)while(!key_add);if(Data0x07)Data=Data-

11、8;else if(!key_back)delay(8);if(!key_back)while(!key_back);sign=0;/将A/D转换后的结果或按键输入的数值送入MAX531进行D/A转换void send_Data_to_531()uchar i;max531_CLR=1; max531_CS=0;i=12;while ( i- )max531_SCLK = 0;max531_DIN = (bit)(Data & 0x0800);Data = 1;max531_SCLK = 1;max531_CS=1; /主程序void main()init();while(1)if(!key_

12、cut)delay(8);if(!key_cut)while(!key_cut);sign=1;Data=0x7D0;while(sign)read_keycontrol_data();convert_to_I(); /数据转换Current_I_Dsp_Buffer2=I2;Current_I_Dsp_Buffer3=I1; Current_I_Dsp_Buffer5=I0;dsp(0x00,Dsp_Title);dsp(0x40,Current_I_Dsp_Buffer);send_Data_to_531(); read_144_convert_Data();convert_to_I(); /数据转换Current_I_Dsp_Buffer2=I2;Current_I_Dsp_Buffer3=I1; /分解存入显示缓冲Current_I_Dsp_Buffer5=I0;dsp(0x00,Dsp_Title);/显示标题dsp(0x40,Current_I_Dsp_Buffer);send_Data_to_531();15 / 15

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁