2023年全国硕士研究生考试考研英语一试题真题(含答案详解+作文范文)_第1页
已阅读1页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、<p><b>  编号</b></p><p><b>  潍坊学院</b></p><p>  毕 业 设 计 技 术 报 告</p><p>  课题名称:自适应路灯控制器设计 </p><p>  学生姓

2、名: 王继盛 </p><p>  学 号: </p><p>  专 业: </p><p>  班 级: 2012级4班 </p><p>  指导教师: </p><p>  2016年 6

3、 月 </p><p><b>  目录</b></p><p><b>  第一章 前言1</b></p><p>  1.1 课题研究的背景及意义1</p><p>  1.2 路灯照明技术发展状况及趋势1</p><p>  1.2.1 路灯照明技术的现状1&l

4、t;/p><p>  1.2.2 路灯照明技术的发展趋势2</p><p>  第二章 自适应路灯控制系统的方案设计3</p><p>  2.1 控制系统的理论分析3</p><p>  2.2 控制系统的整体设计方案3</p><p>  第三章 硬件电路设计4</p><p>  3

5、.1 系统中的主要器件的介绍4</p><p>  3.1.1 单片机AT89C51简介4</p><p>  3.1.2 模数转换芯片简介5</p><p>  3.1.3 通信芯片简介6</p><p>  3.1.4 时钟芯片简介7</p><p>  3.1.5 显示模块简介7</p>

6、<p>  3.1.6 光传感器简介8</p><p>  3.1.7 继电器简介9</p><p>  3.2 主要模块电路设计10</p><p>  3.2.1 单片机最小系统电路10</p><p>  3.2.2 光照采集电路11</p><p>  3.2.3 时钟电路12</

7、p><p>  3.2.4 路灯开关电路12</p><p>  3.2.5 串口通信电路13</p><p>  第四章 软件设计14</p><p>  4.1 系统控制程序的设计流程14</p><p>  4.2 功能模块程序设计15</p><p>  4.2.1 模数转换程序设

8、计15</p><p>  4.2.2 读取时间程序设计16</p><p>  4.2.3 显示程序设计18</p><p>  4.3 系统控制程序设计19</p><p>  4.3.1 控制继电器程序设计19</p><p>  4.3.2 关灯方式程序设计19</p><p&g

9、t;  4.3.3 时间调整程序设计20</p><p>  4.4 串口通信程序设计21</p><p>  第五章 仿真测试22</p><p>  5.1 光照控制仿真测试22</p><p>  5.2 时钟控制仿真测试22</p><p>  5.3 系统总控制仿真测试23</p>

10、<p>  第六章 结束语25</p><p><b>  参考文献26</b></p><p><b>  附录27</b></p><p><b>  致谢32</b></p><p>  摘要:在现代化城市中,道路路灯成为城市的一条靓丽风景线,但是美好的

11、表面下却存在着严重的电能资源浪费,实现路灯的自适应控制进而达到能源节约是本设计的主要目的。本设计主要由光敏电阻构成的光照传感器、AT89C51单片机、电磁继电器三部分构成,光照传感器实现光照度的采集,单片机作为主控制中心处理数据,继电器为执行元件调控路灯的亮灭。本系统采用的策略是首先按照光照度对路灯自适应关灯控制,此外还需要按照预先设计的时间策略对路灯自适应开灯控制。</p><p>  关键字:路灯;自适应;光

12、照传感器;单片机;继电器</p><p>  ABSTRACT:In a modern city,street lamps become a beautiful landscape of the city, but there is a serious waste of resources under the better surface. The main purpose of this design is t

13、o realize the adaptive control of street lamp and achieve energy saving. This system mainly consists of three parts, which are light sensor, single chip microcomputer and relay. The light sensor collects light illuminati

14、on, the single chip microcomputer as the control center to deal with data, the relay as the con</p><p>  KEY WORDS:street lamp;adaptive; light sensor;single chip microcomputer;relay</p><p><b

15、>  第一章 前言</b></p><p>  1.1 课题研究的背景及意义</p><p>  社会的城市化进程越来越快,路灯在城建中的重要性愈发显著。路灯的作用已经不仅仅是为了照明,还成为了城市的一道靓丽的风景,但是路灯的不合理使用浪费了大量的电能。</p><p>  我国的电能来源主要是火力发电,而发电的效率仅在44%左右。利用火力发电的同

16、时也消耗着煤炭资源和污染着环境,一座1000兆瓦的火力发电厂每天大约消耗10万吨的水资源,全国每年消耗标准煤约5000万吨,火力发电造成的污染很严重,全国每年排放SO2约140万吨和烟尘约1500万吨,直接燃烧煤炭排放的酸性气体不断增加,使中国很多地区酸雨量增加。煤粉灰尘也严重污染着发电站附近的环境,影响人们的日常生活及植物的正常生长。</p><p>  根据调查报告显示2014年社会消耗电量大约是5.5万亿度

