微机原理红绿灯项目报告讲解.docx

上传人:b****1 文档编号:13537757 上传时间:2023-06-15 格式:DOCX 页数:28 大小:184.90KB
下载 相关 举报
微机原理红绿灯项目报告讲解.docx_第1页
第1页 / 共28页
微机原理红绿灯项目报告讲解.docx_第2页
第2页 / 共28页
微机原理红绿灯项目报告讲解.docx_第3页
第3页 / 共28页
微机原理红绿灯项目报告讲解.docx_第4页
第4页 / 共28页
微机原理红绿灯项目报告讲解.docx_第5页
第5页 / 共28页
微机原理红绿灯项目报告讲解.docx_第6页
第6页 / 共28页
微机原理红绿灯项目报告讲解.docx_第7页
第7页 / 共28页
微机原理红绿灯项目报告讲解.docx_第8页
第8页 / 共28页
微机原理红绿灯项目报告讲解.docx_第9页
第9页 / 共28页
微机原理红绿灯项目报告讲解.docx_第10页
第10页 / 共28页
微机原理红绿灯项目报告讲解.docx_第11页
第11页 / 共28页
微机原理红绿灯项目报告讲解.docx_第12页
第12页 / 共28页
微机原理红绿灯项目报告讲解.docx_第13页
第13页 / 共28页
微机原理红绿灯项目报告讲解.docx_第14页
第14页 / 共28页
微机原理红绿灯项目报告讲解.docx_第15页
第15页 / 共28页
微机原理红绿灯项目报告讲解.docx_第16页
第16页 / 共28页
微机原理红绿灯项目报告讲解.docx_第17页
第17页 / 共28页
微机原理红绿灯项目报告讲解.docx_第18页
第18页 / 共28页
微机原理红绿灯项目报告讲解.docx_第19页
第19页 / 共28页
微机原理红绿灯项目报告讲解.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理红绿灯项目报告讲解.docx

《微机原理红绿灯项目报告讲解.docx》由会员分享,可在线阅读,更多相关《微机原理红绿灯项目报告讲解.docx(28页珍藏版)》请在冰点文库上搜索。

微机原理红绿灯项目报告讲解.docx

微机原理红绿灯项目报告讲解

《微机原理与接口技术》课程考核

项目设计报告

项目名称:

基于单片机的交通控制系统模拟设计

学号:

姓名:

1设计任务与要求

1.1应用背景

自从1858年英国人,发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。

近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。

本模拟交通灯系统利用单片机AT89C51作为核心元件,实现了通过信号灯对路面状况的智能控制。

从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。

系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。

本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。

和复位电路控制电路等组成,较好的模拟了交通路面的控制。

1.2系统功能设计

在城镇街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红黄绿信号灯。

其中红灯亮,表示该条道路禁止;黄灯亮表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮表示该条道路允许通行。

交通灯控制电路自动控制十字路口红黄绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。

1.3系统工作过程

本设计利用8051单片机片内定时器T0的中断来实现数字时钟的功能,T0定时时间设置为50ms,每隔50ms产生一次定时中断,如果中断20次即达到1秒钟。

程序设计时,预先安排时、分、秒内存单元,在中断服务程序中根据中断次数来决定秒单元是否加1,当秒单元达到60时分单元加1,同时秒单元清零,分单元达到60时,时单元加1,同时分单元清零,时单元达到24时,时、分、秒单元清零,又从头开始计时。

2总体方案设计

2.1方案比较

2.1.1电源提供方案

为使模块稳定工作,须有可靠电源。

因此考虑了两种电源方案:

方案一:

采用独立的稳压电源。

此方案的优点是稳定可靠,且有各种成熟

电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。

方案二:

采用单片机控制模块提供电源。

改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。

综上所述,我选择第二种方案。

2.1.2显示界面方案

该系统要求完成倒计时功能。

基于上述原因,我考虑了二种方案:

方案一:

采用数码管显示。

这种方案只显示有限的符号和数码字符,简单,方便。

方案二:

采用点阵式LED显示。

这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。

综上所述,我选择第一种方案。

2.1.3输入方案:

题目要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:

方案一:

采用8155扩展I/O口及键盘,显示等。

该方案的优点是:

