基于单片机控制交通灯电路设计毕业论文(15200字)

发表于:2016.9.20来自:www.ttfanwen.com字数:15200 手机看范文

六安职业技术学院毕业

设计(论文)

基于单片机控制的交通灯设计

姓 名:

学 号: 班 级: 应用电子1001 指 导 教 师: 所 在 系 部:

二○一三年六月

毕业论文(设计)开题报告

基于单片机控制交通灯电路设计毕业论文

- 2 -

毕业论文(设计)成绩评定

基于单片机控制交通灯电路设计毕业论文

- 3 -

摘要

目前国内十字路口的交通灯控制一般是定时切换控制的。在当今高速发展的社会里,交通问题成为大家关注的社会问题,汽车数量的直线上升及现有的定时切换控制交通方式的局限性都使得我们有必要寻求一种智能的交通控制系统,基于此本论文的思路是:通过探测器(即电磁感应线圈)探测出汽车的流量后自动调节红绿灯的时长。车辆的流量记数、交通灯的时长控制可由可编程控制器(PLC)来实现。

关键词:智能交通,探测,车流量,可编程控制器

Abstract

At present domestic intersection traffic control is generally timing switch control. In today's high speed development of society, the traffic problem pay more attention to the social problems, the number of cars in a straight line and the existing timing switch control of the means of transportation limitation makes us is necessary to seek a kind of intelligent traffic control system, based on the idea of this paper is: through the detector (i.e. electromagnetic induction coil) detect car traffic to automatically adjust the traffic light load. The flow of traffic load, light counts can control by programmable controller (PLC) to realize the.

Key Words: intelligent transportation, detection, traffic flow, the programmable controller

- 4 -

目 录

引 言 ...................................................................... 2

第一章 交通管理方案论证 ..................................................... 3

1.1 设计任务 ............................................................ 3

1.2 方案介绍 ............................................................ 3

第二章 交通灯系统硬件设计 ................................................... 6

2.1 单片机概述 .......................................................... 6

2.2 系统构成 ............................................................ 7

2.3芯片选择与介绍 ....................................................... 8

2.3.1 AT89S51芯片 .................................................. 8

2.3.2 74HC164芯片介绍 ............................................. 10

2.3.3 74LS04输出信号与信号灯 ...................................... 10

2.3.4 交通灯控制线路图 ............................................. 12

第三章 交通灯软件设计 ...................................................... 13

3.1 程序设计流程图 ..................................................... 13

3.2延时的设定 .......................................................... 15

3.2.1 计数器初值计算 ............................................... 15

3.2.2 相应程序代码 ................................................. 15

3.3 程序的主控制循环调用 ............................................... 17

3.4 对现有程序的扩充 ................................................... 17

第四章实验平台 ............................................................. 18

4.1实验平台 ............................................................ 18

4.2实验步骤 ............................................................ 19

4.2.1 编写程序代码 .................................................. 19

4.2.2 按照系统硬件连线图连接好系统并调试 ............................ 19

结论 ....................................................................... 20

致谢 ....................................................................... 21

参考文献 ................................................................... 21

- 1 -

引 言

据不完全统计,目前我国城市里的十字路口交通系统大都采用定时来控制(不排除繁忙路段或高峰时段用交警来取代交通灯的情况),这样必然产生如下弊端:当某条路段的车流量很大时却要等待红灯,而此时另一条是空道或车流量相对少得多的道却长时间亮的是绿灯,这种多等少的尴尬现象是未对实际情况进行实时监控所造成的,不仅让司机乘客怨声载道,而且对人力和物力资源也是一种浪费。

智能控制交通系统是目前研究的方向,也已经取得不少成果,在少数几个先进国家已采用智能方式来控制交通信号,其中主要运用GPS全球定位系统等。出于便捷和效果的综合考虑,我们可用如下方案来控制交通路况:制作传感器探测车辆数量来控制交通灯的时长。具体如下:在入路口的各个方向附近的地下按要求埋设感应线圈,当汽车经过时就会产生涡流损耗,环状绝缘电线的电感开始减少,即可检测出汽车的通过,并将这一信号转换为标准脉冲信号作为可编程控制器的控制输入,并用PLC计数,按一定控制规律自动调节红绿灯的时长。

