模拟路灯控制系统(1组液晶)(共24页)_第1页
模拟路灯控制系统(1组液晶)(共24页)_第2页
模拟路灯控制系统(1组液晶)(共24页)_第3页
模拟路灯控制系统(1组液晶)(共24页)_第4页
模拟路灯控制系统(1组液晶)(共24页)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 2009年全国大学生电子设计竞赛设计报告模拟路灯控制系统(I题)【高职高专组】参赛学校:湖南铁道职业技术学院 参赛队员:曾雄英 殷理杰 程城2009年9月专心-专注-专业目 录 摘要11 方案设计与比较11.1 LED恒流源设计方案11.2 移动物体通过检测方案11.3 整体方案22 理论分析与计算22.1 功率数据采集原理分析22.2 功率调节原理分析22.3 调节误差分析23 电路设计33.1 系统框图33.2 显示器模块电路33.3 光传感器模块33.4 时钟电路43.5 反射式红外传感器检测电路43.6 声光报警电路43.7 A/D电路43.8 D/A转换电

2、路53.9 串口接口电路54 程序设计54.1 定时开关灯的实现54.2 功率调节的实现64.3 程序流程图65 系统测试75.1 测试仪器75.2 测试方案75.3 测试结果75.4 结果分析86 总结8参考文献8附件1:支路控制器单片机电路图9附件2:单元控制器单片机电路图10附件3:恒流源电路图10附件4:主要PCB图11附件5:主要元器件清单13附件6:部分程序清单14模拟路灯控制系统摘要:本系统采用3片Atmel公司的AT89S51单片机作为系统的控制器件,其中支路控制器为主控制器,两个单元控制器作为从控制器。支路控制器接显示器和键盘组成人机界面,可通过外部时钟模块进行开关灯定时控制

3、,可通过光敏传感器检测环境明暗程度,可通过反射式红外传感器检测交通情况,以控制LED的亮灭。在单元控制器中,采用OP07集成运放接大功率场效应管设计了LED压控恒流源,可由单片机通过D/A方便地控制恒流源的输出电流和功率,并由A/D芯片将功率数据反馈到单片机,形成闭环自动控制系统。支路控制器与单元控制器之间采用485工业串口进行通信,可推广到现场实际应用中。关键词:路灯89S51单片机恒流源 1 方案设计与比较1.1 LED恒流源设计方案方案一:分立元件设计法。LED恒流源可以采用三极管、稳压管加电阻等分立元件进行设计,具有电路简单、成本低等优点,但是性能较差,单片机不好控制。方案二:专用芯片

4、设计法。市面上有不少专用LED恒流源的驱动芯片,如美国安森美公司的CAT4201以及UCT4611,SN3350等。采用专用芯片电路简单可靠、性能好,通过PWM可控制输出电流大小,但是功率数据不易采集。方案三:运放设计法。采用OP07集成运放接大功率场效应管等元器件组成压控恒流源,这种方案具有电路简单可靠、性能好、单片机容易控制、功率数据易于采集等优点,故本系统采用此方案。1.2 移动物体通过检测方案方案一:超声波检测法。利用超声波发射接收的时间差不同,可用来检测是否有物体通过。该方法简单有效,但由于声波的发散特性,精度达不到题目要求。方案二:红外对管检测法。采用位于同一直线上面对面放置的一个

5、红外发射管和一个红外接收管(即红外对管),可以用来检测是否有物体通过其间。只需通过检测红外接收管的电阻变化,即可以方便地掌握物体通过情况。该方法简单易行,检测距离远,但是安装调试较困难,受环境光影响较大。方案三:反射式红外传感器检测法。利用红外线发射接收的时间差不同,也可来检测是否有物体通过。该方法同样简单有效,安装方便,精度高,经过调试,检测距离可超过20cm,故本系统采用该方案。1.3 整体方案方案一:单MCU控制法。单从题目功能的实现,采用单MCU方案是可行的。支路控制器采用单MCU设计,所有外部接口(包括键盘、显示器、时钟模块、光电传感器、红外对管、AD、DA等)都挂在这个MCU上。两

