交通灯课程设计汇总.docx

上传人:b****1 文档编号:708073 上传时间:2023-04-29 格式:DOCX 页数:33 大小:518.05KB
下载 相关 举报
交通灯课程设计汇总.docx_第1页
第1页 / 共33页
交通灯课程设计汇总.docx_第2页
第2页 / 共33页
交通灯课程设计汇总.docx_第3页
第3页 / 共33页
交通灯课程设计汇总.docx_第4页
第4页 / 共33页
交通灯课程设计汇总.docx_第5页
第5页 / 共33页
交通灯课程设计汇总.docx_第6页
第6页 / 共33页
交通灯课程设计汇总.docx_第7页
第7页 / 共33页
交通灯课程设计汇总.docx_第8页
第8页 / 共33页
交通灯课程设计汇总.docx_第9页
第9页 / 共33页
交通灯课程设计汇总.docx_第10页
第10页 / 共33页
交通灯课程设计汇总.docx_第11页
第11页 / 共33页
交通灯课程设计汇总.docx_第12页
第12页 / 共33页
交通灯课程设计汇总.docx_第13页
第13页 / 共33页
交通灯课程设计汇总.docx_第14页
第14页 / 共33页
交通灯课程设计汇总.docx_第15页
第15页 / 共33页
交通灯课程设计汇总.docx_第16页
第16页 / 共33页
交通灯课程设计汇总.docx_第17页
第17页 / 共33页
交通灯课程设计汇总.docx_第18页
第18页 / 共33页
交通灯课程设计汇总.docx_第19页
第19页 / 共33页
交通灯课程设计汇总.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

交通灯课程设计汇总.docx

《交通灯课程设计汇总.docx》由会员分享,可在线阅读,更多相关《交通灯课程设计汇总.docx(33页珍藏版)》请在冰点文库上搜索。

交通灯课程设计汇总.docx

交通灯课程设计汇总

设计题目:

基于单片机的模拟交通灯控制

院系:

电气工程系

专业:

城轨电子1班

年级:

2012级

姓名:

凌洁

指导教师:

黎松奇

西南交通大学峨眉校区

年月日

 

课程设计任务书

专业城轨电子本姓名凌洁学号20128085

开题日期:

2014年11月17日完成日期:

2014年12月17日

题目基于单片机的模拟交通灯控制

一、设计的目的

本次设计的智能交通灯系统采用Proteus设计与仿真,程序的编译与调试采用KeilC51来实现。

单片机原理、模拟和数字电路等方面的知识,基于Protues软件设计出一台交通信号灯,模拟路口交通信号。

二、设计的内容及要求

要求用51单片机设计一个智能交通灯控制系统,使其能模仿城市十字路口交通灯的功能,并对满足特殊的控制要求。

该系统的具体功能要求如下:

该控制系统能控制东西南北四个路口的红黄绿灯正常工作。

东西和南北方向分时准行和禁行。

1)交通信号灯能够控制东西、南北两个方向的交通,红绿黄灯用对应颜色的发光二极管代替;

2)用四个2位数码管分别显示东、南、西、北方向的通行时间,东西或南北通行时间为25秒,红绿灯切换中间黄灯亮5秒。

三、指导教师评语

四、成绩

指导教师(签章)

年月日

目录

一、引言3

二、设计方案与思路简述4

1、内容简述:

4

2、设计思路5

三、单元电路设计6

1.数码显示管与LED灯模块6

2、C51引脚图7

3、时钟电路7

4、复位电路8

四、总体设计8

1.AT89C51芯片简介8

2、原理框图:

11

3、详细设计13

4、软件框图17

四、程序及注释19

1、解释状态19

2、附录清单20

附录1:

程序清单20

五、调试运行25

六、涉及资料及参考文献26

七、心得体会26

 

一、引言

在城市生活中,交通灯作为管理交通、调协车辆的一个便捷的手段,起着很大的作用。

