十字路口道路交通信号灯控制毕业的设计doc.docx

上传人:b****7 文档编号:8756593 上传时间:2023-02-01 格式:DOCX 页数:23 大小:27.23KB
下载 相关 举报
十字路口道路交通信号灯控制毕业的设计doc.docx_第1页
第1页 / 共23页
十字路口道路交通信号灯控制毕业的设计doc.docx_第2页
第2页 / 共23页
十字路口道路交通信号灯控制毕业的设计doc.docx_第3页
第3页 / 共23页
十字路口道路交通信号灯控制毕业的设计doc.docx_第4页
第4页 / 共23页
十字路口道路交通信号灯控制毕业的设计doc.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

十字路口道路交通信号灯控制毕业的设计doc.docx

《十字路口道路交通信号灯控制毕业的设计doc.docx》由会员分享,可在线阅读,更多相关《十字路口道路交通信号灯控制毕业的设计doc.docx(23页珍藏版)》请在冰豆网上搜索。

十字路口道路交通信号灯控制毕业的设计doc.docx

十字路口道路交通信号灯控制毕业的设计doc

精品文档

 

重庆xxx大学

 

毕业设计

 

系部名称:

专业班级:

课题名称:

十字路口道路交通信号灯控制

指导教师:

学生姓名:

学号:

 

二O一二年十一月

 

随意编辑

精品文档

 

摘要

红绿灯控制是智能交通系统的一个重要部分。

在高度科技化的今天,交通系统也在自动化上不断地更新、发展和完善,道路更宽敞,路口更复杂。

交通灯出现了更多的变化,从最早的红绿灯,发展到现今的箭头指向红绿灯,人行红绿灯等。

这些改变都只有一个目的,为使道路更通畅,更安全。

随着社会的不断进步,传统的交通灯的缺陷也日益出现,其中设计过于死板,达不到道路的最大通行效率是最明显的问题,红绿灯交替变换时间过于程式化。

基于传统交通灯控制系统设计过于死板,红绿灯交替是间过于程式化的缺点,智能交通灯控制系统的设计就更显示出了它的研究意义,它能根据道路交通拥护,交叉路口经常出现拥堵的情况。

利用单片机控制技术提出了软件和硬件设计方案,能够实现道路的最大通行效率。

本文所设计的单片机控制交通灯系统是基于十字路口交通信号灯控制,并对放行和禁行时间进行倒计时显示(秒)。

单片机即单片微型计算机。

由RAM,ROM,CPU构成,其集定时、计数和多种接口与一体的微控制器。

它体积小、成本低、功能强,广泛的应用于只能产业和工业自动化上。

而51系列单片机是各类单片机中最为典型和富有代表性的一种。

单片机的十字路口道路交通信号灯控制器设计,利用单片机的定时器产

生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用4只LED数码管显示器显示十字路口南北、东西两个方向的通行时间(绿灯点亮的时间)、暂缓通行时间(黄灯点亮的时间)、禁止通行时间(红灯点亮的时间)。

C语言是一种结构化的高级语言,以其优点是可读性好、移植容易的特

点被普遍应用于单片机编程。

本设计即使用C语言编程,使程序条理清晰、

功能扩展性好、实用性强。

 

关键词:

单片机红绿灯AT89C51Proteus仿真

 

随意编辑

精品文档

 

1概述1

1.1课题名称1

1.2设计要求1

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

2.1AT89S51单片机简介1

2.2AT89S51芯片内部结构简介2

2.3主要引脚功能4

2.4系统方框图6

2.5工作原理6

2.6电路原理图7

2.7单片机最小系统8

2.8时间显示电路8

2.9交通灯电路9

3软件设计10

3.1整体系统分析10

3.2通行方案设计10

3.2程序主体设计流程11

3.3子程序模块设计12

4Proteus软件仿真13

参考文献14

附录源程序代码15

设计体会20

 

随意编辑

精品文档

 

1概述

 

1.1课题名称

 

基于MCS-51单片机的十字路口道路交通信号灯控制器设计

 

1.2设计要求

 

1)信号灯受一个起动开关控制,当起动开关接通时,信号系统开始工作,且南北红灯亮,东西绿灯亮,反之则东西红灯亮,南北绿灯亮。

当起动开关断开时,所有信号灯都熄灭。

2)南北红灯亮,维持25S。

在南北红灯亮的同时东西绿灯也亮,并维

持20S。

