我模拟交通灯.docx

上传人:b****6 文档编号:3977676 上传时间:2022-11-26 格式:DOCX 页数:29 大小:182.54KB
下载 相关 举报
我模拟交通灯.docx_第1页
第1页 / 共29页
我模拟交通灯.docx_第2页
第2页 / 共29页
我模拟交通灯.docx_第3页
第3页 / 共29页
我模拟交通灯.docx_第4页
第4页 / 共29页
我模拟交通灯.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

我模拟交通灯.docx

《我模拟交通灯.docx》由会员分享,可在线阅读,更多相关《我模拟交通灯.docx(29页珍藏版)》请在冰豆网上搜索。

我模拟交通灯.docx

我模拟交通灯

 

济源职业技术学院

毕业设计

 

题目

模拟交通灯

系别

电气工程系 

专业

    应用电子技术        

班级

电技0801

姓名

学号

08020101

指导教师

李春光

日期

2010年12月

 

设计李务书

设计题目:

单片机的交通灯控制器

设计要求:

1.在十字路口的两个方向上各设一组红绿黄灯,显示顺序为:

其中一个方向是绿灯、黄灯、红灯,另一个方向是红灯、绿灯、黄灯。

2.设置一组数码管,以倒计时的方式显示允许通过或禁止通行的时间,其中左转灯、绿灯、黄灯、红灯的持续时间分别是15S、30S、3S、48S。

3.当各条路上李意一条出现特殊情况,例如消防车、救护车或其他需要优先放行的车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。

设计进度要求:

第一周:

查找资料,初步确定论文题目;

第二周:

与老师商讨;

第三周:

确定论文题目;

第四周:

根据论文题目进一步查找材料;

第五周:

完成开提报告及论文大纲交老师批阅;

第六周:

依据论文大纲完成论文一稿交老师批阅;

第七周:

.完成相关论文简介、答辩提纲等;

第八周:

定稿打印。

指导教师(签名):

摘  要

近年来随着科技的飞速发展,单片机的应用正在不断地深入发展,同时带动传统控制检测的更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还应该根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。

那么靠什么来实现这井然秩序呢?

靠的是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用AT89C52系列单片机和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过AT89C52芯片的P1口设置红、绿灯燃亮时间的功能;为了系统稳定可靠采用了MAX629“看门狗”芯片,避免了系统因为死机而停止工作的情况发生;显示时间直接通过8255的PA、PB口输出;交通灯信号通过PC口输出;交通灯的点亮采用VT双向晶闸管来控制,直接采用220V交流电源驱动,系统实用性强、操作简单、扩展性强。

关键词:

单片机,看门狗MAX629,交通灯,控制器

目  录

摘  要II

1交通灯的发展及应用1

2控制器系统设计2

2.1交通管理的方案2

2.2系统设计原理3

3芯片的选择与简介6

3.1AT89C52芯片简介6

3.28255芯片简介9

3.3数码管11

4控制器的软件设计12

4.1计数器初值计算12

4.2软件延时13

4.3AT89C52并行口的扩展14

5程序设计16

5.1流程图16

5.2程序清单18

6看门狗硬件电路22

6.1软件看门狗22

6.2硬件看门狗23

7系统的调试与运行方案25

7.1实验步骤25

7.2系统内存分配和I/0接口26

7.3实验程序原代码27

8结论30

致  谢31

参考文献32

1交通灯的发展及应用

目前红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就已出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

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

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

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

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

带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。

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

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

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。

绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。

左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。

红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。

黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

2控制器系统设计

2.1交通管理的方案

A、B两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。

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

黄灯亮提示人们注意红灯、绿灯的状态即将切换,且黄灯燃亮时间为A、B两干道的公共停车时间。

设A道比B道的车流量大,指示灯燃亮的方案如表2.1。

表2.1指示灯的状态

3

60

3

80

3

60

……

A道

黄灯亮

红灯亮

黄灯亮

绿灯亮

黄灯亮

红灯亮

……

B道

黄灯亮

绿灯亮

黄灯亮

红灯亮

黄灯亮

绿灯亮

……

从表中可以看出:

(1)当为黄灯时A、B两道同时为黄灯;以提示行人或车辆下一个灯色即将到来,时间3秒。

(2)当A到为红灯,A道车辆禁止通行,A道行人可通过;B道为绿灯,B道车辆通过,行人禁止通行。

时间为60秒。

(2)当A道绿灯,A道车辆通行;B道为红灯,B道车辆禁止通过,行人通行。

时间为80秒。

A道车流大通行时间长

(3)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。

(4)此表可根据车流量动态设定

 

2.2系统设计原理

选用AT89C52单片机一片选用设备:

AT89C52单片机一片,8255并行通用接口芯片一片,74LS07两片,MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。

系统总框图如图2.1所示.

图2.1交通灯控制系统总框图

 

