基于51单片机路灯控制系统设计概要.doc

上传人:小飞机 文档编号:4957696 上传时间:2023-05-26 格式:DOC 页数:17 大小:2.06MB
返回 下载 相关 举报
基于51单片机路灯控制系统设计概要.doc_第1页
第1页 / 共17页
基于51单片机路灯控制系统设计概要.doc_第2页
第2页 / 共17页
基于51单片机路灯控制系统设计概要.doc_第3页
第3页 / 共17页
基于51单片机路灯控制系统设计概要.doc_第4页
第4页 / 共17页
基于51单片机路灯控制系统设计概要.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于51单片机路灯控制系统设计概要.doc》由会员分享,可在线阅读,更多相关《基于51单片机路灯控制系统设计概要.doc(17页珍藏版)》请在三一办公上搜索。

1、目 录0 前言11 总体方案设计12 硬件电路设计22.1 STC89C52单片机系统22.2 光电传感器模块32.3显示模块设计53 软件设计63.1 主程序设计63.2 计算流量子程序73.3 显示子程序84 调试分析及硬件组装95 结论及进一步设想10参考文献10课设体会11附录1 电路原理图12附录2 程序清单13沈阳航空航天大学课程设计论文 路灯控制系统设计(1)路灯控制系统设计(1)张磊 沈阳航空航天大学自动化学院摘要:本设计以 STC89C52单片机为核心控制芯片,此单片机可靠性高、性价比高、精度高、 微型化、易于操控、管脚功能简单。整个电路采用模块化设计,由单片机最小系统模块、

2、显示模块、光电传感器模块组成。光电传感器发送信号给单片机综合分析处理,实现路灯控制系统的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个模块的功能。相关模块附有硬件电路图、程序流程图、功能与原理的说明。最后经实验证明, 这套系统软硬件设计能有效结合、 抗干扰能力强、功能完善, 可以实现对汽车流量的监测并能达到节能的目的,可应用于马路路灯的控制。关键词:STC89C52; 亮灭;流量0 前言 此路灯控制系统最主要的模块是光电开关(光电传感器)模块,既是控制路灯亮灭的传感器也是计算流量的传感器。此光电传感器是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无

3、的。物体不限于金属,所有能反射光线的物体均可被检测。此光电开关属于漫反射式光电开关,它是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,对射式和镜反射式都不适用,漫反射式的光电开关才是是首选的检测模式,因为红外线光电开关在环境照度高的情况下都能稳定工作。所以此路灯控制系统具有稳定性好,可靠性高,体积小重量轻,节能等优点。此设计系统的原理还在许多方面得到了应用,例如在行程控制、直径限制、转速检测、气流量控制等方面。我们相信光电开关会做得越来越先进,它的应用也会越来越

4、广泛。1 总体方案设计针对本课题的设计任务,进行分析得到:该路灯监测系统设计主要由以下几个模块组成:单片机最小系统模块、光电传感器模块、显示模块。在这几个模块中最主要的是光电传感器的模块,其功能是监测车辆以实现对路灯亮灭的控制和流量监测。单片机模块主要用于对数据的处理。显示模块用于显示汽车流量。将此三个模块有效地结合在一起才能完成设计要求。光电传感器模块利用的是光电开关,也称光电传感器,此模块为最重要的组成部分,其他模块都是根据它产生的信号脉冲来控制的。单片机模块选用用STC89C52单片机作为控制芯片,连接好最小系统板并与光电传感器构成组合电路,此模块是电子设计的基础模块,单片机的复位电路和

5、晶振接法固定,简单且易于控制。光电传感器选用的是漫反射式光电开关,有接收和放送两部分组成,其性能稳定,性价比高,抗干扰能力强,在强光下依然能正常工作,经多方面考虑选用了漫反射式光电开关。显示模块则用数码管显示,简单有效显示汽车流量。本设计的系统总体框图如图(1)所示。单片机最小系统放光二极管数码管显示光电传感器 图(1) 系统总体框图2 硬件电路设计2.1 STC89C52单片机系统 此系统主要由复位电路和晶振电路组成。单片机共40个管脚,根据每个管脚的不同功用连接电路。VCC(40):电源+5V;VSS(20):接地;P0口(32-39):双向I/O口,既可作低8位地址和8位数据总线使用,也

6、可作普通I/O口;P3口(10-17):多用途端口,既可作普通I/O口,也可按每位定义的第二功能操作;P2口(21-28):既可作高8位地址总线,也可作普通I/O口;P1口(1-8): 准双向通用I/O口;RST(9):复位信号输入端;ALE/PROG:地址锁存信号输出端;PSEN:内外程序存储器选择线;XTAL1(19)和XTAL2(18):外接石英晶体振荡器。STC89C52单片机最小系统如图(2)所示。图(2 ) STC89C52单片机最小系统2.2 光电传感器模块光电传感器是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的。物体不限于金属,所有能反射光线的物体均可