使用灵活可编程,并且有RAM及计数器。

若用该方案,可提供较多I/O口,但操作起来稍显复杂。

方案二:

直接在I/O口线上接上按键开关。

由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二。

2.2系统框图

2.3设计方案:

2.3.1单片机交通控制系统的通行方案设计

设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行。

共有8种状态,这8种状态如下,周而复始,循环变化。

8个状态归纳如下:

1.东西方向红灯亮,同时南北方向绿灯亮,倒计时15S,此状态下,南北方向直行,东西方向禁止通行。

2.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。

3.

2

东西方向红灯亮,同时南北方向两个绿灯亮,倒计时15S,此状态下,南北方向车辆可以直行,左右拐,行人禁止通行,倒计时15S。

4.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。

5.东西方向绿灯亮,同时南北方向红灯亮,倒计时15S,此状态下,东西方向直行,南北方向禁止通行。

6.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。

7.东西方向两绿灯灯亮,同时南北方向红灯亮,倒计时15S,此状态下,东西方向车辆可以直行,左右拐,行人禁止通行,倒计时15S。

8.东西方向黄灯亮,同时南北方向黄灯亮,倒计时5S,此状态下,除了已经正常在通行的车辆外其他车辆禁止通行。

即:

时间

15S

5S

15S

5S

15S

5S

15S

5S

东西

绿

两绿

南北

绿

两绿

2.3.2单片机交通控制系统的功能要求

本设计能模拟基本的交通控制系统,用红绿黄灯表示禁行,通行和等待的

信号发生,还能进行倒计时显示,通行时间调整和紧急处理等功能。

(1)倒计时显示

倒计时显示可以提醒驾驶员在信号灯灯色发生改变的时间、在“停止”和“通过”两者间作出合适的选择。

驾驶员和行人普遍都愿意选择有倒计时显示的信号控制方式,并且认为有倒计时显示的路口更安全。

倒计时显示是用来减少驾驶员在信号灯色改变的关键时刻做出复杂判断的1种方法,它可以提醒驾驶员灯色发生改变的时间,帮助驾驶员在“停止”和“通过”两者间作出合适的选择。

(2)时间的设置

可通过键盘对时间进行手动设置,增加了人为的可控性,避免自动故障和意外发生,并再紧急状态下,可设置所有灯变为红灯。

键盘是单片机系统中最常用的人机接口,一般情况下有独立式和行列式两种。

前者软件编写简单,但在按键数量较多时特别浪费I/0口资源,一般用于按键数量少的系统。

后者适用于按键数量较多的场合,但是在单片机I/0口资源相对较少而需要较多按键时,此

方法仍不能满足设计要求。

本系统要求的按键控制不多,且I/0口足够,可直接采用独立式。

(3)紧急处理

交通路口出现紧急状况在所难免,如特大事件发生,救护车等急行车通过等,我们都必须尽量允许其畅通无阻,毕竟在这种情况下是分秒必争的,时时刻刻关系着公共财产安全,个人生死攸关等。

由此在交通控制中增设禁停按键,就可达到想此目的。

2.3.3单片机交通控制系统的基本构成及原理

单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码管就可以显示倒计时以提醒行使者,更具人性化。

本系统在此基础上,加入了紧急情况处理与时间调整功能。

据此,本设计系统以单片机为控制核心,连接成最小系统,由按键设置模块产生输入,信号灯状态模块,LED倒计时模块模块接受输出。

系统的总体框图如上所示。

单片机上电后,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。

在此过程中随时调用急停按键和时间调节中断。

3系统硬件设计

3.1I/O分配表

结合电路图,现将所设计电路中所涉及I/O口分配情况统计如下,信息包括引脚号、引脚功能、输入输出类型。

引脚号

引脚功能

输入输出类型

U1-EA

外部程序存储器选择输入、编程电压输入引脚

Input

U1-RST

复位信号/备用电源引脚

Input

U1-P0

地址/数据总线复用口

I/O

U1-P1

地址/数据总线复用口

I/O

U1-P2

地址/数据总线复用口

I/O

U1-P3

地址/数据总线复用口

I/O

U1-XTAL1

振荡器反相放大器及内部时钟发生器的输入端

Input

U1-XTAL2