比较传统的定时交通灯控制与智能交通灯控制,可知后者的最大优点在于减缓滞流现象,也不会出现空道占时的情形,提高了公路交通通行率,较全球定位系统而言成本更低。

本毕业论文分为以下几部分组成:PLC基础知识简介,题目分析编程方案,智能交通系统PLC编程。

- 2 -

第一章 交通管理方案论证

1.1 设计任务

东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。红灯的设计时间为40秒,绿灯及左转绿灯各为20秒。设A道和B道的车流量相同。

1.2 方案介绍

把设计任务细化为四个状态,其对应状态:如图1

基于单片机控制交通灯电路设计毕业论文

图1 状态转换图

整个交通灯控制由四个状态组成,可以用程序设计实现,也可用时序逻辑实现.以下方案就是分别用了这两种方法。

方案1设计思想:

采用分模块设计的思想,程序设计实现的基本思想是一个计数器 , 选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换, 由于每一个模块的计数多不是相同, 这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数, 如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。以主干道为例,简述其设计思想。如前分析,已经确定该系统

- 3 -

有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表如:表1

基于单片机控制交通灯电路设计毕业论文

表1 置数表

由该表,就可以通过程序循环的方法设计该模块,主要思想是通过数据判断指令、跳转指令实现,由主控制器计时和中断产生的四个状态去译码,从而得到不同的输出,即预置数,由上分析可用一个计数器和跳转指令去完成的预置数。

而红绿灯的显示也是一样,由状态分析可以得出红绿灯的变化表如:表2

基于单片机控制交通灯电路设计毕业论文

表2 红绿灯变化表

通过这张表就可以用组合电路实现该功能了,可以用数据选择器的思想,在本系统中,直接通过门电路的译码,接下来就是计数模块了,其主要的功能细分为,要从预置数开始递减计数,一个状态结束,通过判断,通知主控制模块,使之进入下一模块。还有一个必须考虑到的就是,预置数必须在下一个状态来之前准备好,而红绿灯的状态变化,必须和计数状态同步,于是引起预置数变化的程序要超前于系统本身的状态变化,所以,系统中的两个状态转换时,在上一状态结束时设置预置数,而控制红绿灯的是随着系统本身状态的变化而变化,体现在本子电路中就是有两组电路去判断符合的状态。 方案2 设计思想: 状态转换表如:表3

- 4 -

基于单片机控制交通灯电路设计毕业论文

表3 状态转换表

本方案分三步:

(1)要建立三路信号灯的控制系统,本设计采用7408 芯片通过组合逻辑控制三路灯的显示关系。

(2)建立显示控制系统,本设计采用74190 芯片倒计时控制,每个方向用两片相连实现,另外用74153芯片,因为分析中设置的时间末位均为5,所以只要用一片74153 对高位置位,将低位的初值预置锁定为5,而高位则根据需要由反馈部分提供预置值。

(3)建立反馈和细节连接部分,本部分主要解决显示和灯控的同步问题本系统采用倒计时系统减为0,如当系统减为0 时通过两个D触发器得到两个变量,即为开头分析中的状态,通过它的变化得到不同的逻辑关系,驱动74153 控制哪组灯亮(对应关系如表所示),另外他还要同步反馈到显示系统的置数环节。

注意:本实验中若采用更复杂的四片74190控制主干道的两组灯,再用八片74153分别对74190置数可实现任意数值的交通灯系统。另外对7408 片子的控制红灯的端口用一个与门将一端再接一个频率一定的方波,使一边为黄灯时,另一边的红灯在闪烁。 方案比较:

方案1(以下称1)用了模块设计,而方案2(以下称2)采用的是一般设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。

我们从中可以得出的是,我们最终的设计应该尽量使用模块化设计。对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。

- 5 -

基于单片机控制交通灯电路设计毕业论文

第二章 交通灯系统硬件设计

2.1 单片机概述

单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。

通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压、低功耗。

可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。它主要是作为控制部分的核心部件。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

- 6 -

2.2 系统构成

电路板一块,AT89S51单片机一片,74HC164芯片八片,七段数码管八个。74LS04反向器一片,发光二极管13个(8个绿的,4个红的用于交通控制,1个用于标识电源),7805三端稳压电源一个,一个按键,一条数据下载线。 系统结构框图如:图2

基于单片机控制交通灯电路设计毕业论文

