单片机控制的交通灯控制系统设计.docx

上传人:b****2 文档编号:17205187 上传时间:2023-04-24 格式:DOCX 页数:40 大小:165.95KB
下载 相关 举报
单片机控制的交通灯控制系统设计.docx_第1页
第1页 / 共40页
单片机控制的交通灯控制系统设计.docx_第2页
第2页 / 共40页
单片机控制的交通灯控制系统设计.docx_第3页
第3页 / 共40页
单片机控制的交通灯控制系统设计.docx_第4页
第4页 / 共40页
单片机控制的交通灯控制系统设计.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

单片机控制的交通灯控制系统设计.docx

《单片机控制的交通灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《单片机控制的交通灯控制系统设计.docx(40页珍藏版)》请在冰豆网上搜索。

单片机控制的交通灯控制系统设计.docx

单片机控制的交通灯控制系统设计

成绩评定表

学生姓名

魏玉柱

班级学号

1303070138

专业

电子信息科学与技术

课程设计题目

基于单片机的交通灯

 

 

组长签字:

成绩

 

日期

2015年1月9日

课程设计任务书

学院

信息科学与工程学院

专业

电子信息科学与技术

学生姓名

魏玉柱

班级学号

1303070138

课程设计题目

基于单片机的交通灯

实践教学要求与任务:

系统功能

 

1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒,时间可设置修改。

2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;

3)黄灯亮时,要求每秒闪亮一次。

4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

5)一道有车而另一道无车(实验时用开关K1和K3控制),交通灯控制系统能立即让有车道放行。

6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟。

工作计划与进度安排

讲解设计内容及要求2015年01月08日(1-4节)

编写程序代码2015年01月08日(5-8节)

程序测试及调试2015年01月09日(1-4节)

答辩验收2015年01月09日(5-8节)

指导教师:

2015年1月日

专业负责人:

2015年1月日

学院教学副院长:

2015年1月日

 

摘要

本设计是关于单片机控制的交通灯模拟系统的设计。

主要内容有交通灯模拟系统设计方案,主要功能,各功能模块的介绍,电路设计,硬件部分设计,软件部分设计,模拟系统的仿真调试,设计方法以及课程设计的心得体会等等。

该设计中用光二极管来模拟信号灯,紧急车的优先通过请求信号由外部中断技术来模拟。

要求使AT89S52定时/计数器0作为定时器,要求对通行时间进行倒计时,从P0口输出,在LED上显示并进行递减,以此来实现十字路口交通灯的指示功能。

为了节省元件,复位部分采用加电直接复位。

根据交通灯系统所需要实现的功能要求,先画出中断程序部分的流程图和主程序流程图,然后根据流程图写出其子程序。

从而通过模拟系统的仿真来实现该设计所要求的功能。

本系统由单片机系统、键盘、LED显示、交通灯演示系统组成。

最后,系统要求实现如下的交通灯的功能:

1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒,时间可设置修改。

2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;

3)黄灯亮时,要求每秒闪亮一次。

4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

5)一道有车而另一道无车(实验时用开关K1和K3控制),交通灯控制系统能立即让有车道放行。

6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟。

 

关键字单片机交通灯系统LED显示

1概述

1.1引言

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

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

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

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

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

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

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

电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。

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

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

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

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

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

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

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

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

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

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

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

1.2设计的思想

该设计在熟练掌握单片机及其仿真系统的使用方法基础上,综合应用单片机原理、微机原理、微机接口技术等课程方面的知识,设计一个采用AT89S52单片机控制的交通灯控制电路。

 

上电复

位电路

 

 

89S52

数据信号

 

LED

数码管

段码

调时

电路

振荡电路

片选

交通灯

图——1

根据设计功能及要求,我们可得系统的原理框图如图所示。

根据系统的原理框图,分别分析各部分电路的元器件的功能以及选择合适的元件。

具体设计思路如下:

收集并整理资料,硬件设计,软件设计,Proteus仿真,设计体会与总结。

.1.3设计满足的基本功能

1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒,时间可设置修改。

2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;

3)黄灯亮时,要求每秒闪亮一次。

4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。

5)一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。

6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2开关模拟。

 

2系统总体方案及硬件设计

2.1系统方案的确定