6、个单元控制器不带MCU,只设计恒流源。两个恒流源的控制及功率数据采集由支路控制器中的MCU通过双通道的A/D、D/A来完成。这种方案单元控制器电路相当简单,支路控制器电路较为复杂,MCU工作负荷大,I/O资源紧张。整体方案成本较低,易于实现,但不符合实际情况,不满足题意。方案二:主从机协同控制法。支路控制器、单元控制器各采用1片MCU进行控制,支路控制器的主MCU与单元控制器的从MCU之间采用串口通信进行数据交换。支路控制器只用于人机界面、开关灯时间设定、自动亮度识别、道路通过检测及故障报警等,而各个LED恒流源及其控制、数据采集电路均集成到单元控制器电路中,并由其内部的从MCU通过串口接收主

7、MCU的指令进行控制。此方案各MCU分工合理,协同工作,负荷不高,电路、程序都较简单。同时采用工业串口,传输距离远,可推广到实际应用中,故本系统采用该方案。2 理论分析与计算2.1 功率数据采集原理分析单元控制器采集当前LED的输出功率数据分两步进行:一、采集通过LED的电流值。由于本系统采用压控恒流源,故通过LED的电流即为通过采样电阻的电流,因为采样电阻阻值为1,所以电流等同于采样电阻上的电压。又因为前级运放OP07接成电压跟随器,该值即为D/A输出的电压值,在单元控制器在设定LED输出功率时已知。二、采集LED两端的电压值。该值由LM358接成减法器直接在LED两端取得,经A/D转换送给

8、从机。将这两个值相乘,即得到当前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%

9、,而功率误差由电流转化误差与电压转换误差共同决定,由于他们之间是乘积关系,因此误差的数量级不会上升,总的调节误差小于0.5%,精度完全符合题目要求。3 电路设计3.1 系统框图系统框图如图1所示。支路控制器(主机)AT89S51单元控制器(从机1)AT89S51单元控制器(从机2)AT89S51恒流源1显示器时钟模块光传感器红外对管检测模块按键A/DD/A恒流源2A/DD/A串口串口串口LED1LED2声光报警模块图1 系统框图3.2 显示器模块电路该模块采用1个1602液晶模块构成,数据线控制线接单片机I/O,电路如图2所示。 图2 1602液晶显示电路 图3 光传感器电路3.3 光传感器模

10、块采用光敏电阻作为敏感元件,当环境亮度较高时,光敏电阻R1阻值很小,P17为低电平;当环境亮度较低时,光敏电阻R1阻值很大,P17为高电平。电路如图3所示。3.4 时钟电路时钟模块用于给MCU提供精确时间数据,从而使支路控制器能够准确控制LED的开关灯时间。该模块采用具有I2C接口的PCF8563来进行设计,只占用MCU 2个I/O,该模块电路如图4所示。图4 PCF8563时钟电路3.5 反射式红外传感器检测电路系统采用反射式红外传感器实现道路通过情况的检测。反射式红外传感器使用起来非常方便,只需三条线(电源、地和数据线)就可以进行控制。当该传感器接上电源后,如果没有物体通过,数据线保持高电

11、平;如果有物体通过时,其反射回来的红外信号将被传感器接收,数据线电平将被拉低。3.6 声光报警电路采用一个普通发光二极管加一个蜂鸣器实现,当LED出现故障时的声光报警提示功能。如图6所示为声光报警电路。图6 声光报警电路3.7 A/D电路该模块采用TI公司双通道12位串行ADC TLC2552实现,用于采集LED上电压值到从机。其电路如图7所示:图7 A/D转换电路3.8 D/A转换电路该模块采用Linear公司12位串行DAC LTC2622实现,用于设定恒流源的输出电流及功率。电路如图8所示:图8 D/A转换电路3.9 串口接口电路本系统采用工业串口485进行主机与从机间的通信,其接口电路

12、如图9所示:图9 串口接口电路4 程序设计4.1 定时开关灯的实现支路控制器通过不停的读取时钟芯片中的时间值,并将其与开关灯设定时间做比较,如果达到开灯或关灯时间,主机将产生中断,将开灯或关灯指令通过485串口发到相应的单元控制器,单元控制器一旦发现串口有数据送来,立即产生串口中断,并从串口数据中获取开灯或关灯指令,再通过控制继电器的闭合与断开实现该功能。4.2 功率调节的实现当调节功率时,单元控制器并不能一步到位,立即使当前功率值等于设定功率值。必须先通过D/A输出一个初始的LED电流值,然后通过A/D把LED两端电压读回来,将电流与电压相乘得到的功率值与需设定值进行比较,如果小于设定值,则

