ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:134.10KB ,
资源ID:4768503      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4768503.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(可控led照明及检测报告讲解.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

可控led照明及检测报告讲解.docx

1、可控led照明及检测报告讲解培训报告题目:可控LED照明及检测组员:学院:电子控制与工程专业:电子科学与技术可控LED照明灯设计报告摘要:本组采用TI的TPS61040作为led的驱动芯片,以MSP430单片机为控制核心,光敏二极管作为照度检测传感器,实现led电流预制功能及照度检测关键词: MSP430 照度检测 TPS61040一、 总体方案设计与论证1、恒流部分方案一:系统恒流可控部分采用分立元件搭建,由于分立元件各项参数可方便自由更改,如果参数适当,系统的整体性能将会远远超过集成元件的性能。但由于分离元件的各项参数都可调,如果不具备丰富的经验,将会给调试带来很大困难。方案二: 恒流部分

2、采用开关电源芯片驱动,由于开关电源的低损耗将会对整体电路的效率有较大提升,同时集成芯片外围器件简单,方便电路的安装设计综合考虑本系统采用方案二2、芯片选择MSP430系列单片机具有处理能力强运算速度快超低功耗片上资源丰富方便高效的开发环境等优良特性TPS61040作为恒流数控电源,1.8V至6V的输入电压范围,400mA的输出电流能力,最高输出电压达28V,满足本设计的所有要求本系统采用单片机MSP430F149为系统控制的核心,主要包括TPS驱动模块,LED的功率检测,电源和光度计的制作模块等,总体框图如图表1图表 1二、 各模块电路方案选择1、 恒流及功率检测图表 2TPS61040是一个

3、DC/DC的低功率boost升压电路转换器,由于内部开关频率达到1M所以外部元件可以值可以取很小。其中EN端是使能端保证芯片的正常工作,FB是反馈端内部参考电压1.233V,外部接电流采样电阻实现恒流输出。AD转换采用MSP430内部集成12位ADC将输出电压采样传送给单片机,使用精密电阻采样电流经送入单片机的ADC,单片机计算出功率后送入1602液晶屏显示电感L1是储能电感,D1和1uF电容用于整流滤波Rs将输出电流转换为电压反馈到FB,控制输出电流的稳定,单片机通过数模转换芯片TLV5618控制R2的电压,设定输出电流,其中DA输出3.3V时Io=0,DA输出0V时Io=20mA。2、 数

4、模转换部分采用TLV5618,TLV5618兼容SPI协议,12位串行DA,具有较高精度,且占用IO口很少,符合本设计要求。图表 3 3、 照度检测部分图表4光敏二极管具有比光敏电阻更高的灵敏度,所以采用型号为2CU1B的光敏二极管,灵敏度可达到80uA/uW,暗电流5uA以下,使用时要加反向电压。OP07不支持单电源供电,但由于本系统只能用+5V电源供电,于是采用抬高地电位作为浮地使用将负电源接口接真实地,其中浮地电位由TL431提供(稳定电压值为2.5V,准确值为2.495V),TL431最大能承受100mA的电流,选择合适的电阻使其工作在50mA状态,这样浮地电位最大可提供50mA的输入

5、输出电流,足以满足题目要求。此时的输出电压实际是4、显示及按键部分图表5 按键采用四个独立按键,显示使用1602液晶屏按键采用独立按键,由于msp430的port1,port2口都有外部中断的功能,因此,当检测到按键按下时就会触发中断,从而能对按键的功能进行处理。1602液晶是最常用的显示器,它的操作比较方便,满足一般的显示要求并且本系统要求显示的量比较简单,只涉及简单的数字字母显示,不涉及汉子显示因此本采用1602液晶进行显示就能满足要求三:软件流程图表 6四总体电路图表 7五:附录1 程序源码/-/-1602液晶驱动-/-#include #include 1602.h#define CP

6、U_F (double)8000000) #define delay_us(x) _delay_cycles(long)(CPU_F*(double)x/1000000.0) #define delay_ms(x) _delay_cycles(long)(CPU_F*(double)x/1000.0) #define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define P55 5#define P56 6#define P57 7/-端口定义-#define RS_CLR P5OUT &=

7、 (1 P55) /RS置低#define RS_SET P5OUT |= (1 P55) /RS置高#define RW_CLR P5OUT &= (1 P56) /RW置低#define RW_SET P5OUT |= (1 P56) /RW置高#define EN_CLR P5OUT &= (1 P57) /E置低#define EN_SET P5OUT |= (1 P57) /E置高#define DataPort P4OUT /P4口为数据口/-1602gpio初始化-void LCD_gpio_init() P4SEL = 0x00; / 普通io口 P4DIR = 0xFF; P

