基于8051单片机智能交通灯.docx

上传人:b****7 文档编号:9740480 上传时间:2023-02-06 格式:DOCX 页数:20 大小:290.42KB
下载 相关 举报
基于8051单片机智能交通灯.docx_第1页
第1页 / 共20页
基于8051单片机智能交通灯.docx_第2页
第2页 / 共20页
基于8051单片机智能交通灯.docx_第3页
第3页 / 共20页
基于8051单片机智能交通灯.docx_第4页
第4页 / 共20页
基于8051单片机智能交通灯.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

基于8051单片机智能交通灯.docx

《基于8051单片机智能交通灯.docx》由会员分享,可在线阅读,更多相关《基于8051单片机智能交通灯.docx(20页珍藏版)》请在冰豆网上搜索。

基于8051单片机智能交通灯.docx

基于8051单片机智能交通灯

基于Proteus智能交通灯控制设计与制作

一、实训目的和作用

1.1研究智能交通灯课题的意义

交通是一个城市经济的动脉,它不但体现了一个城市的发展活力,也直接与老百姓的生活息息相关。

所谓说的“路通财通”就是说明了一个良好的交通环境的重要性。

而交通灯在这个交通环境中起着一个重要的角色,智能的交通灯能有效地缓解城市的交通压力,减少交通事故;智能的交通灯能为当地人民节省大量出行时间,创造出更多的社会价值;智能的交通灯为交通顺畅提供了保障,对当地经济起着一个不可估量的作用。

1.2智能交通灯的研究现状

目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法,有应用PLC实现对交通灯控制系统的设计。

有应用单片机实现对交通信号灯设计的方法。

目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。

加上一个倒计时的显示计时器来控制行车。

对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:

1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。

2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。

1.3交通灯的创新思路

针对道路交通拥挤,交叉路口经常出现拥堵的情况。

利用单片机控制技术.提出了软件和硬件设计方案及两点改进措施:

1、根据各道路路口车流量的大小可调节通行时间。

2、考虑特殊车辆通行情况,设计紧急切换开关即“全红按键”。

 

二、实训设计内容要求

2.1利用单片机89S51来实现交通灯管理

对交通灯控制系统的设计,首先应对交通灯的核心控制芯片的基本结构和特征以及主要引脚有比较详细的了解。

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

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

2.2AT89S51单片机的主要性能参数

·与MCS-51产品指令系统完全兼容

·4k字节在系统编程(ISP)Flash闪速存储器

·1000次擦写周期

·4.0-5.5V的工作电压范围

·全静态工作模式:

0Hz-33MHz

·三级程序加密锁

·128×8字节内部RAM

·32个可编程I/O口线

·2个16位定时/计数器

·6个中断源

·全双工串行UART通道

·低功耗空闲和掉电模式

·看门狗(WDT)及双数据指针

·掉电标识和快速编程特性

·灵活的在系统编程(ISP字节或页写模式)

2.3AT89S51单片机的引脚功能

·VCC:

电源电压

·GND:

·P0口:

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

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

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

在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

·P1口:

Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

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

Flash编程和程序校验期间,Pl接收低8位地址。

 

表2-1具有第二功能的P1口引脚

端口引脚

第二功能:

P1.5

MOSI(用于ISP编程)

P1.6

MOSI(用于ISP编程)

P1.7

MOSI(用于ISP编程)

·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-2具有第二功能的P1口引脚

端口引脚

第二功能:

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外部数据存储器读选通)

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

·RST:

复位输入。

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

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

DISRT0位缺省为RESET输出高电平打开状态。

·ALE/

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

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

要注意的是:

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

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

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

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

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

·

程序储存允许(

)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次

有效,即输出两个脉冲。

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

信号。

·

/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。

F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。

·XTAL1:

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

·XTAL2:

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

2.4智能交通灯的设计要求:

1、设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两个交叉路口的车辆交替运行,两个方向调节通行时间。

2、在绿灯转为红灯时,要求黄灯先亮3秒钟,才能变换运行车道。

3、东西方向、南北方向车道都用同一个数码管显示器进行显示(采用倒计时的方法)。

4、同步设置人行横道红、绿灯指示。

5、考虑到特殊车辆情况,设置紧急转换开头即紧急“全红开关”。

2.5设计方案的选择

目前设计交通灯的方案有很多,有应用CPLD实现交通信号灯控制器的设计,有应用PLC实现对交通灯控制系统的设计。

有应用单片机实现对交通信号灯设计的方法。

由于AT89S51单片机自单带有2计数器,6个中断源,能满足系统的设计要求。

用单片机设计不但设计简单,而且成本低,用其设计的交通灯也满足了要求,所以本文采用单片机设计交通灯,系统构图如图2-5所示:

图2-5系统结构框图

2.6信号灯电路

信号灯用来显示车辆通行状况,下面以一个十字路口为例,说明一个交通灯的四种状态见图2-6。

每个路口的信号的的转换顺序为:

绿——>黄——>红绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。

红灯表示禁止通行。

黄灯时间为3秒。

红黄绿

绿黄红

黄红绿

绿黄红