各种交通工具、行人都要根据交通灯的变化来决定是否前行,通行的时间的规定协调了它们的步伐,极大的减少了由于交通混乱引起的各种事故的发生。

交通灯是现代交通非常重要的一个组成部分,一套好的交通灯系统往往对提升城市交通运输效率,降低事故发生率有至关重要的影响。

本系统由单片机系统、交通灯演示系统、按键系统、中断系统以及时钟电路、复位电路组成。

本文设计的智能交通灯系统采用Proteus设计与仿真,程序的编译与调试采用KeilC51来实现。

本文所设计的智能交通灯采用了单片机AT89C51,选用了LED灯和多位数码管来模拟显示的交通灯切换状态。

本系统除了实现最基本的交通灯功能以外,还有用来应对紧急情况的功能,这就是中断系统所实现的在有特定需要的情况下实现对交通灯状态的控制。

对于提高城市交通效率有非常重要的作用。

因此,一个完善的交通系统中,交通灯是必不可少的设备,一个完善的交通灯程序会更有效的管理当前道路中出现的实际情况,使车辆、行人的行进变得更顺畅、更和谐。

随着我国国民经济的快速发展,我国机动车辆发展迅速,而城镇道路建设由于历史等各种原因相对滞后,如何利用当今计算机和自动控制技术,有效地疏导交通,提高城镇交通路口的通行能力,减少交通事故是很值得研究的一个课题。

目前,国内的交通灯一般设在十字路口,在醒目位置用红、绿、黄三种颜色的指示灯加上一个倒计时的显示器来控制行车。

二、设计方案与思路简述

1、内容简述:

此课程设计运用所学单片机原理、模拟和数字电路等方面的知识,基于Protues软件设计出一台交通信号灯,模拟路口交通信号。

流程如下:

25S

5S

25S

5S

……

东西道

红灯亮

红灯亮

绿灯亮

黄灯亮

……

南北道

绿灯亮

黄灯亮

红灯亮

红灯亮

……

 

1)交通信号灯能够控制东西、南北两个方向的交通,红绿黄灯用对应颜色的发光二极管代替;

2)用四个2位数码管分别显示东、南、西、北方向的通行时间,南北通行时间为25秒,东西通行时间为15秒红绿灯切换中间黄灯亮5秒。

然后,交替循环。

在此部分LED灯将配合红黄绿灯的发光时间显示数据,对于每个数据将使用定时器来实现定时1秒,当1秒时间到达,LED上显示的时间自动减1,当时间减至为0,交通灯变换红黄绿灯。

设定东西南北走向的十字路口,如下图:

由生活常识可知,十字路口中,东西南北各三盏灯,每三盏分别为红、黄、绿三种颜色。

而实际情况下,东西方向灯亮灭一致,南北方向灯亮灭一致,故只需要按东西为一组,南北为一组,两组交错亮灭来设计控制系统,即可达到交通灯系统的控制目的。

根据以上分析那么只需要控制东南或者西北六盏灯亮灭规律就能实现控制,另外两组对应一致就行了。

根据设计要求,要求东西或者南北通行25秒,红绿灯切换中间黄灯亮5秒。

那么要求绿灯亮放行,放行线,绿灯持续亮(通行时间)15秒,黄灯亮(警告提醒时间)5秒,红灯亮禁止通行,禁止线,为15秒。

2、设计思路

基于完成以上任务分析,由本学期所学关于单片机的中断系统和定时/计数器的相关知识及应用,我们知道对于红、绿、黄两组各三盏灯的控制,可以通过把这六盏灯分别接到单片机的六个输出引脚,若用P1口进行输出,则分配如下:

 

AT89C51

123567

P1.0P1.1P1.2P1.4P1.5P1.6

 

 

L1L2L3L4L5L6

(东西红灯)(东西黄灯)(东西绿灯)(南北红灯)(南北黄灯)(南北绿灯)

LED显示分布

 

具体如下:

图2.2.1

通过对P1口P0~P5编程从而实现控制。