振荡器反相放大器的输出端

Output

3.2交通灯中的中断处理流程

(1)现场保护和现场恢复:

有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。

(2)中断打开和中断关闭:

为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。

(3)中断服务程序:

有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容:

即如果南北方向有特殊车辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。

(4)中断返回:

执行完中断服务程序后,必然要返回,即回交通灯信号回到中断前状态,显示时间也和中断前一样。

3.3系统硬件总电路构成及原理

实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,16个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,若干按键组成时间设置和紧急按钮。

(进行硬件搭建时,只用8个灯和4个数码管模拟,即东西两个方向只模拟一个,南北也只模拟一个)

3.4系统硬件电路构成

本系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。

其具体的硬件电路总图如下图所示。

其中P0用于送显两片LED数码管,P1,P2.4,P2.5用于控制红绿黄发光二极管,XTAL1和XTAL2接入晶振时钟电路,REST引脚接上复位电路,P1.6,P1.7,P2.0,P2.1对数码管进行片选,P3.2即INT0紧急情况处理按键,P3.3即INT1接时间调整中断按键。

3.5系统工作原理

系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P1口以及P2.4,P2.5口,将要显示的时间值的个位和十位分别送显P0口,在此同时用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。

时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,

当然,还要开启两个外部中断,其一为紧急情况处理中断,一旦信号有效,即P3.2为低电平时进入中断服务子程序,东西南北路口的红灯全亮禁止全部通行,再使P3.2为无效高电平,中断结束返回。

其二为通行时间调整中断,若P3.3为低电平进入相应的中断子程序,对时间进行调整,再使P3.3为无效高电平,中断结束返回。

基于单片机的交通灯控制系统电路图

3.6其它硬件介绍

3.6.1八段LED数码管

LED显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。

LED数码管的结构简单,分为七段和八段两种形式,也有共阳和共阴之分。

以八段共阴管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示dP,即点),每个发光二极管的阴极连在一起,如下图所示。

这样,一个LED数码管就有1根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制。

为方便起见,本文主要讨论共阴八段LED数码显示管,其他类形的显示管与其类似。

LED灯的显示原理:

通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如dp,g,f,e,d,c,b,a全亮显示为8,采用共阴极连接驱动代码,代码表如下表所示

驱动代码表

显示数值

dp,g,f,e,d,c,b,a

驱动代码

0

00111111

3FH

1

00000110

06H

2

01011011

5BH

3

01001111

4FH

4

01100110

66H

5

01101101

6DH

6

01111109

7DH

7

00000111

07H

8

01111111

7FH

9

01101111

6FH

相应在程序软件上,可以通过调用程序给定的秒值经过特定计算算出需要显示的个位和十位,然后用IPTR调取LEDMAP的代码。

3.6.2发光二极管

根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。

每个方向上设置红绿黄灯(绿灯为2个),总共4组。

3.6.3按键控制

本设计设置了4个键:

K1键P3.0,K2键P3.1,K3键P3.2,K4键P3.3,每个按键一端接地,另一端接对应的P3端口,低电平有效,当按键下端口接地,单片机捕获到低电平,从而知道相应的输入信息。

4系统软件设计

4.1程序主体设计流程

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

键盘设置处理程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序,红绿灯时间调整程序等。

整个软件程序方面主要分两大部分:

主程序部分和中断处理程序。

流程图如下图所示。

9

4.2子程序模块设计

4.2.1状态灯显示及判断

在本设计中,实际控制的灯只有8个,即:

东西红灯,东西黄灯,东西绿灯(2个),南北红灯,南北黄灯,南北绿灯(2个)。

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

共有8种状态:

东西绿灯亮,南北红灯亮;东西黄灯亮,南北黄灯亮;东西两绿灯灯亮,南北红灯亮;东西黄灯亮,南北黄灯亮;东西红灯亮,南北绿灯亮;东西黄灯亮,南北黄灯亮;东西红灯亮,南北两绿灯亮;东西黄灯亮,南北黄灯亮。

用于显示发光二极管时,部分程序如下:

;东西红,南北绿,计时时间为15S

MOVP1,#0CH

MOV60H,#15H

A1:

MOVR1,#50

A2:

ACALLBCD

ACALLDISPCLK

