基于单片机的交通信号灯设计Word文档下载推荐.docx

上传人:b****3 文档编号:18327759 上传时间:2022-12-15 格式:DOCX 页数:17 大小:365.53KB
下载 相关 举报
基于单片机的交通信号灯设计Word文档下载推荐.docx_第1页
第1页 / 共17页
基于单片机的交通信号灯设计Word文档下载推荐.docx_第2页
第2页 / 共17页
基于单片机的交通信号灯设计Word文档下载推荐.docx_第3页
第3页 / 共17页
基于单片机的交通信号灯设计Word文档下载推荐.docx_第4页
第4页 / 共17页
基于单片机的交通信号灯设计Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于单片机的交通信号灯设计Word文档下载推荐.docx

《基于单片机的交通信号灯设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通信号灯设计Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

基于单片机的交通信号灯设计Word文档下载推荐.docx

靠的就是交通信号灯的自动指挥系统。

交通信号灯控制方式很多。

本系统采用MSC-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了红绿灯循环点亮,红绿灯交替时5秒黄灯亮并关闭数码显示管(交通灯信号通过P1口输出,显示时间直接通过P0口输出至双位数码管);

可通过按键重设通行时间(本系统设了两个按键,一个加键,另一个减键,所加时间通过编程设定)并通过双位数码管显示(本系统必须复位后才能加减设置时间,在按完ok开始键之后不能再设置时间)。

关键词:

单片机交通灯重设通行时间

1.51单片机的功能和简介

1.1单片机概述

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:

中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3,3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。

1.2MSC-51芯片简介

·

MCS-51单片机内部结构

8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

中央处理器:

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

数据存储器(RAM)

8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

图1·

程序存储器(ROM)

8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

定时/计数器(ROM):

8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

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

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

全双工串行口:

8051内置一个全双工串行通信口,用于和其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

中断系统:

8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

时钟电路:

8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器和数据存储器合二为一的结构,即普林斯顿(Princeton)结构。

INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。

下图是MCS-51系列单片机的内部结构示意图2。

图2

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

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

如图3

Pin9:

RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。

RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。

然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。

8051的复位方式可以是自动复位,也可以是手动复位,见下图4。

此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

图4

Pin30:

ALE/

当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。

而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

如果单片机是EPROM,在编程其间,

将用于输入编程脉冲。

Pin29:

当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

Pin31:

EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。

如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

显然,对内部无程序存储器的8031,EA端必须接地。

在编程时,EA/Vpp脚还需加上21V的编程电压。

2.交通信号灯方案

(1)、南北直行绿灯亮,东西直行红灯亮,延时。

(2)、南北直行绿灯闪烁几次转黄灯,南北左转(固定绿灯)亮,南北直行红灯亮,东西直行仍然红灯亮,延时。

(3)、南北左转灯闪几次转黄灯,东西直行绿灯亮,南北直行仍然红灯,延时。

(4)、东西直行绿灯闪烁几次转黄灯,东西左转灯亮,东西直行红灯亮,南北直行仍然红灯,延时。

(5)、循环至1,继续。

(这里左转时绿灯亮,不转时灭)

(6)、倒计时部分。

(南北、东西方向时间独立)

3.引脚分配及元件清单

引脚图

引脚

东西红灯

P1.0

东西黄灯

P1.1

东西绿灯

P1.2

东西左转灯(绿)

P1.3

南北左转灯(绿)

P1.4

南北红灯

P1.5

南北黄灯

P1.6

南北绿灯

P1.7

元件清单表

LED绿灯

8个

LED黄灯

4个

LED红灯

插针

10

共阴数码管

2个

排阻

4.主程序及流程图

程序

WWBIT00H;

1s标志位

MMEQU40H;

秒值计数器,用于累加秒值

AAEQU41H;

中断次数,用于统计定时中断的次数

BBEQU5EH;

定义5eh,5fh为显示缓冲区

XIAOYINGEQU10;

消隐吗在字形表的第十位

ORG0000H;

程序从0000h开始

JMPMAIN;

ORG000BH;

定时器t0中断人口

LJMPTIME0

ORG0003H;

外部中断入口

LJMPINT_0

ORG030H;

主程序从这里开始

MAIN:

MOVSP,#70H

MOVMM,#0;

秒计数器

MOVMM,#30;

MOVBB,#3;

立即数送显示缓冲区十位

MOVBB+1,#0;

立即数送个位缓冲区

ACALLDISP;

调显示子程序

ACALLTIME0_INIT;

调定时器t0初始化子程序

CLRWW;

清零秒标志位

;

/*****---------南北车辆直行15S--------

L1:

movp1,#07eh;

绿灯共亮10S

ACALLLOOP3//调用显示程序

MOVR7,MM

CJNER7,#21,L1;

到21S时跳转到绿灯闪烁

L2:

movp1,#0feh;

灭绿灯闪3次

ACALLLOOP3

JBCWW,L2

L3:

movp1,#7eh;

JBCWW,L3WW秒标志位不为1,继续循环

CJNER7,#15,L2;

南北直行绿灯共亮15S

*------------------南北左拐10S-----------------------------*/

SETBP1.7;

灭南北绿灯

movp1,#0BEh;

亮南北黄灯,同时亮南北直行红灯

L16:

JBCWW,L16

SETBP1.6;

灭南北黄灯共亮3S

L4:

movp1,#0ceh;

亮南北左拐灯

CJNER7,#6,L4;

L5:

movp1,#0deh;

南北左拐灯闪3次

JBCWW,L3

CJNER7,#2,L5;

SETBP1.4灭左拐灯

L6:

CLRP1.6亮黄灯

JBCWW,L6

L15:

JBCWW,L15