基于单片机控制交通灯电路设计毕业论文

图2 系统结构框图

系统各部分工作:

(1)程序设置初始时间,通过AT89S51单片机内部相应寄存器来实现。

(2) 由AT89S51单片机的定时器每秒钟通过P3.0口向74HC164的数据端口送信息,由74HC164的输出口显示红、绿、黄灯的点亮时间情况;由AT89S51的P1.0、P1.1、P1.2、P1.3口显示每个灯的点亮情况。

(3) AT89S51通过程序设置各个信号灯的点亮时间,通过程序设置左转绿、绿、红时间依次为20秒、20秒、40秒循环,由AT89S51的 P3口向74HC164的数据口输出。

(4)通过AT89S51单片机的P3口来控制系统是工作。

(5)74HC164的A、B口用于串行输出时间位,经过串并转换送到七段数码管的八的引脚。而P1口用于输出控制信号.而通过74LS04反向器实现控制各个灯的情况.它采用5V的直流电来驱动二极管。

(6)AT89S51本身集成了看门狗指令,当系统出现异常看门狗将发出溢出中断。通过专用端口输出,引起RESET复位信号复位系统。

- 7 -

2.3芯片选择与介绍

2.3.1 AT89S51芯片

选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。用于实现系统的总的控制。其主要功能列举如下:

1、为一般控制应用的 8 位单片机

2、晶片内部具有时钟振荡器(传统最高工作频率可至 33MHz)

3、内部程式存储器(ROM)为 4KB

4、内部数据存储器(RAM)为 128B

5、外部程序存储器可扩充至 64KB

6、外部数据存储器可扩充至 64KB

7、32 条双向输入输出线,且每条均 可以单独做 I/O 的控制

8、5 个中断向量源

9、2 组独立的 16 位定时器

10、1 个全双工串行通信端口

11、8751 及 8752 单芯片具有数据保密的功能

12、单芯片提供位逻辑运算指令

AT89S51各引脚功能介绍:如图3

基于单片机控制交通灯电路设计毕业论文

图3 AT89S51

VCC:ATAT89S51 电源正端输入,接+5V。

- 8 -

VSS:电源地端。

XTAL1:单芯片系统时钟的反向放大器输入端。

XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两个引脚与地之间加入一个 20PF 的小电容,可以使系统更稳定, 避免噪声干扰而死机。

RESET:AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。

ALE/PROG:ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。ATAT89S51可以利用这个引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为ATAT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。

PSEN:此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。ATAT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。

PORT0(P0.0~P0.7):端口0是一个8位宽的开路电极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当作I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一个锁存器将端口0送出的地址锁住成为A0~A7,再配合端口2所送出的A8~A15合成一组完整的16位地址总线,而定位地址到64K的外部存储器空间。