交通灯控制线路图2.2所示.

图2.2交通灯控制线路图

(1)开关键盘输入交通灯初始时间,通过AT89C52单片机P1输入到系统

(2)由AT89C52单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PC口显示红、绿、黄灯的燃亮情况;由8255的PA、PB口显示每个灯的燃亮时间。

(3)AT89C52通过设置各个信号等的燃亮时间、通过AT89C52设置,黄、绿、红时间依次为3秒、60秒、3秒、80秒、3秒循环由AT89C52的P0口向8255的数据口输出。

(4)通过AT89C52单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。

(5)8255PA口用于输出时间的个位,PB口用于输出时间的十位,由747S07驱动芯片驱动;.而PC口用于输出各个灯的情况,它的末段连接双向晶闸管采用220V交流电压驱动。

(6)在交通控制程序中加入看门狗指令,当系统出现异常看门狗将发出溢出中断。

通过专用端口输入到MAX692看门狗芯片的WDI引脚引起RESET复位信号复位系统.

3芯片的选择与简介

3.1AT89C52芯片简介

3.1.1AT89C52单片机内部结构

  8051是AT89C52系列单片机的典型产品,AT89C52单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,见图3.1,现在说明如下:

图3.1总线结构

(1)中央处理器

  中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

 

(2)数据存储器(RAM)

   AT89C52内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

(3)存储器(ROM)

AT89C52共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

(4)定时/计数器(ROM)

AT89C52有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

(5)并行输入输出(I/O)口

AT89C52共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

(6)全双工串行口

AT89C52内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

(7)中断系统

AT89C52具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

(8)时钟电路

AT89C52内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但AT89C52单片机需外置振荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。

INTEL的AT89C52系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。

3.1.2AT89C52的引脚说明

AT89C52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

引脚如图3.2所示.

 

图3.2引脚图

RESET/Vpd复位信号复用脚,当AT89C52通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。

RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。

然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,AT89C52的初始态。

AT89C52的复位方式可以是自动复位,也可以是手动复位,见图3.3。

此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

图3.3复位电路

ALE/

当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。

而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

如果单片机是EPROM,在编程其间,

将用于输入编程脉冲。

当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

EA/Vpp程序存储器的内外部选通线,AT89C52单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。

如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

显然,对内部无程序存储器的AT89C52,EA端必须接地。

在编程时,EA/Vpp脚还需加上21V的编程电压。

3.28255芯片简介

8255可编程并行接口芯片简介:

8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7~PA0、PB7~PB0和PC7~PC0。

其内部还有一个控制寄存器,即控制口。

通常A口、B口作为输入输出的数据端口。

C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。

它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。

8255可编程并行接口芯片方式控制字格式说明:

8255有两种控制命令字;一个是方式选择控制字;另一个是C口按位置位/复位控制字。

其中C口按位置位/复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。

方式控制字格式说明如表3.1:

表3.18255方式控制字

D7

D6

D5

D4

D3

D2

D1

D0

D7:

设定工作方式标志,1有效。

D6、D5:

A口方式选

00—方式0

01—方式1

1×—方式2

D4:

A口功能(1=输入,0=输出)

D3:

C口高4位功能(1=输入,0=输出)

D2:

B口方式选择(0=方式0,1=方式1)

D1:

B口功能(1=输入,0=输出)

D0:

C口低4位功能(1=输入,0=输出)

8255可编程并行接口芯片工作方式说明:

方式0:

基本输入/输出方式。

适用于三个端口中的李何一个。

每一个端口都可以用作输入或输出。

输出可被锁存,输入不能锁存。

方式1:

选通输入/输出方式。

这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。

方式2:

双向总线方式。

只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。

3.3数码管

采用共阴极的七段数码管,如图3.4所示.

图3.4数码管电路

VT为双向晶闸管,当门极为高电平时晶闸管导通,该支路指示灯亮;当门极为低电平时晶闸管关断,该支路指示灯灭。

4控制器的软件设计

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

4.1计数器初值计算

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。

他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。

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

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

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

相应程序代码:

(1)主程序 

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

 初值:

    TC=M-T/T计数=216-50ms/1us=15536=3CBOH

ORG1000H

START:

MOVTMOD,#01H;令T0为定时器方式1

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

MOVTL0,#0B0H  ;

MOVIE,   #82H;开T0中断

SEBTTR0       ;启动T0计数器

MOV R0,  #14H   ;软件计数器赋初值

OP:

SJMP$        ;等待中断

(2)中断服务子程序

     ORG000BH

     AJMP  BRT0

     ORG00BH

 BRT0:

DJNZR0,NEXT

     AJMPTIME;跳转到时间及信号灯显示子程序

DJNZ:

MOV R0,#14H ;恢复R0值

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

MOVTL0,#0B0H  ;

MOVIE,   #82H

      RETI

END

4.2软件延时