8、5SEL = 0x00; P5DIR|= BIT5 + BIT6 + BIT7; /控制口设置为输出模式/-lcd写入命令-void LCD_write_com(unsigned char com) RS_CLR; RW_CLR; EN_SET; DataPort = com; /命令写入端口 delay_ms(5); EN_CLR;/-lcd写入数据-void LCD_write_data(unsigned char data) RS_SET; RW_CLR; EN_SET; DataPort = data; /数据写入端口 delay_ms(5); EN_CLR;/-lcd清屏-void

9、LCD_clear(void) LCD_write_com(0x01); /清屏幕显示 delay_ms(5);/-lcd屏幕初始化-void LCD_init(void) LCD_write_com(0x38); /显示模式设置 delay_ms(5); LCD_write_com(0x08); /显示关闭 delay_ms(5); LCD_write_com(0x01); /显示清屏 delay_ms(5); LCD_write_com(0x06); /显示光标移动设置 delay_ms(5); LCD_write_com(0x0C); /显示开及光标设置 delay_ms(5);/-/名

10、称:可控的灯/作者:小拉面/修改:/日期:2013-8-6/-#include #include1602.h#include1602.c/*自适应调节*#define pid_p 0.005#define pid_i 0 #define pid_d 0.005 float lastdlta_ad=0.0,cur_ad=0.0,last_ad=0.0;int Dlta=0,Dlta_ad=0;char num10=0,1,2,3,4,5,6,7,8,9;char yihang= mA v;char erhang= mW ; int DA_cont201= 372,382,395,408,415,

11、425,435,458,462,468,476, 481,496,508,517,524,531,540,550,560,582,588, 598,605,618,624,634,645,654,665,674,683,697, 712,719,726,737,746,756,766,776,786,794,813, 821,832,840,851,860,870,880,890,902,913,922, 930,940,950,960,974,983,992,1000,1010,1020, 1030,1040,1055,1065,1075,1085,1090,1100,1115, 1125,

12、1135,1145,1152,1162,1177,1185,1195,1205, 1215,1225,1235,1245,1255,1268,1278,1284,1293, 1309,1317,1325,1333,1350,1358,1365,1379,1387, 1393,1410,1416,1426,1440,1445,1454,1471,1476, 1491,1498,1505,1518,1527,1539,1545,1558,1564, 1578,1585,1597,1605,1616,1624,1635,1646,1652, 1664,1670,1680,1691,1700,1708

13、,1717,1726,1734, 1746,1753,1764,1771,1777,1788,1796,1803,1812, 1822,1828,1837,1844,1851,1860,1868,1874,1882, 1888,1897,1904,1910,1918,1925,1930,1938,1943, 1949,1954,1960,1964,1969,1975,1980,1984,1989, 1995,1998,2000,2006,2009,2013,2017,2020,2022, 2025,2027,2030,2033,2035,2036,2038,2040,2041, 2043,20

14、44,2045,2046,2047,2048,2049,2051,2053, 2054;unsigned char DA=100;unsigned int U1, voltemp032,voltemp132,voltemp232;char con0=0,con1=0,con2=0;unsigned long sumvol0,sumvol1,sumvol2;unsigned int avevol0,avevol1,avevol2;/-key端口-#define KeyPort P1IN void all_gpio() P1DIR=0XFF;P1OUT=0XFF; P2DIR=0XFF;P2OUT

15、=0XFF; P3DIR=0XFF;P3OUT=0XFF; P4DIR=0XFF;P4OUT=0XFF; P5DIR=0XFF;P5OUT=0XFF; P6DIR=0XFF;P6OUT=0XFF;/-keygpio-void Key_gpio_init() P1SEL = 0x00; /P1普通IO功能 P1DIR = 0xF0; /P10P13输入模式,外部电路已接上拉电阻 P1IE |= 0X0F; / P10-P13中断允许 P1IES |=BIT0+BIT1+BIT2+BIT3; / 上升沿触发/-TLV5618-/#define TDIR P3DIR /2.7-5.5V低功耗双12位

16、,带掉电D/A转换器#define CS_L P3OUT &=BIT0#define CS_H P3OUT |= BIT0#define SCLK_H P3OUT |= BIT1#define SCLK_L P3OUT &=BIT1#define DIN_H P3OUT |= BIT2#define DIN_L P3OUT &=BIT2/-gpio初始化-void DAC_gpio_init() P3DIR|=0X07; /配端口 P3SEL=0X00;/-DAC-TLV5618转换程序-/ void write_data(unsigned int DA_DATA) /编程位 R1 SPD P