到20S时,东西绿灯闪烁,闪烁3S后熄灭。

在东西绿灯熄灭时,东西黄灯亮,并维持2S。

到2S时,东西黄灯熄,东西红灯亮。

同时,南北红灯熄灭,南北绿灯亮。

3)东西红灯亮,维持30S。

南北绿灯亮,维持25S。

然后闪烁3S,熄灭。

同时南北黄灯亮,维持2S后熄灭,这时南北红灯亮,东西绿灯亮。

4)每个灯亮时,辅以电子秒表并倒计时。

如按前面描述,南北红灯亮

25秒并倒计时,最后3秒钟时闪烁,归零时即切换为绿灯并同时开始倒计时;

东西绿灯与南北红灯同时亮25秒并倒计时,20秒起闪烁3秒钟,然后再变

成黄色2秒钟。

5)周而复始

6)Proteus软件仿真

 

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

 

2.1AT89S51单片机简介

 

AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控

 

随意编辑

精品文档

 

制领域。

单片机以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、

尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。

如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。

 

2.2AT89S51芯片内部结构简介

 

8051单片机(其管脚图如图-1所

示)包含中央处理器(CPU)、程序存储

器(ROM)、数据存储器(RAM)、定时/

计数器、并行接口、串行接口和中断系

统等几大单元及数据总线、地址总线和

控制总线等三大总线,现在我们分别加

以说明:

1.中央处理器(CPU)

中央处理器(CPU)是整个单片机的

核心部件,是8

位数据宽度的处理器,

能处理8位二进制数据或代码,CPU负

责控制、指挥和调度整个单元系统协调

的工作,完成运算和控制输入输出功能

等操作。

(图-1)

 

2.数据存储器(RAM)

8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放

读写的数据,运算的中间结果或用户定义的字型表。

3.程序存储器(内部ROM):

程序存储器用于存放程序和固定不变的常数等。

通常采用只读存储器,

且其又多种类型,在89系列单片机中全部采用闪存。

AT89S51内部配置了

4KB闪存。

3.1.定时/计数器(ROM):

 

随意编辑

精品文档

 

定时/计数器用于实现定时和计数功能。

AT89S51共有2个16位定时/

计数器。

3.2.并行输入输出(I/O)口:

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

输。

每个口都由1个锁存器和一个驱动器组成。

它们主要用于实现与外部设

备中数据的并行输入与输出,有些I/O口还有其他功能。

4.全双工串行口:

A89S51内置一个全双工串行通信口,用于与其它设备间的串行数据传

送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

5.时钟电路:

时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。

6.中断系统:

中断系统的作用主要是对外部或内部的终端请求进行管理与处理。

AT89S51共有5个中断源:

2个外部中断,即/INT0(P3.2)和/INT1(P3.3);

3个片内中断,即定时器T0的溢出中断、定时器T1的溢出中断和串行口中

断。

 

随意编辑

精品文档

 

除去图中的存储电路和I/O部件,剩下的是CPU,它可以分为运算器和

控制器两部分。

运算器功能部件包括算术逻辑运算单元ALU、累加器ACC、

寄存器B、暂存寄存器TMP1、TMP2、程序状态字寄存器PSW等。

控制器功能部件包括程序计数器PC、指令寄存器IR、指令译码器ID、定时控制逻辑电路CU、数据指针寄存器DPTR、堆栈指针SP及时钟电路等。

7.定时/计数器

8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断

用于控制程序转向。

 

2.3主要引脚功能

 

·P0口:

P0口是一组8位漏极开路型双向I/0口,也即地址/数据总

线复用口。

作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

·P1口:

Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级

可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“l”,通过内部

的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,某个引

脚被外部信号拉低时会输出一个电流。

Flash编程和程序校验期间,Pl接收

低8位地址。

如下表1所示:

 

端口引脚第二功能:

 

P1.5MOSI(用于ISP编程)

P1.6MOSI(用于ISP编程)

P1.7MOSI(用于ISP编程)

表1

·P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出

缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,

通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,

因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数

 

随意编辑

精品文档

 

据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。

Flash编程或校验时,P2亦接收高位地址和其它控制信号。

·P3口:

P3口是一组带有内部上拉电阻的8位双向I/0口。

P3口输

出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低

的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表2所示:

 

端口引脚

第二功能:

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

P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

·RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。

DISRT0位缺省为RESET

输出高电平打开状态。

————

·ALEPROG/:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或

