《基于单片机的交通灯控制系统的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的交通灯控制系统的设计.doc(20页珍藏版)》请在金锄头文库上搜索。
1、单片机原理及应用 课程设计说明书设计题目:基于单片机的交通灯控制系统的设计学 院:工学院专 业:电气工程及其自动化(1)班设 计 者:胡忠鹏学 号:指导老师:周平设计时间:2012年5月21日2012年6月2日目 录摘要31 引言32 总体方案设计32.1设计要求32.2性能指标42.3硬件规范53 STC89C52概述:53.1基本构造53.2性能特点54 课题描述与分析54.1交通灯系统需求描述与分析54.2交通灯系统开发步骤65 交通灯课题设计65.1总体设计65.2硬件设计65.3软件设计86 系统测试96.1硬件调试106.2软件调试107 总结107.1系统设计总结107.2个人总
2、结10致谢12参考文献13附录13基于单片机的交通灯控制系统的设计作者:杨东升 温剑波指导老师:吴敏(安徽农业大学工学院 电气工程及其自动化)摘 要:交通在人们的日常生活中占有重要的地位,交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。本次课程设计采用单片机STC89C52RC为核心器件来设计道路交通信号灯控制器。本设计就是采用单片机模拟十字路口交通灯的各种状态显示。通过Keil软件编写主程序,延时程序,显示程序,中断程序,按键程序等实现主次路口的红黄绿三色灯的显示控制。经过不断地调试,最终实现了对十字路口交通灯的模拟。关键词:单片机 交通灯
3、程序设计 数码管显示电路1引言本设计的目的:通过单片机STC89C52来设计道路交通信号灯控制器,通过软件编程设计实现主干道与次干道的红黄蓝三色灯时间设置,并且能够动态修改,从而达到对路口交通状况的实时控制本设计的背景:随着科学技术的发展,单片机技术在电子信息,通信,自动,控制及计算机应用等领域的重要性日益突出。而当今社会汽车数量急剧增加,交通的问题日益突出,因此设计交通灯的重要性也就显而易见,为了确保十字路口的行人和车辆的安全,需要采用电子控制的交通信号来进行指挥。本设计的适用范围:适用于交通道路路口需要全自动控制主干道与次干道等道路。本课题的研究意义: 本次课程设计将先进的单片机技术与道路
4、交通控制相结合起来,通过硬件设计与软件编程实现道路交通的全自动控制,同时实现交通线路车辆的多少实时调整,在减少人力的同时也保证了道路交通的安全,保障了行人与车辆的安全与城市交通的顺畅。对城市的现代化建设起到了重要的作用。2 总体设计方案下面对交通灯课程设计的基本要求与硬件设计做简单概述。2.1设计要求:道路路口交通灯仿真如图1所示: 图1 道路路口交通灯仿真图南北、东西两干道交与一个十字路口,各干道有一组红、黄、绿三色的指示灯,指示车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,切黄灯燃亮时间为东西南北两干道的公共停车时间。设东西道比南北道的车流量
5、大,指示灯燃亮的方案如表2-1所示表2-1 交通道路路口交通灯点亮示意表交通信号灯工作模式 时间方向30S3S40S3S.南北向绿灯亮黄灯亮红灯亮红灯亮.东西向红灯亮红灯亮绿灯亮黄灯亮.2.2性能指标(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。通行时间为30秒。(2)黄灯闪烁3秒,警示车辆和行人红、绿灯状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通行,行人通行。时间为40秒。南北方向为主干道,东西方向为支干道。(4)这样如上表的时间和红、绿、黄出现的顺序依次处出现这样行人和车辆就能安全畅通的通行。(
6、5)此表可根据车辆动态设定红绿灯初始值。2.3硬件规范 单片机:单片机选用STC89C52RC,它与8051系列单片机全兼容,但其内部带有4KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。 LED显示系统:出现紧急情况时,用两个数码管显示两个车道的禁行时间,设计时可利用单片机的P1口和P2口作为字段和片选信号输出,经驱动芯片后驱动数码管显示倒计时时间。 中断系统设置1个程序按键:当出现紧急情况时,按下按键,单片机就能接收到一个外部中断信号,执行中断命令。另需配置一个非程序按键:系统复位键。 电源供电系统本系统采用USB5V直流稳压电源供电,这样可以优化设计过程。
7、3 STC89C52RC概述3.1 基本构造 STC89C51RC 系列单片机是宏晶科技推出的新一代超强抗干扰/ 高速/ 低功耗的单片机,指令代码完全兼容传统8051 单片机,12 时钟/ 机器周期和6 时钟/ 机器周期可任意选择,最新的D 版本内部集成MAX810 专用复位电路。3.2 性能特点 增强型6 时钟/ 机器周期,12 时钟/ 机器周期 8051 CPU;工作电压:5.5V - 3.4V(5V 单片机) / 3.8V - 2.0V(3V 单片机); 工作频率范围:0 - 40 MHz,相当于普通8051 的 080MHz.实际工作频率可达48MHz;用户应用程序空间 4K / 8K
8、 / 13K / 16K / 20K / 32K / 64K 字节;片上集成 1280 字节 / 512 字节 RAM; 通用I/O 口(32/36 个),复位后为: P1/P2/P3/P4 是准双向口/ 弱上拉(普通8051 传统I/O 口),P0 口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O 口用时,需加上拉电阻; I S P (在系统可编程)/ I A P (在应用可编程),无需专用编程器/ 仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K 程序3 秒即可完成一片; EEPROM 功能; 看门狗;内部集成MAX810 专用复位电路(D 版本才有),外部晶体20
9、M 以下时,可省外部复位电路 ;A/D转换,10位精度ADC,共8路,转换速度可达250K/S;具备双串口;工作温度范围:-40 - +85oC(工业级),0 75oC(商业级);40管脚封装4课题描述与分析4.1交通灯系统需求描述与分析 通过STC89C52RC单片机控制P1口的输出值,配合数码管及发光二极管的达到对道路交通状况的控制,因为该单片机功能齐全,开发简单,可以很完美的对道路实时交通进行控制,从而达到当初预定的目标4.2交通灯系统开发步骤第一步:了解STC89C52RC单片机各部分的结构构造及其工作原理,对该单片机的工作流程作深入分析,了解各输出输入口的工作电平,工作状态,为下一步
10、的编程设计打好基础;第二步:分析课程设计要求,掌握道路路口交通灯的实时要求,具体分析每一个方向上不同时刻对应的不同灯颜色的变化;第三步:根据课程设计要求及单片机STC89C52RC工作原理编写程序,达到课程设计要求;第四步:将程序编写完成编译无误后烧录至单片机芯片中,然后根据设计要求在后期进行程序调试,以达到最佳要求现实效果。5、交通灯课题设计5.1总体设计5.1.1设计要求如下(1)用发光二极管模拟交通信号灯,用按键开关模拟车辆检测信号。(2)正常情况下,A、B两车道轮流放行,A车道放行30S,其中3S用于警告;B车道放行40S,其中3S用于警告。(3)有紧急车辆通过时,按下K3开关使A、B
11、车道均为红灯,禁行20S。并用数码管显示计时时间 5.1.2 交通灯控制系统框图如图2 图2 系统控制框图5.2硬件设计5.2.1交通信号灯与控制状态对应关系表3-1 交通信号灯与控制状态对应关系控制状态P3P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0主绿灯次红灯8EH01111110主黄灯次红灯BEH10111110主红灯次绿灯CBH11011011主红灯次黄灯CCH11011101通过调用码表来使LED发光二极管显示路口交通状况。5.2.2数码管显示电路 图4 数码管显示控制 由图4 可知,数码管由P1口驱动,a,b为片选信号输入端。 5.2.2.1 工作原理 数码管采
12、用的是七段式数码管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。其原理图如下。其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最
13、高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为,即0x3f;共阳数码管的字符编码为,即0xc0。可以看出两个编码的各位正好相反。 5.2.2.2 数码管使用注意事项采用共阴极数码管,程序代码要是共阴代码,接实物图时要接上拉电阻,否则数码管显示会出现不正常状态。5.2.3单片机STC89C52外部接口图 图5 单片机STC89C52RC外部接口(含晶振与电源)图 单片机的18和19管脚接时钟电路,19管脚接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,18管脚接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,9引脚是复位输入端,接上电容、电阻及开关后构
14、成上电复位电路。P1口驱动数码管显示,P3口驱动交通灯,实现红绿灯的亮灭控制,P3.2接收外部中断,实现紧急情况的控制,P2.1和P2.1为两个数码管的片选信号输出端口,控制数码管的工作,上拉电阻能增强单片机的驱动能力。5.3软件设计5.3.1 主程序流程图南北通行程序南北黄灯闪烁程序东西通行程序调东西黄灯闪烁子程序是否有中断按键按下?中断处理中断初始化中断返回NOYES开始软件设计大体分下面几个部分:1 主程序部分:主要完成RAM清零,T0定时器的设置,南北主干道与东西支干道绿、黄灯的初值设定,键盘查询以及各子程序的调用;2 定时中断服务程序部分:使南北绿灯、黄灯,东西绿灯、黄灯的定时中断;3 扫描显示程序部分:为12位LED动态显示提供驱动信号。P0口为6个放光二极管提供驱动信号,P2口为数码管提供驱动信号,P0口与P2口低电平有效;4 键扫描部分:检测P3端口,判断是否有键按下,如果有键按下,则进行延时去抖动并读取键值待主程序处理;5.3.2 主序程 void main() TMOD=0x01;TH