DJNZR1,A2

MOVA,60H

MOVR0,60H

ADDA,#99H

DAA

MOV60H,A

CJNER0,#05H,A1

4.2.2LED倒计时显示

LED计时每1秒都要刷新1次,采用的是动态显示,首先将R4除以10H,整数即十位放在50H中,余数即个位放在51H中,设置7段LED显示数据的数据表,用数据指针寄存器DPTR指向数据表的首地址,再加上A中的偏移量,就可以指向十位数字,然后送显即可,个位显示同理。

具体程序如下:

BCD:

;将十位数送到(51H),个位数送到(50H)

MOVA,60H;60H单元放的是倒计时值

MOVB,#10H

DIVAB

MOV51H,A

MOVA,B

MOV50H,A

RET

DISPCLK:

;显示部分

MOVDPTR,#TAB

MOVA,50H

MOVCA,@A+DPTR

MOVP0,A

CLRP1.6

LCALLDELAY

SETBP1.6

CLRP2.0

LCALLDELAY

SETBP2.0

MOVA,51H

MOVCA,@A+DPTR

MOVP0,A

CLRP1.7

LCALLDELAY

SETBP1.7

CLRP2.1

LCALLDELAY

SETBP2.1

RET

4.2.3紧停及调整时间中断子程序

紧停按键连接到外部中断引脚P3.2,即INT0捕获到一个低电平,则进入该中断进行相关处理。

程序如下:

IINT0:

;紧急情况处理

MOV08H,P1

MOV09H,P2

CLREA

JBP3.2,$

PUSH60H

B0:

JNBP3.0,NH

JNBP3.1,DH

A9:

MOVP1,#09H;全红

SETBP1.6

SETBP1.7

SETBP2.0

SETBP2.1

ACALLDELAY

JNBP3.2,B0

SJMPJE

NH:

MOVP1,#21H;只允许东西方向车辆通行

SETBP1.6

SETBP1.7

SETBP2.0

SETBP2.1

ACALLDELAY

JNBP3.2,B0

SJMPJE

DH:

MOVP1,#0CH;只允许南北方向车辆通行

SETBP1.6

SETBP1.7

SETBP2.0

SETBP2.1

ACALLDELAY

JNBP3.2,B0

SJMPJE

JE:

MOVP1,08H

MOVP2,09H

POP60H

SETBEA

RETI

4.2.4红绿灯时间调整程序

时间调整按键连接到外部中断引脚P3.3,即INT1捕获到一个低电平,则进入该中断进行相关处理。

程序如下:

;加减程序

IINT1:

CLREA

JBP3.3,$

PUSHP1

PUSHP2

B1:

JNBP3.1,DDEC

ZINC:

;加1程序

MOVR0,#15

A10:

ACALLBCD

ACALLDISPCLK

DJNZR0,A10

MOVA,60H

ADDA,#01H

DAA

MOV60H,A

JNBP3.3,B1

JMPJS

DDEC:

;减1程序

DDEC:

MOVR4,#15

A12:

ACALLBCD

ACALLDISPCLK

DJNZR4,A12

MOVA,60H

ADDA,#99H

DAA

MOV60H,A

JBP3.3,JS

JMPB1

JS:

MOV61H,60H

POPP2

POPP1

SETBEA

RETI

4.3重要参数计算及说明

4.3.1定时器初值计算

在定时器使用过程中,需要结合实际需要对定时器进行初值计算,则计算初值X的公式如下:

计数方式:

X=M—要求的计数值

定时方式:

X=M—要求的定时值/(12/fosc)

结合题目要求,本次过程中需要定时50ms,并重复20次来实现1s的计时。

带入相关数值,可得:

X=216--(50*10-3)/(1*10-6)

=15536D

=3CB0H

5系统调试及仿真结果

本课题从理论到实际应用,用AT89C51单片等电路,需要较强的逻辑分析能力,并设计出了一个交通红绿灯。

而且所设计的红绿灯设计也按当初要求的能够在PROTEUS中进行仿真,并且能够很精确的显示时间,并可由按钮操控进行调节。

可以说该红绿灯具有很高的实用价值。

