单片机课程设计交通灯.docx

上传人:b****5 文档编号:6477613 上传时间:2023-01-06 格式:DOCX 页数:9 大小:69.66KB
下载 相关 举报
单片机课程设计交通灯.docx_第1页
第1页 / 共9页
单片机课程设计交通灯.docx_第2页
第2页 / 共9页
单片机课程设计交通灯.docx_第3页
第3页 / 共9页
单片机课程设计交通灯.docx_第4页
第4页 / 共9页
单片机课程设计交通灯.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

单片机课程设计交通灯.docx

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

单片机课程设计交通灯.docx

单片机课程设计交通灯

 

单片机应用系统设计报告

 

设计题目:

交通灯控制系统

专业班级:

电信0801班

学生姓名:

陈琛08090103

任晓峰08090107

指导教师:

王先春

设计时间:

2011年06月6日--17日

 

1、主要功能和作用

通过用80C51芯片写入程序,实现十字路口交通灯通行功能,模拟路口处得红绿灯状态转换,达到保持车辆顺畅通行无阻,禁止路口处车辆阻塞,疏导交通的目的。

2、主要性能指标

按照时间控制原则,利用并行接口8255,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。

3、设计方案

通过分析可以知道,采用单片机控制模块提供电源,该方案的优点是系统简明扼要,节约成本,缺点是输出功率不高,但是我们主要是通过课程设计模拟十字路口交通灯状态转换模拟,所以不必考虑这点。

对于路灯方面,我们采用红黄绿三种颜色的LED显示灯,这样相对比较容易,只用控制芯片输出信号的高低电平即可实现要求。

通过80C51芯片连接74ls240和8255可以使该功能电路更加精简和优化。

我们所要设计的交通信号控制电路要能够适应于有一条干道和一条支干道的汇合点形成的十字路口。

能够做到主、支的红绿闪亮的时间不完全相同,根据干道车流量可以设定。

在路灯垂直两个方向红绿灯状态变化的过程中能够用黄灯进行过渡。

使得行驶中的车辆有足够的时间停下和准备通行。

要求红绿灯通行时间为30秒,黄灯过渡时间为3S,由此南北方向,东西方向,周而复始,保证交通正常通行。

4、工作原理

系统工作原理

(1)通过程序定义PORTC交通灯初始化状态为0XFF,信号通过74LS373地址锁存并行输入,8255输出端口经过非门反向使12个灯初始化全为熄灭状态。

通过8051单片机P2.0输入到系统。

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

(3)8051通过设置各个信号等的燃亮时间,红绿灯和黄灯时间分别为30秒、3秒循环由8051的P0口向8255的数据口输出。

(4)通过8051单片机的WR和RD来控制系统读写信号。

通过ALE控制地址锁存信号。

(5)绿灯时间倒计时完毕,重新循环。

工作原理图

5、芯片选择与简介

MCS-51单片机内部结构

8051是MCS-51系列单片机的典型产品,8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

MCS-51的引脚说明

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

现在我们对这些引脚的功能加以说明:

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

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

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

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

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

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

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

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

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

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

方式控制字格式说明如表2-1:

表2-1

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条线用作通讯联络信号和中断请求信号。

6、系统设计

接口电路设计

将8051芯片和74LS373芯片、8255A芯片的数据端口D0-D7用总线编号连接,8051芯片ALE端口和74LS373芯片地址锁存端口连接,RD和WR端口、P2.0连接8255A芯片读写端口和片选信号端口,8255A芯片A0、A1控制工作方式,然后通过8255芯片PC输出端口输出信号,接非门反向变成高平信号然后与交通灯控制LED显示电路连接。

为了简化电路图,本部分采用数据总线以及编号连接方式。

PC0、PC3控制红色LED,PC1、PC4控制黄色LED,PC2、PC5控制绿色LED,8255A芯片控制字为0X80,设定模式为10000000,工作方式为00,方式0,A、B、C口皆为输出端口,且输出可被所存。

程序原理设计

#include;加载一头文件

#definePORTCXBYTE[0Xfefe];定义地址入口空间

#defineCONTROLXBYTE[0Xfeff];定义控制字

voidDELAYLONG(void);;函数声明,红绿灯通行时间调用

voidDELAYSHORT(void);;函数声明,黄灯闪烁时间调用函数

voidmain(void)