17、,而用于路灯的用电量大约占其中的12%[1]。按市电0.7元每度计算,一年花费约460亿元,严重制约着国家的经济发展。但是我国的路灯管理水平还比较落后,基本上靠人工操作,花费了大量的人力成本,而且路灯的开关控制不够准确及时,造成电能的大量浪费。</p><p>  因此提高路灯控制技术,科学合理智能的控制路灯,在满足人们在路上出行安全的同时还能节约电能和减少人力成本,减少市政开支,所以大力推广照明节能技术具有重大

18、的意义。</p><p>  1.2 路灯照明技术发展状况及趋势</p><p>  1.2.1 路灯照明技术的现状</p><p>  目前大多数城市的路灯照明控制技术比较落后,基本上都是采用传统的控制方式,即使用人工操作,在规定的时间点统一打开和关闭路灯,而且路灯的损坏情况全靠人工巡逻检查,并且各街道路灯没有主次之分,主干道与小街道路灯的亮度要么统一要么偏亮或偏

19、暗,这些现象就造成了路灯开关的不准确不及时,路灯维修不及时,各道路路灯亮度不科学,这样的规划设计不仅浪费能源增加人力成本,而且整体的照明效果也不好。</p><p>  1.2.2 路灯照明技术的发展趋势</p><p>  电能是重要的二次能源,我国是发电大国,主要靠火力发电,当前世界能源危机越来越严重,节约能源越来越重要,其中节约电能被提上日程,随着科学技术的发展,城市路灯节能技术得到

20、不断地进步,从传统的人工控制到由光照强度决定的智能控制,从高压钠灯到LED灯,从供电电源由市电到太阳能发电,路灯照明技术的发展对电能的节约都得到了较大的进步。</p><p>  第二章 自适应路灯控制系统的方案设计</p><p>  2.1 控制系统的理论分析</p><p>  本系统整体分为两部分又分为两段控制,光照控制模块和时钟控制模块[2]。</p

21、><p>  光照控制指在夜晚0点以后光照传感器开始工作,随着天渐渐变亮,光照强度逐渐增强。主机接收从机收集的光照度,经过处理后向从机发出指令,从机根据指令执行关灯行为,直至路灯全关。</p><p>  时钟控制指单片机在规定的时间点定时打开路灯。同时下午路灯打开的时间点随着月份的变化而提前或延迟,例如夏季最晚打开路灯时间为19点,冬季最早打开路灯时间是17点,即每个月份增减20分钟[3]。

22、</p><p>  2.2 控制系统的整体设计方案</p><p>  系统整体设计方案如图 2.1所示。</p><p>  图2.1 控制系统整体设计框图</p><p>  光感模块收集光照强度提供给单片机,时钟模块提供时间参考,单片机根据收集的数据处理后输出控制信息,通过控制模块对路灯的开关进行控制。主机通过串口收集各个控制器的工作

23、状态信息,然后通过显示模块显示各个控制器的信息[4]。</p><p>  第三章 硬件电路设计</p><p>  3.1 系统中的主要器件的介绍</p><p>  3.1.1 单片机AT89C51简介</p><p><b>  单片机的特性概述:</b></p><p>  AT89C51

24、单片机提供的标准功能:(1)8位CPU。(2)片内带振荡器,振荡频率fosc范围在1.2~12MHz;可有时钟输出。(3)128B的片内数据存储器。(4)4KB的片内程序存储器。(5)程序存储器的寻址范围为64KB。(6)具有寻址范围为64KB的片外数据存储器。(7)21个字节特殊功能寄存器。(8)4个8位并行口:P0,P1,P2,P3。(9)1个全双工串行口,可用于多机通信。(10)2个16位定时器/计数器。(11)中断系统有5个中断

25、源,可编程为2个优先级。(12)片内采用单总线结构。(13)用单一+5V电源[5]。</p><p><b>  单片机的特点:</b></p><p>  (1)高度集成,体积小,可靠性能高;</p><p><b>  控制功能强;</b></p><p>  电压低,功耗低,便于生产便携式电子

26、产品; </p><p><b>  容易扩展;</b></p><p><b>  性价比较高;</b></p><p>  AT89C51单片机的部分引脚功能简介:VCC接单一+5V电源,GND接地,P0~P3口为8位双向I/O口,其中P3口的第二功能是P3.0(RXD)串行输入口,P3.1(TXD)串行输出

27、口,P3.2(/INTO)外部中断0,P3.3(/INT1)外部中断1,P3.4(T0)计时器0外部输入,P3.5(T1)计时器1外部输入,P3.6(/WR)外部数据存储器写选通,P3.7(/RD)外部数据存储器读选通。AT89C51单片机引脚如图3.1所示。</p><p>  图3.1 AT89C51引脚图</p><p>  3.1.2 模数转换芯片简介</p><

28、;p>  ADC0832是一种专门用来将模拟信号转换为便于计算操作的数字信号的芯片,与微处理器完全兼容,它具有价格较低、接口比较简单、转换控制比较容易等优点,在单片机系统开发中得到大量的使用[6]。</p><p>  ADC0832的特点:</p><p>  (1)8位分辨率,最高分辨可达到256级;</p><p>  (2)输入输出电平与TTL/COM