交通灯在安全行车过程中起着十分重要的作用,现在交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯,加上一个倒计时的显示计时器来控制行车,对于一般情况下的安全行车、车辆分流发挥着作用,但根据实际行车过程中出现的情况,如何全面有效地利用交通灯指示交通情况,我们尝试用单片机来控制交通灯,在软、硬件方面采取一些改进措施,,使交通灯在控制中灵活而有效。

硬件系统是指构成单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。

单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。

该交通灯拟系统的硬件部分主要由键盘、显示和运算部分组成。

按照题目的设计要求,本课题需要使用LED数码管显示和扩展键盘。

在该交通灯系统的设计中采用AT89s52单片机。

2.2显示部分电路设计

LED显示器有两中工作方式:

静态显示方式和动态显示方式。

静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。

送入一次字型码显示自行一直保持,直到送入新字型码为止。

这种方法的优点是占用CPU时间少,显示便于监测和控制。

缺点是硬件电路比较复杂,成本较高。

各数码管在显示过程中持续得到显示信号,与各数码管接口的I/O口是专用的。

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。

这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

各数码管在显示过程中轮流得到显示信号,与各数码管接口的I/O口是共用的。

该设计采用如下所示的数码管,分别显示南北和东西灯的剩余时间。

片选部分和数码段显示部分,分别接单片机管脚的P1口和P0口,具体的共阴数码管下见图——2。

其中,A到G为码段控制端口,1,2为片选端口。

 

图——2

2.3时钟部分电路设计

时钟电路用于产生MCS-51单片机工作时所必须的时钟控制信号。

其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。

在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。

本设计采用12MHz晶振和两个30Pf瓷片电容,他们构成一个稳定的自激振荡器。

该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。

为单片机提供标准时钟。

其中两个瓷片电容起微调作用。

如图——3所示:

 

图——3时钟电路

2.4复位部分电路设计

复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

复位电路通常采用上电自动复位和按钮复位两种方式。

该设计采用加电直接复位,复位电容采用22uF,电阻1000欧,为了节省元件,没有采用上电加按键模式。

加电瞬间,RES管脚为高电平。

通过电阻回路放电,使电压逐渐降为零,从而实现了复位功能。

其连接图如下图——4所示:

图——4复位电路

 

3软件设计

3.1应用系统软件设计要求

在进行应用系统的总体设计时,软件设计与硬件设计应统一考虑,相结合进行。

当系统的电路设计定型以后,软件的任务也就明确了。

一般来说,软件的功能可分为两大类。

一类是执行软件,它能完成各种实质性的功能,如测量计算、显示、打印、输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织协调角色。

我们设计时,应从以下几个方面考虑:

1)根据软件功能的要求,将系统软件分为若干个相对独立的部分。

设计出合理的软件总体结构,使其清晰、简捷、流程合理。

2)各功能程序实行模块化、子程序化。

3)在编写应用软件之前,应绘制出程序流程图。

4)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等。

本设计采用了模块化设计,主要由主程序模块、功能实现模块两大部分模块组成。

3.2主程序模块的设计

主程序流程图如下图A所示:

该交通信号灯控制系统的四中工作状态(南北方向的交通灯为例):

(1)南北方向A车道红灯亮,东西方向B车道绿灯亮。

表示南北方向A车道上的车辆禁止通行,东西方向B车道允许通行。

绿灯亮足规定的时间隔时,控制器发出状态信号,转到下一工作状态。

   

(2)南北方向A车道红灯亮,东西方向B车道黄灯亮。

表示东西方向B车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,南北方向A车道禁止通行。

黄灯亮足规定时间间隔时,控制器发出状态转换信号,转到下一工作状态。

   (3)南北方向A车道绿灯亮,东西方向B车道红灯亮。

表示南北方向A车道允许通行,东西方向B车道上的车辆禁止通行,绿灯亮足规定的时间间隔时,控制器发出状态转换信号,转到下一工作状态。

   (4)南北方向A车道黄灯亮,东西方向B车道红灯亮。

表示东西方向B车道禁止通行,南北方向A车道上位过限停车线的车辆停止通行,已过停车线的车辆继续通行。

黄灯亮足规定的时间间隔时,控制器发出状态转换信号,系统又转换到第

(1)种工作状态。

控制灯程序流程图如图——5下:

 

置A道放行标志0—F0

A到放行时间送R4

A道有车?

A道亮绿灯,B道亮红灯

B道有车?

Y

N

开始

允许/int0中断

