




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选优质文档倾情为你奉上精选优质文档倾情为你奉上专心专注专业专心专注专业精选优质文档倾情为你奉上专心专注专业【高职高专组】2009年9月目录TOC\o"1-3"\u摘要 11方案设计与比较 11.1LED恒流源设计方案 11.2移动物体通过检测方案 11.3整体方案 12理论分析与计算 22.1功率数据采集原理分析 22.2功率调节原理分析 22.3调节误差分析 23电路设计 23.1系统框图 23.2显示器模块电路 33.3光传感器模块 33.4时钟电路 43.5红外对管检测电路 43.6声光报警电路 43.7A/D电路 43.8D/A转换电路 53.9串口电路 54程序设计 54.1物体通过检测实现 54.2功率调节的实现 54.3程序流程图 65系统测试 75.1测试仪器 75.2测试方案 75.3测试结果 75.4结果分析 76总结 8参考文献 8附件1:支路控制器系统电路图 9附件2:单元控制器系统电路图 10附件3:恒流源电路图 11附件4:主要PCB图 12附件5:主要元器件清单 14附件6:部分程序清单 15模拟路灯控制系统摘要:本系统采用3片Atmel公司的AT89S51单片机作为系统的控制器件,其中支路控制器为主控制器,两个单元控制器作为从控制器。支路控制器接显示器和键盘组成人机界面,可通过外部时钟模块进行开关灯定时控制,可通过光敏传感器和电压比较器检测环境明暗程度,可通过7对红外对管检测交通情况,从而控制LED的亮灭。在单元控制器中,采用OP07集成运放接大功率场效应管设计了LED压控恒流源,可由单片机通过D/A方便地控制恒流源的输出电流和功率,并由A/D芯片将功率数据反馈到单片机,形成闭环自动控制系统。支路控制器与单元控制器之间采用485工业串口进行通信,推广到实际应用中。关键词:路灯89S51单片机恒流源1方案设计与比较1.1LED恒流源设计方案方案一:分立元件设计法。LED恒流源可以采用三极管、稳压管加电阻等分立元件进行设计,具有电路简单、成本低等优点,但是性能较差,单片机不好控制。方案二:专用芯片设计法。市面上有不少专用LED恒流源的驱动芯片,如美国安森美公司的CAT4201以及UCT4611,SN3350等。采用专用芯片电路简单可靠、性能好,通过PWM可控制输出电流大小,但是功率数据不易采集。方案三:运放设计法。采用OP07集成运放接大功率场效应管等元器件组成压控恒流源,这种方案具有电路简单可靠、性能好、单片机容易控制、功率数据易于采集等优点,故采用此种方案。1.2移动物体通过检测方案方案一:超声波检测法。利用超声波发射接收的时间差不同,可用来检测是否有物体通过。该方法简单有效,但由于声波的发散特性,精度达不到题目要求。方案二:反射式红外传感器检测法。利用红外线发射接收的时间差不同,也可来检测是否有物体通过。该方法同样简单有效,而且精度较高,但是检测距离过短,只有10几cm,而且价格很高。方案三:红外对管检测法。采用位于同一直线上面对面放置的一个红外发射管和一个红外接收管(即红外对管),可以用来检测是否有物体通过其间。只需通过检测流过红外接收管的电流大小,可以方便地掌握物体通过情况。该方法简单易行,检测距离远、精度高,成本低,故本系统采用该方案。1.3整体方案方案一:单MCU控制法。单从题目功能的实现,采用单MCU方案是可行的。支路控制器采用单MCU设计,所有外部接口(包括键盘、显示器、时钟模块、光电传感器、红外对管、AD、DA等)都挂在这个MCU上。两个单元控制器不带MCU,只设计恒流源。两个恒流源的控制及功率数据采集由支路控制器中的MCU通过双通道的A/D、D/A来完成。这种方案单元控制器电路相当简单,支路控制器电路较为复杂,MCU工作负荷大,I/O资源紧张。整体方案成本较低,易于实现,但不符合实际情况,不满足题意。方案二:主从机协同控制法。支路控制器、单元控制器各采用1片MCU进行控制,支路控制器的主MCU与单元控制器的从MCU之间采用串口通信进行数据交换。支路控制器只用于人机界面、开关灯时间设定、自动亮度识别、道路通过检测及故障报警等,而各个LED恒流源及其控制、数据采集电路均集成到单元控制器电路中,并由其内部的从MCU通过串口接收主MCU的指令进行控制。此方案各MCU分工合理,协同工作,负荷不高,电路、程序都较简单。同时采用工业串口,传输距离远,可推广到实际应用中,故本系统采用该方案。2理论分析与计算2.1功率数据采集原理分析单元控制器采集当前LED的输出功率数据分两步进行:一、采集通过LED的电流值。由于本系统采用压控恒流源,故通过LED的电流即为通过采样电阻的电流,因为采样电阻阻值为1Ω,所以电流等同于采样电阻上的电压。又因为前级运放OP07接成电压跟随器,该值即为D/A输出的电压值,在单元控制器在设定LED输出功率时已知。二、采集LED两端的电压值。该值由LM358接成减法器直接在LED两端取得,经A/D转换送给从机。将这两个值相乘,即得到当前LED的功率值。2.2功率调节原理分析设定功率时,单元控制器并不能一步到位。必须先通过D/A输出一个初始的LED电流值,然后通过A/D把LED两端电压读回来,将电流与电压相乘得到的功率值与需设定值进行比较,如果小于设定值,则增加D/A的输出;如果大于,则减小D/A的输出。通过这种闭环系统,使当前输出功率值逐步逼近设定功率值。2.3调节误差分析D/A设定恒流源电流值、A/D采集电压数据都将带来转换误差,这是A/D、D/A器件本身硬件带来的,不可避免。A/D、D/A位数越高,转化误差越小,调节误差也越小。本系统采用12位的A/D、D/A器件,转换误差小于0.1%,而功率误差由电流转化误差与电压转换误差共同决定,由于他们之间是乘积关系,因此误差的数量级不会上升,总的调节误差小于0.5%,精度完全符合题目要求。3电路设计3.1系统框图系统框图如图1所示。支路控制器支路控制器(主机)AT89S51单元控制器(从机1)AT89S51单元控制器(从机2)AT89S51恒流源1显示器时钟模块光传感器红外对管检测模块按键A/DD/A恒流源2A/DD/A串口串口串口LED1LED2声光报警模块图1系统框图3.2显示器模块电路该模块采用2个4位一体共8位共阴数码管显示器连接而成,段码数据线共用,采用138译码作为数码管位选,用于显示开关灯时间、恒流源输出功率值及百分比、故障LED编号等数据。数码管显示具有亮度高、可视距离远、直观、功耗低、使用方便、性价比高等特点。电路如图2所示。图2数码管显示电路3.3光传感器模块采用光敏电阻作为敏感元件,当环境亮度较高时,光敏电阻R1阻值很小,P17为低电平;当环境亮度较低时,光敏电阻R1阻值很大,P17为高电平。电路如图3所示。图3光传感器电路图4DS1302时钟电路3.4时钟电路时钟模块用于给MCU提供精确时间数据,从而使支路控制器能够准确控制LED的开关灯时间。该模块采用具有SPI接口的DS1302来进行设计,只占用MCU3个I/O,该模块电路如图4所示。3.5红外对管检测电路系统采用555接成施密特触发器来对红外接收管的阳极电压进行监控,当无物体通过对管其间时,红外管接收管D2导通,D2阳极电压为低,CH1输出高电平;当有物体通过其间时,红外管D2截止,D2阳极电压为高,CH1输出低电平。电路如图5所示。图5红外对管检测电路图6声光报警电路3.6声光报警电路采用一个普通发光二极管加一个蜂鸣器实现,当LED出现故障时的声光报警提示功能。如图6所示为声光报警电路。3.7A/D电路该模块采用美国国家半导体公司8位并行ADCADC0809实现,用于采集LED上电压值到从机。其电路如图7所示:图7A/D转换电路图8D/A3.8D/A转换电路该模块采用Linear公司12位串行DACLTC2622实现,用于设定恒流源的输出电流及功率。电路如图8所示。3.9串口电路本系统采用工业串口485进行主机与从机间的通信,其接口电路如图9所示。图9串口接口电路4程序设计4.1物体通过检测实现物体通过的检测是通过道路两边垂直道路方向摆放的7对红外对管实现的。S、S’两点分别放置两对管,B点位置摆放3对管。这样,通过不同管子检测物体的时间先后关系,可以方便地判断出物体的移动位置和移动方向。即不论物体是前进还是后退,管子都可以检测出来。红外对管检测精度很高,识别误差小于2cm。4.2功率调节的实现当调节功率时,单元控制器并不能一步到位,立即使当前功率值等于设定功率值。必须先通过D/A输出一个初始的LED电流值,然后通过A/D把LED两端电压读回来,将电流与电压相乘得到的功率值与需设定值进行比较,如果小于设定值,则增加D/A的输出;如果大于,则减小D/A的输出。通过这种闭环系统,使当前输出功率值逐步逼近设定功率值。4.3程序流程图主机的主程序流程图、从机主程序流程图、从机中断服务程序流程图分别如图10、11、12所示。图10主机主程序流程图图11从机主程序流程图图12从机中断服务程序流程图5系统测试5.1测试仪器DS-1双通道直流稳压源、C31-A型高精度指针式毫安表、C31-V型高精度指针式电压表5.2测试方案功能逐项测试法:根据题目要求,依次逐项测试系统功能。数据实测计算法:使用精密毫伏表、电压表,实时测试通过LED的电流及其两端的电压,再计算出LED的输出功率,并将其与控制器设定的功率值进行比较,以计算出调节误差。5.3测试结果1)功能完成情况经测试,系统可完成题目的基本及发挥部分全部功能。2)指标完成情况本题的指标主要是恒流源输出功率的调节误差。经测试,测试数据及计算结果如表1所示:表1恒流源的功率数据及调节误差表设定功率百分比仪器测量电流值(mA)仪器测量电压值(V)实际功率计算值(W)调节误差20%65.822.820.18501.50%48%156.232.980.46561.44%80%248.443.160.78511.49%100%306.023.210.98231.77%5.4结果分析通过测试、计算和分析,系统完成题目的基本及发挥部分全部功能,并在设定调节LED输出功率的指标上达到题目发挥部分要求,整体性能达到题目发挥部分要求。6总结本系统采用3片Atmel公司的AT89S51单片机作为系统的控制器件,其中支路控制器为主控制器,两个单元控制器作为从控制器。支路控制器接显示器和键盘组成人机界面,可通过外部时钟模块进行开关灯定时控制,可通过光敏传感器和电压比较器检测环境明暗程度,可通过7对红外对管检测交通情况,控制LED的亮灭。在单元控制器中,采用OP07集成运放接大功率场效应管设计了LED压控恒流源,可由单片机通过D/A方便地控制恒流源的输出电流和功率,并由A/D芯片将功率数据反馈到单片机,形成闭环自动控制系统。支路控制器与单元控制器之间采用485工业串口进行通信,可推广到实际应用中。所有功能和指标均达到或部分超过题目要求。参考文献[1]宋文绪,杨帆.自动检测技术.北京:高等教育出版社,2008.[2]高吉祥.全国大学生电子设计竞赛培训系列教程.北京:电子工业出版社,2007.[3]周坚.单片机C语言轻松入门.北京:北京航空航天出版社,2006.[4]孙传友等.测控电路及装置.北京:北京航空航天大学出版社,2002.[5]李朝青著.单片机原理及接口技术.北京航空航天大学出版社,2005.附件1:支路控制器系统电路图附件2:单元控制器系统电路图附件3:恒流源电路图附件4:主要PCB图1)恒流源与数码管显示PCB图
2)主控电路3)从机电路
附件5:主要元器件清单序号元器件名称型号、规格数量1单片机AT89S5132路灯LED1W23ADCADC08024DACLTC262225数码管SMK2674LS13817LM35828OP-0719晶振11.0592M310按键411大功率电阻1欧5W212继电器213场效应管IRFZ44N214三端稳压器7809215各类电阻若干16各类电容若干
附件6:部分程序清单(1)从机部分程序#include<reg51.h>#include<intrins.h>#include<math.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;#defineADDR0x02UINT8Buf[2];UINT16ADCDat[2],kcw;UINT8Vol;floatTemp;bitRecFlag,clok;sbitST=P2^7;sbitOE=P2^6;sbitEOC=P2^5;sbitIN7=P2^3;sbitDA_CS=P2^2;sbitDA_SCK=P2^0;sbitDA_SDI=P2^1;sbitLED=P1^6;sbitREDE=P3^2;voidSystem(void){ SCON=0xf0; TMOD=0x21; TH1=0xFD; TL1=0xFD; TH0=0xdc; TL0=0x32; TR0=1; ET0=1; TR1=1; EA=1; ES=1;}voidSendChar(UINT8c){ REDE=1; TI=0; TB8=0; SBUF=c; while(TI==0); TI=0; REDE=0;}voidReceiv(void)interrupt4{staticUINT8num=0; UINT8c; if(RI==0) return; RI=0; c=SBUF; if(RB8==1) { if(c==ADDR) SM2=0; else { SM2=1; num=0; } } Buf[num]=SBUF; num++; if(num==2) { RecFlag=1; num=0; }}voidWrite_LTC2622(UINT8Data){ UINT8i,Temp; DA_CS=1; DA_SCK=0; DA_SDI=1; _nop_(); _nop_(); DA_CS=0; Temp=0x21; for(i=0;i<8;i++) { if((Temp&0x80)==0x80) DA_SDI=1; else DA_SDI=0; DA_SCK=1; _nop_(); DA_SCK=0; _nop_(); Temp<<=1; } Data<<=4; for(i=0;i<16;i++) { if((Data&0x8000)==0x8000) DA_SDI=1; else DA_SDI=0; DA_SCK=1; _nop_(); DA_SCK=0; _nop_(); Data<<=1; } _nop_(); _nop_(); DA_CS=1; DA_SCK=0;}UINT16Vcontrol(UINT8v){ Temp=1240; Temp=(1/Temp)*4096*v*3; kcw=floor(Temp); return(kcw);}voidDAC0809(void){ UINT8a; IN7=1; ST=0; OE=0; ST=1; ST=0; while(EOC==0);//查询转换结束 OE=1; a=P0; OE=0; Temp=256; Temp=(1/Temp)*5*a; //单位v Vol=floor(Temp); }voidmain(){ UINT8i; System(); while(1) { if(clok) { clok=0; if(Vol>3) { SendChar('o'); } else { SendChar('n'); } } if(RecFlag) { switch(Buf[1]) { case1: LED=0; //亮灯 break; case2: LED=1; break; case4: Write_LTC2622(Vcontrol(i)); i++; break; } Buf[1]=0; } }}voidtimer0()interrupt1{ staticUINT8num; TH0=0xdc; TL0=0x32; num++; if(num==100) { num=0; DAC0809(); clok=1; }}
(2)主机部分程序#include<reg52.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;#defineS10x38#defineS20x34#defineS30x2c#defineS40x1ccodeUINT8SELECT[]={7,6,5,4,3,2,1,0};codeUINT8SEGMENT[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc8/*n*/,0x8e/*F*/,0xff};UINT8Second=0,Minite=30,Hour=12,slave,SDR,Ap,Bp; UINT8Bsecond,Bminite,Bhour,SETVALUE,SETADDR,Sphour,Spminite,Sthour,Stminite,Sphour2,Spminite2,Sthour2,Stminite2;sbitclk=P2^4;sbitio=P2^5;sbitrst=P2^6;sbitREDE=P2^7;sbitACC0=ACC^0;sbitACC7=ACC^7;sbitSpeaker=P3^7;sbitAutochk=P1^7;bitflag,SETBIT,READBIT,flag1,clock,page,FS=1,FS1,FS2;voidmain(){ UINT8c; System(); init1302(); Read1302(); while(1) { led_dsp(); if(Autochk==1) { if(FS) { FS=0; SendChar(1,2); //关灯 SendChar(2,2); //检测光线 FS2=1; } } else { if(FS2) { FS2=0; SendChar(1,1); //熄灯 SendChar(2,1); //检测光线 FS=1; } } if(READBIT==1) { READBIT=0; Read1302(); //读1302时间 } c=Scankey(); if(SETBIT) { switch(c) { caseS2: SETADDR++; if(slave==0) { SETADDR%=2; if(SETADDR==0){SDR=0x82;}//分钟0x03 elseif(SETADDR==1){SDR=0x84;}//时钟0x04 if(SDR==0x82) { SETVALUE=((read1302(SDR)&0x70)>>4)*10+(read1302(SDR)&0x0f); } elseif(SDR==0x84) { SETVALUE=((read1302(SDR)&0x30)>>4)*10+(read1302(SDR)&0x0f); } } elseif(slave==4) { SETADDR%=2; } else { SETADDR%=4; if(SETADDR<2){page=1;} else{page=0;} if((slave==1)||(slave==2)) { switch(SETADDR) { case0:SETVALUE=Spminite; case1:SETVALUE=Sphour; case2:SETVALUE=Stminite; case3:SETVALUE=Sthour; } } elseif(slave==3) { switch(SETADDR) { case0:SETVALUE=Spminite2; case1:SETVALUE=Sphour2; case2:SETVALUE=Stminite2; case3:SETVALUE=Sthour2; } } elseif(slave==4) { if(SETADDR==0){SETVALUE=Ap;} elseif(SETADDR==1){SETVALUE=Bp;} } } break; caseS3: { SETVALUE++; switch(SETADDR) { case0: if(slave==3){Spminite2=SETVALUE;} //从机2关机设置 elseif(slave==0){Bminite=SETVALUE;SETVALUE%=60;}//分钟设置 elseif(slave==4){Ap=SETVALUE;SETVALUE%=100;} else{Spminite=SETVALUE;SETVALUE%=60;} //主机和从机1关机设置 break; case1: if(slave==3){Sphour2=SETVALUE;} //关机// elseif(slave==0){Bhour=SETVALUE;SETVALUE%=24;}//小时设置 elseif(slave==4){Bp=SETVALUE;SETVALUE%=100;} else{Sphour=SETVALUE;SETVALUE%=24;} break; case2: if(slave==3){Stminite2=SETVALUE;} //主机和从机1开机设置 else{Stminite=SETVALUE;} //从机2开机设置 SETVALUE%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年三年级下学期数学2.1《轴对称(一)》(教学设计)
- 上海证合一委托书
- 整本阅读教学课件
- 第2单元 3 比较数的大小及整万或整亿数(2课时)(教案)2024-2025学年数学四年级下册
- 证据新规培训
- 人教版2024七年级下册英语Unit 1-Unit 8全册各单元作文写作指导
- 2025年大型袋式除尘器项目合作计划书
- 2025年搪瓷制品相关日用品生产设备项目经济效益评估报告
- 22古诗三首《芙蓉楼送辛渐》教学设计-2023-2024学年四年级下册语文统编版
- 2025年建筑防水卷材及制品合作协议书
- JJF1033-2023计量标准考核规范
- 《教育强国建设规划纲要(2024-2035年)》解读与培训
- 《会计职业规划》课件
- 员工离职面谈记录表范本
- 2025年青岛市技师学院招考聘用48人高频重点提升(共500题)附带答案详解
- 2024年08月澳门2024年中国银行澳门分行校园招考笔试历年参考题库附带答案详解
- 110KV-GIS设备技术要求
- GA/T 1740.2-2024旅游景区安全防范要求第2部分:湖泊型
- 法律单项服务合同范例
- 《CT介入技术》课件
- 免疫治疗假性进展
评论
0/150
提交评论