29、S相兼容;</p><p>  (3)供电电源为+5V时输入电压在0-5V之间;</p><p>  (4)工作频率为250KHz,转换时间在32us;</p><p>  (5)功耗一般在15mW;</p><p>  ADC0832的引脚功能表如表3-1所示,其引脚图如图3.2所示。</p><p>  表3-1

30、ADC0832引脚功能表</p><p>  图3.2 ADC0832引脚图</p><p>  3.1.3 通信芯片简介</p><p>  MAX485主要应用于RS-485总线上,其工作电源为+5V,通信方式为半双工,它的功能是将TTL形式的电平转换成为抗干扰能力更强的RS-485形式的电平[7]。</p><p>  RS-485接口

31、是一种新的接口标准,它具有的特点是:</p><p>  1、RS-485的电气特性:以A线和B线之间的电压差大于0表示高电平,小于0表示低电平。</p><p>  2、RS-485接口的最大通信速率是10Mb/s,它的通信速率越快则通信距离就越近。 </p><p>  3、RS-485接口使用差分接收器和平衡驱动器相结合的形式,其抵抗共模的干扰能力强。

32、</p><p>  4、RS-485接口最大通信距离大约是1200米,如果加上485中继器通信距离更远,并且在接口上允许最多连接128个从机,方便建立设备网络。</p><p>  MAX485引脚功能简介:RXD(1引脚)接收器输出;/RE(2引脚)接收器输出使能,为0时允许接收器输出;DE(3引脚)驱动器输出使能,为1时允许驱动器工作;TXD(4引脚)驱动器输入;A(6引脚)接受器非

33、反相输入和驱动器非反向输出端;B(7引脚)接受器反向输入和驱动器反向输出端;GND(5引脚)和VCC(8引脚)分别是地和电源。MAX485引脚如图3.3所示。</p><p>  图3.3 MAX485引脚图</p><p>  3.1.4 时钟芯片简介</p><p>  DS1302是一种实时时钟芯片,可以提供详细的时间信息,能对闰年自动校正,内部具有31字节的

34、数据存储,工作电压在2.5V至5.5V之间,此外有2个电源输入端,一个为主电源输入端,另一个为备用电源输入端,备用电源可以使用电池或较大的电容,防止掉电的情况下芯片可以正常的工作[7]。</p><p>  DS1302的引脚图如图3.4所示,其引脚功能描述为</p><p>  X1,X2 晶振引脚32.768KHz</p><p>  RST

35、 使能引脚</p><p>  I/O 数据输入输出引脚</p><p>  SCLK 串行时钟引脚</p><p>  Vcc1,Vcc2 电源供电引脚</p><p>  GND 接地引脚</p><p>  图3.4 DS1302引脚图</p><p

36、>  3.1.5 显示模块简介</p><p>  1602液晶也被称为1602字符型液晶,能够同时显示16*2即32个字符。它通常用来显示字符。它由5*7个点组成的一个字符共组成32个字符,两个字符之间有一个点的间隔,在两行之间也有一个点的间隔,这种情况照成图像的显示效果不是很好。LCD1602的引脚图如图3.5所示,其引脚功能如表3-2所示。</p><p>  表3-2 引脚功

37、能表</p><p>  图3.5 1602引脚图</p><p>  3.1.6 光传感器简介</p><p>  光传感器是利用对光照度较敏感的元件将不易检测的光信号量转化为容易检测的电信号量的一种传感器,光传感器的类别很多,在大多数的系统应用中被使用。由光敏电阻器及其外围电路组成本设计使用的光传感器[8][9]。</p><p>  光

38、敏电阻是利用半导体的光电效应制成的一种电阻,它的阻值根据接收到的光线的强弱而变化。光线增强,阻值变小,光线减弱,阻值变大。光敏电阻的特性:</p><p>  亮电阻:在有光照线照射时的电阻值。</p><p>  暗电阻:在没有光线照射时的电阻值。</p><p>  灵敏度:亮电阻与暗电阻的相对变化值。</p><p>  本设计使用的光

39、敏电阻参数如下表3-3所示,光敏电阻实物如图3.6所示。</p><p>  表3-3 光敏电阻参数表</p><p>  图3.6 光敏电阻实物图</p><p>  3.1.7 继电器简介</p><p>  继电器是一种把两个电路衔接在一起的中间器件,在输入端输入的电量达到一定的要求时继电器工作,常开触点(常闭触点)关闭(断开),被控电

40、路接通或断开,它通常被用在用弱电控制强电的电路中。所以在电路中起到保护的作用。</p><p>  4098型电磁继电器通常由弹簧、线圈、铁芯、衔铁和触点组成。工作原理是当线圈上电后,线圈中的铁芯产生较大的磁力吸动衔铁带动弹簧,使触点闭合,被控电路接通。当线圈断电后,铁芯的磁力消失由于弹簧的作用衔铁被复位,触点断开[10]。继电器原理图如图3.7所示。</p><p>  图3.7 继电