13、增加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的输出功率,并将其与控制器设定的功率

14、值进行比较,以计算出调节误差。5.3 测试结果1)功能完成情况 经测试,系统可完成题目的基本及发挥部分全部功能。2)指标完成情况本题的指标主要是恒流源输出功率的调节误差。经测试,测试数据及计算结果如表1所示:表1 恒流源的功率数据及调节误差表设定功率百分比仪器测量电流值(mA)仪器测量电压值(V)实际功率计算值(W)调节误差20%64.992.810.18261.74%55%180.182.990.53871.13%76%240.133.110.74681.32%100%307.863.210.98821.18%5.4 结果分析通过测试、计算和分析,系统完成题目的基本及发挥部分全部功能,并在设

15、定调节LED输出功率的指标上达到题目发挥部分要求,整体性能达到题目发挥部分要求。6 总结本系统采用3片Atmel公司的AT89S51单片机作为系统的控制器件,其中支路控制器为主控制器,两个单元控制器作为从控制器。支路控制器接显示器和键盘组成人机界面,可通过外部时钟模块进行开关灯定时控制,可通过光敏传感器和电压比较器检测环境明暗程度,可通过发射式红外传感器检测交通情况,控制LED的亮灭。在单元控制器中,采用OP07集成运放接大功率场效应管设计了LED压控恒流源,可由单片机通过D/A方便地控制恒流源的输出电流和功率,并由A/D芯片将功率数据反馈到单片机,形成闭环自动控制系统。支路控制器与单元控制器

16、之间采用485工业串口进行通信,可推广到实际应用中。所有功能和指标均达到或部分超过赛题要求。参考文献1 宋文绪,杨帆. 自动检测技术. 北京:高等教育出版社,2008.2 高吉祥.全国大学生电子设计竞赛培训系列教程. 北京:电子工业出版社,2007.3 周坚. 单片机C语言轻松入门. 北京:北京航空航天出版社,2006.4 孙传友等. 测控电路及装置. 北京:北京航空航天大学出版社,2002.5 李朝青著. 单片机原理及接口技术. 北京航空航天大学出版社,2005.附件1:支路控制器单片机电路图附件2:单元控制器单片机电路图附件3:恒流源电路图 附件4:主要PCB图1)恒流源PCB图2)主控电

17、路PCB3)从机电路PCB附件5:主要元器件清单序号元器件名称型号、规格数量1单片机AT89S5132路灯LED1W23ADCTLC255224DACLTC262225液晶显示器16021674LS13817LM35828OP-0719晶振11.0592M310按键411大功率电阻1欧5W212继电器213场效应管IRFZ44N214三端稳压器7809215各类电阻若干16各类电容若干附件6:部分程序清单(1) 主机部分程序#include<reg52.h>#include<intrins.h>#define UINT8 unsigned char#define UIN

18、T16 unsigned intsbit RS=P25;sbit RW=P26;sbit E=P27;/sbit out1=P10;sbit in1=P17;/sbit out2=P11;sbit Speaker=P37;sbit RENENABLE=P32;sbit No1=P10;sbit No2=P11;sbit No3=P12;sbit No4=P13;sbit No5=P14;sbit No6=P15;sbit No7=P16;sbit ISDA=P34;/IO口冲突sbit ISCL=P33;#define Data P0#define S1 0xfe/1号键#define S2

19、0xfd/2号键#define S3 0xfb/3号键#define S4 0xf7/4号键#define S5 0x7e/长按键UINT8 code tab='0','1','2','3','4','5','6','7','8','9'/字符变量数组UINT8 idata Text116="*-Real Time-*" /字符变量数组UINT8 idata Text216="*- : : -*"

20、 /字符变量数组00:00:00UINT8 idata Text316="*-Open Time-*"UINT8 idata Text416="*Close Time-*"UINT8 code Text516="* Test1 *"UINT8 code Text616="* Test2 *"UINT8 code Text716="* Test3 *"UINT8 code Text816="* Normal *"UINT8 idata Text916=" Power0