AT89C52的工作频率为2-12MHZ,我们选用的AT89C52单片机的工作频率为6MHZ。

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

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

具体的延时程序:

DELAY:

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

DE2:

LCALLDELAY1

DJNZR4,DE2

RET

DELAY1:

MOVR6,#0延时125ms子程序

MOVR5,#0

DE1:

DJNZR5,$

DJNZR6,DE1

RET

MOVRN,#DATA

所以此指令的执行时间为2ms

DELAY1为一个双重循坏循环次数为256*256=65536所以延时时间=65536*2=131072us约为125us,DELAYR4设置的初值为8主延时程序循环8次,所以125us*8=1秒,由于单片机的运行速度很快其它的指令执行时间可以忽略不计。

4.3AT89C52并行口的扩展

AT89C52虽然有4个8位I/O端口,但真正能提供借用的只有P1口,因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。

因此,AT89C52通常需要扩展。

由于我们用外输出时间时,时间的个位、十位、信号灯的显示都要用到一个I/O端口,显然AT89C52的端口是不够,需要扩展。

扩展的方法有两种:

(1)借用外部RAM地址来扩展I/O端口;

(2)采用I/O接口来扩充。

本设计中采用8255并行接口信片来扩展I/O端口。

4.3.1显示原理

当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。

4.3.28255输出信号的放大

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

4.3.38255输出信号与信号灯的连接

LED灯的显示原理:

通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如SP,g,f,e,d,c,b,a管脚上加上7FH所以 SP为0伏,不亮其余为TTL高电平,全亮则显示为8,采用共阴级连接,见表4.1所示.

 

表4.1驱动代码表

显示数值

dopgfedcba

驱动代码(16进制)

0

00111111

3FH

1

00000110

06H

2

01011011

5BH

3

01001111

4FH

4

01100110

66H

5

01101100

6DH

6

01111100

7DH

7

00000111

07H

8

01111111

7FH

4.3.48255与AT89C52的连接

用AT89C52的P0口的p0.7连接8255的片选信号cs我们用AT89C52的地址采用全译码方式,当p0.7=0时片选有效,其它无效,p0.1p0.1用于选择8255端口

P0.7p0.6p0.5p0.4p0.3p0.2P0.1P0.0

A7A6A5A4A3A2A1A0

1XXXXX0000H为8255的PA口

1XXXXX0101H为8255的PB口

1XXXXX1002H为8255的PC口

1XXXXX1103H为8255的控制口

由于AT89C52是分时对8255和储存器进行访问所以AT89C52的P0口不会发生冲突

5程序设计

5.1流程图

R4存放黄灯时间303H(此时间可以动态设定)

R5存放红灯时间603CH

R6存放绿灯时间8050H

PC0显示黄灯信号

PC1显示红灯信号

PC2显示黄灯信号

8825工作于方式0

8255PA、PB、PC口输出PC控制字为10000000B(80H)

主程序如图5.1所示

图5.1主程序流程图

图5.2程序流程图

5.2程序清单

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR1,#03H初始化8255

MOVA,#80H

MOVX@R1,A

 

AGAIN:

MOVP3,#80H设置初值

MOVA,P3

JBACC.7,NEXT0

AGAIN1:

MOVP3,#40H

MOVA,P3

JBACC.6,RED

MOVP3,#0FH

MOVA,P3

ANLA,#0FH

MOVR3,A

AJMPAGAIN1

RED:

MOVP3,#0FH

MOVA,P3

ANLA,#0FH

MOVR2,A

AJMPAGAIN

NEXT0:

MOVR1,#03H

NEXT1:

MOVDPTR,#TAB显示黄灯个位

MOVA,R1

MOVCA,@A+DPTR

MOVR1,#00H

MOVX@R1,A

MOVR1,#O

MOVDPTR,#TAB显示黄灯十位

MOVA,R0

MOVCA,@A+DPTR

MOVR1,#01H

MOVX@R1,A

MOVDPTR,#0C62H显示黄灯信号

MOVA,#00H

LCALL0F4E0H

ACALLDELAY延时1秒

DJNZR0,NEXT1

MOVA,R3

MOVR0,A

NEXT2:

MOVDPTR,#TAB显示红灯个位

MOVA,R0

MOVCA,@A+DPTR

MOVR1,#00H

MOVX@R1,A

MOVDPTR,#TAB显示红灯十位

MOVA,R0

MOVCA,@A+DPTR

MOVR1,#01H

MOVA,R0

MOVX@R1,R0

MOVR1,#02H显示红灯信号

MOVA,#02H

MOVX@R1,A

ACALLDELAY延时1秒

DJNZR0,NEXT2

MOVA,R2

MOVR0,A

NEXT3:

MOVDPTR,#TAB显示绿灯个位

MOVA,R0

MOVCA,@A+DPTR

M

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

当前位置:首页 > 高中教育 > 小学教育

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

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