41、器原理图</p><p>  3.2 主要模块电路设计</p><p>  3.2.1 单片机最小系统电路</p><p>  单片机最小应用系统是用最少的器件构成能够正常工作的最基本的单片机应用电路,其包括晶振电路、复位电路和电源电路组成。晶振电路由一个11.0592MHz的晶振和两个30pf的电容组成,为单片机系统提供基准时钟信号。单片机复位一般有三种方式,即单

42、片机上电复位、手动按动按钮复位和软件编程复位。上电复位是单片机在上电后从初始状态开始运行,手动复位即单片机在运行的过程中按下复位按键使单片机回到初始状态重新运行[11]。单片机最小电路如图3.8所示。</p><p>  图3.8 单片机最小系统电路</p><p>  3.2.2 光照采集电路</p><p>  光照采集电路是系统的重要主要组成部分,主要是对光照

43、强度的采集,将光的强弱变化转换成电压的大小变化,通过ADC0832处理后将信息输入到控制中心。光照强度信息采集电路如图3.9所示。</p><p>  图3.9 光照强度信息采集电路</p><p>  信息采集电路采用光敏电阻RG0和RG1,接收光线,其中RG0采集太阳光强RG1采集路灯光强,通过测量电阻R0和R1上的电压,经过ADC0832将测量的模拟量转换为数字量传送给控制中心经过转

44、换操作间接得到光照强度。因为光敏电阻对光的敏感度很高,所以对光照的检测只需在0~150Lx范围内就行,根据路灯安装地点适当调整光控量。同时为了对路灯的照明情况能够实时了解,就用一个光敏电阻RG1检测路灯是否工作正常,当路灯灯泡损坏时RG1检测不到光照,在R1上检测到的电压非常小,以此值表示路灯损坏。</p><p>  3.2.3 时钟电路</p><p>  DS1302时钟电路RST引

45、脚接单片机的P1.4控制芯片的复位,SCLK为时序信号输入端由单片机的P1.5提供,I/O为数据输入输出端接单片机的P1.6,X1和X2之间接32.768KHz晶振,为了防止电源对芯片的冲击,在主电源引脚上串联一个电阻值为1K的电阻R。DS1302时钟电路如图3.10所示。</p><p>  有关电源的2个引脚,1是主电源,8是备用电源,在Vcc2掉电的情况下,由Vcc1供电,使芯片正常工作。为DS1302供电

46、是选用较大的供电,当Vcc2大于Vcc1+0.2V时,Vcc2供电,当Vcc2小于Vcc1时,Vcc1供电。DS1302的充电电路可以对后备电源充电,后备电源可以使可充电电池(3.6V)或较大电容,并选择串入的二极管数目以调节电池充电电压[12]。涓流充电电流为</p><p><b>  (3-1)</b></p><p>  其中n=0、1、2...,Vd是二极管

47、压降一般是0.6~0.7,R由程序设定RS寄存器为2K、4K、8K。</p><p>  图3.10 时钟电路图</p><p>  3.2.4 路灯开关电路 </p><p>  路灯开关电路采用继电器作为路灯的开关,通过三极管放大电路将单片机输出的信号放大后输入到继电器,实现由小电控制大电。路灯开关控制电路如图3.11所示。</p><p&g

48、t;  图3.11 路灯开关控制电路</p><p>  NPN型开关电路的工作原理:三极管有三种工作区域,分别是截止区、线性区和饱和区,B极IB作为输入,控制三极管的工作状态。在截止区IB接近于0,CE不导通。在线性区IB在一定的范围内CE成比例放大导通。在饱和区,IB再增大CE导通但不再放大[13]。电阻R为470欧姆,二极管1N4148并联线圈的作用是在三极管突然不导通时与继电器线圈组成回路防止产生的反电势

49、对元器件照成损坏。</p><p>  3.2.5 串口通信电路</p><p>  通过单片机串口通信,使多个路灯的控制器连接在一起,组成一主多从的模式,电路中使用MAX485芯片驱动,提高信息传递的距离。在RS-485电路中,MAX485的RXD是数据输出口接单片机的RXD,MAX485的TXD为数据输入口接单片机的TXD,/RE和DE是方向控制口接单片机的P2.7,A和B接从机的A和

50、B。在A和B之间接一个100~300欧姆的电阻,能有效提高电路对干扰的抵抗能力。RS-485电路如图3.12所示。</p><p>  图3.12 RS485电路图</p><p><b>  第四章 软件设计</b></p><p>  4.1 系统控制程序的设计流程</p><p>  基于单片机控制系统的自适应路灯

51、控制器的软件设计采用KEIL开发环境开发,根据系统的实现功能划分成各个模块,根据系统的设计流程图及各个模块的流程图按顺序逐个编写程序,最后用PROTUES仿真系统。在程序设计中加入了对光照度求平均值的优化设计和时间调整设计使整个系统运行更合理。系统的总流程图如图4.1所示。</p><p>  图4.1 控制系统设计流程图</p><p>  系统控制流程:首先系统初始化,然后读取时间,如