21、 is % "UINT8 idata Text1016=" Power1 is % "UINT8 code Text1116="Led0 was broken."UINT8 code Text1216="Led1 was broken."UINT8 code Text1316=" Welcome. "UINT8 Time=0;UINT8 Sec=00,Min=00,Hou=00;UINT8 Mod=0,Set=0;UINT8 OpenHou0,OpenMin0,OpenSec0,CloseHou0,Clo

22、seMin0,CloseSec0;UINT8 OpenHou1,OpenMin1,OpenSec1,CloseHou1,CloseMin1,CloseSec1;UINT8 TextModNum=0;UINT8 PowerA=70,PowerB=70;UINT8 AdjustN=0;UINT8 Hypotaxis=0;bit LedFlag0=0;bit LedFlag1=0;bit Led1=0,Led2=0,Led3=0,Led4=0,Led5=0,Led6=0;bit Num=0;bit TimeFlag0=0;bit TimeFlag1=0;bit LedFlag2=1;bit Read

23、Flag=0;bit AdjustFlag=0;bit AdjustPowerFlag=0;bit L1BFlag=0,L2BFlag=0;bit TestLedFlag=0;bit LedFlagLight1=0;bit LedFlagLight2=0;/*通讯协议*/#define ADDR1 0x01#define ADDR2 0x02#define LedLight 0x03#define LedDrown 0x04#define LedTest 0x05#define LedBro 0x06#define LedRight 0x07/*/*函数声明*/void Adjust(void

24、);/*/void Delayms(unsigned int count)unsigned int i;for(i=0;i<count;i+);void Delay_ms(UINT16 t)UINT16 i,j;for(i=0;i<t;i+)for(j=0;j<124;j+);void WriteCommand(unsigned char Com)E=0;RS=0;E=1;RW=0;Data=Com;E=0;RS=0;RW=0;void WriteData(unsigned char Dat)E=0;RS=1;E=1;RW=0;Data=Dat;E=0;RS=0;RW=0;

25、void Init1602()Delayms(500);WriteCommand(0x38);Delayms(200);WriteCommand(0x38);Delayms(200);WriteCommand(0x38);Delayms(1400);WriteCommand(0x38);/显示模式设置,开始要求每次检测忙信号Delayms(1400);WriteCommand(0x08);/关闭显示Delayms(1400);WriteCommand(0x01);/显示清屏Delayms(1400);WriteCommand(0x06);/ 显示光标移动设置Delayms(1400);Writ

26、eCommand(0x0C); / 显示开及光标设置void Show_Text(char *Text,char row)/显示行unsigned char i;if(row=0)WriteCommand(0x80);Delayms(1400);for(i=0;i<16;i+)WriteData(Texti);else WriteCommand(0xC0);Delayms(1400);for(i=0;i<16;i+)WriteData(Texti); (2)从机部分程序#include<reg52.h>#include <intrins.h>#include

27、<math.h>#define UINT8 unsigned char#define UINT16 unsigned intUINT16 ADCDat2;UINT8 Power;UINT16 code table9=1,30,80,90,130,160,190,220,260;sbit DA_CS=P13;sbit DA_SCK=P14;sbit DA_SDI=P15;sbit ADCS=P12;sbit ADCLK=P11;sbit ADSDO=P10;sbit RENENABLE=P16;sbit BUTTON=P20;float A=100;float ErrorData=6

28、5536;float RealPower=0;UINT16 AnsK=0;UINT16 k=0,Temp2=100;bit flag;bit LedBroken=0;bit LedFlag=0;/*通讯协议*/#define Addr 0x01#define LedLight 0x03#define LedDrown 0x04#define LedTest 0x05#define LedBro 0x06#define LedRight 0x07/*/*函数声明*/void Write_LTC2622(UINT16 Data);void Read_TLC2552(void);/*/*系统初始化*/void SysInit()RENENABLE=0;SCON=0xf0;TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;EA=1;ES=1;/*/void Delay_ms(UINT16 t)UINT16 i,j;for(i=0;i<t;i+)fo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论