智能路灯设计.docx
《智能路灯设计.docx》由会员分享,可在线阅读,更多相关《智能路灯设计.docx(20页珍藏版)》请在冰豆网上搜索。
智能路灯设计
交通与汽车工程学院
课程设计说明书
课程名称:
微机原理及应用课程设计
课程代码:
8234570
题目:
智能路灯控制
年级/专业/班:
学生姓名:
学 号:
开始时间:
20年月日
完成时间:
20年月日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(45)
总分(100)
指导教师签名:
年月日
摘要
随着社会需求和单片机应用领域的不断扩展,各类智能产品、控制系统都是以单片机技术为核心来进行开发设计的。
本设计是基于89C51单片机为控制核心的走廊路灯控制。
本系统采用MSC-51系列单片机AT89C51和相关的传红外线感器智能路灯控制器,实现了能根据实际光线条件通过8951芯片的P1口控制路灯开关的功能。
本设计说明书对该系统的硬件电路,工作原理进行了详细的介绍。
同时给出了软件设计的流程图和主要源代码。
关键词:
89C51单片机红外线传感器开关
1引言
1.1问题的提出
随着夜晚的来临,城市里华灯初上,人们消除了白天的繁忙,漫步穿行于城市的街道上。
在那霓虹漫彩的灯光下,一个个孩子欢快的玩耍着,一对对男女漫步于小道里、花园中,一辆辆汽车奔驰于公路上。
路灯已经成为一个城市的照明系统不可分割更无可替代的一部分,在城市照明中发挥着举足轻重的作用,而其所依靠的就是路灯自动控制系统。
路灯控制方式很多,本系统采用MSC-51系列单片机AT89C51和相关的传感器设备来设计智能路灯控制器,实现了能根据实际行人情况通过8051芯片的P1口控制路灯开关的功能。
随着社会文明的不断发展,城市照明已不仅局限于街道的照明,而且发展成了了城市景观等装饰性照明的综合市政工程。
利用51系列单片机可编程控制八位逻辑I/O端口实现路灯的智能化,达到节能、自动控制的目的,避免了传统电路对能源的浪费,且路灯的自动控制更方便了工作人员的管理。
本系统实用性强、操作简单。
而且所用的路灯采用LED灯。
众所周知,LED是目前最为节能的发光元件,通过采用LED发光可以节省大量的电能,而且LED发光柔和,亮度适中,对环境无污染,已经广泛的应用于各种照明场合。
因此,智能光控节能路灯必将在未来得到广泛的应用。
1.2任务与分析
本次设计的系统的控制中心是89C51单片机。
首先,在Protel软件环境中进行硬件电路图的设计。
然后在proteus软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。
此.hex文件是硬件电路运行实现的源代码来源。
把.hex文件加载到AT89C51单片机芯片,然后在Proteus软件环境中运行硬件电路,控制电路的功能就能够实现了。
本设计的系统主要由:
AT89C51为中央处理芯片,用于信号采集,初值设定。
本系统主要实现的功能:
(1)、路灯的传统手动全开或全关。
(此情况可做应急时处置)
(2)、当有人通过时路灯才会点亮,且点亮的路灯个数视行人所处的位置决定,当行人进入只能路灯路面时点亮路人所处位置相邻的两盏灯。
(3)、路人走过路段的路灯在行人走过后自动熄灭。
2系统方案设计
2.1系统设计方案
,本次课程设计题目是《基于单片机的智能路灯的设计》。
此课题要求以路灯控制器为对象,完成硬件系统和软件程序的设计,实现以传统手动和以行人通过控制两种方式来控制路灯的亮灭功能,属于软硬件相结合的题目。
其中硬件电路部分主要包括以下几个部分:
单片机最小系统、路灯控制电路部分、行人检测电路部分;软件部分主要包括三个电子软件Proteus、Keil-C51软件、protel99。
工作原理如下图所示:
图2-1工作原理简图
本系统需要如下电路元器件,其中电路元器件及相关参数的需求:
(1)AT89C51实验板一块。
(2)单片机最小系统所需的12M晶振一个。
(3)路灯控制电路部分所需的LED灯八个,470欧姆电阻八个,单刀单置开关两个。
(4)行人检测电路所需的2K电阻八个,红外线传感器八个。
(5)+5V直流电压源一个。
实验所用设备器材:
PC机一台及相关软件。
最小系统是51单片机的最基本的组成部分,51单片机的引脚虽然只有四十,但它有很多的扩展功能,根据相应的课题设计要求可以设计相应的外围电路。
此外,在本课题的设计过程中,还应注意P0口,通常P0-P3口用作通用I/OK口,当P0接口用于I/O口时,必须接上拉电阻,而其他接口不需要。
2.2系统总体框图
图2-2系统总体框图
当启动程序后,单片机处于设置的初始状态:
所有灯全关,所有红外传感器打开。
手动控制开关处于处于关灯状态。
此时系统正常工作,如果有行人进入智能路灯路面时,红外传感器监测到信号,并以电压的形式把信号传送给单片机,单片机根据传感器送来的信号个传感器的布置,点亮相应的传感器所处的位置的LED路灯。
当行人通过这个路灯后,并到达下个路灯时,上一个路灯熄灭,所处位置处和所处位置下一个路灯亮。
实现自动控制,达到节能的目的,当行人通过最好一个路灯后最后一个路灯延时8S左右熄灭。
在紧急情况下,需要所有的路灯都要打开,此时可以通过手动开关打开所遇路灯,紧急情况过后,通过手动开关关闭所有路灯。
系统回复正常运行。
3系统硬件电路设计
3.1AT89c51简介
MCS-51系列单片机是由美国的Intel公司开发研制,并于1980年推出的产品。
与MCS-48系列单片机相比,其以典型的体系结构和完善的专用寄存器集中管理方式,方便的逻辑位操作功能及丰富的指令系统[5],堪称一代“名机”,为之后的其他单片机的发展奠定了基础。
因此,MCS-51系列单片机结构先进,功能强大,增加了更多的电路单元和功能模块,指令数达111条。
其中的代表作便是AT89C5x系列单片机,而本文所用的便是AT89C51单片机。
现简要介绍如下:
1.中断系统
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
2.时钟电路
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
3.8051的引脚说明
8051系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
图3-1AT89C51引脚
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高[3]。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA:
当/EA保持低电平时,则在此期间CPU只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,则执行内部程序存储器中的程序。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
8051的复位方式可以是自动复位,也可以是手动复位,见下图。
此外,RESET/还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
图3-2AT89C51的复位方式
·Pin30:
ALE当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,将用于输入编程脉冲。
·Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
·Pin31:
EA/程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
显然,对内部无程序存储器的8031,EA端必须接地。
存储器系统:
8051单片机存储器在的物理结构上分为程序存储器空间和数据存储器空间,程序存储器ROM:
我们为了让单片机实现某一功能,需要利用利用汇编语言或其他语言编写一些源程序,然后再烧录到芯片中。
我们编写的这些程序,就存储在程序存储器空间中。
数据存储器RAM:
我们编写的源程序,在运行的过程中,会产生一些临时的运算结果,这些结果需要临时存放在一个地方,这个地方就是数据寄存器。
8051单片机具有四个存储器空间:
(1)片内程序存储器,即单片机芯片内置的存储空间
(2)片外程序存储器,即当单片机芯片内置的存储空间不够使用时,我们需要外加的一个存储器芯片
(3)片内数据存储器,即单片机芯片内置的存储空间
(4)片外数据存储器,即当单片机芯片内置的存储空间不够使用时,我们需要外加的一个存储器芯片
但从用户使用的角度,8051存储器地址空间分为三类:
1.片内片外统一编址的0000H--FFFFH的64K字节的程序存储器地址空间,用16位地址。
2.64K字节片外数据存储器空间,地址也是从0000H--FFFFH用16位地址。
3.256字节数据存储器空间,用8位地址。
程序存储器地址空间:
8051程序存储器用于存放编写好的程序和表格常数。
程序存储器通过16位程序计数器PC寻址。
寻址能力为64K字节。
片内ROM为4KB。
地址为0000H--0FFFH。
片外最多可扩至64K字节。
地址为1000H--FFFFH。
片内片外是统一编址的。
当引脚EA接高电平时,8051程序计数器PC在0000H--0FFFH范围内,即前4K字节地址执行片内ROM中的程序。
当指令地址超过0FFFH后,就自动转向片外ROM中取指令。
程序存储器的某些单元是留给系统使用的。
存储单元0000H--0002H用作8051上电复位后引导程序存放单元。
因为8051上电复位后程序计数器PC的内容为0000H,所以CPU总是从0000H开始执行程序,如果在这三个单元中有跳转指令,那么,程序就被引导到转移指令所指的ROM空间去执行。
0003H--0023H单元被均匀的分为5段。
用作5个中断服务程序的入口。
因为5个入口之间间隔较小,因此一般来说,这五个入口都是存放着一条跳转指令,而把真正的中断服务程序安排在后面的存储单元中。
数据存储器空间:
数据存储器RAM用于存放运算中的结果、数据暂存或缓冲、标志位等。
数据存储空间也分为片内和片外两大部分,即片内RAM和片外RAM。
(1)片外数据存储器
外部数据存储器又称为外部数据RAM,当805l片内256个字节的数据RAM不能满足数量上的要求时,可通过总线端口和其它I/O端口扩展外部数据RAM(扩展方法见相关章节),其最大容量可达64K字节。
地址从0000H--FFFFH。
外部数据RAM与内部数据RAM的功用基本相同,但外部数据RAM不能进行堆栈操作[8]。
(2)片内数据存储器
片内RAM数据存储器最大寻址空间为256字节。
他们又分为两个部分。
低128字节00H--7FH是真正的RAM区
低128字节中地址00H一1F的32个单元,安排为四组工作寄存器。
每组又分为8个寄存器区R0--R7。
3.2红外线传感器的介绍
热释电红外传感器通过目标与背景的温差来探测目标,其工作原理是利用热释电效应,即在钛酸钡一类晶体的上、下表面设置电极,在上表面覆以黑色膜,若有红外线间歇地照射,其表面温度上升△T,其晶体内部的原子排列将产生变化,引起自发极化电荷,在上下电极之间产生电压△U。
常用的热释电红外线光敏元件的材料有陶瓷氧化物和压电晶体,如钛酸钡、钽酸锂、硫酸三甘肽及钛铅酸铅等。
热释电红外传感器内部由光学滤镜、场效应管、红外感应源(热释电元件)、偏置电阻、EMI电容等元器件组成,其内部电路框图如下图所示。
图3-3红外传感器内部结构
光学滤镜的主要作用是只允许波长在10μm左右的红外线(人体发出的红外线波长)通过,而将灯光、太阳光及其他辐射滤掉,以抑制外界的干扰。
红外感应源通常由两个串联或者并联的热释电元件组成,这两个热释电元件的电极相反,环境背景辐射对两个热释电元件几乎具有相同的作用,使其产生的热释电效应相互抵消,输出信号接近为零。
一旦有人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元件接收,由于角度不同,两片热释电元件接收到的热量不同,热释电能量也不同,不能完全抵消,经处理电路处理后输出控制信号。
热释电效应同压电效应类似,是指由于温度的变化而引起晶体表面电荷的现象。
热释电红外传感器由陶瓷氧化物或压电晶体元件组成,在元件两个表面做成电极,在传感器监测范围内温度有△T的变化时,热释电效应会在两个电极上产生电荷△Q,即在两电极之间产生一微弱的电压△V。
由于它的输出阻抗极高,在传感器中有一个场效应管进行阻抗变换。
热释电效应所产生的电荷△Q会被空气中的离子所结合而消失,即当环境温度稳定不变时,△T=O,传感器无输出。
在自然界,任何高于绝对温度(-273℃)时物体都将产生红外光谱,不同温度的物体,其释放的红外能量的波长是不一样的,因此红外波长与温度的高低有关。
人体或者体积较大的动物都有恒定的体温,一般在37度,所以会发出特定波长10μm左右的红外线,当人体进入检测区,因人体温度与环境温度有差别,人体发射的10μm左右的红外线通过菲涅耳透镜滤光片增强后聚集到红外感应源(热释电元件)上,红外感应源在接收到人体红外辐射时就会失去电荷平衡,向外释放电荷,进而产生△T并将△T向外围电路输出,后续电路经检测处理后就能产生报警信号。
若人体进入检测区后不动,则温度没有变化,传感器也没有信号输出,所以这种传感器适合检测人体或者动物的活动情况
4系统软件设计
4.1proteus软件环境介绍
本系统的硬件设计首先是在Proteus软件环境中仿真实现的。
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。
针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。
如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。
Proteus建立了完备的电子设计开发环境,尤其重要的是ProteusLite可以完全免费,也可以花微不足道的费用注册达到更好的效果。
Proteus是目前最好的模拟单片机外围器件的工具。
可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件...)。
其实Proteus与multisim比较类似,只不过它可以仿真MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小。
当然,硬件实践还是必不可少的。
在没有硬件的情况下,Proteus能像pspice仿真模拟/数字电路那样仿真MCU及外围电路。
另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。
Proteus软件主要具有以下几个方面的特点:
1、设计和仿真软件Proteus是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。
2、它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。
3、它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。
4、它可以仿真目前流行的单片机,如PICS,ATMEL-AVR,MOTOROLA,8051等。
5、在设计综合性方案中,还可以利用ARES开发印制电路板。
4.2Protel软件环境介绍
Protel印制板设计软件包是澳大利亚proteltechnology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。
它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,protel有着很高的自动布线布通率。
布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。
在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,protel就可以轻易的达到98%-100%的布通率。
对于极少数不能布通的定方,protel可以用飞线指示出来,引导用户用手工方法连通。
另外,protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度。
Protel对微机的软硬件配置要求很低:
cpu在8088以上,dos2.0以上版本,内存640kb以上,双软件(或一个软件一个硬盘),单色显示器(多层板设计时最好用彩色),各种兼容打印机。
也能在Windows9X平台的模拟DOS下运行。
Protel已成为印制板设计加工方面的工业标准。
据初步统计protel在CAD的市场占有率达95%,成为电子产品制造业界的首选CAD软件。
4.3keilc51简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
KeilC51单片机软件开发系统的整体结构:
C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项:
仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
4.4系统软件分析
任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。
可想而知软件系统与硬件系统同等重要,下面为系统软件设计过程:
(1)行人检测的程序设计过程
在设计此部分的时候,主要是用高低电平来模拟红外传感器的检测信号,当有人通过是为低电平,没有人通过时为高电平。
在开始时单片机就初始状态P1口即为高电平,模拟情况下接了8个按钮。
但是在调试是发现,在实际的电路中根本没有电源给传感器供电,为了提高电源给传感器,此处提供了上拉电源。
(2)路灯控制电路程序设计
在进行路灯控制程序设计的时候,主要考虑从传感器获取的信号,在设计初期,采用了高电平控制LED灯,调试时发现:
灯的亮度相当低,查询资料显示,单片机高电平带负载能力很弱,逐采用低电平控制LED路灯。
此时采用共阳极接线法。
(3)路灯自动熄灭控制程序
设计初期考虑用延时程序来达到路灯自动熄灭的目的,在结合了实际情况分析后发现,延时程序根本不能根据行人通过的速度来达到自动控制的目的。
要是行人快速通过,那么延时程序所延时时间不可能每次都能够调整,所以,在本次设计当中除最后一个路灯外没有采用延时控制。
而是才用程序控制。
4.5程序流程图
(1)主程序流程图
(2)中断程序流程图
(3)延时程序流程图
5系统调试过程
通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。
通过调试可以检查出系统出现的一些错误,从而进行下一步的修改。
5.1Protel99SE中调试
图5-1prote