52、果读取的时间小于关灯设定值(假如是早上7点)这说明是在凌晨,此时系统处于光照控制时段,光传感器检测光照强度经过处理后根据设定的关灯步骤逐步关闭路灯至路灯全部关闭。此后系统处于时钟控制阶段,系统读取的时间如果大于开灯设定值(假如是17点)则控制路灯打开。</p><p>  4.2 功能模块程序设计</p><p>  4.2.1 模数转换程序设计</p><p> 

53、 ADC0832模数转换程序流程图如图4.2所示。</p><p>  图4.2 ADC0832模数转换程序流程图</p><p>  当ADC0832没有转换时CS端应置为“1”,这个时候器件无法使用,CLK和DO/DI的电平不要求。当要进行模数转换时就要先将CS端置为“0”,直到转换完成。芯片开始工作时,在第一个CLK下降之前DI端必须是“1”,表示开始信号。在第二、三个CLK下降沿之

54、前DI输入端要输入2位数据,用于选择转换通道,输入数据为“1”“0”时表示只对CH0进行单通道模数转换,在第三个CLK下降之后DI端失去作用,此后开始从DO端读取转换后的数据,第四个CLK下降沿开始由DO端输出转换后的数据,从最高位开始随后每一个CLK下降沿DO端输出下一位数据,直到第11个CLK时输出最低位DATA0,记录此字节数据,接着再记录下一个字节数据,然后2个数据比较,相同就输出,否则重新读取[14]。</p>

55、<p>  4.2.2 读取时间程序设计</p><p>  图4.3 DS1302数据读取流程图</p><p>  DS1302芯片的工作原理:芯片工作时首先进行初始化,首先将RST引脚置“1”并且把8位地址数据与命令信息写入移位寄存器中。数据在时钟信号SCLK的上升沿时以串行方式输入数据,前8位是要访问的地址,命令字写入移位寄存器后,在以后的时钟周期内,输出数据时就进行读操

56、作,输入数据时就进行写操作[15]。DS1302数据读取流程图如图4.3所示。</p><p>  DS1302的控制字的第7位必须是“1”,如果为“0”,则寄存器进入写保护状态,第6位为“0”,则表示存放或读取的数据是日历时钟数据,为“1”表示存取存储的数据,第5位至第1位是地址指示要操作的单元,第0位为“0”则表示写操作,为“1”表示读操作,控制字节总是从第“0”位开始输出。DS1302的控制字如表4-1所示

57、。</p><p>  表4-1 DS1302控制字</p><p>  4.2.3 显示程序设计</p><p>  LCD的初始化过程,显示流程图如图4.4所示。</p><p>  图4.4 LCD显示流程图</p><p><b>  LCD显示程序流程</b></p>&l

58、t;p>  1.定义LCD管脚,包括RS,R/W,E。</p><p>  2.显示初始化,设置显示方式,延时,清理显示缓存,设置显示模式。</p><p><b>  3.设置显示地址。</b></p><p>  4.写显示字符的数据。</p><p>  4.3 系统控制程序设计</p><

59、;p>  4.3.1 控制继电器程序设计</p><p>  通过单片机口控制电磁继电器工作,P1.7口为“1”时则继电器闭合,被控电路断开,路灯不工作,P1.7口为“0”时继电器断开,路灯工作。</p><p>  if(AD_val >= 120)</p><p><b>  {</b></p><p>

60、  delayms(60000); //延时1分钟</p><p>  if(AD_val >= 120)</p><p><b>  P1_7 = 1;</b></p><p><b>  }</b></p><p><b>  else </b></p>

61、;<p>  P1_7 = 0;</p><p>  delayms(250);</p><p>  AD_val是采集的光照强度转换后的值,120是设定值可根据需要改变,通过和设定值比较,判断光照强度,由此控制继电器改变路灯的工作状态。其中判断过程加入了延时,通过延时一分钟排除意外因素造成路灯闪烁,保证路灯的寿命和切换状态的正确性[16]。</p><

62、p>  4.3.2 关灯方式程序设计</p><p>  路灯在早晨的关灯方式采用光照控制,各路灯通过光传感器采集光照强度,然后将采集到的数据传给主机,因为整个路段路灯所处的环境不同,采集到的光照强度可能差别较大,所以主机处理数据时将去掉一个最高值和最低值将剩下的求平均值,保证关灯的合理性。假设设置在光照强度为100Lx时路灯要全灭,所以根据系统要求设置3个步骤逐步关灯,即在光照强度达到30Lx时启用步骤1

63、关掉一部分,达到60Lx时启用步骤2再关掉一部分,到100Lx时全部关掉。图4.5为道路路灯分布图。</p><p>  步骤1关掉的路灯:1、6、11、16、21…</p><p>  步骤2光掉的路灯:4、7、10、13、18…</p><p>  图4.5 道路路灯分布</p><p>  4.3.3 时间调整程序设计</p>

64、;<p>  随着季节的变化,白天光照时间随之延长或缩短,所以下午开路灯的时间如果固定就造成电能的大量浪费,所以合理的调节打开路灯的时间就显得很重要。本设计假如夏季最晚开灯时间为19点,冬季最早开灯时间为15点,即时间的调整为从12月到次年6月逐月增加20分钟,从6月到12月逐月减少20分钟。</p><p>  uchar getTime;</p><p>  uchar

65、PM,AM; //PM下午开灯时间,AM早上关灯时间 </p><p>  getTime = DateTime[2] * 100 + DateTime[1]; </p><p>  if(mon>0 && mon <=6)</p><p><b>  {</b></p>&

66、lt;p>  AM = CLOCK[mon] - 1200;</p><p>  PM = CLOCK[mon]; </p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>

67、<p>  AM = CLOCK[12-mon] - 1200; </p><p>  PM = CLOCK[12-mon]; </p><p><b>  }</b></p><p>  将分钟和小时重新组成一个四位数,小时作为高2位,分钟作为低2位,从12月、1月到6月各个月的开灯时间点组成数组,例如12月下午5点开灯,通过芯