用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉

冲。

对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条M0VX和M0VC指令ALE才会被激

 

随意编辑

精品文档

 

活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

————————

·PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当

————

AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN

————

有效,即输出两个脉冲。

当访问外部数据存储器,没有两次有效的PSEN信号。

 

2.4系统方框图

 

电源

 

交通灯时间

显示部分

 

时钟电路AT89C52

 

交通灯

 

2.5工作原理

 

由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行

 

20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单

 

片机的P1口控制各种信号灯的燃亮与熄灭。

 

东西方向

EW

南北方向NS

 

GYRGYR

 

随意编辑

 

系统控制

精品文档

 

2.6电路原理图

 

随意编辑

精品文档

 

(图-2)

 

2.7单片机最小系统

 

(图-3)

单片机最小系统以80C52为核心,外加时钟和复位电路,电路结构简单,

抗干扰能力强,成本相对较低,非常符合本设计的所有要求。

时钟电路在单片

机的外部通过XTAL1,XTAL2这两个引脚跨接晶体振荡器和微调电容,构成

稳定的自激振荡器。

本系统采用的为12MHz的晶振,一个机器周期为1us,

C1,C2为30pF。

复位电路分为上电自动复位和按键手动复位,RST引脚是复位信号的输入端,复位信号是高电平有效.上电自动复位通过电容C3和电阻R1来实现,按键手动复位是图中复位键来实现的。

 

2.8时间显示电路

 

随意编辑

精品文档

 

(图-4)

倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”

和“通过”两者间作出合适的选择。

驾驶员和行人普遍都愿意选择有倒计时

显示的信号控制方式,并且认为有倒计时显示的路口更安全。

倒计时显示是

用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可

以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者

间作出合适的选择。

因为系统要求南北和东西方向的信号灯时间不一样,所以就利用单片机

的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的倒计时间(如图-4所示)。

数码管使用共阴数码管,需要接上470Ω上拉电阻以提供足够大的电流来驱动数码管,数码管的每段的电流是约10毫安。

 

2.9交通灯电路

 

本设计利用单片机的p1口来驱动和控制各种信号灯的燃亮和燃亮时间,在实际中,交通灯的信号灯需要用高电压控制,在这里我们只是模拟一下它的控制信号,所以我们就只用单片机的信号引脚直接来控制发光二极管(如图-5所示)

 

随意编辑

精品文档

 

(图-5)

 

3软件设计

 

3.1整体系统分析

 

总体流程图(实现各种状态间的转换):

 

南北红灯

南北红灯亮

南北红灯

东西绿灯

东西绿灯闪

东西黄灯

 

南北黄灯

南北绿灯闪

南北绿灯

东西红灯

东西红灯亮

东西红灯

 

3.2通行方案设计

 

设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。

其具体状态如下图所示。

说明:

彩色表示亮,白色表示灭。

交通状态从状态

1开始变换,直至状态6然后循环至状1,周而复始,直至状态6然后循环至状态1,通过具体的路口交通灯状态的演示分析我们把其中灯颜色变化的

 

随意编辑

精品文档

 

4个状态归结如下:

 

状态1状态3

 

状态4状态6

 

3.2程序主体设计流程

 

全部控制程序实际上分为若干模块:

按键扫描程序,红绿灯控制程序,LED显示程序,消抖动延时程序,初始化程序,中断服务子程序等。

流程图如图(图-6)所示:

 

开始

 

初始化

 

按键扫描

 

停止

启动or停随止意编?

 

启动

精品文档

 

(图-6)

 

3.3子程序模块设计

 

·3.3.1按键扫描子程序

首先系统不执行按键扫描子程序,以判断K1按键是否被按下。

本系统

要求信号灯受一个起动开关控制,当起动开关接通时,信号系统开始工作;

当起动开关断开时,所有信号灯都熄灭。

关键程序如下,action为程序启动标志位。

if(!

action)

{

P0=P1=P2=P3=0xff;

(*(void(*)())0)();

}

检测到按下按键停止程序时,关闭显示,同时使程序回到起点,下一次

启动时重头执行。

 

·3.3.2红绿灯控制程序

分析得实际控制的灯只有6个,即:

东西红灯,东西黄灯,东西绿灯,

南北红灯,南北黄灯,南北绿灯。

定义IO端口如下,其均是低电平有效。

将交通灯颜色变化的四种状态进行分析后整理P1口四种情况的编码表