7、被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。每当物体通过一次,发射部分发射的光束经目标后产生漫反射,接收部分接收到光束后经信号调理电路产生脉冲,脉冲信号输入到单片机,单片机进行脉冲计数便可实现对物体的计数统计。当开关发射光束时,目标产生漫反射,发射器和接收器构成单个的标准部件,当有足够的组合光返回接收器时,开关状态发生变化,作用距离的典型值一直到3米。此光电传感器作用距离是10cm。特征:有效作用距离是由目标的反射能力决定,由目标表面性质和和颜色决定;较小的装配开支,当开关由单个元件组成时,通常是可以达到粗定位;采用背景抑制功能

8、调节测量距离;对目标上的灰尘敏感和对目标变化了的反射性能敏感。光电传感器又称光电开关,是由振荡回路产生的调制脉冲经反射电路后,由发光管GL辐射出光脉冲。当被测物体进入受光器作用范围时,被反射回来的光脉冲进入光敏三极管DU。并在接收电路中将光脉冲解调为电脉冲信号,再经放大器放大和同步选通整形,然后用数字积分或RC积分方式排除干扰,最后经延时(或不延时)触发驱动器输出光电开关控制信号。光电开关一般都具有良好的回差特性,因而即使被检测物在小范围内晃动也不会影响驱动器的输出状态,从而可使其保持在稳定工作区。同时,自诊断系统还可以显示受光状态和稳定工作区,以随时监视光电开关的工作。光电传感器如图(3)所

9、示。 图(3) 光电传感器本设计所用光电传感器模块共有三个引脚,一根是电源正极、一根接地、一根输出信号,工作电压为5v,检测距离为10cm,工作环境为-20+55温度范围内,符合设计基本要求。将供电的两个引脚分别接电源和地,输出信号端接到单片机的P1.1口,当没有物体通过时传感器输出高电平,有物体通过时传感器输出低电平,低电平触发单片机控制系统,单片机进行计数并将发光二极管点亮。其工作示意图如图(4)。 图(4) 光电传感器工作示意图2.3显示模块设计本设计采用的是动态数码管显示。数码管显示可以分为静态显示和动态显示两种形式,静态显示就是各位同时显示。为此,各位LED数码管的位选端应连在一起固

10、定接地或接+5v。每位数码管的段选端应分别接一个8位锁存器/驱动器。而动态显示是诸位轮流显示,为实现这种显示,各位LED数码管的段选段应并接在一起,由同一个8位I/O口或锁存器/驱动器控制,而各位数码管的位选端分别由相应的I/O口线或锁存器控制。显示模块连接电路图如图(5)所示。图(5) 显示模块电路图3 软件设计本设计主要分成三个模块来设计,无需对单片机最小系统模块进行编译程序,而对于光电传感器模块和显示模块需要分别编写相应的模块,各模块编写的程序根据各模块的要求编写,每个模块分别进行调试,这样便于调试错误。3.1 主程序设计主程序是控制整个路灯系统的程序,需先进行初始化,定义变量等步骤,再

11、根据各个模块要求实现的功能进行编程。具体过程如下,先将光电传感器模块处于工作状态,即供上电并将信号输出端接到单片机的P1.1口,因为光电传感器的监测范围是10cm,所以当小车出现在距离光电传感器10cm或小于10cm处时,光电传感器立即检测到物体并由输出端发出信号,信号发送给单片机,单片机接收到信号后令放光二极管点亮,表示有车将通过此路灯,与此同时单片机对此辆车计数,设定在10s内单片机对所有路过的车辆的计数,并将计数结果显示到数码管显示器上,来表示汽车流量,达到了流量监测的目的。综合以上的分析可得到系统主程序流程图,系统的主程序流程图如图(6)所示。主程序初始化车流量数据采集数据处理判断是否

12、大于等于设定时间显示电路YN图(6) 主程序流程图3.2 计算流量子程序在光电传感器模块中,当物体距离传感器10cm时传感器监测到物体,发出低电平信号给单片机,单片机对信号计数。光电传感器是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的。物体不限于金属,所有能反射光线的物体均可被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。每当物体通过一次,发射部分发射的光束经目标后产生漫反射,接收部分接收到光束后经信号调理电路产生脉冲,脉冲信号输入到单片机,单片机进行脉冲计数便可实现对物体的计数统计。在对信号计数的过程中,