68、片读出来的数是24进制,也就是17点,和分钟组成的新数就是1700,通过这种方式就能得到所有时间点相对应的数字,通过查询法就能得到各个月的开灯时间点[17]。</p><p>  4.4 串口通信程序设计</p><p>  51单片机的串口能进行全双工通信,即能同时进行数据的发送和接收。在单片机上接一个MAX485芯片构成一个半双工通信接口,从机开始处于接收状态,只有在主机主动发送数据时

69、从机才对接收的数据作出响应,主机通过发送地址数据,从机接收后检查是否与自己的地址相符,如果是自己的地址就响应,不是就不响应[4]。采用这种查询的方式主机使所有的从机作出响应。基于本系统的功能要求,主机向从机发送数据,从机接收数据后将自己的状态信息(地址、路灯正常工作标志、光照度)发送到主机,主机收到数据后,检查数据中的路灯正常工作标志,如果出现路灯不正常工作的标志,则将该标志的地址显示,同时将所有从机的光照度求平均值,以此来控制从机网络

70、上路灯的关灯方式[18]。</p><p>  51单片机可实现一台主机与多台从机的通信。在多机通信时从机不主动发送数据,只有在从机接收到主机发送的命令后,从机才做出相应的响应。</p><p>  多机通信的过程如下:</p><p>  (1)系统启动后全部从机初始化SM2位均置“1”,使之只能接收地址帧。</p><p>  (2)主机

71、在发送地址之前先将TB8=1,然后给所有从机发送地址数据。</p><p>  (3)从机先判断接收到的数据的第九位,如果是“1”则表明是地址帧,如果是“0”则是数据帧,从机接收到地址帧后,先与自己的地址号对比,如果地址相符就把SM2=0,脱离多机状态,之后就构成双机通信。</p><p>  (4)地址不符的从机由于SM2位等于1只能响应TB8=1的数据,对于收到TB8=0的数据,则不作

72、响应,这样就实现了主机与从机之间的双机通信。</p><p>  作出响应的从机通信完毕后将SM2置1,恢复系统原有的状态,等待再次响应。</p><p>  主机发送下一个地址,相应的从机作出响应,直到全部从机作出响应。</p><p><b>  第五章 仿真测试</b></p><p>  本系统通过PROTUES

73、软件仿真测试,系统上电初始化后,主机开始发出命令收集从机的信息,从机返回的信息主要是从机地址、从机路灯的工作状态和从机收集的光照信息。在光照控制阶段(即调节光敏电阻接收的光照度使其由0逐渐增大,此时禁用系统的时钟模块)主机需要获取各个从机收集的光照信息,通过处理后按照设定的关灯步骤逐步关灯。在时钟控制阶段时,通过调节时间值模拟时间变化,当时间值大于17点时LED等全亮。</p><p>  5.1 光照控制仿真测

74、试</p><p>  通过调节RG的输入量的大小模拟光照度的变化。当光照度小于100Lx时模拟路灯LED亮,当大于100Lx时模拟路灯LED灭。光照控制仿真如图5.1。</p><p>  图5.1 光照控制仿真图</p><p>  5.2 时钟控制仿真测试</p><p>  通过软件编写改变输入的时间模拟现场时间控制,当输入的时间大于

75、17点时模拟路灯LED 亮,当输入的时间小于17点且大于7点时路灯不亮。时钟控制仿真如图5.2。</p><p>  图5.2 时钟控制仿真图</p><p>  5.3 系统总控制仿真测试</p><p>  主机显示模块在路灯全部正常工作时显示“ALL NORMAL”和时间的字样。下图5.3为路灯全部正常工作时的软件仿真电路图。</p><p

76、>  图5.3 路灯正常时系统仿真电路</p><p>  当有路灯出现故障时,此时有2种故障情况,一种是路灯的灯具损坏,一种是路灯的控制器损坏,此时显示模块将显示“break”字样,后面是出现故障路灯的地址和路灯的故障标志(用“1”表示灯具损坏,用“2”表示控制器损坏)。下图5.4为路灯2出现故障时的软件仿真电路。</p><p>  图5.4 路灯2出现故障时的软件仿真电路<