{

CONTROL=0x80;;80H放入地址0Xfeff中,定义控制字

PORTC=0XFF;;将FF放入地址0Xfefe中,初始化

while(l);无限循环

{

PORTC=0Xde;;将de放入地址0Xfefe中,11011110

DELAYLONG();;调用DELAYLONG函数

PORTC=0Xee;;将Ee放入地址0Xfefe中

DELAYSHORT();;调用DELAYSHORT函数

PORTC=0Xfe;

DELAYSHORT();

PORTC=0Xee;

DELAYSHORT();

PORTC=0Xfe;

DELAYSHORT();

PORTC=0Xee;

DELAYSHORT();

PORTC=0Xfe;

DELAYSHORT();

PORTC=0Xee;

DELAYSHORT();

PORTC=0Xfe;

DELAYSHORT();

PORTC=0Xee;

DELAYSHORT();

PORTC=0Xfe;

DELAYSHORT();

PORTC=0Xee;

DELAYSHORT();

PORTC=0Xfe;

DELAYSHORT();

 

PORTC=0Xf3;;将11110011放入0Xfefe中

DELAYLONG();;调用DELAYLONG函数

PORTC=0Xf5;

DELAYSHORT();

PORTC=0Xf7;

DELAYSHORT();

PORTC=0Xf5;

DELAYSHORT();

PORTC=0Xf7;

DELAYSHORT();

PORTC=0Xf5;

DELAYSHORT();

PORTC=0Xf7;

DELAYSHORT();

PORTC=0Xf5;

DELAYSHORT();

PORTC=0Xf7;

DELAYSHORT();

PORTC=0Xf5;

DELAYSHORT();

PORTC=0Xf7;

DELAYSHORT();

PORTC=0Xf5;

DELAYSHORT();

PORTC=0Xf7;

DELAYSHORT();

}

}

voidDELAYLONG(void);三次循环,定义红绿灯时间函数

{

unsignedi,j,k;;定义I,J,K三变量

for(i=0;i<20;i++);for循环函数

for(j=0;j<40;j++)

for(k=0;<2500;k++);

}

voidDELAYSHORT(void);;循坏30000次,设置时间3S

{

unsignedi;

for(i=0;i<30000;i++);

}

7、程序流程图

8、时间分析与计算

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

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

因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:

TC=M-C

式中,M为计数器摸值,该值和计数器工作方式有关。

在方式0时M为213;在方式1时M的值为216;在方式2和3为28。

计算公式

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

T计数是单片机时钟周期TCLK的12倍;TC为定时初值,如单片机的主脉冲频率为TCLK12MKZ,经过12分频。

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

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

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

9、设计总结

本系统的实现,根本上得益于王老师教授的各方面知识,因为只有拥有老师教授的这些知识的基础上,我们才能进一步思考和摸索,才会有本课程设计的成功,所以,在此向王老师表示感谢。

通过对此次交通灯控制系统的课程设计,使得我们自身对于单片机方面的知识有了比较深刻的巩固和掌握,很大程度上提升了自身对于问题的独立思考和解决问题的能力,同时,通过该次课程设计的报告书写,掌握了写好一片设计论文的最基本的格式要求和步骤,为将来毕业做毕业论文打好了基础。

相信,有了此次这样的经历和经验,在以后的日子里,对于问题处理和论文格式要求灯我们会处理的更加完善,做的更加的好和完美。

关于这次我们做的交通灯模拟设计,虽然比不上其他基于单片机系统的复杂和精深,但其作为较早出现在单片机应用领域的项目,在如今也是较普遍和广泛的与单片机相结合而实际的应用项目之一,同时,交通灯控制系统具有较强的实用性和操作简单,扩展功能强等特点,因此,对于单片机学习者巩固自身所学知识和提高实际动手实践应用能力是较为适合的选择。

本课程设计在完成后经过protues软件模拟则是,基本上可以实现预先设想的既定目标,其效果为:

东西南北四个方向的各三个LED灯,通过四种状态的转换,状态1,南北绿灯亮,东西红灯亮,持续时间30S;状态2,东西红灯亮,南北绿灯灭,南北黄灯闪烁3S;状态3,南北红灯亮,东西绿灯亮,时间持续30S;状态4,东西绿灯灭,东西黄灯闪烁3S,6次,南北红灯亮。

由此周而复始循环。

通过此次课程设计,我对微机原理中8051芯片的工作原理和端口功能作用以及8255可编程并行通信接口芯片有了更深入的认识和理解,对于这类型的课程设计也有了更深的动手实践能力和领会。

这次课程设计虽然已经基本上实现预期的目标,但针对于复杂的交通情况,还可以继续在现有的基础上进一步的进行完善和功能扩展,例如:

可以根据车流量的情况设定红绿灯的初值,以减免车辆不必要的等待时间,进一步提高道路的通行效率。

还可以利用8255的PA、PB输出端口显示时间。

我们针对本交通灯控制系统应用于实际复杂的交通情况,在本实验的基础上进一步设想,认为可以通过对在绿灯时通过路口的车流量进行粗略的统计计算,进而手工或自动设置之后的红绿灯亮灭时间,避免车辆不必要的等待时间,以实现提高道路通行效率的效果。

由于临近期末,其他课程也很多,也有课程设计,以及自身能力不足等因素的局限,我们对此还只是一个设想,还暂时不能去实现,但是我们一定会抽假期时间,努力钻研,实事求是,抱着对单片机的学习更进一步的思想态度上好好去实践。

通过这次课程设计,我们掌握了设计一个简单的交通灯控制电路的基本方法,增强了寻找问题,解决问题的能力。

培养了我的设计思维,此次课程设计的成功不仅帮助我更好地掌握书本知识,尤其重要的是增强了我的自信,培养了我们独立思考的能力!

最后,感谢学校为我们提供这次设计机会和老师悉心的指导。

10、

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

当前位置:首页 > 工程科技 > 城乡园林规划

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

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