基于单片机的交通灯控制器的设计与实现Word文档格式.docx

上传人:b****5 文档编号:16435252 上传时间:2022-11-23 格式:DOCX 页数:10 大小:24.83KB
下载 相关 举报
基于单片机的交通灯控制器的设计与实现Word文档格式.docx_第1页
第1页 / 共10页
基于单片机的交通灯控制器的设计与实现Word文档格式.docx_第2页
第2页 / 共10页
基于单片机的交通灯控制器的设计与实现Word文档格式.docx_第3页
第3页 / 共10页
基于单片机的交通灯控制器的设计与实现Word文档格式.docx_第4页
第4页 / 共10页
基于单片机的交通灯控制器的设计与实现Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

基于单片机的交通灯控制器的设计与实现Word文档格式.docx

《基于单片机的交通灯控制器的设计与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯控制器的设计与实现Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

基于单片机的交通灯控制器的设计与实现Word文档格式.docx

1914年,电气启动的红绿灯出现在美国。

这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。

带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;

另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。

红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。

红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。

智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。

使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用

2交通管理方案论证

2.1设计任务东西

(A)、南北(B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。

红灯亮禁止通行,绿灯亮允许通行。

红灯的设计时间为40秒,绿灯及左转绿灯各为20秒。

设A道和B道的车流量相同。

2.2方案介绍

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

方案1

设计思想:

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

以主干道为例,简述其设计思想。

如前分析,已经确定该系统有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表

表1主干道的置数表

状态

主干道预置数

次干道预置数

00

40

20

01

不要置数

20(左转)

10

11

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

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

表2红绿灯的变化表

主干道灯显示

次干道灯显示

红灯

绿灯

左转绿灯

通过这张表就可以用组合电路实现该功能了,可以用数据选择器的思想,在本系统中,直接通过门电路的译码,接下来就是计数模块了,其主要的功能细分为,要从预置数开始递减计数,一个状态结束,通过判断,通知主控制模块,使之进入下一模块。

还有一个必须考虑到的就是,预置数必须在下一个状态来之前准备好,而红绿灯的状态变化,必须和计数状态同步,于是引起预置数变化的程序要超前于系统本身的状态变化,所以,系统中的两个状态转换时,在上一状态结束时设置预置数,而控制红绿灯的是随着系统本身状态的变化而变化,体现在本子电路中就是有两组电路去判断符合的状态。

方案2

本方案分三步:

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

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

表3红绿灯的变化表

00(15S)

01(05S)

黄灯

10(15S)

11(05S)

(3)而高位则根据需要由反馈部分提供预置值。

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

注意:

本实验中若采用更复杂的四片74190控制主干道的两组灯,再用八片74153分别对74190置数可实现任意数值的交通灯系统。

另外对7408片子的控制红灯的端口用一个与门将一端再接一个频率一定的方波,使一边为黄灯时,另一边的红灯在闪烁。

方案比较:

方案1(以下称1)用了模块设计,而方案2(以下称2)采用的是一般设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。

2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。

我们从中可以得出的是,我们最终的设计应该尽量使用模块化设计。

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

3交通灯系统硬件设计

3.1单片机概述

单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。

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

通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:

中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

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

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械了。

它主要是作为控制部分的核心部件。

因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

3.2系统构成

电路板一块,AT89S51单片机一片,74HC164芯片八片,七段数码管八个。

74LS04反向器一片,发光二极管13个(8个绿的,4个红的用于交通控制,1个用于标识电源),7805三端稳压电源一个,一个按键,一条数据下载线。

系统工作流程(图1)

(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复位信号复位系统。

3.3芯片选择与介绍

3.3.1AT89S51芯片

选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。

用于实现系统的总的控制。

其主要功能列举如下:

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

(2)晶片内部具有时钟振荡器

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

图1

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

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

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

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

(8)5个中断向量源

(9)2组独立的16位定时器

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

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

3.3.274HC164芯片介绍

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

在串行口为方式0状态,即工作在移位寄存器方式,波特率为振荡频率的十二分之一。

器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。

在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时,允许从TXD端输出移位脉冲。

第一帧(8位)数据发送完毕时,各控制信号均恢复原状态,只有TI保持高电平,呈中断申请状态。

第一个74HC164把第一帧数据并行输出,LED1显示该数据。

然后,用软件将TI清0,发送第二帧数据。

第二帧数据发送完毕,LED1显示第二帧数据,第一帧数据串行输入给第二个74HC164,LED2显示第一帧数据。

依此类推,直到把数据区内所有数据发送出去。

应该注意,数据全部发送完后,第一帧数据在最后一个LED显示。

由于TXD端最多可以驱动8个TTL门。

3.3.374LS04输出信号与信号灯

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

当极性为低电平时关断,该支路指示灯灭。

LED灯的显示原理:

通过同名管脚上所加电平的高低来控制发光二极管是否点亮。

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

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

4交通灯软件设计

4.1程序设计流程图

4.2延时的设定

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

4.2.1计数器初值计算

我们采用在主程序中设定一个初值为20的软件计数器和使T1定时50毫秒.这样每当T1到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。

在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。

为0表示1秒已到可以返回到输出时间显示程序。

4.2.2相应程序代码

(1)定时器的设置 

定时器需定时50毫秒。

START:

MOVTMOD,#10H;

令TO为定时器方式1

MOVTH0,#3CH;

装入定时器初值

MOVTL0,#0BOH  

SETBEA  ;

打开总中断

SETBET1 ;

开T1中断

SETBER ;

启动T1计数器

CLRFLAG1

CLRFLAG2

CLRFLAG3

MOV R3,  #20H  ;

软件计数器赋初值

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

     ORG  001BH

     LJMP  DSD

     ORG0030H

 DSD:

INC R3

  MOVTH0,#3CH;

重装入定时器初值

MOVTL0,#BOH  

CJNER3,#20,FH

DECR0

DECR1

MOVR3,#00H

FH:

RETI

1.程序的软件延时:

AT89S51的工作频率为0—33MHZ,我们选用的AT89S51单片机的工作频率为12MHZ。

机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。

我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

具体的延时程序分析:

DELAY:

MOVR4,#08H延时1秒主程序

DE2:

LCALLDELAY1

DJNZR4,DE2

RET

DELAY1:

MOVR4,#00H;

延时125us子程序

D1:

MOVR5,#00H

D2:

DJNER5,DL2

DJNER4,D1

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

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

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

4.3程序的主控制循环调用

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

CJNER2,#01H,AA;

判断不相等刚跳转

JBFLAG1,AA;

FLAG1为1则跳转

LJMPSEC;

跳转到SEC

AA:

CJNER2,#02H,AAA

JBFLAG2,AAA

SETBF0

LJMPTHR

AAA:

CJNER2,#03H,BB

JBFLAG3,BB

LJMPFOU

BB:

CJNER2,#04H,BBB;

判断不相等则跳转

CLRF0;

F0位清0

LJMPFIR

BBB:

CJNER0,#00H,SGL

INCR2;

R2加1

LJMPDIAOY

5.实验步骤

5.1编写程序代码

程序代码分为3个模块:

中断模块,循环模块,算法模块。

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

1.调试程序

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

⑵选择芯片;

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

⑷把保存的文档加载到SourceGroup;

⑸编译程序;

⑹设置转换成16进制;

⑺运行程序的结果;

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

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

结论

本系统就是利用了AT89S51芯片的I/O引脚。

系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片(如:

74HC164、74LS04六位反向器、L7805三端稳压电源)来设计交通灯控制器,实现了红灯亮40秒,绿灯和左转绿灯各亮20秒。

并通过AT89S51来控制74LS04芯片的输出口设置红、绿灯燃亮的功能和控制74HC164来实现在七段数码管上的时间显示;

为了系统稳定可靠系统内集成了“看门狗”芯片,避免了系统因为死机而停止工作的情况发生。

系统设计简便、实用性强、操作简单、程序设计简便。

系统不足:

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

使人们远离目前的交通拥塞的现象。

参考文献

[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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1