77、;/p><p><b>  第六章 结束语</b></p><p>  自适应路灯控制系统的设计是以单片机AT89C51为中心处理器,以光敏电阻作为光检测元件提供光照度数据,以时钟芯片DS1302为控制核心提供时间参考,通过主机上的液晶显示屏显示从机上传的信息,通过软件的编程设计将各个模块的信息合理的结合,构成路灯的自适应控制系统。它实现了分时控制和光照控制相结合的控制方

78、式,同时在分时控制中又加入了时间调整策略,使系统能随季节的变化而改变。在光照控制方式中,加入了延时策略和反馈信号,通过延时能有效的合理的避免外界环境的突变(闪电)而引起的错误信号输入造成路灯的闪烁,反馈信号反馈的是路灯的亮灭情况,能有效的检测控制系统打开路灯的情况下路灯是否亮的信号,方便掌握路灯的工作情况。</p><p>  由于本系统采用的是分段控制,对于时钟控制如果加入光照控制以及将光照控制的优先级设为高级

79、,则系统的效率更好。对于LCD显示,显示的内容有限,而如果主机为PC机又会增加传输距离,所以后期可以采用GPRS无线传输模块上传数据到PC主机,在PC主机上能够很好的显示所有路灯的情况。</p><p><b>  参考文献</b></p><p>  [1]郭迎新.城市道路照明降压节电技术的应用探讨[J].中国高新技术企业,2011(12):1-1</p>

80、;<p>  [2]王松武.常用电路模块分析与设计指导[M].北京:清华大学出版社.2007.1</p><p>  [3]金仁贵.单片机应用系统的开发方法[J].电脑知识与技术:学术交流.2006(12):1-1</p><p>  [4]王立红.基于单片机的智能路灯控制系统[J].网络财富,2010(6):1-1</p><p>  [5]赵佩华.

81、单片机原理及接口技术[M].北京:机械工业出版社2008.3,48-49</p><p>  [6]严怀龙.基于单片机的数据采集系统[J].广西轻工业.2006(6):1-1</p><p>  [7]莫浩越,韩晋栋.基于RS-485总线的液冷测控装置设计[J].中国科技纵横,2015(10):1-1</p><p>  [8]尹俊.基于光电传感器的智能灯控系统的设

82、计[J].电子技术,2011(10):1-1</p><p>  [9]汤春龙.智能家居信息采集系统的研究与实现[D].湖南.电子科学与技术.2014</p><p>  [10]赵尚武.小型电磁继电器可靠性试验装置的研究[D].北京.机电工程系.2005</p><p>  [11]王皑.佘丹妮.基于单片机的模拟路灯控制系统设计[J].仪表技术.2011(11):

83、1-1</p><p>  [12]雷巍.基于DS1302的时钟接口设计[J].四川兵工学报,2011(11):1-1</p><p>  [13]童诗白.模拟电子技术基础(第四版)[M].北京:高等教育出版社2006.5:85-87</p><p>  [14]张亚林.基于C52控制的ADC0832应用详解[J].数字技术与应用,2013(13):1-1</

84、p><p>  [15]张洪瑞.单片机应用设计200例[M].北京:北京航空航天大学出版社2006.7,50-51</p><p>  [16]王静霞.单片机应用技术(C语言版)[M].北京:电子工业出版社.2009.5,70-72</p><p>  [17]谭浩强.C程序设计(第三版)[M].北京:清华人学出版社.2005.7,30-35</p>&l

85、t;p>  [18]孔艳艳.基于STC89C52的智能照明系统设计[J].电子世界,2014(15):1-1</p><p><b>  附录</b></p><p>  --------------------------------------------主机通信部分程序--------------------------------------</p

86、><p>  #include <reg51.h></p><p>  sbit RE_DE=P2^7;</p><p>  #define COUNT 10 </p><p>  #define Slaver_NUM 10</p><p>  unsigned char b

87、data flag; </p><p>  sbit time_over_flag =flag^0; </p><p>  unsigned char buffer[COUNT]; </p><p>  unsigned char point; </p><p>  uns

88、igned char Slave_AD[Slaver_NUM]; </p><p>  unsigned char ADD_num; </p><p>  unsigned char idata count_10ms; </p><p>  unsigned char idata send_data[7]={</p>

89、<p>  0x31,0x32,0x33,0x34,0x35,0x36,0x37}; </p><p>  void UART_init(); </p><p>  void COM_send(void); </p><p>  unsigned char CLU_checkdata(void)

90、; </p><p>  void UART_init()</p><p><b>  {</b></p><p>  SCON =0x58; </p><p>  TMOD =0x21; </p><p>  TR1 =1; <

91、/p><p>  ES=1; </p><p>  PS=1; </p><p>  TH1 =0xfd; </p><p>  ET1 =0; </p><p><b>  }</b></p><

