简易交通灯控制器课程设计报告Word文档下载推荐.docx
- 文档编号:21960147
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:48
- 大小:2MB
简易交通灯控制器课程设计报告Word文档下载推荐.docx
《简易交通灯控制器课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《简易交通灯控制器课程设计报告Word文档下载推荐.docx(48页珍藏版)》请在冰豆网上搜索。
关键词
单片机最小系统STC12C5410AD红绿灯控制仿真
Abstract
Thisarticledescribesadesignoftrafficsignalsystems.ThehardwareofsystemconsistsofSTC12C5410ADsingle-chip,keyboard,steadypower,communicationinterface,LEDdigitronandtrafficlightdisplay.ThesoftwareofsystemismadupofKeilC51.TheuseofSTC12C5410ADtimergeneratessecondssignalstocontroltheturnatthecrossroadsoftheredandgreenlightsandyellowlights,and4LEDdigitaldisplayatthecrossroadsoftheremaindertimeofthetwodirections.Italsocanmanuallysetkeystoadjustmainroadsandsub-passagetimeandthesuspensionofaccesstime,soitachievesthebasicfunctionoftrafficlights,thesystemispractical,simple.
Keywords
theleastsystemofsinglechip,STC12C5410AD,trafficlightcontrol,Simulation
1、引言
本设计的目的是应用单片机最小系统实现简易交通灯的设计,可利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只数码管显示十字路口两个方向的剩余时间。
并能用按键设置两个方向的通行时间〔绿灯点亮的时间〕和暂缓通行时间〔黄灯点亮的时间〕,系统的工作符合一般交通灯控制要求。
本设计的背景是当前全国大中城市普遍存在着道路拥挤、车辆堵塞、交通秩序混乱的现象,如何解决城市交通问题已成为全社会关注的焦点和大众的迫切呼声。
城市交通路口实现交通信号控制是城市交通管理现代化的基本标志之一,是提高交通管理效能的重要技术手段。
红绿灯控制器是控制交叉路口交通信号的设备,它是交通信号控制的重要组成部分。
各种交通控制方案,最终都要由红绿灯控制器来实现。
本设计的适用范围是适用于城市交通灯的实现。
本设计的适用范围是没有考虑人行道的红绿灯设计,也没有考虑机动车辆拐向的红绿灯设计,只考虑了机动车辆行驶的红绿灯设计,而且通行时间和暂缓通行时间的范围都是两位数。
本课题的研究意义是应用单片机来控制交通灯,
使交通灯在控制中灵活而有效。
本设计将程序结构模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。
本系统结构简单,操作方便;
可实现自动控制;
对优化城市交通具有一定的意义。
2、设计方案论证
2.1主控芯片选择方案
使用以STC12C5410AD单片机芯片
STC12C5410AD是增强型51单片机,具有宽电压、不怕电源抖动、高抗静电等优点,有掉电模式、空闲模式、正常工作模式等低功耗模式,可在系统编程,无需编程器。
串口对应I/O口可以通过改变寄存器换成别的I/O口作为串口来通信,I/O口可以有四种模式可设置,STC单片机可以为1时钟每机器周期,指令执行速度大提高。
2.2电源模块选择方案
采用变压器控制模块提供电源。
将220V的电压转换为12V的低电压,经过电容滤波后再经过LM7805稳压得到5V的直流电供系统工作,该方案的优点是系统简明扼要,节约成本;
缺点是输出功率不高。
2.3显示模块选择方案
采用LED数码管
用4个LED数码管,数码管原理简单,价格低廉、性能可靠、操作简单,但功耗大。
南北向和东西向各采用2个数码管计时,对该方向的指示灯的点亮时间进行倒计时,最长计时范围为99秒。
设计时可利用单片机的P1口和P1.0~P1.3作为字段和片选信号输出,经驱动芯片后驱动数码管显示倒计时时间,数码管采用动态扫描方式显示。
2.4数码管显示模块选择方案
使用2个74HC573锁存器显示数码管
该方案的优点是引脚利用较少,由于74HC573锁存器的性质,可以将数码管的段选和位选共用一个P1口,分别锁存输出,这样引脚利用了8个;
缺点是需要增加两个锁存器,增加了硬件电路的复杂度。
2.5键盘接口模块选择方案
直接在单片机的I/O口线上接上按键开关。
使用3个独立按键,分别设置键、增加键和减少键,设置键选择方向和指示灯,增加键增加指示灯亮的时间,减少键减少指示灯亮的时间。
本方案的优点是按键少,单片机不需要扩展接口,系统复杂性比较低,硬件和软件处理起来都比较容易;
缺点是用户进行设置时,由于按键少功能集合在一起,使用不太方便。
3、简介
3.1调试软件keil简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,可以完成编辑、编译、连接、调试、仿真等整个开发流程。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
通过一个集成开发环境〔uVision〕将这些部份组合在一起。
3.2硬件仿真Proteus简介
ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;
有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;
同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
④具有强大的原理图绘制功能。
Proteus能很好的对硬件电路进行仿真测试,采用Proteus仿真软件进行虚拟单片机实验,具有比较明显的优势,涉及到的实验实习内容全面、硬件投入少、实验过程中损耗小、与工程实践最为接近等。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
4、课题描述与分析
4.1系统需求描述与分析
十字交叉路口的交通灯控制系统的结构如图一所示:
图一十字交叉路口的交通灯控制系统
往南和往北的信号一致,即红灯〔绿灯或黄灯〕同时亮或同时熄灭。
用两个数码管来显示被点亮的指示灯还将点亮多久。
往东和往西方向的信号一致,其工作方式与南北方向一样,也采用两个数码管来倒计时。
当南北方向为绿灯和黄灯时,东西向的红灯点亮禁止通行;
而东西方向为绿灯和黄灯时,南北向的红灯点亮禁止通行。
假设南北方向为主干道,通行时间为60秒,东西方向是次干道,通行时间为30秒,黄灯点亮的时间均为4秒。
假设南北方向为主干道,通行时间〔即绿灯亮的时间〕为60秒,东西方向是次干道,通行时间为30秒,暂缓通行时间〔即黄灯点亮的时间〕均为4秒,则其工作方式如表1所示循环点亮信号灯。
表1交通信号灯工作模式
南北方向
绿灯亮60秒
黄灯亮04秒
红灯亮34秒
东西方向
红灯亮64秒
绿灯亮40秒
主干道和次干道的通行时间及黄灯点亮的时间可以手动设置;
在没有手动设置通行时间时,系统自动按表1的模式进行工作。
4.2系统工作流程
接通电源时或系统复位后,系统按程序给定的时间工作,即南北向通行60秒,东西向通行30秒,黄灯亮4秒。
首先南北向通行,然后东西向通行,如此循环。
通行时间的设置:
当需要更改主、次干道的通行时间时,可以用“设置键、增加键、减少键”进行设置。
第一次按“设置键”时,南北向的绿灯亮,南北向的数码管显示当前南北向的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向的通行时间。
按一次“增加键”或“减少键”,数码管的显示时间增加1秒或减小1秒,长按“增加键”或“减少键”〔按下的时间超过1秒钟以上〕,则数码管显示的时间按每秒钟增加或减少10的速度快速变化。
第二次按“设置键”时,南北向的黄灯亮,南北向的数码管显示当前南北向黄灯的点亮时间,并且按每秒3次的频率闪烁〔每秒钟亮3次暗3次〕,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向黄灯的点亮时间。
第三次按“设置键”时,东西向的绿灯亮,东西向的数码管显示当前东西向的通行时间,并且按每秒3次的频率闪烁,此时可以用“增加键”和“减少键”来改变东西向的通行时间。
第四次按“设置键”时,东西向的黄灯亮,东西向的数码管显示当前东西向黄灯的点亮时间,并且按每秒3次的频率闪烁,此时可以用“增加键”和“减少键”来改变东西向黄灯的点亮时间。
第五次按“设置键”时,系统退出设置状态,回到交通信号灯状态,并且南北向先通行,东西向后通行。
表2设置键的功能
按“设置键”的次数
第一次
第二次
第三次
第四次
第五次
调整内容
南北方向绿灯点亮时间
南北方向黄灯点亮时间
东西方向绿灯点亮时间
东西方向黄灯点亮时间
回复交通灯工作状态
调整范围
0—99秒
0—9秒
5、课题设计
5.1总体设计
本系统的整体框图由STC12C5410AD构成主控芯片,主要是实现各个功能模块之间功能交互。
本系统包括电源模块、时钟、复位电路模块,程序下载模块,键盘接口模块,数码管和LED发光二极管显示模块。
程序下载模块由串口和MAX232芯片组成;
键盘接口模块用于设置各个方向指示灯的点亮时间;
数码管显示模块用来显示被点亮的指示灯还将点亮多久;
LED发光二极管模块用于指示该方向的3种状态:
通行〔绿灯亮〕、暂缓通行〔黄灯亮〕和禁止通行〔红灯亮〕;
220V交流电转5V直流电线性稳压电源构成电源模块。
系统结构框图如图二所示:
图二系统结构框图
红绿灯控制器的总体的设计如图三所示〔注本次硬件仿真用的是80C51单片机,Proteus软件库里没有STC12C5410AD〕:
图三红绿灯控制器总体设计图
从图三可以看出整个设计图。
首先由220V交流电转5V直流电线性稳压电源模块得到稳定的5V直流电源,提供了模块间工作供电所需,然后由STC12C5410AD单片机最小系统模块来控制红绿黄发光二极管组合模块与LED数码管动态显示模块的联合动态显示,最后可以通过东西南北要道通行时间按键设置模块来随意设置交通干道的通行暂停时间。
5.2硬件设计
5.2.1单片机最小系统
单片机最小系统以STC12C5410AD为核心,外加时钟和复位电路,电路结构简单,抗干扰能力强。
STC12C5410AD芯片的速度比普通8051快12倍,工作周期为1个时钟/机器周期,RISC型8051内核,512字节片内RAM数据存储器,外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置时钟。
10位ADC,8通道,STC12C2052AD系列为8位ADC,2个硬件16位定时器,兼容普通8051的定时器。
4路PCA还可再实现4个定时器。
先进的指令集结构,兼容普通8051指令集4组,8个8位通用工作寄存器〔共32个通用寄存器〕,主要有硬件乘法/除法指令。
时钟电路在单片机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成稳定的自激振荡器.本系统采用的为11.0592MHz的晶振,微调电容为20pF。
单片机最小系统如图四所示:
图四单片机最小系统图
5.2.2电源模块电路模块
220V的高电压经过变压器后得到12V交流电,经二极管整流成脉动直流电,经过电容滤波又经过LM7805稳压得到5V的直流电供系统工作,电源的指示可以由一个发光二极管来实现,2个100uF的电容是起一个再次滤波的作用。
稳压电源模块电路图如图五所示:
图五稳压电源电路模块图
5.2.3时钟和复位电路模块
时钟采用外部晶振,频率为11.0592MHz,时钟和复位电路电图如图六所示:
图六时钟和复位电路模块图
5.2.4数码管显示电路模块
图七所示的是共阳数码管及其电路,其中每个数码管的8个段:
h、g、f、e、d、c、b、a〔h是小数点〕都连在一起。
图八是4位数码扫描显示电路,4个数码管分别由4个选通信号k1~k4来选择。
被选通的数码管显示数据。
例如,在某一时刻,k3为低电平,其余选通信号为高电平,这时仅k3对应的数码管显示来自段信号端的数据,就必须使得4个选通信号k1~k4分别被单独选通,与此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
共阳数码管及其电路示意图如图七所示:
图七共阳数码管及其电路
4位数码扫描电路的示意图如图八所示:
图图八4位数码扫描电路
数码管显示电路图如图九所示:
图九数码管动态显示模块图
5.2.5LED灯显示模块
LED灯采用的是共阳接法,即所有的LED管阳级通过一个限流电阻上拉到5V电源,所有的阴级接到单片机的相应引脚。
只要该I/O口置低,该灯就能点亮。
LED灯显示模块如图十所示:
图十LED灯显示模块图
5.2.6键盘接口电路模块
交通灯的时间设置主要是通过按键的设置来实现的。
SET设置键接单片机的外部中断0口(引脚P3.2),UP键对应端口定时/计数器(引脚P3.4),DOWN对应端口定时/计数器1(引脚P3.5)。
在程序初始化的时候两个定时器均工作于定时模式,定时器1主要完成长按键加十和减十的功能,定时器0则只要完成数码管动态显示时间间隔的定时功能。
平时工作时,只有定时器0工作,一但外部中断0触发,则激活定时器1,开始设置初始化,当进中断0次数标志位flag满5次时,退出设置模式,进入倒计时模式。
键盘接口电路模块如图十一所示:
图十一键盘接口电路模块图
5.2.7串行通信接口电路
将程序下载到单片机内部需要完成串并数据的转换和电平转换,因此需要串行通信接口电路。
由于电脑内部的电平为TTL电平,串口的电平为CMOS电平,因此必须转接一个TTL-CMOS电平转换芯片—MAX232。
串行通信接口电路如图十二所示:
图十二串行通信接口电路图
5.3软件设计
5.3.1整体流程图
各个模块的都是用C语言来编写的。
本系统软件设计主要分为4个模块,即主程序模块、中断子程序模块、键盘扫描模块、显示模块。
整个系统工作流程为当系统上电复位后进入主程序模块,在主程序模块中调用显示模块来完成信息的显示,在没有用户触发中断的情况下程序一直在主程序里循环,以维持系统的正常工作。
整个软件流程图如图十三所示:
图十三软件流程图
5.3.2主程序模块
主要完成RAM清零,定时器T0,T1的设置,绿、黄灯的初值设定以及各子程序的调用。
主程序的流程图如图十四所示:
图十四主程序的流程图
5.3.3数码管显示模块
数码管显示模块包括南北方向数码管显示、东西方向数码管显示和设置状态下的数码管闪烁显示。
数码管显示模块的程序流程图如十五所示:
图十五数码管显示模块程序流程图
5.3.4键盘扫描程序模块
在设置状态下,启动键盘扫描模块,判断是否有键被按下,是增加键还是减少键被按下,键被长按还是短按,还有键盘消抖功能。
键盘扫描程序模块流程图如图十六所示:
图十六键盘扫描程序模块流程图
5.3.5闪烁显示程序模块
在设置东西南北通行时间时,数码管显示当前的通行时间,并且按每秒3次的频率闪烁〔每秒钟亮3次暗3次〕,因此将1秒分为6份,偶数份数码管亮,奇数份数码管熄灭。
闪烁显示程序模块如图十七所示:
图十七闪烁显示程序模块图
5.3.6按键处理程序模块
当设置按键被按第一下时,进入设置模块,然后根据键盘扫描得到的键值转向响应的处理程序,相应指示灯的点亮时间是增加还是减少,是增加〔或减少〕1还是增加〔或减少〕10,其中设置按键使用外部中断0。
检测P3.2端口,判断是否有键按下,如果有键按下,则进行延时去抖动并将设置键标志位flag加一,根据flag的值,转相应键处理子程序。
按键处理程序模块流程图如图十八所示:
图十八按键处理程序模块流程图
5.3.7定时器0和定时器1中断模块
定时器0主要通过计数产生1秒的定时时间,使数码管按照每秒减1的倒计时。
定时器0中断模块的程序流程图如十九所示:
图十九定时器0中断模块程序流程图
6、系统测试
系统调试分为硬件调试和软件调试,分别用于检测硬件和软件是否能正常工作。
由于硬件采用模块化设计,所以调试的时候只需要调试各自的模块即可,最后连在一起调试整个系统。
软件由于采用子函数模块调用实现,所以调试的时候采用子函数单独调试,最后用KEIL软件强大的仿真调试功能来结合硬件联机调试。
本系统软硬件的设计完成后先经过仿真调试,才进行具体的硬件焊接部分,这样能防止误操作或设计不合理而带来开发成本的不必要的提高,而且还能提高系统开发的效率。
6.1硬件调试
6.1.1电源模块调试
用万用表检测电源模块是否完整,假设完整,把相应的元件焊上,并用万用表检测开关两端是否输出5V稳压直流电源。
如果输出的时12V的交流电,则检测稳压芯片是否正常工作;
如果得到220V的交流电,则检测变压器是否正常工作;
如果都正常工作,则说明电源模块正常工作。
硬件电源模块如图二十所示:
图二十硬件电源模块
6.1.2单片机最小系统模块调试
首先确定此模块的线路是否联通;
如果检测到单片机的晶振不起振,检测是否虚焊或是晶振已坏;
检测单片机的地线是否连通。
检查是否可以正常工作。
例如将单片机的某个引脚接一个的指示灯,然后使此引脚输出高低电平,检查指示灯是否亮灭,检测电源到单片机的线路是否短路或是虚焊。
单片机最小系统扩展图〔红绿灯控制器系统硬件图〕如图二十一所示:
图二十一单片机最小系统扩展图〔红绿灯控制器系统硬件图〕
6.1.3MAX232下载模块检测
用万用表检测电路,看电源线、地线是否完整,然后按照原理图焊接。
打开STC-ISP软件,设置好后,先下载一个让单片机的所有引脚均拉低的程序,看是否能下载。
如果软件提示下载失败,检测串口是否连接好,RXD、TXD是否和单片机连接好;
如果提示下载成功,则检测单片机的引脚是否拉低,否则的话检测程序是否正确。
6.1.4红绿灯显示检测
把红黄绿灯按照原理图焊接后,假设灯不亮,检测上拉电阻是否接到电源上;
如果已连接,则检测各自引脚是否虚焊。
红绿灯检测程序在附录里面〔第42页〕。
6.1.5数码管显示检测
按照原理图焊接好元件,然后烧写一个让数码管从0显示到9的程序。
如果数码管不显示,则检测数码管的选通端是否虚焊;
如果数码管显示不全,则检测数码管的数据口是否链接正确。
将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。
数码管显示模块程序在附录里面〔第43页〕。
6.2整体电路测
系统上电,烧进程序即可开始测试,观测一个周期的显示状态是否正常,同时观察倒计的计数是否正常。
对程序进行调试、仿真后,再进行焊接,确保焊接点无连接、短路等现象后,烧入程序,接着对设计进行调试,对照实验要求进行几个功能的调试。
整体电路检测如图二十二所示〔电路图正在调试南北绿灯的通行时间〕:
图二十二整体电路检测图
6.3软件调试
程序的编写采用的是C语言,用C语言设计主要优点是编程比较简单,C语言程序生成代码质量高,程序执行效率高,并且适用范围大,可移植性好。
具体程序见附录。
7、结论
本次单片机课程设计的红绿灯控制器结构简单,操作方便,对优化城市交通具有一定的意义。
本设计将各任务进行细分包装,使各任务保持相对独立;
能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大而且可以随时的更新系统,进行不同状态的组合。
参考文献
[1]刘文涛.单片机应用开发实例.北京:
清华大学出版社,2005年9月.19~113
[2]周宝善.经典电子设计与实践DIY.北京:
人民邮电出版社,2008年8月.7~8,61~92[3]宁武唐晓宇闫晓金编著电子设计竞赛技能指导电子工业出版社
[4]胡伟、季晓衡.单片机c程序设计及应用,人民邮电出版社,2003年7月.67~135
[5]童诗白,华成英.模拟电子技术基础.北京:
高等教育出版社,2001年1月.501~550
[6]张靖武,周灵彬.单片机原理应用与PROTEUS仿真.电子工业出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 交通灯 控制器 课程设计 报告