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

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

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

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

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

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

P1.7

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个

绿色

电容

22pF

黄色

电解电容

30pF

驱动

74LS245

单片机

AT89S51

晶振

12M

开关

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

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:

CJNEA,#3,STLOP2

SETBP1.3;

东西方向红灯不亮

CALLYELLOW2

SJMPLOOP;

循环子程序

YELLOW1:

CLRP1.1

CPLP1.1;

南北方向黄灯亮

ACALLDEL500MS

CLRP1.1

DJNZSSECOND,YELLOW1

CALLDEL500MS

SETBP1.1

SETBP1.5

RET

YELLOW2:

CLRP1.4

CPLP1.4;

东西方向黄灯亮

DJNZSSECOND,YELLOW2

SETBP1.4

SETBP1.2

XIANSHI:

MOVTH0,#0C0H

MOVTL0,#0C0H

LCALLDISPLAY

RETI;

中断返回

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

ALARMON:

ACALLALARMISR

ALARMISR:

MOVP1,#0FFH;

所有灯关掉

CLRP1.2

开红灯

ALARM_WAIT:

JNBP3.2,ALARM_WAIT

DISPLAY:

PUSHACC

PUSHPSW;

保护现场

MOVB,#10

DIVAB

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

CLRP2.7;

显示十位

LCALLDEL1MS

SETBP2.7

MOVA,B

CLRP2.6;

显示个位

LCALLDEL1MS

SETBP2.6

POPPSW

POPACC

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

DEL1MS:

MOVR3,#5

D1:

MOVR4,#250

DJNZR4,$

DJNZR3,D1

DEL500MS:

JNBP3.2,ALARMON;

判断紧急按键是否按下

MOVR7,#9

D3:

MOVR6,#200

D33:

MOVR5,#125

DJNZR5,$

DJNZR6,D33

DJNZR7,D3

TABLE:

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

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

END

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

当前位置:首页 > 经管营销 > 经济市场

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

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