92、p>  void timer0_init()</p><p><b>  {</b></p><p>  time_over_flag=0;</p><p>  count_10ms=0;</p><p>  ADD_num=0;</p><p>  TL0=0x0F0;

93、 </p><p>  TH0=0x0D8; </p><p>  ET0=1; </p><p><b>  }</b></p><p>  void system_init(void)</p><p><b>  {</b></p&g

94、t;<p>  UART_init();</p><p>  timer0_init();</p><p>  EA =1; </p><p><b>  }</b></p><p>  com_interrupt(void) interrupt 4 using 3</p&

95、gt;<p><b>  {</b></p><p>  unsigned char RECEIVR_buffer;</p><p>  if(RI) </p><p>  {RI=0; </p>&

96、lt;p>  RECEIVR_buffer=SBUF; </p><p>  if(point==0) </p><p><b>  {</b></p><p>  if(RECEIVR_buffer==0xFE) </p><p><b>  {<

97、/b></p><p>  buffer[point++]=RECEIVR_buffer;</p><p><b>  }</b></p><p><b>  else</b></p><p>  point=0; </p><p><b>  }

98、</b></p><p>  else if(point>0&&point<10)</p><p>  buffer[point++]=RECEIVR_buffer; </p><p>  else if(point==10)</p><p><b>  {</b><

99、;/p><p>  if(RECEIVR_buffer==0xEF) </p><p><b>  {</b></p><p>  buffer[point]=RECEIVR_buffer; </p><p>  Slave_AD[ADD_num++]=buffer[2]; </p><p&

100、gt;<b>  }</b></p><p><b>  else</b></p><p>  point=0; </p><p><b>  } </b></p><p>  else point=0; </p>&

101、lt;p><b>  }</b></p><p>  if(TI) </p><p><b>  {</b></p><p>  TI=0; </p><p>

102、;<b>  }</b></p><p><b>  }</b></p><p>  timer0_interrupt(void) interrupt 1 using 2</p><p><b>  { </b></p><p>  count_10ms++;</p&g

103、t;<p>  if(count_10ms==50)</p><p><b>  {</b></p><p>  ET0=0; </p><p>  TR0=0; </p><p>  time_over_flag=1;</p><p>  c

104、ount_10ms=0x00; </p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  TL0=0x0F0; </p><p>  TH0=

105、0x0D8;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void COM_send(void)</p><p><b>  {</b></p><p>  RE_DE=1;

106、 </p><p>  for(point=0;point<=10,TI=1;point++)</p><p><b>  {</b></p><p>  SBUF=buffer[point];</p><p><b>  TI=0;</b><

107、/p><p><b>  }</b></p><p>  RE_DE=0; </p><p><b>  }</b></p><p>  void write_buffer(unsigned char slaver_add)</p>

108、;<p><b>  {</b></p><p>  unsigned char i;</p><p>  TB8=1; </p><p>  buffer[0]=0xFE;</p><p>  buffer[1]=slaver_add;&l

109、t;/p><p>  for(i=2;i<9;i++) </p><p><b>  {</b></p><p>  buffer[i]=send_data[i-2];</p><p><b>  }</b></p><p>  buffer[9]=0xEF

110、;</p><p><b>  }</b></p><p>  void main(void)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  system_init(); </p>

111、<p>  do{ </p><p>  write_buffer(i++); </p><p>  COM_send(); </p><p>  timer0_init(); </p><p><b>  }</b></p><p>  while

112、(time_over_flag&&i<10);</p><p><b>  }</b></p><p>  ----------------------------------------从机通信部分程序----------------------------------------</p><p>  #include

113、<reg51.h></p><p>  sbit RE_DE=P2^7;</p><p>  #define COUNT 10 </p><p>  #define ADD 5</p><p>  unsigned char buffer[COUNT];</p><

114、;p>  unsigned char point; </p><p>  void UART_init(); </p><p>  void COM_send(void); </p><p>  unsigned char CLU_checkdata(void);</p>&

115、lt;p>  void UART_init()</p><p><b>  {</b></p><p>  SCON =0x0F0; </p><p>  TMOD =0x21; </p><p>  TH1 =0xfd; </p><p&

116、gt;  TL1 =0xfd; </p><p>  TR1 =1; </p><p><b>  ET1 =0; </b></p><p>  ES=1; </p><p>  PS=1; </p>&

117、lt;p>  EA =1; </p><p>  SM2=1; </p><p><b>  }</b></p><p>  com_interrupt(void) interrupt 4 using 3</p><p><b>  {</b&

118、gt;</p><p>  unsigned char RECEIVR_buffer;</p><p><b>  if(RI) </b></p><p>  { </p><p>  RI=0;

119、</p><p>  RECEIVR_buffer=SBUF; </p><p>  if(point==0) </p><p><b>  {</b></p><p>  if(RECEIVR_buffer==0xFE) </p><p>

120、;  buffer[point++]=RECEIVR_buffer;</p><p><b>  else</b></p><p>  point=0; </p><p><b>  } </b></p><p>  else if(point==1)</p>

121、<p><b>  {</b></p><p>  if(RECEIVR_buffer==ADD) </p><p>  buffer[point++]=RECEIVR_buffer;</p><p><b>  else</b></p><p>  point=0;

温馨提示

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

评论

0/150

提交评论