红黄绿

绿黄红

红黄绿

绿黄红

红黄绿

红黄绿

图2-6交通信号灯运行状态

2.7时间显示电路

在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。

由于东往西方向和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以时间的时间为0-99秒完全可以满足系统的要求,数码管连接方法如图2-7所示

图2-7数码管连接

三、系统设计

本次实验设计分为硬件和软件两个部分。

3.1硬件设计

该设计电路大概可以分为4个模块:

(1)电源模块

电路电源是用五伏电源,晶体振荡器产生固定的12MHZ的频率,作为单片机的工作时钟,利用单片机的时钟控制,使数码管显示的时间隔一秒钟自动减一,实现倒计时功能,到了预定时间发光二极管便根据要求自动闪亮或转亮。

图3-1-1

图3-1-1电源晶振

(2)复位电路

通过复位开关,用来进行系统还原。

如图3-1-2

图3-1-2复位电路

(3)单片机模块

这是整个电路的核心。

(4)显示模块

用来表示红绿灯的变化情况通状况。

其基本的电路框图3-1-3如下:

图3-1-3基本电路框图

为了调试方便,采用了6个发光二极光模拟交通指示灯,P1.0接南北向绿灯,P1.1接南北向黄灯,P1.2接南北向红灯,P1.3接东西向绿灯,P1.4接东西向黄灯,P1.5接东西向红灯,P0口和P2口接数码管的显示端,P2.7控制数码管1的选通,P2.6控制数码管2的选通,数码管为共阴极,字形采用反向驱动,字位采用同向驱动。

用五伏电压为整个电路提供电源,通过复位电路完成了手动复位功能。

(5)紧急转换模块

为了调试方便,P2.2接设定时间开关SECONG1,P2.4接开始开关,P3.2接紧急换转开关。

如图3-1-4

图3-1-4

 

3.2软件设计

(1)软件的实现

本次设计使用的编程语言为汇编语言,为了实现设计目的,由电路原理图,以及单片机的开发常识,很容易的实现软件编程,实现所需要的功能。

(2)软件设计流程图

设计编程流程图如下图3-2-1所示:

图3-2-1

四、调试方法及步骤

调试过程是整个电路板做完后进行的功能调试,本设计电路可以分为硬件调试和软件调试,各个部分分析如下:

4.1软件调试

先把编好的程序在Keil软件以及结合在protues中画好的电路图中进行调试,只有两者结合调试,才能看到实验结果以及其的正确性。

若没有语法错误便可以下载烧录到单片机上进行运行,若发现了语法错误就进行及时改正。

可以把每一个小程序一一下载到单片机上来验证是否能够运行,如果每个程序都没有问题,就可以直接进行最后的实验。

4.2硬件调试

4.2.1调试安装前,首先将所选用的电子元器件测试一遍,确保元件完好,以免做了无用功。

在进行元器件安装时,元器件布局要合理,连线尽可能短而直。

所用的测量仪器要准备好。

4.2.2本设计是单片机控制的智能交通灯,硬件电路比较简单,但是为了保证器件的安全性,而不被突来的电流电压烧坏,在发光二极管周围放了限流电阻。

4.2.3检查完硬件电路板无误后,再将编好的程序烧入单片机中,运行程序。

它要完成的外部硬件功能就是将开关信息送到单片机并按程序执行,利用数码管显示倒计时,多个按键开关可执行其程序即可,然后通过发光二极管完成交通灯显示。

五、结果与讨论

智能控制交通系统实现是目前研究的方向,也已经取得不少成果,但传统的定时交通灯控制仍然在一些地方广泛应用,那是车流量不大,而且交通道路相对好的地方,传统的定时交通灯控制还是起到了一定的作用。

但随着社会的高速发展,城市化日益完善,车的数量必然增多,给交通的压力也增大,这时候,智能交通灯控制将会起到疏导交通,改善城市交通环境,推动城市化日益完善!

基于Proteus智能交通灯控制系统软件设计上有两个主要特点,一方面是本设计采用模糊控制方法实现交通的控制,由于模糊控制不需要建立被控对象精确的数学模型,特别适用于随机的.复杂的城市交通控制,根据车流量,合理分配调整通行时间。

另一方面,设计应急转换开关,考虑紧急车通过时,譬如,急救车或消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。

当一切准备工作都完成后,我们可以从电路板上清楚的看到实验结果,当南北方向绿灯亮时,南北方向的LED显示器同时显示倒计时功能,倒计时完成后,由绿灯变黄灯,再到红灯,同时东西方向绿灯亮,东西方向的LED显示器显示倒计时功能,倒计时完成后,由绿灯变黄灯,再到红灯,如此一个循环完成,便进入下一个循环。

通过复位开关,用来进行系统还原。

可以看出,实验结果和实验任务是完全吻合的,充分利用8051单片机,结合软硬件,实现了交通灯管理功能。

在调试过程中,刚刚开始时遇到时间一开始就不是归零,后来在检查程序过程中,发现是初始化没有设置好归零指令。

六、参考文献

[1]吴黎明。

单片机原理及应用技术。

科学出版社,2005-8。