B道亮黄灯,A道亮红灯

延时0.5秒

A道亮黄灯,B道亮红灯

R1-1=0?

A道有车?

B到放行时间送R3

B道亮绿灯,A道亮红灯

延时0.5秒

延时0.5秒

置B道放行标志0—F0

延时0.5秒

B道有车?

R3-1=0?

Y

N

Y

Y

Y

N

图——5交通灯控制流程图

 

该设计的主程序中已经包含了显示模块的程序段,具体的主程序如下:

MAIN:

MOV25H,#30;

MOV26H,#20;

MOVSP,#40H;

CLRP3.0;

MOVTMOD,#66H;T0、T1都计数方式,工作模式2,启动方式TRi确定

MOVTL0,#255;

MOVTH0,#0;

MOVTL1,#255;

MOVTH1,#0;

SETBIT0;

SETBIT1;

MOVIE,#8FH;开中断

SETBTR0;T0开始计数

SETBTR1;T1开始计数

;.......南北绿灯东西红灯.................

NBLD:

CLRP3.0;

MOVR1,25H;南北通行时间30秒(25h)=30NBLD即东西绿灯)

NBLD1:

MOVP2,#1EH;点亮南北绿灯东西红灯

MOV20H,R1;为南北方向显示时间做准备

MOVA,R1;

ADDA,#5;

MOV21H,A;为东西方向显示时间做准备

LCALLDISP1;显示通行所剩时间,其中有0.5秒延时

LCALLDISP1;

DJNZR1,NBLD1;判断30秒是否已完,若未完则从新显示、延时

;.......南北黄灯闪东西红灯..............

 

ShanHD:

MOVR2,#5;黄灯闪亮5秒

HD:

MOVP2,#1DH;点亮黄灯

MOV22H,R2;

LCALLDISP2;黄灯闪亮剩时显示,其中延时0.5秒

MOVP2,#1FH;熄灭黄灯

LCALLDISP2;

DJNZR2,HD;

;......南北红灯东西绿灯.............

 

DXLD:

CLRP3.0;

MOVR3,26H;东西通行20秒

DXLD1:

MOVP2,#33H;点亮南北红灯东西绿灯

MOV24H,R3;

MOVA,R3;

ADDA,#5;

MOV23H,A;

LCALLDISP3;

LCALLDISP3;

DJNZR3,DXLD1;判断20秒是否已完

;.......南北红灯东西黄灯闪.........................................

ShanHD1:

MOVR2,#5;转入黄灯闪亮5秒

HD1:

MOV22H,R2;

MOVP2,#2BH;点亮南北红灯东西黄灯

LCALLDISP2;

MOVP2,#3BH;点亮南北红灯关闭东西黄灯

LCALLDISP2;

DJNZR2,HD1;判断5秒是否到,若未到继续闪灭东西黄灯

AJMPNBLD

;.......特种车辆通过..................................

Tezhong:

MOVP2,#1BH;点亮东西南北红灯

SETBP3.0;

MOVR4,#15;特殊车辆通过时间15秒

QHD:

MOV27H,R4;

LCALLDISP4;

DJNZR4,QHD;判断15秒是否到,若不到继续显示时间

CLRp3.0;

AJMPNBLD;

@@@@@@@@@主程序到此完@@@@@@@@@

 

;......延时程序..........

 

DELAY:

ACALLDELAY1;10ms延时

ACALLDELAY1

RET

DELAY1:

MOVR6,#50;5ms延时,(5ms=50*50*2us)

DE6:

MOVR0,#50

DE7:

DJNZR0,DE7

DJNZR6,DE6

RET

;.....南北通行的时间显示子程序..(其中有0.5秒延时)........

 

DISP1:

MOVP0,#0;

MOVR7,#25;

RP1:

MOVA,20H;

MOVDPTR,#TAB;

MOVB,#10

DIVAB;

MOVCA,@A+DPTR;

MOVP1,#00001110B;

MOVP0,A;

LCALLDELAY1;

MOVA,B;

MOVCA,@A+DPTR;

MOVP1,#00001101B;

MOVP0,A;

LCALLDELAY1;

MOVA,21H;

MOVDPTR,#TAB;

MOVB,#10

DIVAB;

MOVCA,@A+DPTR;

MOVP1,#00001011B;

MOVP0,A;

LCALLDELAY1;

MOVA,B;

MOVCA,@A+DPTR;

