模拟路灯控制系统设计报告.doc_第1页
模拟路灯控制系统设计报告.doc_第2页
模拟路灯控制系统设计报告.doc_第3页
模拟路灯控制系统设计报告.doc_第4页
模拟路灯控制系统设计报告.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

湖北经济学院湖北经济学院信息工程学院电子线路综合设计报告课题名称: 模拟路灯控制系统 任课教师: 张淑玲 学生班级: 电嵌Q1241 学生姓名: 李玲丽 学号: 12160033 同组学生: 詹才珮 2015年4月目 录摘要1一、系统设计2(一)设计任务和要求2(二)总体设计方案4 1、功能分解及设计思路4 2、系统各模块的方案4二、单元电路设计6(一)单片机最小系统6(二)路灯电路6(三)亮度检测电路7(四)交通状况检测电路8(五)报警电路9三、软件设计10(一)系统主流程图10(二)系统子流程图11 1、手动开关灯流程图11 2、定时开关灯电路流程图12 3、根据环境明暗开关灯流程图13 4、根据交通状况开关灯流程图14 5、路灯检测流程图15四、仿真系统测试15(一)按键操作说明15(二)手动开关灯功能测试16(三)定时开关灯功能测试17(四)环境明暗开关灯功能测试17(五)交通状况开关灯功能测试18(六)路灯检测功能测试22五、硬件模块测试22(一)环境明暗开关灯模块测试23(二)交通状况开关灯模块测试23(三)报警电路模块功能测试23六、总结23七、参考文献24八、附录24附录1 程序代码.24模拟路灯控制系统摘 要以AT89C51单片机为控制核心,结合LCD1602、DS1302、光敏电阻、4*4键盘以及晶振和蜂鸣器等器件,设计出了这个模拟路灯控制系统。实现的主要功能有:能通过按键进行手动的开灯和关灯;能实时显示时间并按设定开灯、关灯时间;根据环境明暗变化,能自动开灯和关灯;根据交通情况自动调节灯亮状态。能分别独立控制每只路灯的开关时间;能检测故障,检测到故障会进行声光报警,并显示出故障路灯的地址编码。系统设计包含以下几个基本模块:控制模块、信息显示模块、键盘模块、路灯模块、位置探测模块、光亮度检测模块。关键字:AT89C51、LCD1602、DS1302、报警电路、路灯检测、位置探测、光亮度检测0一、系统设计(一)设计任务和要求 1、任务设计并制作一套模拟路灯控制系统。控制系统结构如图1所示,路灯布置如图2所示。图1 路灯控制系统示意图图2 路灯布置示意图(单位:cm) 2、要求(1)支路控制器有手动开关灯的功能,能控制整条支路或单独路灯灯1和灯2的开灯和关灯。(2)支路控制器有时钟功能,能设定、显示开关灯时间,并控制整条支路按时开灯和关灯。(3)支路控制器应能根据环境明暗变化,自动开灯和关灯。(4)支路控制器应能根据交通情况自动调节亮灯状态:当可移动物体M(在物体前端标出定位点,由定位点确定物体位置)由左至右到达S点时(见1图2),灯1亮;当物体M到达B点时,灯1灭,灯2亮;若物体M由右至左移动时,则亮灯次序与上相反。(5)支路控制器能分别独立控制每只路灯的开灯和关灯时间。(6)当路灯出现故障时(灯不亮),支路控制器应发出声光报警信号,并显示有故障路灯的地址编号。 3、说明 (1)光源采用1W的LED灯,LED的类型不作限定。 (2)系统中不得采用接触式传感器。 (3)需测定可移动物体M上定位点与过“亮灯状态变换点”(S、B、S等点)垂线间的距离,要求该距离2cm。2(一)总体设计方案 1、功能分解及设计思路根据设计的基本要求,系统实现的主要功能有:(1)能通过按键进行手动的开灯和关灯;(2)能实时显示时间并按设定开灯、关灯时间;(3)根据环境明暗变化,能自动开灯和关灯;(4)根据交通情况自动调节灯亮状态。(5)能分别独立控制每只路灯的开关时间;(6)能检测故障,检测到故障会进行声光报警,并显示出故障路灯的地址编码。(7)系统设计包含以下几个基本模块:控制模块、信息显示模块、键盘模块、路灯模块、位置探测模块、光亮度检测模块。总的系统框图如图所示。图 总系统框图示意图 2、系统各模块的方案 (1)、控制模块控制器采用系列单片机,系统单片机是一种最常用的单片机,其最大的特点是系统结构合理、技术成熟、成本低、容易学习,方便用软件编程实现各种算法与逻辑控制,广泛应用于各种控制领域。单片机系统实现的主要功能有,完成数字及控制信号的输入、数据及工作状态的显示以及路灯电路的的驱动与控制。 (2)、显示模块显示模块用来实现交互菜单、提示信息、时间、系统工作状态等信息的显示。显示器件可选用字符型液晶器LCD 1602,LCD1602显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。该显示器能基本满足本系统显示的需要。 (3)、键盘模块根据系统的设计要求,键盘要能输入0-9共10数码、确认、退出等信号,所以用4*4矩阵键盘。 (4)、路灯模块51单片机I/O口为集电极上拉输出方式,高电平输出电流等于上拉电阻的电流,这个电流比较小,低电平输出是内部晶体管吸收的电流,最大可以达到10mA,但是整个端口的总电流不能超过24mA。 所以,51单片机I/O口用来驱动普通小功率的没有问题。因本系统中采用的是1W的LED灯,1W的LED灯需要200mA的电流才能工作,故不能用直接用I/O口来驱动它工作。本方案采用大功率的MOS驱动1WLED灯工作。 (5)、位置探测模块采用ST188红外对射传感器感测是否有物体通过,当没有物体通过时ce截止,单片机采到的电压值为低电平;当有物体经过时be导通,电源电压加到E端,单片机采到的电压值为高电平。ST188的内部结构图如图4,K端接510电阻,E端接20K电阻,A和C端接+5V的电压。图4 ST188内部结构图 (6)、光亮度检测模块。光敏电阻随着光线变强电阻值会变小,光线变弱阻值会变大。根据光敏电阻的工作特性,按照路灯实际工作情况,可以设定一个阈值亮度,当环境亮度低于这个亮度时,使电压比较器输出高电平,单片机采集到高电平后开灯,反之,单片机采集到的低电平后关灯。二、单元电路设计(一)单片机最小系统根据设计要求,控制系统要通过良好的人机交换界面完成系统的所有控制功能。微控制器选用89S51(52)单片机,键盘选用4*4键盘,显示器选用16*2的液晶显示器LCD1602。单片机小系统PROTEUS中的仿真原理图5如下:图5 单片机小系统仿真原理图(二)路灯电路51单片机I/O口为集电极上拉输出方式,高电平输出电流等于上拉电阻的电流,这个电流比较小,低电平输出是内部晶体管吸收的电流,最大可以达到10mA,但是整个端口的总电流不能超过24mA。 所以,51单片机I/O口用来驱动普通小功率的没有问题。因本系统中采用的是1W的LED灯,1W的LED灯需要200mA的电流才能工作,故不能用直接用I/O口来驱动它工作。本方案采用大功率的MOS驱动1WLED灯工作。具体电路图6,其工作原理为,N沟道增强型场效应管Q1和Q2分别接P00和P01口,当P00和P01输出高电平时,场效应用Q1和Q2导通,LED灯D1和D2开灯,反之,LED灯D1和D2关灯。图6 路灯电路图(三)亮度检测电路光敏电阻的阻值随光照强度的增大而减小,所以可用光敏电阻检测环境的明暗,从而实现根据环境明暗变化,自动开灯和关灯。所设计的环境明暗检测电路如下图所示,电路中电位器RV1对电源分压后给电压比较器同相端提供一个基准电压。电压比较器反相端的电压由光敏电阻决定,当光照强度增大时,光敏电阻阻值减小,反相端电压升高,当光照强度达到一定值时,反相端电压大于同相端电压,电压比较器输出低电平,经过反相器U4:A后输出高电平,来实现控制开灯和关灯。(注:在PROTEUS仿真时,如把电压比较器直接连接到单片机,单片机不能区分其电平,在其后增加了一个反相器则可以。)图7 亮度检测电路图(四)交通状况检测电路采用ST188红外对射传感器感测是否有物体通过,当没有物体通过时ce截止,单片机采到的电压值为低电平;当有物体经过时be导通,电源电压加到E端,单片机采到的电压值为高电平。ST188的内部结构图如下图,K端接510电阻,E端接20K电阻,A和C端接+5V的电压。图8 ST188内部结构图 当有车辆或人经过时,ST188红外对射传感器被挡光,如下图电路按收三级管截止,输出为低电平,反之输出为高电平。电路中R1=510,R2=20K。图9 ST188内部连接图在PROTEUS仿真电路中,因没有红外对射传感器,可以用如下电路模拟红外对射传感器的功能。图10 交通状况检测电路图(五)报警电路报警电路如下图所示,当BUZ0时,电路不报警,当BUZ有脉冲信号时,蜂鸣器就会发出间断的声音,LED就会闪烁。图11 报警电路图44三、软件设计(一)系统主流程图(二)系统子流程图 1、手动开关灯流程图开始路灯初始化显示本级菜单调用键盘扫描程序取键值numYP1.0=1,P1.1=1(亮灯)显示器显示工作状态Num=1?NYP1.0=0,P1.1=0(关灯)显示器显示工作状态Num=2?NY进入路灯检测模块Num=5?NNNum=15?Y跳出循环返回主菜单 2、定时开关灯电路流程图NNum=11&i0开始Y回退控制变量i初始化显示器初始化NNum=1?读取时间显示输入提示信息调用键盘扫描程序取键值numYN把设置的时间写入DS1302i=0&num=0&num=9YY进入路灯检测模块输入时间数据并存入数组NNum=15?Y跳出循环返回主菜单 3、根据环境明暗开关灯流程图开始路灯初始化菜单初始化N开灯,显示路灯工作状况Hj=0?Y关灯,显示路灯工作状况键盘扫描Y进入路灯检测模块Num=5?NNNum=15?Y跳出循环返回主菜单 4、根据交通状况开关灯流程图开始路灯初始化菜单初始化Y灯1亮,灯2灭(s1=0)&(zj=1)NY灯2亮,灯1灭(s3=0)&(zj=1)NYZj=0s2=0NY灯1灭,灯2灭(s1=0)|(s3=0)&(zj=0)N键盘扫描Y进入路灯检测模块Num=5?NNNum=15?Y跳出循环返回主菜单 5、路灯检测流程图开始路灯初始化菜单初始化YY显示器显示ld1损坏Ret1=1Led1flag=1NNNY显示器不显示,即没有损坏Ret2=1Led2flag=1NY显示器显示ld2损坏YRet1=0&Ret1=0报警N键盘扫描YNNum=15?跳出循环返回主菜单四、仿真系统测试(一)按键操作说明如下图所示,键盘从最右边开始,依次往下分别是0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15;而对应在显示器上则分别显示0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f. 如下图,当按下1键时,进入手动开模式;当按下2键时,进入定时开模式;当按下3键时,进入环境开模式;当按下4键时,进入交通开模式;当按下5键时,进入检测模式。图12 总仿真图(二)手动开关灯功能测试 图13-1 按1键, 图13-2 按键1,灯亮 图13-3按键2,灯灭 进入手动开模式图13-4 按键15,退出,返回主菜单(三)定时开关灯功能测试图14-3 按键1,设置开灯时间图14-2 按键1,设置开关灯时间 图14-1 按键2, 进入定时开模式图14-6 设置关灯时间图14-5 按键2,设置关灯时间图14-4 设置开灯时间图14-9 返回主菜单图14-8 再返回图14-7 设置完成之后确定,返回上一级菜单(四)环境明暗开关灯功能测试图15-1 按键3,进入环境开模式图15-2 通过调节滑动变阻器RV2的阻值来使光敏电阻变的更加敏感,从而使灯亮。图15-3 灯亮了图15-4 按键15,返回主菜单(五)交通状况开关灯功能测试图16-1 按键4,进入交通开模式图16-2 当按下s1端口上的开关时,灯1亮,灯2不亮。图16-3 当放开s1端口上的开关,按下s2端口上的开关时,灯2亮,灯1灭。图16-4 当放开s1,s2端口上的开关,按下s3端口上的开关时,两灯都不亮。图16-5 反方向也是如此。当按下s3端口上的开关时,灯2亮,灯1不亮。图16-6 当放开s3端口上的开关,按下s2端口上的开关时,灯1亮,灯2灭图16-7 当放开s3,s2端口上的开关,按下s1端口上的开关时,两灯都不亮。图16-8 按键15,返回主菜单(六)路灯检测功能测试图17-1 两灯都没坏时,显示器不显示坏灯,灯亮,不报警图17-2 当有一个灯坏时,会显示坏灯名称,并且报警图17-3 当有两个灯坏时,会同时显示坏灯名称,并且报警五、硬件模块测试电路板如下图18所示:图18 电路板图(一)环境明暗开关灯模块测试当挡住光敏电阻时,LED灯亮;不挡住时,LED灯不亮。(二)交通状况开关灯模块测试采用ST188红外对射传感器感测是否有物体通过,当没有物体通过时ce截止,单片机采到的电压值为低电平,LED灯不亮;当有物体经过时be导通,电源电压加到E端,单片机采到的电压值为高电平,LED灯亮。(三)报警电路模块功能测试给BUZ端口分别送入TTL小脉冲,LED灯亮,报警器报警。六、总结 在这次实验的过程中,碰到了很多问题,首先是软件设计的问题,刚开始不知道该如何下手,老师给我们讲解了一下自己的思路,思路特别清晰,于是我们按照老师的思路进行编程,确实顺利了很多。但是到第二个模块时,我们又卡住了,因为我们觉得特别复杂,没有思路,于是去问了几个同学的思路,借鉴了下,我们可以设置多个界面:定时开关灯主界面,设置开关灯时间主界面,设置开灯时间界面,设置关灯时间界面。根据这个思路,我们第二个模块的程序总算是解决了。第四个模块交通灯模块也遇到了困难,就是s1,s2,s3的开关灯问题,是同时开呢,还是分别开呢?如果是按照老师给的实验报告的要求,就是分别开,可是分别开的话编程比同时开要复杂得多,经过跟同伴的长久思考跟尝试,我们通过定义一个中间变量,然后判断这个中间变量来完成分别开的功能。其实,在硬件设计的过程中,我们也遇到了很多问题,刚搭完电路进行测试的时候,LED灯不亮,就用万用表进行调试,检测哪部分有问题,可是检测到LED灯两端的电压竟然是5V,LED灯上方电阻的电压是0V,其他地方也有的通有的不通。焦躁之余,我们把7N80拔出重新顺时针90度插入。然后,就好了。原来是没连接好。其它两个模块挺顺利的。在这个过程中,我更加明白思路清晰和耐心尝试的重要性,还有合作和讨论的趣味,互相讨论辩解增添了无聊的实验课堂上无穷的乐趣。在老师和同学的帮助下,以及我们的努力下,这次实验才顺利完成。七、参考文献1 余孟尝. 数字电子技术基础(第四版). 北京: 高等教育出版社,2008年2 阎 石.数字电子技术基础(第五版).高等教育出版社,2005年. 3 刘爱华.传感器原理与应用技术.人民邮电出版社,2011年. 4 马 彪.单片机应用技术.同济大学出版社,2010年. 5 郭天祥. 51单片机C语言教程.北京: 电子工业出版社,2012年.八、附录附录1 程序代码 总程序如下:#include#include#includelcd1602.h#includekeyscan.h#includeds1302.h#define uchar unsigned char#define uint unsigned intuchar * mainmenu1=1.sdk 2.dsk 3.hj;uchar * mainmenu2=k 4.jtk 5.check;uchar * sdkmenu1=1.on 2.off;uchar * sdkmenu2=5.check 15.quit;uchar * hjcmenu=status: 15:quit;uchar timetable10=0;uchar timeledon6=07-00,timeledoff6=07-01,timebuf6=0;sbit jc1=P16;sbit jc2=P17;sbit buzz=P20;sbit hjk=P12;sbit s1=P13;sbit s2=P14;sbit s3=P15;uchar delflag,startdispflag=1,startreadflag=1,clearwarnflag=1,directflag=1,mdfmenuflag=1,modifyflag,dskmenuflag=1,menuflag=1,led1flag,led2flag,quitflag,warnflag,keybuf,count1flag=1,count2flag;uint count1,count2,dskcount;void dispmmenu()LCD_init();LCD_disp_cher(0,1,mainmenu1);LCD_disp_cher(0,2,mainmenu2);void Timer0Init()EA=1;ET0=1;TMOD&=0xf0;TMOD|=0x01;TL0=(65536-2000)%256;TH0=(65536-2000)/256;TF0=0;TR0=1;void Init()P1=P1&0xfc;buzz=0;Timer0Init();Ds1302_init();void Delayxms(uint time)uint i,j;for(i=time*1;i0;i-)for(j=500;j0;j-);/*手动开模式*/void dispsdkmenu()LCD_init();LCD_disp_cher(1,1,sdkmenu1);LCD_disp_cher(1,2,sdkmenu2);bit sdkpattern()uchar keynum,keyvalue;while(1)while(keynum=keyscan()if(keynum=0xff)break;else keyvalue=keynum;if(keyvalue=1)P1|=0x03;led1flag=1;led2flag=1;if(keyvalue=2)P1&=0xfc;led1flag=0;led2flag=0;if(keyvalue=15)keyvalue=0;quitflag=1;P1&=0xfc;led1flag=0;led2flag=0;if(keyvalue=5)keyvalue=0;return 1;if(quitflag=1)quitflag=0;break;return 0;/*定时开模式*/bit timeswitch(uchar *time)uint currenttime,presettime;currenttime=(timetable0*10+timetable1)*60+timetable3*10+timetable4;presettime=(time0*10+time1)*60+time3*10+time4;if(currenttimepresettime)return 1;else return 0;uchar dispdskmenu()uchar i,j,keynum,keyvalue=0xff;bit ret;if(dskmenuflag=1)dskmenuflag=0;LCD_init();LCD_disp_cher(12,2,1.set);LCD_disp_cher(17,2,5.check );LCD_disp_cher(24,2,15.quit);LCD_disp_cher(0,2,timeledon);LCD_disp_cher(5,2,|);LCD_disp_cher(6,2,timeledoff);/Ds1302_readtime(timetable);/LCD_disp_cher(4,1,timetable);for(i=0;i21;i+)LCD_w_com(0x1C);LCD_w_com(0x80+i+4);LCD_w_data( );for(j=0;j20;j+)Ds1302_readtime(timetable);LCD_disp_cher(i+5,1,timetable);Delayxms(1);while(keynum=keyscan()if(keynum=0xff)break;else keyvalue=keynum;if(keyvalue!=0xff)return keyvalue;ret=timeswitch(timeledon);if(ret=0)P1|=0x03;led1flag=1;led2flag=1;ret=timeswitch(timeledoff);if(ret=0)P1&=0xfc;led1flag=0;led2flag=0;Delayxms(1);return 0xff;void dispmdfmenu()LCD_init();LCD_disp_cher(2,1,set time:);LCD_disp_cher(0,2,on:1off:2 quit15);uchar inputmenu()uchar i,j,keyvalue=0xff,keynum;LCD_init();LCD_disp_cher(0,1,input:*-*end);LCD_disp_cher(17,1,:14 1);LCD_disp_cher(22,1,2:DEL 13:-15:quit);for(i=0;i24;i+)LCD_w_com(0x1C);LCD_w_com(0xC0+i);LCD_w_data( );for(j=0;j100)count1=0;count1flag=0;count2flag=1;buzz=0;if(count2flag=1)if(+count2100)count2=0;count2flag=0;count1flag=1;buzz=1;if(+dskcount2000)dskcount=0;dskmenuflag=1;Keyscan.c程序如下:#include#includekeyscan.h#define uchar unsigned char#define uint unsigned intvoid delay(uint i) /延时函数while(i-);/*-键盘扫描程序-*/uchar keyscan(void) /键盘扫描函数,使用行列反转扫描法uchar cord_h,cord_l;/行列值中间变量uint num;P3=0x0f;cord_h=P3&0x0f; /读入列线值if(cord_h!=0x0f) /先检测有无按键按下delay(100); /去抖if(cord_h!=0x0f)cord_h=P3&0x0f; /读入列线值P3=cord_h|0xf0; /输出当前列线值cord_l=P3&0xf0; /读入行线值num=keynum(cord_h+cord_l);return(num);/键盘最后组合码值return(0xff); /返回该值/*-最键码子程序-*/uchar keynum(uchar k)uchar a;switch(k)case 0x7e:a=0;break;/0case 0x7d:a=1;break;/1case 0x7b:a=2;break;/2case 0x77:a=3;break;/3case 0xbe:a=4;break;/4case 0xbd:a=5;break;/5case 0xbb:a=6;break;/6case 0xb7:a=7;break;/7case 0xde:a=8;break;/8case 0xdd:a=9;break;/9case 0xdb:a=10;break;/acase 0xd7:a=11;break;/bcase 0xee:a=12

温馨提示

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

评论

0/150

提交评论