2022年单片机控制的交通灯控制系统设计 .pdf
《2022年单片机控制的交通灯控制系统设计 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机控制的交通灯控制系统设计 .pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要本设计是单片机控制的交通灯控制系统设计。由单片机系统、LED 显示、交通灯演示系统、键盘电路及其控制电路组成。该系统除基本交通灯功能外,还具有倒计时、紧急情况处理、调整通行时间以及根据具体情况手动控制等功能。十字路口的交通灯在工作时应具有如下特点:红灯表示该条道路禁止通性;黄灯表示该条道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通性;绿灯亮表示该条道路允许通行。该系统使用12MHZ 晶振与单片机AT89S52 相连接 ,通过软件编程的方法实现十字路口的交通灯控制,输入装置是键盘开关,用于控制交通灯的运行模式以及设置通行时间,显示装置是两位的LED 七段数码管。该系统是由AT89S5
2、2 单片机控制的,可以实现以下功能:1. 南北方向(主干道)车道和东西方向(支干道)两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30 秒、支干道每次通行间为20 秒,时间可设置修改。2. 在绿灯转为红灯时,要求黄灯先亮5 秒钟,才能变换运行车道。3. 黄灯亮时,要求每秒闪亮一次。4. 东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。5. 一道有车而另一道无车(实验时用开关 K0 和 K1 控制),交通灯控制系统能立即让有车道放行。6. 有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B 道均为红灯。关键字: AT89S52单片
3、机,交通灯,LED 显示,键盘开关电路。目录1 概述 -3- 1.1 设计背景 -3- 1.2 设计目的 -3- 1.3 设计要求 -3- 2 系统总体方案及硬件设计-4- 2.1 设计原理 -4- 2.2 各功能模块设计 -4- 2.2.1 单片机 AT89S52介绍 -4- 2.2.2 总体方案-5- 2.2.3 时钟电路模块-6- 2.2.4 复位电路模块-6- 2.2.5 交通灯演示模块-7- 2.2.6 LED 显示模块 -7- 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
4、第 1 页,共 29 页 - - - - - - - - - 2.2.7 键盘开关模块-8- 3 软件设计-10- 3.1 程序流程图-10- 3.2 系统软件设计 -11- 3.2.1 LED 的编程 -11- 3.2.2 交通灯模块的编程设计-12- 3.2.3 定时器程序 -12- 3.2.4 键盘程序 -13- 3.2.4.1 通行时间设置程序-13- 3.2.4.2 紧急情况处理程序-14- 3.2.4.3 状态调整程序 -14- 4 Proreus仿真 -15- 4.1 正常工作状态 -15- 4.2 时间调整 -17- 4.3 紧急状况 -19- 4.4 状态调整 -20- 5
5、课程设计体会-22- 参考文献 -23- 附 1:源程序代码-24- 附 2:系统原理图-32- 1 概述1.1 设计背景人们越来越关注城市交通问题,而交通灯在安全行车过程中起十分重要的作用, 现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯, 加上一个倒计时的显示计时器来控制行车, 对于一般情况下的安全行车、车辆分流发挥着作用, 但根据实际行车过程中出现的情况, 主要有如下几个缺点: 1、车道让车轮流放行时间相同且固定, 在十字路口 , 经常出现有些车道车辆较多, 放行时间应该长些;而有些车道车辆较少 ,放行时间应短些。2、 没有考虑紧急车通过时, 两车道应采取的措施, 譬
6、如 , 有消防车通过执行紧急任务时 , 两车道的车都应停止, 让紧急车辆通过。根据行车过程中出现的实际情况, 如何合理高效地利用交通灯指示交通情况,这是一个迫切需要解决的问题。1.2 设计目的1. 进一步熟悉和掌握单片机的结构及工作原理。2. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 3. 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。4. 通过实际程序设
7、计和调试,逐步掌握模块化程序设计方法和调试技术。5. 了解开发单片机应用系统的全过程,为今后从事相关事业打下基础。1.3 设计要求1. 设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30 秒、支干道每次通行时间为20 秒,时间可设置修改。2. 在绿灯转为红灯时,要求黄灯先亮5 秒钟,才能变换运行车道;3. 黄灯亮时,要求每秒闪亮一次。4. 东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。5. 一道有车而另一道无车(实验时用开关 K0 和 K1 控制)
8、,交通灯控制系统能立即让有车道放行。6. 有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B 道均为红灯。2 系统总体方案及硬件设计2.1 设计原理本设计使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时更新系统,根据道路情况适时调整交通灯的状态,全面有效地利用交通灯指示交通情况。该设计是以单片机AT89S52 为核心完成的 ,在硬件电路中采用P1 口点亮交通指示灯,采用P0 口和P2 口作为 2 位 LED 数码管的驱动接口,可显示各个方向的交通灯的持续时间,单片机外围接有按键开关电路,可以响应外部中断及键盘程序,实现紧急情况处理、调整交通灯的点亮时间
9、等功能。芯片选用 AT89C51 单片机,电路由下列部分组成:时钟电路、复位电路、键盘电路、交通灯演示电路、 LED 显示电路。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - 2.2 各功能模块设计2.2.1 单片机 AT89S52 介绍AT89S52 是一个低电压,高性能CMOS 型 8 位单片机,片内含8KB 的可反复擦写的Flash 只读程序存储器( ROM )和 256 B 的随机存取数据存储器(RAM )。 AT89
10、S52是一个低功耗高性能单片机,40个引脚, 32 个外部双向输入/输出( I/O)端口,同时内含2 个外中断口, 2 个 16 位可编程定时计数器,2个全双工串行通信口,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本。引脚使用说明:I/O 端口的编程实际上就是根据应用电路的具体功能和要求对I/O 寄存器进行编程。具体步骤如下:l. 根据实际电路的要求,选择要使用哪些I/O 端口。2. 初始化端口的数据输出寄存器,应避免端口作为输出时的开始阶段出现不确定状态,影响外围电路正常工作
11、。3. 根据外围电路功能,确定PO 端口的方向,初始化端口的数据方向寄存器。对于用作输入的端口可以不考虑方向初始化,因为PO 的复位缺省值为输入。4. 用作输入的PO 管脚,需上拉电阻。5. 最后对 I/O 端口进行输出 (写数据输出寄存器)和输入 (读端口 )编程,完成对外围电路的相应功能。几个特殊管脚:XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2 :来自反向振荡器的输出。RST : 复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平。2.2.2 总体方案名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
12、- - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 此交通灯系统位于一个十字路口,此路口为东南西北走向。南北方向为主干道,东西方向为支干道。各干道有一组红、绿、黄三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行,黄灯亮提示人们注意红、绿灯的状态即将切换。此交通灯系统工作过程分为4 个状态。状态0 南北方向绿灯亮,东西方向红灯亮。过25 秒后转为状态 1,南北方向绿灯灭,黄灯每秒闪亮一次,东西方向还是红灯亮。历时5 秒钟再转为状态2,南北方向红灯亮,东西方向绿灯亮。过15 秒后转为状态3,南北方向还是红灯
13、亮,东西方向绿灯灭,黄灯每秒闪亮一次。历时5 秒钟又循环至状态0。交通灯的状态表如下:状态(时间)主干道 SN 支干道 WE 红R 绿G 黄Y 红R 绿G 黄Y 0 0 1 0 1 0 0 1 0 0 1/0 1 0 0 2 1 0 0 0 1 0 3 1 0 0 0 0 1/0 表 01 交通灯的状态表注: 1:SN :南北方向。 WE :东西方向。 2 :状态: 0:熄。 1:亮。 1/0:闪。2.2.3 时钟电路模块时钟电路模块给单片机提供特定的时钟周期,以备单片机工作使用。单片机的机器周期有6MHz 和12MHz 的两种。这里采用的是12MHZ 的晶振,以给单片机提供12MHz 的机器
14、周期。另外有两个30P 的电容,两晶振引脚分别连到XTAL1 和 XTAL2 振荡脉冲输入引脚。其电路图如图02 所示:图 02 时钟电路模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 2.2.4 复位电路模块单片机系统的复位电路采用的是上电+按钮复位电路形式,其中电阻R 采用 10K 的阻值,电容采用电容值为 10F 的电解电容。其具体连接电路如图03 所示:图 03 复位电路模块2.2.5 交通灯演示模块此交通灯演示模
15、块由单片机的P1 口作信号输出端来控制12 个交通灯的亮灭,交通灯采用的是发光二极管。因为单片机的输出电流非常小,为了使发光二极管能够发光或者更亮,二极管采用共阳极接法。即阳极通过470 电阻接 +5V 直流电源,阴极接单片机P1 口。同时南北方向同色灯连同上拉电阻一起并联,东西方向也是一样,以保证同一干道上的同色灯同时点亮或熄灭,并且流过二极管的电流不会因并联而减半。其具体连接电路如图04 所示 : 图 04 交通灯演示电路2.2.6 LED显示模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
16、- - - 第 6 页,共 29 页 - - - - - - - - - 由于同一干道上的两个方向的红灯,绿灯,黄灯点亮时间相同,所以南北方向只需一个数码管显示相应的时间即可,同理东西方向也只需一个。本次交通灯设计采用两位一体的共阴极数码管来显示相应的时间。由单片机的P0 口输出字型码 ,P2口的前四位P2.0P2.3作位选端。位选端接 LED 的共阴极,故低电位有效。因为单片机I/O 口的驱动电流很小,一般只有几个毫安。为了增加驱动能力,每个LED 上都加上一个上拉电阻,接入+5V 电源,本次设计采用的是排阻。当P0 口输出低电平时, LED 不导通,上拉电阻电流灌进单片机,而当P0 口输出
17、高电平时, LED 导通。而且上拉电阻的电流也通过LED, 这自然就增加了LED 的发光亮度。其具体连接电路如图05 所示:图 05 LED 显示电路2.2.7 键盘开关模块此系统通过5 个开关实现所有的要求,开关一端接地,另一端接单片机的P3 口。 K0 接 P37, 当主干道有车而支干道无车时,按一下K0 键,可以实现主干道通行。K1 接 P36, 当支干道有车而主干道无车时,按一下K1 键,可以实现支干道通行。K2 接 P33, 利用中断 1 的方式对紧急情况进行处理,即使东南西北四个方向都亮红灯停车。K4 接 P32 ,利用中断0 的方式对各个干道的通行时间进行设置。在相应中断 0 期
18、间, K0,K1 起调整时间的作用。每按一下K0,主干道通行时间加一,每按一下K0 ,主干道通行时间加一。 K3 接 P35 ,按一下 K3,可以使系统退出中断,回到主程序。其具体连接电路如06 图示 : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 图 06 键盘开关电路3 软件设计3.1 系统流程图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整
19、理 - - - - - - - 第 8 页,共 29 页 - - - - - - - - - ( 注:判断框SN=0,WE=0处的 Y,N 位置标反了,读者自己改正。) 3.2 系统软件设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 本次单片机课程设计软件部分利用C 语言编程,采用模块化程序设计。程序部分由主程序、定时器程序、T0/T1 中断服务程序、键盘扫描程序、交通灯点亮程序、LED 数码管扫描显示程序和延时程序构成。
20、3.2.1 LED的编程本次交通灯设计采用两位一体的共阴极数码管来显示相应的时间。数码管为七段数码管,由8 个发光二极管构成,通过不同的组合可用来显示数字0-9,字符 A-F、H、L、P、R、U、Y、符号 “ -” 及小数点 “.”。本设计只需要显示数字0-9 ,来表示相应的时间。共阴极数码管的8 个发光二极管的阴极连接在一起接位选端。两个两位一体的共阴极数码管共有4个位选端,分别接在P2O-P23 ,低电平有效。数码管各个阳极管脚接各段的驱动电路输出端,既P0 口。P00 接 a,P01 接 b, P06 接 g,P07 接 dp,高电平有效。本设计采用逐位扫描的方式实现相应时间的动态显示。
21、先将P21 置低电平, P20、P22 、P23 置高电平,来选中南北方向数码管的个位,此时P0 口的数据接传送给它显示。经延时一段时间,将P21 置低电位选中南北方向数码管的十位,此时P0 口的数据接传送给它显示。再用同样的方法依次驱动东西方向数码管。通过不断改变P0 口、P2 口的输出,用循环扫描的方式,即可实现LED 的动态显示。LED 动态显示的流程图如图08:3.2.2 交通灯模块的编写设计本次设计的交通灯演示模块由单片机的P1 口作信号输出端来控制12 个交通灯的亮灭。P11-P16依次连接南北的红灯、绿灯、黄灯 ,东西的红灯、 绿灯,黄灯。所以 4 种状态依次为0 x6A,0 x
22、66,0 x5C,0 x3C。当交通灯的剩余时间为零时,改变P1 口的输出,进而改变交通灯的点亮状态。交通灯依次循环上面的4个状态,就可以实现指挥交通的作用。3.2.3 定时器程序本次设计用定时计数器T1,TMOD 是定时计算器的工作方式控制寄存器,通过对该寄存器的操作可以改变 T1 的工作方式。 T1 有 4 种工作方式,由TMOD 寄存器中间的M1、M0 这两位来决定。本次设计的定时计数器工作在工作方式1,M1、M0 设定为 01。定时计算器采用加1 计数的方式,当接收到一个驱名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
23、名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 动事件时计数器加1。工作方式 1 的内部计数器宽度为16 位,由 TH1 的 8 位和 TL1 的 8 位组成。当TL1溢出时将向TH1 进位,当 TH1 溢出后会产生相应的溢出中断。驱动事件之间的时间间隔即为定时计数器的定时宽度。在定时的工作方式下,定时宽度是单片机的机械周期,也是外部时钟频率的1/12 。本次设计的外部时钟频率为12MHz 。可知,接收106 个驱动事件的时间为 1s。定是 1s 的流程图如图09 所示:3.2.4 键盘程序为了实现设置通行时间、紧急情况处理、有车放行等
24、功能,本次设计中有键盘电路。通行时间设置由外部中断0 实现,紧急情况由外部中断1 处理,有车放行是用普通的键盘程序实现的。按键实际是一种常用的按钮,按键未按下时,键的两个触点处于断开状态,按键按下时,两个触点闭合。按键是利用机械触点来实现键的闭合和释放,由于弹性作用的影响,机械触点在闭合及断开瞬间均有抖动过程,从而使键输入也出现抖动。抖动时间一般为510ms 。本次设计采用软件的办法消抖。在第一次检测到有键按下时不动作,延时 10ms ,再次检测按键的状态,如果仍保持闭合状态,则确定真的有键按下。当按键释放后,转入按键的处理程序延时程序如下:/*延时 t 毫秒 */ void delay(uc
25、har t) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 29 页 - - - - - - - - - uchar i; /* 定义无符号字符常量*/ for(t;t0;t-) /* 执行 t 次循环 */ for(i=2000;i0;i-) /*由于时钟脉冲是12MHz ,执行 2000 次循环的时间为1ms*/ 3.2.4.1 通行时间设置程序本次设计通过外部中断0 设置各个干道的通行时间。外部中断 0 的请求信号由P32 引脚输入,采用低电平有效的方式响应中断
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年单片机控制的交通灯控制系统设计 2022 单片机 控制 交通灯 控制系统 设计
限制150内