[2]李学海。

标准80C51单片机基础教程-原理篇。

北京航空航天大学出版社,2006-8。

[3]刘乐善。

微型计算机接口技术及应用。

华中科技大学出版社,2000-4。

[4]周兴华。

手把教你学单片机。

北京航空航天大学出版社,2005-4。

[5]胡伟,季晓衡。

单片机应用技术系列:

单片机C程序设计及应用实例。

人民邮电出版社,2003-7。

附录1(仿真图及实物图)

 

 

附录2(元件清单)

元件名称

参数

数量

元件名称

参数

数量

电阻

300R

10个

发光二极管

红色

2个

电阻

8.2K

1个

发光二极管

绿色

2个

电容

22pF

2个

发光二极管

黄色

2个

电解电容

30pF

1个

驱动

74LS245

1个

单片机

AT89S51

1个

晶振

12M

1个

开关

4个

附录3(程序清单)

;----------定义----------

SECONDEQU20H

SSECONDEQU21H

SETUPEQUP2.4

SECOND1EQUP2.2

ALARMEQUP3.2

ORG0000H;主程序的入口地址

LJMPMAIN;跳转到主程序的开始处

ORG000BH;定时器0的中断程序入口地址

LJMPXIANSHI;跳转到中断程序入口

ORG0100H

 

;----------设置红灯时间----------

MAIN:

MOVSP,#60H;设置初始化

MOVSSECOND,#0

MOVSECOND,#0

MOVDPTR,#TABLE

MOVP0,#0FFH

A1:

CALLDISPLAY

JNBSETUP,MAIN1

JNBSECOND1,C1;判断SECOND1是否按下

JMPA1

C1:

CALLDEL1MS;SECOND1去抖动

JBSECOND1,A1

INCSECOND;数值加1

MOVA,SECOND

CJNEA,#99,J1;判断是否加到99秒,a不等于99,跳

MOVSECOND,#0

JMPA1

J1:

JBSECOND1,A1;判断SECOND松开,松开时显示当前数字

MOVSSECOND,SECOND

CALLDISPLAY

JMPJ1

;----------路灯运行程序----------

MAIN1:

MOVTMOD,#01H;设置T0为工作方式1

MOVTH0,#0E0H

MOVTL0,#0E0H

SETBEA

SETBTR0;启动T0计时器

SETBET0

LOOP:

MOVSSECOND,SECOND;红灯时间倒计时

CLRP1.5;南北方向红灯亮

CLRP1.0;东西方向绿灯亮

STLOP1:

CALLDEL500MS;调用子程序DEL500MS

CALLDEL500MS

DECSSECOND

MOVA,SSECOND

CJNEA,#3,STLOP1;判断3秒是否结束

SETBP1.0;南北方向绿灯不亮

CALLYELLOW1;调用子程序YELLOW

STAR2:

MOVSSECOND,SECOND;20秒倒计时

CLRP1.2;南北方向红灯亮

CLRP1.3;东西方向绿灯亮

STLOP2:

CALLDEL500MS

CALLDEL500MS

DECSSECOND

MOVA,SSECOND

CJNEA,#3,STLOP2

SETBP1.3;东西方向红灯不亮

CALLYELLOW2

SJMPLOOP;循环子程序

YELLOW1:

CLRP1.1

CALLDEL500MS

CPLP1.1;南北方向黄灯亮

ACALLDEL500MS

CLRP1.1

DJNZSSECOND,YELLOW1

CALLDEL500MS

CALLDEL500MS

SETBP1.1

SETBP1.5

RET

YELLOW2:

CLRP1.4

ACALLDEL500MS

CPLP1.4;东西方向黄灯亮

ACALLDEL500MS

CLRP1.4

DJNZSSECOND,YELLOW2

CALLDEL500MS

CALLDEL500MS

SETBP1.4

SETBP1.2

RET

XIANSHI:

MOVTH0,#0C0H

MOVTL0,#0C0H

LCALLDISPLAY

RETI;中断返回

 

;----------显示程序----------

ALARMON:

ACALLALARMISR

ALARMISR:

MOVP1,#0FFH;所有灯关掉

CLRP1.2

CLRP1.5;开红灯

ALARM_WAIT:

JNBP3.2,ALARM_WAIT

RET

DISPLAY:

PUSHACC

PUSHPSW;保护现场

MOVA,SSECOND

MOVB,#10

DIVAB

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

CLRP2.7;显示十位

LCALLDEL1MS

SETBP2.7

MOVA,B

MOVCA,@A+DPTR

MOVP0,A

CLRP2.6;显示个位

LCALLDEL1MS

SETBP2.6

POPPSW

POPACC

RET

 

;------延时子程序----------

DEL1MS:

MOVR3,#5

D1:

MOVR4,#250

DJNZR4,$

DJNZR3,D1

RET

DEL500MS:

JNBP3.2,ALARMON;判断紧急按键是否按下

MOVR7,#9

D3:

MOVR6,#200

D33:

MOVR5,#125

DJNZR5,$

DJNZR6,D33

DJNZR7,D3

RET

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

END

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

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

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

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