交通灯毕业设计.docx
- 文档编号:30758538
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:32
- 大小:164.70KB
交通灯毕业设计.docx
《交通灯毕业设计.docx》由会员分享,可在线阅读,更多相关《交通灯毕业设计.docx(32页珍藏版)》请在冰豆网上搜索。
交通灯毕业设计
济源职业技术学院
毕业设计
题目
模拟交通灯
系别
电气工程系
专业
应用电子技术
班级
电技0801
姓名
李峰
学号
08020128
指导教师
张咏梅
日期
2010年12月
设计任务书
设计题目:
模拟交通灯
设计要求:
1.用单片机设计一个模拟交通灯,在十字路口的两个方向上各设一组红绿黄橙灯(橙色灯代表左转信号),显示顺序为:
其中一个方向是绿灯、黄灯、红灯、橙灯,另一个方向是橙灯、红灯、黄灯、绿灯。
2.设置一组数码管,以倒计时的方式显示允许通过或禁止通行的时间。
其中左转灯、绿灯、黄灯、红灯的持续时间分别是15S、30S、3S、48S。
3.当各条路上任意一条出现特殊情况,例如消防车、救护车或其他需要优先放行的车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。
设计进度要求:
第一周:
确定题目;查找和题目有关的资料;
第二周:
查找资料,阅读资料;
第三周:
结合实物写总体设计方案;
第四周:
硬件选片和硬件设计;
第五周:
软件设计;
第六周:
上机调试;
第七周:
写毕业设计;
第八周:
毕业答辩。
指导教师(签名):
摘 要
随着社会经济的快速发展,人们的生活水平提高,拥有车辆的家庭越来越多,但随之而来的交通问题也成为政府关注的问题。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。
本人选择制作交通灯作为课题加以研究。
分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,利用单片机89S51为核心部件,外加定时器、复位电路、晶振电路、显示电路等,设计一个比较符合交通规则的模拟交通灯,包括人行道,车行道、南北东西左转、应急车道,以及基本的交通灯的功能,同时给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。
关键词:
交通灯,单片机,定时器
目 录
1方案选择
1.1交通灯的总体设计思路
交通灯的控制主要是利用单片机,是单片机的一个典型应用,首先用发光二极管的亮与灭来模拟交通灯的各种运行状态。
考虑交通灯的功能,东西南北各两组,一个十字路口至少需4组交通灯(每组是四个发光二极管)。
指挥转弯和直行的关键,是设计控制交通灯的亮与灭。
考虑南北、东西方向灯的亮灭规律相同,故可以考虑用四个两组交通灯来模拟实际北东运行的交通灯;东一组四个发光二极管,北一组四个发光二极管,分别用红、绿、黄、橙来指示直行和转弯。
先南北直行红灯亮48秒,而后黄灯亮3秒,再直行绿灯亮30秒,黄灯亮3秒;然后南北转弯绿灯亮15秒,黄灯亮3秒,南北交通灯都亮红灯;东西交通灯以同样规律变化。
可用中断计数器控制,来显示不同的二极管来模拟交通灯不同的状态。
同时使用数码管来显示时间,提醒行人停止行走或准备行走。
(1)每次绿灯变红灯时,要求黄灯先亮3秒,黄灯亮时,绿灯灭。
(2)要求在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)均有倒计时显示时间。
所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。
1.2设计框图
根据设计思路和设计要求,可得出总体框图如将单片机P0.0…P0.7口作为LED数码管的段码输入口,将P1.0…P1.5口作为LED数码管的位码输入口,做为倒计时显示时间;P2.0…P2.7口作为发光二极管的输出端,模拟红绿灯的运行状态;P1.6和P1.7接紧急按键,做为特殊情况用。
图1.1总设计框图
1.3计时方案
利用89S51内部的定时器/计数器进行中断定时,配合软件延时实现时的倒计时。
该方案节省硬件成本,且能够使我们在定时器/计时器、中断及程序设计方面得到锻炼与提高。
1.4显示方案
单片机技术中通常有两种显示方式:
动态显示和静态显示
方案一:
串行扩展,LED静态显示。
由于占用较多的接口,在单片机设计中常用串行扩展来完成。
由于是串行接口,该方案占用接口资源少,并且显示亮度有保证,但硬件开销大,电路复杂,信息刷新速度慢,比较适用于并行接口资源较少以及对显示没有实时要求的场合。
方案二:
LED动态显示。
动态显示的方案硬件连接简单,但动态扫描的显示方式需占用cpu较多的时间。
在该系统中由于单片机除了显示红、绿灯的倒计时间没有太多的实时测控任务,故选用动态扫描方式。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
权衡利弊,我决定采用方案二实现系统的显示功能。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
1.5按键设计方案
计算机中所用的键盘有编码键盘和非编码键盘两种。
但编码键盘需要较多的硬件,价格较贵,一般的单片机应用系统较少使用,而非编码键盘硬件简单,成本低,所以目前在单片机应用系统中多采用非编码键盘,在我们使用的非编码键盘中又分为以下两种:
方案一:
独立式键盘的接口电路
在单片机应用系统中,按键作为系统信息的输入端。
可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。
每个独立式按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。
方案二:
行列式键盘
如果按键数较多时,为减少占用I/O接口线数,通常采用行列式键盘。
由于我这个设计只使用两个按键,所以我采用方案一,将按键K2接在P1.6上再把K1接在P1.7。
来完成道路上的应急情况。
2硬件设计
2.1整体硬件原理
电路的核心是89S51单片机,其内部带有4KB的FlashROM,无须扩展程序存储器;没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必扩展片外RAM,系统配备4个LED显示和2个单接口键盘,采用P0接口外接8路反相三态缓冲器74LS373作LED动态扫描的段码控制驱动信号,用P1接口的P1.0-P1.3外接一片集电极开路反相门电路74LS07做为4位LED的位选信号驱动口,LED共阴极端与74LS07的输出端相连;按键接口,由P3.0,P3.1来完成。
P2口接交通指示灯,整个系统采用查表的方发,将交通灯的显示情况和数码管的计时情况,分别以代码的形式送到指示灯和LED数码管,启动定时器,同时调用显示程序,和查询按键。
利用软件计数器的方法计时一秒,利用中断的方法使计时时间循环,当按下应急按键时停止定时器,送一个代码使两个方向都亮红灯,按下一个按键时启动定时器,恢复循环。
图2.1整体设计硬件图
2.2单片机89S51的简介
单片机(Microcontroller,有称微处理器)是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。
目前使用的单片机大部分都是MCS-51系列,MCS51系列单片机是Intel公司推出的通用型单片机而且它的品种很多,例如MCS-48,MCS-51(8位机),MCS-51(16位机)等,在MCS-51系列中,所有产品都是以89S51为核心,89S51单片机内部包含了作为微型计算机所必需的基本功能部件,各功能部件相互独立而融为一体,集成在同一块芯片上,而且具有以下特点:
(1)8位CPU;
(2)时钟振荡器和时钟电路;
(3)32根I/O线;
(4)外部存储器寻址范围ROM、RAM各64K;
(5)2个16位的定时器/计数器;
(6)5个中断源,2个中断优先级;
(7)全双工串行接口。
由此可见,89S51本身就是一个功能相当强大的8位微型机,所以在我的设计中选择89S51作为核心器件。
9S51系列的内部结构可以划分为CPU、存储器、并行口串行口、定时器/计数器、中断逻辑几部分。
图2.289S51的内部结构
1中央处理器
89S51的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。
2存储器组织
89S51单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构称为哈佛结构单片机。
这种结构与通用微机的存储器结构不同,一般微机只有一个存储器逻辑空间,可随意安排ROM或RAM,访存时用同一种指令,这种结构称为普林斯顿型。
89S51单片机在物理上有四个存储空间:
片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。
33种I/O端口
I/O端口是计算机的输入、输出接口(T是输入,O是输出之意)。
单片机中的I/O端口都是芯片的辅入/输出引脚。
这些I/O端口,可分为以下几种类型:
(1)总线输入/输出端口
(2)用户I/O端口。
由用户用于外部电路的输入/输出控制。
(3)单片机内部功能的输入/输出端口。
例如,定时器/计数器的计数辅入、外部中断源辅入等。
4基本功能单元
基本功能单元是为满足单片机测控功能而设置的一些电路,是用来完善和扩大计算机功能的一些基本电路,如定时器/计数器,中断系统等。
定时器/计数器在实际应用中作用非常大,如精确的定时,或者对外部事件进行计数等。
2.3单片机附属电路
片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。
片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~12MHz之间选取。
C1、C2是反馈电容,其值在5pF~30pF之间选取,典型值为30pF。
本电路选用的电容为30pF,晶振频率为12MHz。
这样就确定了单片机的4个周期分别是:
振荡周期=1/12
;
机器周期(SM)=
;
指令周期=
。
图2.3时钟产生电路
下面为单片机复位电路。
单片机在开机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。
单片机的复位后是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态复位。
MCS-51单片机的RST引脚是复位信号的输入端。
例如:
若MCS-51单片机时钟频率为12MHz,则复位脉冲宽度至少应该为2μs。
复位电路一般有上电复位、手动开关复位和自动复位电路3种,如图2.4,2.5,2.6所示。
由于在我的设计中仅仅在应急情况下才使用复位电路,所以,我使用手动复位电路。
图2.4手动复位电路图2.5上电复位电路
图2.6自动复位电路
2.474LS373的功能
在本设计中,我采用74LS373总线驱动器作为字形驱动芯片。
接在P0口作为数码管的段码输入。
74LS373是原码三态输出的8缓冲数码驱动器,其管脚分布图如图2.6所示,G为控制端,又称为使能端其工作原理如下:
当G=0时,A输入为低电平时,Y输出也为低电平。
当G=0时,A输入为高电平时,Y输出为高电平。
图2.774LS373的逻辑功能表
图2.874LS373的管脚分配图
2.574LS07的功能
因为我在设计中使用的是共阴极的数码显示,所以需要一个反相器将89S51P1口输出的高电平转换为低电平来驱动数码管,而74LS07即是一个反相器,所以我使用74LS07作为6路反相驱动器。
74LS07是六缓冲的数码驱动器,它是有6个集电极开路的非门所组成,管脚分布如图2.7所示,接在单片机的P1口,其工作原理如下,当使能端为低电平时,输入为高电平时输出也为高电平,当输入为低电平时输出也为低电平,其逻辑表达式为:
Y=A
图2.974LS07的管脚分配图
2.6数码显示——七段LED数码管
七段LED数码管结构七段LED数码管构成“日”字形,还有一只发光二极管作为小数点。
因此,这种七段数码管又可称为八段数码管。
如图所示,这八段发光管分别称为a,b,c,d,e,f,g,dp。
通过8个发光段的不同组合,可以显示0~9和A~F等16个数字字母,从而可以实现十六进制整数和小数的显示。
LED数码管可以分为共阴极和共阳极两种结构。
共阴极结构:
如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光。
共阳极结构:
如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低电平有效,当某段输入低电平该段便发光。
在此设计中我使用的是共阴极,将所有的发光二极管的阴极接在一起,段码接89S51的P1口,位码接P2口,在需要显示的段输入高电平1,来模拟显示交通灯亮的时间。
图2.10数码管的管脚分配
图2.11数码管的共阴极结构图2.12数码管的共阳极结构
七段LED数码管与单片机的连接,将一个八位并行I/O口与数码管的各发光二极管引脚相连。
要显示某字型,只要使此字型的相应的字段点亮即可,实际上就是送一个用不同电平组合代表的数据至数码管。
我在设计中所用的是P1口,连接方法如下:
图2.13LED显示器与单片机接口电路
2.7键盘接口工作原理
在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信。
2.7.1按键开关的去除抖动
目前,89S51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.6所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。
由于抖动,会造成被查询的开关状态无法准确读出。
例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。
为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。
图2.14按键过程
2.7.2按键的接口电路
在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。
这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。
如图3.7所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。
这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。
故只在按键数量不多时采用这种按键电路。
在此电路中,按键输入都采用低电平有效。
上拉电阻保证了按键断开时,I/O接口线有确定的高电平。
当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。
图2.1589S51与按键连接
3十字交通灯的软件设计
3.1软件的设计
交通灯的控制主要是利用单片机,是单片机的一个典型应用,首先用发光二极管的亮与灭来模拟交通灯的各种运行状态。
考虑交通灯的功能,东西南北各两组,一个十字路口至少需4组交通灯(每组是四个发光二极管)。
指挥转弯和直行的关键,是设计控制交通灯的亮与灭。
考虑南北、东西方向灯的亮灭规律相同,故可以考虑用四个两组交通灯来模拟实际北东运行的交通灯;东一组四个发光二极管,北一组四个发光二极管,分别用红、绿、黄、橙来指示直行和转弯。
先南北直行红灯亮48秒,而后黄灯亮3秒,再直行绿灯亮30秒,黄灯亮3秒;然后南北转弯绿灯亮15秒,黄灯亮3秒,南北交通灯都亮红灯;东西交通灯以同样规律变化。
可用中断计数器控制,来显示不同的二极管来模拟交通灯不同的状态。
同时使用数码管来显示时间,提醒行人停止行走或准备行走。
(1)每次绿灯变红灯时,要求黄灯先亮3秒,黄灯亮时,绿灯灭。
(2)要求在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)均有倒计时显示时间。
所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。
所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。
依据上述可以列出各个路口灯的逻辑表,如表3.1所示
表3.1十字交通灯逻辑状态表
状态
次数
东西方向
南北方向
状
态
时
间
红
绿
黄
橙
红
绿
黄
橙
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
1
0
1
1
1
1
0
1
1
21H
48S
2
0
1
1
1
1
1
0
1
41H
3S
3
0
1
1
1
1
1
1
0
81H
15S
4
1
1
0
1
1
1
0
1
44H
3S
5
1
0
1
1
0
1
1
1
12H
48S
6
1
1
0
1
0
1
1
1
14H
3S
7
1
1
1
0
0
1
1
1
18H
15S
8
1
1
0
1
1
1
0
1
44H
3S
表中的“1”代表逻辑高电平,即为灯亮;“0”代表逻辑高电平,即为灯灭。
依上表可以向相应的端口送逻辑值。
先南北直行红灯亮48秒,而后黄灯亮3秒,再直行绿灯亮30秒,黄灯亮3秒,如图3.1所示,然后南北转弯绿灯亮,黄灯亮,南北交通灯都亮红灯,如图3.2所示。
东西交通灯以同样规律变化。
其状态分别如下:
图3.1十字交通灯的南北运行模拟状态图
图3.2十字交通灯的南北左转模拟状态图
交通灯设计主要分以下几个模块:
交通灯亮灭控制模块,交通灯显示模块,倒计时计数模块,倒计时显示模块。
(1)交通灯亮灭控制模块,是通过时间的变化来传输的。
条件达到时即进行状态转换。
用一个计数器,当时间从初值48、30、15、3开始倒计至0时发生相应的交通灯红,绿,黄,橙亮灭的转变。
而时间为0时,重新置为同上初值。
(2)交通灯显示模块,将LED__COM端共阴点即送高电平“1”,就可以启动。
由交通灯控制模块来控制交通灯的亮灭变换。
(3)倒计时计数模块及显示模块主要用于记录显示时间,以方便行人,可以用数码管显示,要注意的是需要将二进制数通过修正关系转化成BCD码。
而当使能信号置0复位时,时间也要清零。
3.2程序流程图及程序介绍
3.2.1主程序介绍
主程序初始化和按键控制,首先将时间、中断、次数、和显示分别进行初始化,然后启动定时器对时间进行判断,将时间送数据缓冲区,调用显示程序,同时扫描按键程序,用无条件跳转指令返回,再调用显示程序,如此周而复始的循环,如图3.3所示。
(1)主程序流程图
图3.3主程序流程图
(2)部分主程序
START:
MOVTMOD,#01H;定时器T0初始化
MOVTH0,#3CH;定时器T0初始化
MOVTL0,#0B0H;定时器T0初始化
MOVR7,#20H;定时器次数初始化
MOVR6,#08H;循环次数初始化
SETBEA;总允许中断
SETBET0;T0允许中断
MOVDPTR,#TAB2查表送初值
TT1:
CLRA
MOVCA,@A+DPTR查表取状态送寄存器
MOVP2,A状态送P2口
TT2:
INCDPTR地址指针加1
CLRA
MOVCA,@A+DPTR
MOVR4,A取第一个状态时间送R4
DJNZR4,TT1判断状态时间是否到0
CLRA
INCDPTR地址指针加1
MOVCA,@A+DPTR查表取状态送寄存器
MOVP2,A状态送P2口显示
LJMPTT2调用语音程序
SETBTR0关闭定时器
LOOP:
LCALLDISPLAY调用显示
LCALLAI
SJMPLOOP
3.2.2显示子程序介绍
调用段码表,使数码管显示十字交通灯每个状态正确的时间从而提醒路人注意,根据时间准备停止或准备行走。
(1)显示子程序流程图
图3.4显示子流程图
(2)部分显示子程序
DISPLAY:
MOVA,R4
ADDA,#09查表程序,调用TAB表
MOVCA,@A+pc
MOVP0,A段码送P0口
MOVP1,#01H位码送P1口
LCALLDEALY调用延时
RET子程序返回
TAB:
DB3FH,06H,5BH,4FH,66H,6DH段码表
DB7DH,07H,7FH,6FH
DEALY:
MOVR2,#550MS的延时程序
LL1:
MOVR3,#20
NOP
LL2:
DJNZR3,LL2
DJNZR2,LL1
3.2.3中断程序介绍
中断技术是计算机中在实时处理和实时控制中不可缺少的一个重要的技术员,它即和硬件有关,也和软件有关。
而且中断是现代计算机必须具备的重要功能。
实现同步工作:
计算机有了中断功能后,就解决了快速CPU与低速外设之间的矛盾,可以使CPU与外设同时工作。
实现实时处理:
在实时控制系统中,为使控制系统能保持在最佳工作状态,被控系统的各种控制参量可随向计算机发出中断请求,要求CPU处理。
对此,必须作出快速响应和及时处理,这种实时处理功能只有靠中断技术才能实现。
在这里我们使用中断的第一个作用,实现同步工作,以达到在二极管显示状态的同时在数码管上显示时间,从而提醒路人注意,根据时间准备停止或准备行走。
还用于判断一个状态是否显示完,实现交通灯轮流显示。
(1)中断程序流程图
图3.5中断程序流程图
(2)部分中断程序介绍
CTCO:
PUSHACC保护现场
PUSHPSW
DJNZR7,BACK1判断定时器1S是否到
MOVR7,#20重装初值
DJNZR4,BACK1判断本次状态是否显示完
DJNZR6,NEXT判断本次状态时间是否走完
MOVR6,#08重装状态时间
MOVDPTR,#TAB2重送初状态
NEXT:
CLRA
MOVCA,@A+DPTR查表取状态送寄存器
MOVP2,A状态送P2口显示
INCDPTR指针加1
CLRA
MOVCA,@A+DPTR
MOVR4,A取状态时间送R4
INCDPTR
BACK1:
MOVTH0,#3CH
MOVTL0,#0B0H
POPPSW
POPACC
RETI
TAB2:
DB0D7H,09H,0A7H,03H,67H,09H,6BH,03H
DB7DH,09H,7AH,03H,76H,09H,0B6H,03H
3.2.2按键子程序流程图
它包含倒计时调整和紧急状态两个状态。
主程序中放了一个按键的判断指令,当按键按下K1的时候,程序就自动的跳转到按键子程序处理。
当检测到K2键按下的时候就自动返回到主程序。
当出现紧急的情况的时候,按下K1就切换到紧急状态,当紧急事件处理完毕的时候,按下K2,就可以返回正常状态
(1)按键程序流程图
图3.6按键程序流程图
(2)部分按键程序介绍
AI:
JBP3.0,N1判断P3.1按键是否按下
LCALLDEALY软件去抖
JBP3.0,N1判断P3.1按键按下转至N1
MM:
LCALLDISPLAY
JNBP3.0,MMP3.0按下,顺序执行
MOVP2,#COH状态全为红灯亮
LJMPBACK2
N1:
JBP3.1,BACK2P3.1按下,跳至BACK2
LCALLDEALY
JBP3.1,BACK2
MM1:
LCALLDISPLAY
JNBP3.1,MM1P3.1按下,顺序执行
MOVP2,#0CH恢复初始状态
BACK2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 毕业设计