MOVP1,#00000111B;

MOVP0,A;

LCALLDELAY1

DJNZR7,RP1;

RET

;................黄灯的时间显示子程序...................

 

DISP2:

MOVP0,#0;

MOVR7,#25;

RP2:

MOVA,22H;

MOVDPTR,#TAB;

MOVB,#10

DIVAB;

MOVCA,@A+DPTR;

MOVP1,#00001010B;

MOVP0,A;

LCALLDELAY;

MOVP1,#00000101B;

MOVA,B;

MOVCA,@A+DPTR;

MOVP0,A;

LCALLDELAY;

DJNZR7,RP2

RET

;..............东西通行的时间显示子程序.............

DISP3:

MOVP0,#0;

MOVR7,#25;

RP3:

MOVA,23H;

MOVDPTR,#TAB;

MOVB,#10

DIVAB;

MOVCA,@A+DPTR;

MOVP1,#00001110B;

MOVP0,A;

LCALLDELAY1;

MOVA,B;

MOVCA,@A+DPTR;

MOVP1,#00001101B;

MOVP0,A;

LCALLDELAY1;

MOVA,24H;

MOVB,#10

DIVAB;

MOVCA,@A+DPTR;

MOVP1,#00001011B;

MOVP0,A;

LCALLDELAY1;

MOVA,B

MOVCA,@A+DPTR

MOVP1,#00000111B;

MOVP0,A;

LCALLDELAY1

DJNZR7,RP3

RET

3.3功能实现模块的设计

功能实现模块主要由中断处理子程序,键盘处理子程序和显示子程序等组成。

下面仅对INT0中断服务程序部分进行简单介绍。

P3.4与K2连接,K2与地连接。

按下K2,东西南北四个方向全红,也就是说,东西南北四个通道都不能通车,这时可对南北的总时间进行调节。

K1与AT89S52的p3.3管脚相连。

在按下K2的前提下,按下K1,此时显示的是东西的总时间,并可对其调节。

其中中断服务程序流程图下图——6所示:

 

A道亮黄灯,B道亮红灯

B道亮绿灯,A道亮红灯

A道亮绿灯,B道亮红灯

开始

延时0.5秒

A道亮黄灯,B道亮红灯

B道亮黄灯,A道亮红灯

紧急车通过

A道放行

返回

Y

N

Y

N

N

原道A放行

图——6交通灯控制中的中断控制流程

其外部中断服务程序具体程序块如下:

INT0:

MOVIE,#0;

MOVA,P2;

JNBAcc.3,DXSJ;P2.3,DXSJ;

JNBAcc.0,NBSJ;P2.0,NBSJ;

POP28H;

POP28H;

MOVDPTR,#NBLD;

PUSHDPL;

PUSHDPH;

EXIT:

MOVIE,#8FH;恢复开中断

RETI;

;-----南北通行时间设定-----

NBSJ:

POP28H;

POP28H;

MOVDPTR,#NBLD;

PUSHDPL;

PUSHDPH;

XSSM1:

MOVA,25H;

MOV20H,A;

ADDA,#5;

MOV21H,A;

LCALLDISP1;显示时间

LCALLDELAY1

MOVA,P3

JNBP3.2,EXIT;

JNBP3.3,JX;

JNBP3.5,JX1;

AJMPXSSM1;

JX:

MOVA,25H;

ADDA,#2;

MOV25H,A;

MOV20H,A;

ADDA,#5;

MOV21H,A;

LCALLDISP1;

AJMPXSSM1;

JX1:

MOVA,25H;

SUBBA,#2;

MOV25H,A;

MOV20H,A;

ADDA,#5;

MOV21H,A;

LCALLDISP1;

AJMPXSSM1;

;----东西通行时间设定------

DXSJ:

POP28H;

POP28H;

MOVDPTR,#DXLD;

PUSHDPL;

PUSHDPH;

XSSM2:

MOVA,26H;

MOV24H,A;

ADDA,#5;

MOV23H,A;

LCALLDISP3;

MOVA,P3

JNBP3.2,EXIT1;

JNBP3.3,JX2;

JNBP3.5,JX3;

AJMPXSSM2;

EXIT1:

LJMPEXIT;

JX2:

MOVA,26H;

ADDA,#2;

MOV26H,A;

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

当前位置:首页 > 解决方案 > 学习计划

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

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