在软件设计的过程中,利用了Keil这个软件在程序录入和调试的时候的优越性,让我能够在编写软件的时候很方便的发现软件中的错误,现在已经能够使用Keil对所设计的程序进行调试。

对于PROTEUS这款软件,也能熟练掌握电路设计仿真。

本次设计的红绿灯也存在的不足的地方,在实际调试过程中由于对终端状态的存储处理不当,造成初始状态未能及时恢复,经长达半天的调试,终于得以解决,但在其中获益匪浅。

6参考资料

[1]苏平.单片机的原理与接口技术[M].北京:

电子工业出版社,2006:

1-113.

[2]张斌武.单片机系统Proteus设计与仿真[M].北京:

电子工业出版社,2005:

52-89.

1.仿真电路图——caoshuai.DSN;

2.程序清单及注释——caoshuai.asm

ORG0000H

LJMPSTART

ORG0003H

LJMPIINT0

ORG0013H

LJMPIINT1

ORG0030H

START:

MOVSP,#6FH;系统初始化

LIGHT:

SETBEA

SETBEX0

SETBEX1

CLRIT1

CLRIT0

CLRP2.4

CLRP2.5

MOVP1,#0CH;东西红,南北绿,禁止拐弯,计时时间为15s

MOV60H,#15H

A1:

MOVR1,#50

A2:

ACALLBCD

ACALLDISPCLK

DJNZR1,A2

MOVA,60H

MOVR0,60H

ADDA,#99H

DAA

MOV60H,A

CJNER0,#00H,A1

 

MOV60H,#05H

MOVP1,#12H;东西黄,南北黄灯闪烁5s

MOVR2,#5

A3:

MOVR1,#50

A4:

ACALLBCD

ACALLDISPCLK

DJNZR1,A4

CPLP1.1

CPLP1.4

MOVA,60H

ADDA,#99H

DAA

MOV60H,A

DJNZR2,A3

 

MOVP1,#0CH

SETBP2.4

CLRP2.5;南北左右转弯,车辆直行,禁止人行,倒计时15S

MOV60H,#15H

D1:

MOVR1,#50

D2:

ACALLBCD

ACALLDISPCLK

DJNZR1,D2

MOVA,60H

MOVR0,60H

ADDA,#99H

DAA

MOV60H,A

CJNER0,#00H,D1

 

MOV60H,#05H

MOVP1,#12H

CLRP2.4

CLRP2.5;东西黄,南北黄灯闪烁5s

MOVR2,#5

D3:

MOVR1,#50

SETBP2.3

D4:

ACALLBCD

ACALLDISPCLK

DJNZR1,D4

CPLP1.1

CPLP1.4

MOVA,60H

ADDA,#99H

DAA

MOV60H,A

DJNZR2,D3

MOVP1,#21H;东西绿,南北红,禁止转弯,计时时间15s

MOV60H,#15H

A5:

MOVR1,#50

A6:

ACALLBCD

ACALLDISPCLK

DJNZR1,A6

MOVR0,60H

MOVA,60H

ADDA,#99H

DAA

MOV60H,A

CJNER0,#00H,A5

 

MOV60H,#05H;南北黄,东西黄灯闪烁5s

MOVP1,#12H

MOVR2,#5

A7:

MOVR1,#50

A8:

ACALLBCD

ACALLDISPCLK

DJNZR1,A8

CPLP1.4

CPLP1.1

MOVA,60H

ADDA,#99H

DAA

MOV60H,A

DJNZR2,A7

 

MOVP1,#21H

SETBP2.5

CLRP2.4;东西左右拐弯,车辆直行,禁止人行,计时时间15s

MOV60H,#15H

D5:

MOVR1,#50

D6:

ACALLBCD

ACALLDISPCLK

DJNZR1,D6

MOVR0,60H

MOVA,60H

ADDA,#99H

DAA

MOV60H,A

CJNER0,#00H,D5

MOV60H,#05H;南北黄,东西黄灯闪烁5s

CLRP2.5

CLRP2.5

MOVP1,#12H

MOVR2,#5

D7:

MOVR1,#50

D8:

ACALLBCD

ACALLDISPCLK

DJNZR1,D8

CPLP1.4

CPLP1.1

MOV

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

当前位置:首页 > 临时分类 > 批量上传

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

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