13、同时设定了10s钟的延时程序,只有当过10s钟时n才能自动清0,假设此处的n为物体通过路灯的数量,因为需要测流量,所以不能没有时间的设定,要在设定的时间内测出路过路灯的数量才能测出流量。到达设定时间后便将计数值n清0,继续重新计数测流量。计算流量子程序流程图如图(7)所示。车流量数据采集数据处理判断是否大于等于设定时间YN图(7) 计算流量子程序流程图3.3 显示子程序本设计的显示部分采用了3位数码管显示物体在十秒内的流量值。此数码管为共阴极数码管,采用了动态扫描方式对段选信号和位选信号进行扫描,数码管与两个74HC573锁存器连接,通过锁存器连接到单片机上,单片机输出信号给锁存器,使数码管显

14、示数值。 当设定时间到达后,再有物体经过路灯时数码管重新开始计数,以此循环往复测出每10s的流量。显示子程序流程图如图(8)所示。车流量数据采集数据处理显示电路判断是否大于等于设定时间YN图(8) 显示子程序流程图4 调试分析及硬件组装调试过程中,经常出现光电开关不工作的情况,经检查是光电开关导线接触不严。在程序编译后会出现一些粗心引起的小错误,如大小写问题。注意if语句的顺序,注意“()”不能缺少。调试时传感器对不同的物体检测的最小距离有差别,经分析发现是由于不同物体反射光的强度不同,所以才产生误差。也有可能是因为透镜经长时间置于空气中而渐渐被腐蚀,导致灵敏度不高。除以上外硬件电路能实现基本

15、功能,没有发生较大的错误。本设计共三个模块,对于单片机最小系统模块和数码管显示模块可利用51单片机开发板上的固定模块。对于光电传感器模块可直接购买模块。所以只需将光电传感器的电源端,地端和输出端分别接到开发板的电源端,地端和P1.1口,如此便简单的实现了硬件的组装。完整的硬件路灯系统如图(9)所示。图9 系统硬件5 结论及进一步设想本次课设制作的路灯汽车流量监测计电路简单,计算精确,有一定的抗干扰能力,可进行对汽车流量的监测并在将要到达路灯时控制路灯的亮灭,有效地节省了能源。基本上满足了课设的要求。出现的问题是在发光二级管被点亮后持续的时间上,需要通过软件调试才能控制好时间。由于在编程方面的不

16、足,耽误了许多时间,今后要在程序上多下功夫熟练掌握c语言。本设计电路简单,性价比高,能节省能源,然而实际测得的距离只有10cm,需要将测量的范围提高。此设计,是对所有经过的物体都能感应到,而实际生活中,并不是只有车经过路灯,若有其他物体通过路灯也发光了,那便浪费了能源,因此,需要进一步提高系统的识别能力。参考文献1、陈振官 陈宏威.光电子电路及制作实例.北京:国防工业出版社,20062、杨志忠.数字电子技术举出. 北京:高等教育出版社, 2006课设体会 从这次课程设计中,学到了很多的专业知识,以及一些宝贵的心得。从找寻参考书这方面来说,别人的答案只能参考,不能照搬。要有独立的见解,善于发现错

17、误,勤于讨论和提问,这样才能改正错误。起初,拿到设计要求的时候,大脑是很空白的,因为这就是专业知识的缺乏成为了整个过程最大的阻力,“书到用时方知少”,此时才知自己专业知识的贫乏。通过不懈的找寻,查资料,以及向老师提问,对于电路的构造和基本设计有了大概的蓝图,从而开始了电路板的焊接制作。经过慢慢的探索和仔细的调试,电路功能得以实现,这让自己很有满足感!通过本次课程设计,也进一步让自己熟悉了万用表、示波器、信号发生器NE555等实验设备的使用,判别元器件的引脚、好坏等能力有所提高。最后衷心的感谢指导老师,以及参与讨论的同学们的耐心指导与鼎力相助!2012年7月 20日完成附录1 电路原理图附录2

18、程序清单#include#include#define uchar unsigned char#define uint unsigned int#define uchar unsigned charsbit dula=P26;sbit wela=P27;sbit wr=P36;sbit rd=P37;uchar s,d,g;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; sbit d1=P11;/光电传感器输出void display(uchar

19、a,uchar b,uchar c);uchar n,tt;void main()n=0;tt=0;TMOD=0x01;/设置定时器0为工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/开总中断ET0=1;/开定时器0中断TR0=1;/启动定时器0 while(1) if(d1=0) while(!d1); n+;s=n/100;d=n%100/10;g=n%10; display(s,d,g); void delay(uint z)uint i,j;for(i=z;i0;i-)for(j=110;j0;j-);void displa

20、y(uchar a,uchar b,uchar c)dula=1;P0=tablea;dula=0;P0=0xff;wela=1;P0=0x7e;wela=0;delay(5);dula=1;P0=tableb;dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delay(5);dula=1;P0=tablec;dula=0;P0=0xff;wela=1;P0=0x7b;wela=0;delay(5);void exter0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt+; if(tt=200) tt=0; n=0; 第16页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号