而时间的各盏灯的熄灭时间的延时情况,则用定时/计数和中断结合应用实现控制。

而输出的时间显示则每个方向分别用两个发光二极管显示,十位接在P0口,个位接在P2口,对P0口P2口编程即可实现控制。

 

三、单元电路设计

1.数码显示管与LED灯模块

LED显示器由共阳极七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。

为了显示数字或符号,要为LED显示器提供代码,即字形代码。

其段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。

图3.1.1数码管与LED灯单元图

2、C51引脚图

图3.2.1单片机管脚图

3、时钟电路

MCS-51单片机芯片内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

当使用内部振荡电路时,XTAL1和XTAL2引脚外接石英晶体和微调电容,如图所示,图中C2、C3大小一般为30pF。

还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。

如何进行复位呢?

只能在单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即可对单片机实现复位操作。

当主电源VCC发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行。

图3-3.1时钟电路

4、复位电路

AT89C51的复位是由外部的复位电路实现的。

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

在此次设计中,我使用了按键复位方式。

复位方式有多种,本设计采用按键复位。

接线图如图程序3.1复位电路,

图3-4.1复位电路

四、总体设计

1.AT89C51芯片简介

芯片AT89C51的外形结构和引脚图如图3-1所示。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MC-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

 

图4.1.1AT89C51引脚图

 

(1)主要特性

8051CPU与MCS-51兼容

4K字节可编程FLASH存储器(寿命:

1000写/擦循环)

全静态工作:

0HZ-24KHZ

三级程序存储器保密锁定

128*8位内部RAM

32位可编程I/O线

两个16位定时器/计数器

5个中断源

可编程串行通道

低功耗的闲置和掉电模式

片内振荡器和时钟电路

(2)管脚说明

VCC:

供电电压

GND:

接地。

P0口:

P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高8位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,各功能口功能如下:

口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(计数器0外部输入)

