模拟路灯控制系统(1组液晶)(共24页).doc

上传人:飞****2 文档编号:13772946 上传时间:2022-05-01 格式:DOC 页数:23 大小:409.50KB
返回 下载 相关 举报
模拟路灯控制系统(1组液晶)(共24页).doc_第1页
第1页 / 共23页
模拟路灯控制系统(1组液晶)(共24页).doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《模拟路灯控制系统(1组液晶)(共24页).doc》由会员分享,可在线阅读,更多相关《模拟路灯控制系统(1组液晶)(共24页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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#include#define UINT8 unsigned char#define UINT16 unsigned intsbit RS=P25;sbit

18、 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 0xfd/2号键#define S3 0xfb/3号键#defi

19、ne 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=*- : : -*; /字符变量数组00:00:00UINT8 idata Text316=*-Open Time-*;UINT8 idata Text416=*Close Time-*;UINT8 code Text516=* Test1 *;UINT8 code Text616=* Test2 *;UINT8 code

20、Text716=* Test3 *;UINT8 code Text816=* Normal *;UINT8 idata Text916= Power0 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,OpenM

21、in0,OpenSec0,CloseHou0,CloseMin0,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

22、=0;bit LedFlag2=1;bit ReadFlag=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

23、/*/*函数声明*/void Adjust(void);/*/void Delayms(unsigned int count)unsigned int i;for(i=0;icount;i+);void Delay_ms(UINT16 t)UINT16 i,j;for(i=0;it;i+)for(j=0;j124;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

24、=0;RS=0;RW=0; 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);/ 显示光标移动设置Dela

25、yms(1400);WriteCommand(0x0C); / 显示开及光标设置void Show_Text(char *Text,char row)/显示行unsigned char i;if(row=0)WriteCommand(0x80);Delayms(1400);for(i=0;i16;i+)WriteData(Texti);else WriteCommand(0xC0);Delayms(1400);for(i=0;i16;i+)WriteData(Texti); (2)从机部分程序#include#include #include#define UINT8 unsigned cha

26、r#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=65536;float RealPower=0;UINT16 AnsK=0;UIN

27、T16 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;it;i+)for(j=0;j=3500)LedBroken=1;elseLedBroken=0;temp=(P*10-RealPower);if(temp0)temp=(RealPower-P*10);Flag1=1;if(temp=20)&(d=100)AdjustPower(d);

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

当前位置:首页 > 教育专区 > 教案示例

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

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