PORT2(P2.0~P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当作一般I/O端口使用外,若是在ATAT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当作I/O来使用了。

PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地,若将端口1的输出设为高电平,便是由此端口来输

- 9 -

入数据。如果是使用8052或是8032的话,P1.0又当作定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发引脚。

PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。

其引脚分配如下:

P3.0:RXD,串行通信输入。

P3.1:TXD,串行通信输出。

P3.2:INT0,外部中断0输入。

P3.3:INT1,外部中断1输入。

P3.4:T0,计时计数器0输入。

P3.5:T1,计时计数器1输入。

P3.6:WR:外部数据存储器的写入信号。

P3.7:RD,外部数据存储器的读取信号。

2.3.2 74HC164芯片介绍

74HC164为串行输入、并行输出移位寄存器,74HC164为单向总线驱动器。

在串行口为方式0状态,即工作在移位寄存器方式,波特率为振荡频率的十二分之一。器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔 一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时,允许从TXD端输出移位脉冲。第一帧(8位)数据发送完毕时,各控制信号均恢复原状态,只有TI保持高电平,呈中断申请状态。第一个74HC164把第一帧数据并行输出,LED1显示该数据。然后,用软件将TI清0,发送第二帧数据。第二帧数据发送完毕,LED1显示第二帧数据,第一帧数据串行输入给第二个74HC164,LED2显示第一帧数据。依此类推,直到把数据区内所有数据发送出去。应该注意,数据全部发送完后,第一帧数据在最后一个LED显示。由于TXD端最多可以驱动8个TTL门。

注意:当LED显示器超过8个时,我们采用74HC244芯片驱动。每个74HC244有8路驱动,每一路可驱动8个LED,即每增加一个74HC244,可增加64个LED驱动。

七段数码管,用于显示0—9的数字。

2.3.3 74LS04输出信号与信号灯

要使行人能看见信号灯的情况,必须把P1口输出的信号进行放大,这里我们用74LS04反向器,当极性为高电平时晶闸管导通,该支路指示灯亮;当极性为低电平时关断,该支路指示灯灭。

LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮。

- 10 -

七段数码管的显示及与74HC164的连接显示不同的数字如 SP,g,f,e,d,c,b,a 管角上加上0FEH所以 SP上为0伏,不亮其余为TTL高电平,全亮则显示为8。

数字0-9与16进制的转换驱动代码表:如表5

表5 驱动代码表

74LS04(6反向器)主要对信号起了反向作用。

其它器件的功能如:

7805的功能,既提供稳定的+5V电压。

基于单片机控制交通灯电路设计毕业论文

- 11 -

2.3.4 交通灯控制线路图

基于单片机控制交通灯电路设计毕业论文

- 12 -

第三章 交通灯软件设计

3.1 程序设计流程图

(1) 程序设计总框图:如图4

图4 程序设计框图

基于单片机控制交通灯电路设计毕业论文

- 13 -

(2)程序详细流程图:如图5

图5 程序详细流程图

流程图说明:

基于单片机控制交通灯电路设计毕业论文

- 14 -

图中定时器在每50ms中断一下,设置为循环20次(此时为1秒),每1秒以后,R0,R1自动减1。

程序中的判断在相等情况下从右边出,不相同的情况往下走。

3.2延时的设定

延时方法可以有两种一种是利用AT89S51内部定时器的溢出中断来确定1秒的时间,另一种是采用软件延时的方法。

3.2.1 计数器初值计算

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC 可得到如下计算通式:

TC=M-C

式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213 ;在方式1时M的值为2;在方式2和3为2;

算法公式:

T=(M-TC)T计数 或TC=M-T/T计数

T计数是单片机时钟周期TCLK的12倍;TC为定时初值

如单片机的主脉冲频率为TCLK12MHZ ,经过12分频

方式0 TMAX=213 ×1微秒=8.192毫秒

方式1 TMAX=216 ×1微秒=65.536毫秒

显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题.

实现1秒的方法:

我们采用在主程序中设定一个初值为20的软件计数器和使T1定时50毫秒。这样每当T1到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为0表示1秒已到可以返回到输出时间显示程序。

3.2.2 相应程序代码

(1)定时器的设置

定时器需定时50毫秒,故T1工作于方式1。

初值计算: TC=M-T/T计数 =2-50ms/1us=15536=3CBOH

START: MOV TMOD, #10H ;令TO为定时器方式1

- 15 - 16168

MOV TH0, #3CH ;装入定时器初值

MOV TL0, #0BOH

SETB EA ; 打开总中断

SETB ET1 ;开T1中断

SETB ER ;启动T1计数器

CLR FLAG1

CLR FLAG2

CLR FLAG3

MOV R3, #20H ;软件计数器赋初值

(2)相应中断服务子程序

ORG 001BH

LJMP DSD

ORG 0030H

DSD: INC R3

MOV TH0, #3CH ;重装入定时器初值

MOV TL0, #BOH

CJNE R3,#20,FH

DEC R0

DEC R1

MOV R3,#00H

FH: RETI

程序的软件延时:

AT89S51的工作频率为0—33MHZ,我们选用的AT89S51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

具体的延时程序分析:

DELAY: MOV R4,#08H 延时1秒主程序

DE2: LCALL DELAY1

DJNZ R4, DE2

RET

DELAY1:MOV R4,#00H ;延时125us 子程序

D1: MOV R5,#00H

D2: DJNE R5,DL2

DJNE R4,D1

RET

- 16 -

DELAY1为一个双重循坏 循环次数为256*256=65536 所以延时时间=65536*2=131072us 约为125us

DELAY R4设置的初值为8 主延时程序循环8次,所以125us*8= 1秒

由于单片机的运行速度很快其他的指令执行时间可以忽略不计。

3.3 程序的主控制循环调用

用来实现四个状态之间的转换,代码如下:

DIAOY:

CJNE R2, #01H, AA

JB FLAG1, AA ;循环控制子程序 ;判断不相等刚跳转 ;FLAG1为1则跳转

LJMP SEC ;跳转到SEC

AA: CJNE R2, #02H, AAA

JB FLAG2, AAA SETB F0 LJMP THR JB FLAG3, BB LJMP FOU

;判断不相等则跳转

;F0位清0 AAA: CJNE R2, #03H, BB BB: CJNE R2, #04H, BBB CLR F0

CLR FLAG1 CLR FLAG2 CLR FLAG3 LJMP FIR

BBB: CJNE R0, #00H, SGL

INC R2

LJMP DIAOY ;R2加1

3.4 对现有程序的扩充

当由于紧急需要对道路进行长时间通行时,就要保持该道路更长时间的通行。下面以东西方向为例进行紧急通行为例。

紧急通行是平常通行的特例,只要将相应的代码去掉就可以实现延长本车道的通行时间。设置通行时间为20秒。

核心代码如下:

FIR: MOV P1, #00H

- 17 -

SETB P1.0 CLR P1.1 CLR P1.2 CLR P1.3 MOV R0, #20

MOV R1, #20

SGL: ;与原程序类同

基于单片机控制交通灯电路设计毕业论文

CJNE R0, #00H, SGL

要实现东西方向的左转通行时,只需要修改FIR中的代码就可以了。时间显示只要修改R0和R1就可以了。

要实现南北方及左转,只要把SGL换成SGL1、把FIR 中代码进行相应的修改就可以了。由于时间紧张,程序有不完善的地方。 …… LJMP FIR

第四章实验平台

4.1实验平台

我们采用的是Keil Software生产的Cx51编译器。运行在Windows XP操作平台下。 开启计算机进入Keil C51编译器介面。如图6

图6 Keil C51编译器介面

- 18 -

4.2实验步骤

4.2.1 编写程序代码

程序代码分为3个模块:中断模块,循环模块,算法模块。

4.2.2 按照系统硬件连线图连接好系统并调试

1.调试程序

? 打开Keil软件,新建工程;

? 选择芯片;

? 新建文档,把编写好代码写入文档并保存了ASM文件;

? 把保存的文档加载到Source Group;

?编译程序;

?设置转换成16进制;

?运行程序的结果;

2. 把编译好的16进制文件(jtd.hex) 输入单片机AT89S51仿真器和对其进行初始化。

3.给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。

以下是在程序调试过程中出现在情况:通电以后,把程序装好,数码管是的数字不变,按复位键后重新开始还是如此。经过和同组人的共同分析后,发现是中断系统在计时到了1秒以后,赋的初值R0,R1没有减1,修改如下:

DSD: INC R3

MOV TH1, #3CH MOV TL1, #0B0H CJNE R3, #20, FH DEC R0 DEC R1 MOV R3, #00H

FH: RETI ;R3清0 ;中断返回 ;判断是否够 1秒

通电以后,东西、南北方向的时间均递减,20秒以后,东西方向的20秒用完,变成东西左转、南北各20秒,此后,时间显示和红绿灯不再变化,一直保持这一状态。

经过老师和同组人的共同努力,终于找到原因,问题出在循环控制过程中,当经过第一次20秒判断后,寄存器R2加1,当再次运行到循环控制处时,判断R2与#01H相同,程序跳到SEC处执行,此后一直如此。解决方法如下:

设置3个标记位:

FLAG1 BIT 00H ;标记00H位

- 19 -

FLAG2 BIT 01H

FLAG3 BIT 02H

在循环控制中加入判断如:

DIAOY: CJNE R2, #01H, AA ;判断不相等刚跳转

JB FLAG1, AA ;FLAG1为1则跳转

LJMP SEC ;跳到SEC

在跳到SEC后,在运行到该程序后加给FLAG1置数,程序如下:

SEC: CLR P1.0

SETB P1.1

CLR P1.2 CLR P1.3 MOV R0, #20 MOV R1, #20 SETB FLAG1 LJMP SGL

其它几部分与之相同的处理。

结论

本系统就是利用了AT89S51芯片的I/O引脚。系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片(如:74HC164、74LS04六位反向器、L7805三端稳压电源)来设计交通灯控制器,实现了红灯亮40秒,绿灯和左转绿灯各亮20秒。并通过AT89S51来控制74LS04芯片的输出口设置红、绿灯燃亮的功能和控制74HC164来实现在七段数码管上的时间显示;为了系统稳定可靠系统内集成了“看门狗”芯片,避免了系统因为死机而停止工作的情况发生。系统设计简便、实用性强、操作简单、程序设计简便。

系统不足:时间设定中没有黄灯的等待闪烁时间,以及自动根据车流改变红绿灯时间,此外,还没有充分考虑的把现代管理、人工智能运用到交通的控制中,来计算交通控制点之间的距离,来更合理的安排红、绿灯的持续时间,使城市的交通管理更加人性化。使人们远离目前的交通拥塞的现象。

- 20 -

致谢

通过本次毕业设计,我在指导老师项莉萍老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,单片机领域这对我今后进一步学习计算机方面的知识有极大的帮助。另外,此次毕业设计还获得了计科系各位领导和老师的大力支持。在此,我忠心感谢单片机组的其它同学以及计科系各位老师的指导和支持。在未来的工作和学习中,我将以更好的成绩来回报各位领导、老师和同学。

参考文献

[1]胡汉才 单片机原理及其接口技术 [M] 清华大学出版,1996

[2]蔡美琴 MCS-51系列单片机系统及其应用 高等教育出版社 2004.2

[3]付家才 单片机控制工程实践技术[M] 化学工业出版社,2004.5

[4]潘新民 微型计算机控制技术 [M] 人民邮电出版社,1999.9

[5]余锡存 单片机原理及接口技术[M] 西安电子科技大学出版社,2000.7

[6]雷丽文 等.微机原理与接口技术[M] 电子工业出版社,1997.2

[7]蒋万君 在论循环时序电路的简便设计[J] 机电一体化,2005 第5期

[8]周立功 增强型80C51单片机速成与实战 北京航空航天大学出版社2004.5

[9]何立民 单片机应用技术选编⑩ 北京航空航天大学出版社 2004.3

[10]何立民 单片机应用技术选编⑨ 北京航空航天大学出版社 2004.3

[11]何立民 MCS-51系列单片机应用系统设计 北京航空航天大学出版社, 1995.

[12]李华 MCS -51系列单片机实用接口技术[M] 北京航空航天大学出版社,1993

[13]周航慈 单片机应用程序设计技术[M] 北京航空航天大学出版社,1991.

[14]张志良等 单片机原理与控制技术[M] 机械工业出版社,2001 年7 月第1 版

[15]陆坤 电子设计技术1 电子科技大学出版社, 1997

[16]梁文海 单片机AT89C2051构成的智能型频率计[J] 现代电子技术,2002

[17]谢自美 电子线路设计·实验·测试[M] 华中理工大学出版社,2001

[18]吴金戎,沈庆阳 8051单片机实践与应用 [M] 清华大学出版社, 2003.

- 21 -



更多类似范文
┣ 交通灯课程设计报告6 6700字
┣ 单片机交通灯课程设计报告[1] 13500字
┣ 数字电路交通灯课程设计论文 3500字
┣ 单片机控制十字路口交通灯 12200字
┣ 更多交通灯控制电路设计报告
┗ 搜索类似范文

更多相关推荐:
关于交通灯控制逻辑电路的设计报告6100字

电子技术课程设计总结报告关于交通灯控制逻辑电路的设计报告1课程设计的意义和目的电子技术课是高等院校工科专业重要的技术基础课使电子应用技术中硬件知识的入门课程之一具有很强的实践性实践和课程设计是学习这门课的重要实...

数字电路基础_交通灯课程设计报告5000字

三明学院数字电路课程设计报告书交通灯控制器学院名称学生姓名专业名称学号班三明学院林前程电子信息工程20xx06622282班级一设计题目交通灯控制器交通灯控制器是可以自动控制交通灯并以倒计时的方式显示出时间方便...

课程设计实验报告-交通灯控制功能设计20400字

微机原理与接口技术课程设计实验报告题目交通灯控制功能设计指导老师专业信息科学与工程学院班级自动化0807班日期20xx15微机课程设计交通灯控制系统目录一设计思想和实施方案论述硬件原理图及分析11课程设计名称1...

专栏推荐
大家在关注