P3.5T1(计数器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地址字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定是目的。

然而它可用作对外部输出的脉冲或用于定是目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令时才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次

有效。

但在访问外部数据存储器时,这两次有效的

信号将不出现。

/VPP:

保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,

将内部锁定为RESET;当

端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出引脚。

2、原理框图:

(1)、硬件原理框图:

图4.2.1大体电路分配设计图

原理具体分布总设计框图:

图4.2.2具体电路分配设计图

(2)、软件框图:

 

单片机

图4.2.3电路分配设计图

3、详细设计(重点)

1、设计电路:

设计电路主要由两部分组成,一部分为P1口与十二个发光二极管连接电路,另一部分是P0、P2口与4个2管七段显示器相连的电路,下面分别详细说明。

2、交通灯电路:

设计中采用发光二极管作为交通灯来使用,单片机的I/O接口直接和交通灯(发光二极管)连接。

在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色的灯也彼此连接在,受单片机P1.0~P1.5控制。

单片机的I/O接口与交通灯电路的具体连接方式为:

P1.0~P1.2分别接东西方向的红、黄、绿共6个放光二极管,P1.4~P16分别接南北方向的红、黄、绿共6个发光二极管。

12个发光二极管采用了共阳极的连接方式,因此I/O口输出低电平时,与之相连的发光二极管会亮,I/O口输出高电平时,相应的发光二极管会灭。

交通灯电路如图所示

图4.3.2灯对应管脚图

 

3、倒计时显示电路:

该显示装置选用8个七段数码管来显示交通灯转换的剩余时间,根据控制要求,每个路口需要两个数码管,这样四个路口就要求八个数码管。

我们可以选用共阳型数码管,这样由单片机的I/O就可以直接驱动,从而简化硬件电路的设计。

四个路口倒计时显示被置在同一时刻显示相同的数字。

P0口用来显示时间的十位,P2口用来显示时间的个位。

运用Protel99se软件电路如下图所示

(1)数码管及led灯

图4.3.3protel数码管与LED灯图

(2)AT89C51及其管脚,复位及时钟电路

图4.3.4protel单片机管脚图

(3)R8大电阻

图4.3.5大电阻图

 

(3)电路原理图

图4.3.6电路原理图

4、仿真电路及效果图:

(1)仿真电路结果:

图4.3.7仿真原理图

(2)仿真效果:

图4.3.8南北红,东西绿

图4.3.9南北红,东西黄

图4.3.10南北绿,东西红

5、元件清单:

名称

封装名

参数

用途

电阻

RES

10K

限流,以免烧坏数码管

便于仿真显示

AT89C51

AT89C51

八位微处理器

七段显示数码管

7SEG_MIX2_CC

常用数字显示,便于仿真

开关

SW_SPDT

中断使用

电容

CAP

Capacitors

复位电路使用

发光二极管

LED—red

显示

发光二极管

LED—yellow

显示

发光二极管

LED—green

绿

显示

图4.3.11元件清单图

 

4、软件框图

(1)主程序流程图:

南北红灯亮,东西绿灯亮

图4.4.1总框图

(2)子程序流程图:

图4.4.2软件流程图

四、程序及注释

1、解释状态

状态1,东西绿灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BBH。

状态2,东西黄灯亮,南北红灯亮,此时P1.0口—P1.7口的高低电平为#0BDH。

状态3,东西红灯亮,南北绿灯亮,此时P1.0口—P1.7口的高低电平为#0DEH。

状态4,东西红灯亮,南北黄灯亮,此时P1.0口—P1.7口的高低电平为#0EEH。

再采用显示子程序与延时子程序可使LED显示灯按照要求点亮。

图4.4.3状态流程图

2、附录清单

附录1:

程序清单

ORG0000H

LJMPMAIN

ORG0003H

LJMPINTT0

ORG0013H

LJMPINTT1

ORG001BH

LJMPTT1

ORG0100H

TT1:

MOVTH1,#0D8H;定时器1,定时10us

MOVTL1,#0F0H

DJNZR6,EXIT

MOVR6,#100;定时器定时100次

MOVR1,#0FFH

EXIT:

RETI

INTT0:

MOVP1,#0BEH;外部中断0,

JBP3.4,$

RETI

INTT1:

MOVP1,#0BBH;外部中断1,

JBP3.4,$

RETI

ORG1000H

MAIN:

MOVR6,#100;主程序;

MOVR1,#00H

MOVTMOD,#10H;初始化

MOVTH1,#0D8H

MOVTL1,#0F0H

MOVIE,#8DH

MOV20H,#25

MOV21H,#5

MOV22H,#15

MOV23H,#30

MOV24H,#20

SETBTR1

ST1:

MOVP1,#0EBH;第一个状态,东西主干道亮绿灯、

支干道亮红灯;

CJNER1,#0FFH,TZ1

MOVR1,#00H

DEC20H

DEC23H

TZ1:

MOVR2,20H

MOVR3,23H

LCALLDISP;调用显示子程序。

MOVA,20H

CJNEA,#00H,ST1

MOV20H,#25

ST2:

MOVP1,#0EDH;第二个状态,主干道亮黄灯、支干道亮红灯;

CJNER1,#0FFH,TZ2

MOVR1,#00H

DEC21H

DEC23H

TZ2:

MOVR2,21H

MOVR3,23H

LCALLDISP;调用显示子程序。

MOVA,21H

CJNEA,#00H,ST2

MOV21H,#05

MOV23H,#30

ST3:

MOVP1,#0BEH;第三个状态,主干道亮红灯、

支干道亮绿灯;

CJNER1,#0FFH,TZ3

MOVR1,#00H

DEC24H

DEC22H

TZ3:

MOVR2,24H

MOVR3,22H

LCALLDISP;调用显示子程序。

MOVA,22H

CJNEA,#00H,ST3

MOV22H,#15

ST4:

MOVP1,#0DEH;第四个状态,主干道亮红灯、

支干道亮黄灯;

CJNER1,#0FFH,TZ4

MOVR1,#00H

DEC24H

DEC21H

TZ4:

MOVR2,24H

MOVR3,21H

LCALLDISP;调用显示子程序。

MOVA,21H

CJNEA,#00H,ST4

MOV21H,#05

MOV24H,#20

LJMPST1;跳转到第一个状态。

DISP:

MOVA,R2;显示子程序。

MOVB,#10

DIVAB

MOV60H,A

MOV61H,B

MOVA,R3

MOVB,#10

DIVAB

MOV62H,A

MOV63H,B

MOV40H,#04H

MOVR5,#0FEH

MOVR0,#60H

LLP:

MOVA,@R0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

MOVA,R5

MOVP2,A

LCALLDELAY1

MOVP2,#0FFH;注:

这里是程序修改的地方,P2口控制显示器

令显示器熄灭,以免产生残影

RLA

MOVR5,A

INCR0

DJNZ40H,LLP

RET

DELAY1:

;延时子程序

MOVR4,#12

DL2:

MOVR7,#12

DJNZR7,$

DJNZR4,DL2

RET

TABLE:

DB3FH,24H,5dH,75H,66H

DB73H,7bH,25H,7fH,77H

END

五、调试运行

将在Keil平台上生成目标代码文件(*.hex)加载到单片机系统中,点击运行按钮,

1、按照硬件连接图,相应的,P1.0接红灯,P1.1接黄灯,P1.2接绿灯,P1.3接红灯,P1.4接黄灯,P1.5接绿灯

2、从0100H单元开始连续运行,观察六个LED灯是否与交通显示情况对应,如果有偏差,则单步运行或断点运行,进行调试,直至满足设计要求。

3、调试完灯的显示后,从0100H开始连续运行,观察数码管显示的是否正常,如果不正常,则运用单步运行或断点运行进行分析和调试,直至满足要求。

4、整体运行,观察灯显示和时间显示是否都符合要求,不符合,则再调试。

直至满足要求。

 

六、涉及资料及参考文献

[1]彭为等。

单片机典型系统设计实例精讲[M]。

北京:

电子工业出版社,2006

[2]张毅刚等。

单片机原理与应用设计[M]。

北京:

电子工业出版社,2008

[3]王义军。

单片机原理及应用习题与实验指导书[M]。

北京:

中国电力出版社,2006

七、心得体会

通过这段时间的交通灯课程设计,我对单片机相关知识有了更深的了解。

对于管脚及相关的控制寄存器,有了更进一步的巩固和了解,尤其是I/O口的实用及编程,相当于重新细细温习了一遍。

特别对protues软件画电路图及仿真的过程,这次课程设计的任务是通过单片机的I/O口来控制交通灯。

主要完成两大项任务,第一就是硬件连接图;第二是编写相应的程序来实现硬件功能。

看似简单,实际上需要过硬的知识作为基础。

这次设计过程中,遇到了很多棘手的问题,很多东西,动起手来束手无策,大多都只得先通过查阅资料或者参考别人做类似课题,才能自己动手设计画图,编程调试。

就是protues软件仿真原来及整个过程,虽然并不太难,但是我是通过这次才真正弄明白的。

通过这次课程设计,关于单片机的知识深入了解了更多,但更多是让我知道了知识的欠缺,很多环节,都慢慢翻书或者查找资料才能完成。

这次课程设计让我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。

让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。

通过这次课程设计我感觉到要想做成功,必须花时间多做准备,查阅大量资料,每个过程都很繁琐,都要认真地分析每一步每一个模块要实现大的功能,然后分步进行编写调试,最后整合成在一起。

这次完成了对单片机的整体设计,更加了解到单片机的各项功能和需要注意的问题,加深了对单片机的了解。

总的来说,这次课程设计,提高了我的知识的应用能力和和实践能力,同时提高了独立思考独立完成任务的能力,虽然时间不长但是我学到了很多东西,让我明白,在以后的学习中,应更注

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2