如下:

unsignedcharcodec[4]={0xDE,0xEE,0xF3,0xF5};

 

随意编辑

精品文档

 

分别是:

0xDE南北红灯,东西绿灯

0xEE南北红灯,东西黄灯

0xF3南北绿灯,东西红灯

0xF5南北黄灯,东西红灯

程序应用:

P1=c[k];/*交通灯对应着k的值变化*/

 

·3.3.3LED倒计时显示程序

LED计时每一秒都要刷新一次,将时间数据的个位、十位分开送显。

单片机的P0口送出数据的段码,位选信号用P2口送出,用动态扫描的方法显示东西、南北的时间。

动态显示节省了I/O口,降低了能耗。

应用实例如下:

P2=b[0],P0=a[SN%10];/*显示南北方向个位*/

delay(5);

P2=b[1],P0=a[SN/10];/*显示南北方向十位*/

delay(5);

P2=b[2],P0=a[WE%10];/*显示东西方向个位*/

delay(5);

P2=b[3],P0=a[WE/10];/*显示东西方向十位*/

delay(5);

 

4Proteus软件仿真

 

系统仿真电路图

交通灯控制系统正常运行时仿真图(见图-7)。

 

随意编辑

精品文档

 

(图-7)

 

参考文献

 

[1]王为青,邱文勋.51单片机开发案例精选[J].人民邮电出版社,2001,(5):

 

45-47.

 

[2]张鑫,华臻,陈书谦.单片机原理及应用[J].电子工业出版社,2008(5).

 

[3]张洪润,张亚凡.单片机原理及应用[J].清华大学出版社,2005,(4).

 

[4]黄智伟.凌阳单片机课程设计指导[J].北京航空航天大学出版社,2007,(6)

 

[5]蒋辉平,周国雄.基于Proteus的单片机系统设计与仿真实例[M].机械工业出版社,2009.

 

[6]陈梓城电子技术实训[M].北京:

机械工业出版社2003

 

[7]先锋工作室单片机程序实例[M].北京:

清华大学出版社,2002.

 

[8]李学海标准80C51单片机基础教程[M].北京:

北京航空航天大学出版社2006

 

[9]张萌·单片机应用系统开发综合实例·第二版·清华大学出版社2005·年

 

随意编辑

精品文档

 

[10]张一工·现代电力电子技术原理与应用第一版·科学出版社·2002年

 

[11]吴黎明单片机原理及应用技术[M].北京:

科学出版社2003

 

[12]欧阳文·ATMEL89系列单片机的原理与开发实践·第一版·中国电力出版社·2007年

 

附录源程序代码

 

#include

#defineucharunsignedchar/*定义字符串类型为无符号型*/

ucharcode

a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

ucharcodeb[4]={0x0D,0x0E,0x07,0x0B};/****P2口,低有效*/

ucharcodec[4]={0xDE,0xEE,0xF3,0xF5};/****P1口,低有效*/

 

charSN=25,WE=30;

charSN_G=25,WE_G=15,Y=5;

uchari,k=0,count=0;

bitaction=0;

 

随意编辑

精品文档

 

sbitK1=P3^7;/*开关K1接P3^7管脚*/

sbitSNG=P1^2;/*东西绿灯*/

sbitWEG=P1^5;/*南北绿灯*/

voiddelay(uchart);

voidstart_keyscan();

voidlight();

voidled();

 

/*程序初始化*/

voidinit(void)

{

/*12MHz*/

TMOD=0x01;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

/*计50000

个数,用时50ms*/

ET0=1;/*

允许T0中断*/

TR0=1;/*

启动计数器*/

EA=1;/*CPU开放总中断*/

 

}

 

/*定时函数*/

voidtime1(void)interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

}

/*延时t毫秒*/

voiddelay(uchart)

{

 

随意编辑

精品文档

 

uchari;

for(t;t>0;t--)

for(i=255;i>0;i--);

}

/*开关键启动关闭*/

voidstart_keyscan()

{

if(K1==0)

{

delay(10);

if(K1==0)

action=~action;

while(!

K1);

if(!

action)

{

EA=0;

P0=P1=P2=P3=0xff;

(*(void(*)())0)();

}

}

}

/*交通灯函数*/

voidlight()

{

if(k==0||k==2)

P1=c[k];/*交通灯对应着k的值变化*/

if(k==1)

{

if

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

当前位置:首页 > 初中教育

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

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