/*==================东西方向直行15S===================*********/

L7:

movp1,#0dbh;

//东西绿灯亮

CJNER7,#21,L7;

L8:

movp1,#0dfh;

绿灯闪3次

JBCWW,L8

L9:

movp1,#0dbh;

JBCWW,L9

CJNER7,#15,L8;

/*===========东西左拐10S==========*/

SETBP1.2;

灭东西绿灯

movp1,#0DDh;

亮黄灯

L17:

SETBP1.1;

灭黄灯

L10:

movp1,#0d6h;

亮左转灯

CJNER7,#6,L10;

L11:

灭东西左拐灯

JBCWW,L11

movp1,#0d6h;

JBCWW,L11

CJNER7,#2,L11;

SETBP1.3

L12:

CLRP1.1;

亮黄灯

JBCWW,L12

L18:

JBCWW,L18

LJMPL1

-------中断0服务程序---------

INT_0:

PUSHACC

PUSHPSW

MOVP1,#0FFH

MOVP2,#0FFH

MOVMM,#11

L13:

movp1,#0deh;

东西红灯亮;

南北红灯亮

MOVA,MM

CJNEA,#1,L13

POPACC;

恢复现场

POPPSW

RETI

/***============显示子程序=============*/

LOOP3:

NOP

LOOP:

JBCWW,NEXT;

WW为1,说明1s到

不为1调用显示子程序

AJMPLOOP;

一秒未到继续循环

NEXT:

lCALLCC;

调用转换子程序

RET

CC:

MOVA,MM;

获得秒值,并送到a

MOVB,#10

DIVAB

JZNEXT1;

如果a中的值为0,高位消隐

AJMPNEXT2;

否则直接送去显示

NEXT1:

MOVA,#XIAOYING;

消隐码送a

NEXT2:

MOVBB,A;

十位送显示BB

MOVBB+1,B;

个位送BB+1

ACALLDISP;

调用显示子程式

;

-----显示子程序-------

DISP:

PUSHACC

MOVA,BB;

去十位带显示位

MOVDPTR,#TAB;

MOVCA,@A+DPTR

MOVP0,A

CLRP2.1

ACALLDELAY

SETBP2.1

MOVA,BB+1

MOVP0,A

CLRP2.0

SETBP2.0

POPACC

-----------10ms延时子程序-----------

DELAY:

MOVR5,#50

LOOP2:

MOVR4,#100

LOOP1:

DJNZR4,LOOP1

DJNZR5,LOOP2

定时初始化程序

TIME0_INIT:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

CLRIT0;

SETBEA

SETBEX0;

开外部中断0

SETBPT0;

定时器中断优先

SETBET0

SETBTR0;

启动定时器

----------定时50ms中断程序--------

TIME0:

INCAA

MOVA,AA

CJNEA,#20,TIME_EXIT;

20*50=1

MOVAA,#0;

SETBWW;

DECMM;

CJNEA,#0,TIME_EXIT;

若秒值不到30,则跳转到TIME_EXIT

若秒数到30,则秒值计数复位为0

TIME_EXIT:

POPPSW

RETI

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H;

DB92H,82H,0F8H,80H,90H,0FFH

END

5.原理图及分析

分析:

交通灯的计数的数码管用采用了动态扫描方式来计时,由于单片机的输出负载驱动数码管能力不足,所以用了74LS240作为数码管的驱动芯片,使得数码管能正常工作。

做为交通灯的LED其阳极通过一个1K的电阻限流接VCC,阴极连单片机I/O口。

6、总结

在学习单片机这门课程时,老师便围绕着交通灯使用系统来给我们讲课,并布置了交通灯使用系统的设计作为我们的期末测试。

在学习期间我们不断的学习和了解了单片机的使用和编辑其程序。

这也为我们接下来所要做的交通灯使用系统而打下了坚实的基础。

在学期末,我们运用我们所学的知识设计了我们小组自己的交通灯使用系统,在我们分工合作下,虽然第一次检查没有通过,但通过最后几天查看书籍和网络资源及仿真,交通灯使用系统被我们一步步的通过仿真模拟完成了程序的编写,这是我们一起用心完成的作品,虽然不是很完美,但却是我们一起努力携手完成的作品。

经过我们的不懈努力,我们初步实现了交通灯和倒计时的分别测试,最后通过了合成,但还是存在着缺陷。

经过我们小组再研究讨论后,我们又精心的修改了程序,终于成功的实现了交通灯要求的功能。

学习使用单片机只能靠循序渐进的积累,尤其是在编写程序,不可能一蹴而就。

万事开头难、要勇敢迈出第一步知识点用到才学,不用的暂时丢一边。

想把厚厚的一本书看完在做实验,估计是不太可能的。

所以,最好结合实际程序进行仿真,在不断调试中完善和得到成功的喜悦。

这样实验的成功率会大大提高。

在编写程序也不要光看不写,看别人的知识了解别人的编程思路而已,最终的程序还是要靠自己,尤其是在一些细节上要特别注意,对一些程序指令要理解的运用好,刚开始我们可以模仿别人的程序,然后慢慢的学会自己编写,这是一个完全自主学习的过程,需要恒心和信心。

7.参考文献

[1]姜志海.单片机原理及使用[M].北京:

电子工业出版社,2005.7.27-71

[2]龙脉工作室.51单片机C语言使用开发技术大全[M].北京:

人民邮政出版社,2008.9.240-500

[3]彭为黄科雷道仲.单片机典型系统设计[M].北京:

电子工业出版社,2006.5.246-273

[4]谢维成.单片机原理及使用[M].北京:

清华大学出版社,2009.2.11-26

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

当前位置:首页 > 高等教育 > 医学

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

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