资源描述
个人收集整理 勿做商业用途
毕 业 设 计
题目
模拟交通灯
系别
专业
班级
姓名
学号
指导教师
日期
I
设计任务书
设计题目:
模拟交通灯
设计要求:
1.用单片机设计一个模拟交通灯,在十字路口的两个方向上各设一组红绿黄橙灯(橙色灯代表左转信号),显示顺序为: 其中一个方向是绿灯、黄灯、红灯、橙灯,另一个方向是橙灯、红灯、黄灯、绿灯。
2.设置一组数码管,以倒计时的方式显示允许通过或禁止通行的时间.其中左转灯、绿灯、黄灯、红灯的持续时间分别是15S、30S、3S、48S。
3.当各条路上任意一条出现特殊情况,例如消防车、救护车或其他需要优先放行的车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。
设计进度要求:
第一周:确定题目;查找和题目有关的资料;
第二周:查找资料,阅读资料;
第三周:结合实物写总体设计方案;
第四周:硬件选片和硬件设计;
第五周:软件设计;
第六周:上机调试;
第七周:写毕业设计;
第八周:毕业答辩。
指导教师(签名):
摘 要
随着社会经济的快速发展,人们的生活水平提高,拥有车辆的家庭越来越多,但随之而来的交通问题也成为政府关注的问题.
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。本人选择制作交通灯作为课题加以研究。分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,利用单片机89S51为核心部件,外加定时器、复位电路、晶振电路、显示电路等,设计一个比较符合交通规则的模拟交通灯,包括人行道,车行道、南北东西左转、应急车道,以及基本的交通灯的功能,同时给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案.
关键词:交通灯,单片机,定时器
I
目 录
1 方案选择 1
1。1 交通灯的总体设计思路 1
1。2 设计框图 1
1。3 计时方案 2
1。4 显示方案 2
1.5按键设计方案 3
2 硬件设计 4
2.1 整体硬件原理 4
2。2 单片机89S51的简介 5
2.3 单片机附属电路 7
2。4 74LS373的功能 8
2。5 74LS07的功能 9
2。6 数码显示-—七段LED数码管 10
2。7 键盘接口工作原理 12
3 十字交通灯的软件设计 14
3.1 软件的设计 14
3。2程序流程图及程序介绍 16
4 测试、调试及结果分析 23
4.1 状态灯显示测试 23
4。2 整体电路调试 23
4。3结果分析 24
总 结 25
致 谢 26
参考文献 27
附 录 28
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。2 89S51的内部结构
1 中央处理器
89S51的中央处理器由运算器和控制逻辑构成,其中包括若干特殊功能寄存器(SFR)。
2 存储器组织
89S51单片机的存储器结构特点之一是将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构称为哈佛结构单片机.这种结构与通用微机的存储器结构不同,一般微机只有一个存储器逻辑空间,可随意安排ROM或RAM,访存时用同一种指令,这种结构称为普林斯顿型。
89S51单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器、片内数据存储器和片外数据存储器。
3 3种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.4 74LS373的功能
在本设计中,我采用74LS373总线驱动器作为字形驱动芯片.接在P0口作为数码管的段码输入。
74LS373是原码三态输出的8缓冲数码驱动器,其管脚分布图如图2。6所示,G为控制端,又称为使能端其工作原理如下:
当G=0时,A输入为低电平时,Y输出也为低电平。
当G=0时,A输入为高电平时,Y输出为高电平。
图2。7 74LS373的逻辑功能表
图2.8 74LS373的管脚分配图
2。5 74LS07的功能
因为我在设计中使用的是共阴极的数码显示,所以需要一个反相器将89S51P1口输出的高电平转换为低电平来驱动数码管,而74LS07即是一个反相器,所以我使用74LS07作为6路反相驱动器。
74LS07是六缓冲的数码驱动器,它是有6个集电极开路的非门所组成,管脚分布如图2.7所示,接在单片机的P1口,其工作原理如下,当使能端为低电平时,输入为高电平时输出也为高电平,当输入为低电平时输出也为低电平,其逻辑表达式为:Y=A
图2.9 74LS07的管脚分配图
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.13 LED显示器与单片机接口电路
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.15 89S51与按键连接
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: MOV TMOD,#01H ; 定时器T0初始化
MOV TH0,#3CH ; 定时器T0初始化
MOV TL0,#0B0H ; 定时器T0初始化
MOV R7,#20H ; 定时器次数初始化
MOV R6,#08H; 循环次数初始化
SETB EA; 总允许中断
SETB ET0; T0允许中断
MOV DPTR,#TAB2 查表送初值
TT1: CLR A
MOVC A,@A+DPTR 查表取状态送寄存器
MOV P2,A 状态送P2口
TT2: INC DPTR 地址指针加1
CLR A
MOVC A,@A+DPTR
MOV R4,A 取第一个状态时间送R4
DJNZ R4,TT1 判断状态时间是否到0
CLR A
INC DPTR 地址指针加1
MOVC A,@A+DPTR 查表取状态送寄存器
MOV P2,A 状态送P2口显示
LJMP TT2 调用语音程序
SETB TR0 关闭定时器
LOOP: LCALL DISPLAY 调用显示
LCALL AI
SJMP LOOP
3。2.2 显示子程序介绍
调用段码表,使数码管显示十字交通灯每个状态正确的时间从而提醒路人注意,根据时间准备停止或准备行走。
(1)显示子程序流程图
图3.4 显示子流程图
(2)部分显示子程序
DISPLAY:MOV A,R4
ADD A,#09 查表程序,调用TAB表
MOVC A,@A+pc
MOV P0,A 段码送P0口
MOV P1,#01H 位码送P1口
LCALL DEALY 调用延时
RET 子程序返回
TAB: DB 3FH,06H,5BH,4FH,66H,6DH 段码表
DB 7DH,07H,7FH,6FH
DEALY:MOV R2,#5 50MS的延时程序
LL1:MOV R3,#20
NOP
LL2:DJNZ R3,LL2
DJNZ R2,LL1
3。2.3 中断程序介绍
中断技术是计算机中在实时处理和实时控制中不可缺少的一个重要的技术员,它即和硬件有关,也和软件有关。而且中断是现代计算机必须具备的重要功能 。实现同步工作:计算机有了中断功能后,就解决了快速CPU与低速外设之间的矛盾,可以使CPU与外设同时工作。
实现实时处理:在实时控制系统中,为使控制系统能保持在最佳工作状态,被控系统的各种控制参量可随向计算机发出中断请求,要求CPU处理。对此,必须作出快速响应和及时处理,这种实时处理功能只有靠中断技术才能实现。
在这里我们使用中断的第一个作用,实现同步工作,以达到在二极管显示状态的同时在数码管上显示时间,从而提醒路人注意,根据时间准备停止或准备行走。还用于判断一个状态是否显示完,实现交通灯轮流显示。
(1)中断程序流程图
图3。5 中断程序流程图
(2)部分中断程序介绍
CTCO: PUSH ACC 保护现场
PUSH PSW
DJNZ R7,BACK1 判断定时器1S是否到
MOV R7,#20 重装初值
DJNZ R4,BACK1 判断本次状态是否显示完
DJNZ R6,NEXT 判断本次状态时间是否走完
MOV R6,#08 重装状态时间
MOV DPTR,#TAB2 重送初状态
NEXT: CLR A
MOVC A,@A+DPTR 查表取状态送寄存器
MOV P2,A 状态送P2口显示
INC DPTR 指针加1
CLR A
MOVC A,@A+DPTR
MOV R4,A 取状态时间送R4
INC DPTR
BACK1:MOV TH0,#3CH
MOV TL0,#0B0H
POP PSW
POP ACC
RETI
TAB2:DB 0D7H,09H,0A7H,03H,67H,09H,6BH,03H
DB 7DH,09H,7AH,03H,76H,09H,0B6H,03H
3。2。2 按键子程序流程图
它包含倒计时调整和紧急状态两个状态.
主程序中放了一个按键的判断指令,当按键按下K1的时候,程序就自动的跳转到按键子程序处理。当检测到K2键按下的时候就自动返回到主程序.
当出现紧急的情况的时候,按下K1就切换到紧急状态,当紧急事件处理完毕的时候,按下K2,就可以返回正常状态
(1)按键程序流程图
图3.6 按键程序流程图
(2)部分按键程序介绍
AI: JB P3.0,N1 判断P3.1按键是否按下
LCALL DEALY 软件去抖
JB P3.0,N1 判断P3.1按键按下转至N1
MM:LCALL DISPLAY
JNB P3。0,MM P3。0按下,顺序执行
MOV P2,#COH 状态全为红灯亮
LJMP BACK2
N1:JB P3。1,BACK2 P3。1按下,跳至BACK2
LCALL DEALY
JB P3.1,BACK2
MM1:LCALL DISPLAY
JNB P3。1,MM1 P3。1按下,顺序执行
MOV P2,#0CH 恢复初始状态
BACK2:RET 子程序返回
4 测试、调试及结果分析
4.1 状态灯显示测试
当电路连接完毕后,将写好的测试程序刷写到芯片内,p3。1 和p3.2端口分别送高电平和低电平,通电即可检测。
数码管的测试,将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。
4.2 整体电路调试
写入程序:打开微福软件进行仿真器设置,设置如下图4。1
图4.1 伟福软件设置图
保存程序:建立自己的程序名zyj。ASM,存在自己新建的文件夹下,方法如图4。2
图4。2 程序保存过程图
运行程序:编绎正确后,单击执行程序,观察执行过程,分析结果.如图
图4.3 程序执行过程图
用扁平线连接实验箱的单片机最小应用系统模块的P2口和发光二极管输出模块。再用串行数据通信线连接计算机与仿真器.
打开KELL软件,建立项目,添加源程序,进行编译至无错误。
进行软件设置,打开实验箱电源与模块电源,点击运行,观察效果。
4.3结果分析
程序运行后,二极管八个状态依次循环正确,但数码管显示不正确,仔细调试后发现软件错误,表调用错误,地址指针应用PC而不应该用DPTR。在遇到紧急情况时,按下P3。0,P3.1时,全部为熄灭,初值送错,应该给相应的P2。5 和P2。1口送低电平0,使其东西、南北绿灯发光,其它均送高电平熄灭,从而可以达到在有紧急情况时,东西、南北所有的车辆可以给紧急车辆让行的目地.
总 结
历时一个月的毕业设计结束了,我的交通灯模拟程序也已经在老师的帮助下成功运行了,而且也实现了正常情况下绿灯变红灯时,要求黄灯先亮3秒,黄灯亮时,绿灯灭。在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)时均有倒计时显示。所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。而且还可以在有紧急情况时,使东西、南北的绿灯亮以利于特种车辆通行。
由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合.
但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,而且这些都没有考虑到一些特殊人群如盲人与色盲等,应该再加一些语音提示呀等等措施, 相信如果这样可以大大降低交通事故率,但这需要在实践以及以后的学习中进一步完善。
致 谢
本设计得到了指导老师的大力帮助,并查阅了大量的资料,有不妥或不对之处,欢迎指正,谢谢!感谢校领导和老师,给我们创造了一个学习的机会,也特别感谢张老师在设计中对我的支持和帮助,让我在毕业的最后一段时间里学到了很多知识,经过这几个月的紧张的毕业设计,使我在理论和动手能力上都有了进一步的提高。在张老师的悉心指导下,让我对所学的单片机等专业知识进行系统的复习,并且学到了许多新的知识.
在设计过程中受到老师的指导及同学的关心.特别是张老师,她治学严谨、学识渊博,一直以来对本人的学习及研究工作给予悉心指导,使我的毕业设计得以顺利完成.老师帮我解决了很多问题,在此我向老师表示衷心的感谢!同时也要感谢各位同学,是你们让我的学习和生活充满乐趣,感谢你们对本这次设计提供的帮助!三年同学之情让我难以忘怀,只是今后大家就要各奔前程,但我相信我们在一起的日子,我会记一辈子的。
感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿。
在设计完成之际,回忆几周的设计生活,使我感受颇深,我的成功和老师同学的帮助是分不开的,再一次向你们表示真诚的谢意。
尊敬的领导,敬爱的老师,亲爱的同学,深深的道一声“谢谢了!”
参考文献
[1] 李朝青. 《单片机原理及接口技术》(修订版)。北京:北京航空航天大学出版社,2006
[2] 李广弟.《单片机基础》北京:北京航空航天大学出版社,2003
[3] 何立民。《单片机应用技术大全》北京:北京航空航天大学出版社, 2002
[4] 张毅刚.《单片机原理及接口技术》。哈尔滨:哈尔滨工业大学出版社,2001
[5] 谭浩强。《单片机课程设计》。 北京:清华大学出版社,2000
[6] 徐安、陈耀、李玲玲、《单片机原理与应用》2003年2月1次印刷
[7] 徐爱均 《单片机高级语言C51 Windows 环境编程与应用》2001年7月1次印刷
[8] 郭培源、沈明山、陈启鼎《电子电路及电子器件》2000年8月1次印刷
[9] 杨邦文《常用CMOS CC4000系列集成电路速查手册》2005年11月1次印刷
[10]魏立君、韩华琦、模拟开关和数据选择器《CMOS4000系列60种常用电路应用》2004年1月1次印刷
附 录
程序介绍
ORG 0000H
LJMP START
ORG 000BH
LJMP CTCO
ORG 0030H
START: MOV TMOD,#01H ; 定时器T0初始化
MOV TH0,#3CH ; 定时器T0初始化
MOV TL0,#0B0H ; 定时器T0初始化
MOV R7,#20H ; 定时器次数初始化
MOV R6,#08H; 循环次数初始化
SETB EA; 总允许中断
SETB ET0; T0允许中断
MOV DPTR,#TAB2 查表送初值
TT1: CLR A
MOVC A,@A+DPTR 查表取状态送寄存器
MOV P2,A 状态送P2口
TT2: INC DPTR 地址指针加1
CLR A
MOVC A,@A+DPTR
MOV R4,A 取第一个状态时间送R4
DJNZ R4,TT1 判断状态时间是否到0
CLR A
INC DPTR 地址指针加1
MOVC A,@A+DPTR 查表取状态送寄存器
MOV P2,A 状态送P2口显示
LJMP TT2 调用语音程序
SETB TR0 关闭定时器
LOOP: LCALL DISPLAY 调用延时
LCALL AI
SJMP LOOP
DISPLAY:MOV A,R4
ADD A,#09 查表程序,调用TAB表
MOVC A,@A+pc
MOV P0,A 段码送P0口
MOV P1,#01H 位码送P1口
LCALL DEALY 调用延时
RET 子程序返回
TAB: DB 3FH,06H,5BH,4FH,66H,6DH 段码表
D
展开阅读全文