17、WR R0 /寄存器选择位R1 R0 uchar i; / 0 0 写数据到DACB和BUFFER uint temp; / 0 1 写数据到BUFFER temp=DA_DATA | 0x8000; / 1 0 写数据到DACA和用BUFFER内容更新DACB SCLK_H; CS_L; /SPD 速度控制位 SPD=1高速,SPD=0低速 /发送16位数据 for(i=0;i16;i+) /PWR 电源控制位 PWR=1掉电,PWR=0正常操作 /上电时SPD=0,PWR=0(低速模式、正常操作) if(temp & 0x8000) DIN_H; /contr=0x8000 选择A通道,c

18、ontr=0x0000选择B通道 else DIN_L; temp=temp1; SCLK_L; _NOP(); SCLK_H; _NOP(); CS_H; /-ADC配置-void Init_adc() /上电复位是enc为0,可以操作ctl0 P6SEL=0X0F; ADC12CTL0|=ADC12ON+MSC+SHT0_6; /开启内核, 多次采样,采样保持时间256 ADC12CTL1|=CSTARTADD_0+CSTARTADD_1+CSTARTADD_2+SHP+CONSEQ_3; /A0通道。 ADC12MCTL0|=INCH_0; /用默认值就可以 ADC12MCTL1|=IN

19、CH_1; ADC12MCTL2|=INCH_2; ADC12IE|=0X07; /通道0中断允许 ADC12CTL0|=ENC; /-进制转换-void trans_val( int add ,unsigned int hex_val) unsigned long temp1; char vol4; temp1=hex_val;/ temp1=(hex_val5)+hex_val;/*33 / temp1=(temp13)+(temp112; / /4096 if(temp1=3295) temp1=3295; vol0=temp1/100; vol1=temp1%100/10; vol2=

20、temp1%100%10; LCD_write_com(add); LCD_write_data(numvol0); LCD_write_data(0x2e); LCD_write_data(numvol1); LCD_write_data(numvol2);/-计算电流值-void trans_cur( int add ,unsigned int hex_val) unsigned long temp1; char vol3; temp1=hex_val; temp1=temp1*300; temp1=temp112; / /4096 if(temp1=200) temp1=200; vol

21、0=temp1/100; vol1=temp1%100/10; vol2=temp1%100%10; LCD_write_com(add); LCD_write_data(numvol0); LCD_write_data(numvol1); LCD_write_data(0x2e); LCD_write_data(numvol2);/-计算电压值-void trans_val_U( int add ,unsigned int hex_val_1,unsigned int hex_val_2) unsigned long temp1,temp2,temp3; char vol3; temp1=h

22、ex_val_1; temp2=hex_val_2; temp1=temp1*330; temp2=temp2*110; temp1=temp112; temp2=temp29; temp3=temp2-temp1; if(temp3=700) temp3=700; vol0=temp3/100; vol1=temp3%100/10; vol2=temp3%100%10; LCD_write_com(add); LCD_write_data(numvol0); LCD_write_data(0x2e); LCD_write_data(numvol1); LCD_write_data(numvo

23、l2); /-计算功率-void trans_val_P( int add ,unsigned int hex_val_1,unsigned int hex_val_2) unsigned long temp1,temp2,temp3; char p4; temp1=hex_val_1; temp2=hex_val_2; temp2=(temp2*temp1*33); temp1=(temp1*temp1*99); temp1=temp124; temp2=temp221; temp3=temp2-temp1; /if(temp3=14000) / temp3=14000; /temp3=te

24、mp3/100; p0=temp3/1000; /1 p1=temp3%1000/100;/ 4 p2=temp3%1000%100/10; / 0 p3=temp3%1000%100%10; /0 LCD_write_com(add);/ LCD_write_data(nump0); LCD_write_data(nump1); LCD_write_data(nump2);/ LCD_write_data(0x2e); LCD_write_data(nump3);/-光照值转换-void trans_light( int add ,unsigned int hex_val) unsigned long temp1; char vol4; temp1=hex_val; if(temp1=4090) temp1=4090; if(temp1=10) DA+; if(DA=200) DA=200;break; write_data(DA_contDA); delay_us(100); LCD_write_com(0x80+13); LCD_write_data(numDA/100%10); /-比较调光-

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

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