智能交通灯单片机课程设计报告Word格式文档下载.docx
《智能交通灯单片机课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《智能交通灯单片机课程设计报告Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
调研邵阳市某个十字路口交通灯运行现状,利用89C51设计一个控制系统那实现其功能。
1、要求设计出交通灯模型
2、要求设计出硬件系统的电气原理图;
3、要求设计出程序流程图和程序;
4、要求设计出实物或者仿真调试。
注:
1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;
2.此表1式3份,学生、指导教师、教研室各1份。
四、参考资料和现有基础条件(包括实验室、主要仪器设备等)
1、单片机课程设计指导,北京航空航天大学出版社,楼然苗等2007年7月
2、单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月
3、THKSCM-1型单片机实验系统实验指导书、KEIL软件,WAVE软件
4、数字控制与PLC实验室”THKSCM-1型单片机实验系统”。
五、进度安排
2014年6月16日-17日:
收集和课程设计有关的资料,熟悉课题任务何要求总体方案设计
2014年6月18日-19日:
硬件电路设计
2014年6月20日-21日:
软件设计
2014年6月22日-24日:
系统调试改进
2014年6月25-26日:
整理书写设计说明书
2014年6月27日:
答辩并现场考核
六、教研室审批意见
教研室主任(签名):
年月日
七|、主管教学主任意见
主管主任(签名):
八、备注
指导教师(签字):
学生(签字):
摘要
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
单片机的特点控制功能强抗干扰性强,可靠性高,工作温度范围宽开发周期短,性价比高,易于产品化。
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。
本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。
本设计系统由单片机I/O口扩展系统、交通灯状态显示系统、LED数码显示系统、紧急情况中断系统、复位电路等几大部分组成。
系统除基本的交通灯功能外,还具有倒计时、紧急情况处理等功能,较好的模拟实现了十字路口可能出现的状况。
关键词:
交通灯单片机实用性高
摘要
1任务和要求1
1.1设计任务1
1.2设计要求2
1.3设计思路2
2.硬件设计3
2.1AT89SC21单片机的概述3
2.289C51单片机的时钟5
2.389C51单片机的封装和引脚5
3电路模块设计7
3.1系统的整体方案设计7
4单元电路模块设计8
4.1复位电路8
4.2晶振电路9
4.3倒计时显示电路10
4.4交通灯电路11
4.5紧急通行电路12
5系统程序设计13
5.1主程序流程图13
5.2紧急中断程序流程图14
5.3程序清单14
心得体会20
参考文献
1任务和要求
1.1设计任务
本设计要求用单片机设计一个智能交通灯控制系统,使其能模仿城市“十字”路口交通灯的功能,并能满足特殊的控制要求(如按键K1、K2、K3的使用),该系统的具体功能如下:
(1)该控制系统能控制东、西、南、北四个路口的红、黄、绿信号灯正常工作。
(2)当东西方向准行,南北方向禁行时,东西方向亮绿灯,南北方向亮红灯。
(3)当南北方向准行,东西方向禁行时,南北方向亮绿灯,东西方向亮红灯。
(4)两垂直方向的准行时间均为15s。
(5)准行方向亮绿灯与禁行方向亮红灯10s后,四个道口同时加亮一盏黄灯进行闪烁,以警告车辆及行人,准行方向与禁行方向即将改变(即准行变为禁行,禁行变为准行)。
(6)四个道口只用一组由十位和个位组成的数码管显示准行(或禁行)的剩余时间。
(7)在交通情况比较特殊的情况下,可以通过K1、K2、K3三个按键对交通灯进行控制,具体要实现的功能如下:
当有紧急情况发生,如消防车、救护车等紧急车辆通过时,按下K1键,四个路口同时加亮黄色灯进行闪烁(闪烁时间为5S),并且倒计时显示装置关闭,黄色灯5S闪烁完成后,四个路口的信号灯全部变成红灯,这样四个路口的普通车辆禁行,只允许紧急车辆通过,待紧急车辆通过后。
松开K1键,表示紧急状态消除,交通灯控制系统恢复正常工作。
当东西方向车辆过多时,按下K2键,四个路口同时加亮黄灯进行闪烁(闪烁时间为5s),并且倒计时显示装置关闭,黄灯5s闪烁完成后,只允许东西方向车辆通过,南北方向车辆禁行,从而有效地调节东西方向车辆过多的情况,松开K2键,交通灯又开始正常工作。
当南北方向车辆过多时,按下K3键,四个路口同时加亮黄灯进行闪烁(闪烁时间为5s),并且倒计时显示装置关闭,黄灯5s闪烁完成后,只允许南北方向车辆通过,东西方向车辆禁行,从而有效地调节南北方向车辆过多的情况,松开
K3键,交通灯又开始正常工作。
1.2设计要求
(1)十字路口的4个路口都有双色LED(红光,绿光,叠加为黄色光)显示各路口的各条通道的的状态;
(2)每个路口都有两位数码管显示当前红灯的倒计时;
(3)有三种工作状态:
正常工作状态,紧急工作状态,设置状态;
(4)可利用按键进行改变工作状态;
1.3设计思路
利用单片机实现交通灯的控制,该任务分以下几个方面:
a实现红、绿、黄灯的循环控制。
要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。
b用数码管显示倒计时。
可以利用动态显示或静态显示,串行并出或者并行并出实现。
C实现急通车。
这需要人工实现,编程时利用到中断才能带到目的,只要有按钮按下,那么四个方向全部显示红灯,禁止以诶车辆通行。
当情况解除,让时间回到只能隔断处继续进行。
2硬件设计
2.1AT89SC51单片机概述:
AT89SC51是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
下图是89SC51的基本结构:
图2.189SC51的基本结构
89SC51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等极大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明。
中央处理器:
8位CPU,含布尔处理器;
时钟电路;
总线控制逻辑。
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统的工作,完成运算和控制输入输出等操控。
数据存储器(RAM):
128KB数据存储器(RAM,可再扩64KB);
特殊功能寄存器SFR。
89CS51内部有128个8位用户数及存储单元和128个寄存器单元,他们是统一编址的,专营寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户自定义的字型表。
程序存储器(ROM):
4KB的程序存储器(ROM/EPROM/Flash,可扩至64KB);
89CS51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
定时/计数器(ROM):
89CS51有两个16位的可编程定时/计数器,一时想定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:
9CS51共有4组8位I/O口(P0、P1、P2或P3),用于对外数据传输。
中断系统:
89CS51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,客满著不同的控制要求,并具有2级优先级别选择。
时钟电路:
89CS51内置最高频率高达12Hz的时钟电路,用于产生整个单片机运行的脉冲时序,但89CS51单片继续外置震荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
2.289SC51单片机的时钟
(1)振荡器和时钟电路
89SC51内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路。
89SC51的时钟产生方法有以下两种。
a内部时钟方式
利用芯片内部的振荡器,然后在引脚XTALl和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。
外接晶振时,Cl和C2的值通常选择为30pF左右;
Cl、C2对频率有微调作用,晶振或陶瓷谐振器的频率范围可在1.2MHz~12MHz之间选择。
为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XTALl和XTAL2靠近。
图2.289SC51时钟电路接线方法
b外部时钟方式
此方式是利用外部振荡脉冲接入XTALl或XTAL2。
HMOS和CHMOS单片机外时钟信号接入方式不同。
表2-180C51单片机外部时钟接入方法
芯片类型
接线方法
XTAL1
XTAL2
HMOS
接地
接片外时钟脉输入端(引脚需接上拉电阻)
CHMOS
接片外时钟脉冲输入端
悬空
2.389SC51单片机的的封装和引脚
80SC51系列单片机采用双列直插式(DIP).QFP44(QuadFlatPack)和LCC(LeadedChipCaiier)形式封装。
这里仅介绍常用的总线型DIP40封装。
如图3-4所示。
40个引脚按引脚功能大致可分为4个种类:
电源、时钟、控制和I/O引脚
(1)电源:
VCC-芯片电源,接+5V;
VSS-接地端;
图2.380C51单片机的的封装和引脚
(2)时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
(3)控制线:
控制线共有4根,
ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
ALE功能:
用来锁存P0口送出的低8位地址
PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
PSEN:
外ROM读选通信号。
RST/VPD:
复位/备用电源。
RST(Reset)功能:
复位信号输入端。
VPD功能:
在Vcc掉电情况下,接备用电源。
EA/Vpp:
内外ROM选择/片内EPROM编程电源。
EA功能:
内外ROM选择端。
Vpp功能:
片内EPROM的芯片,在EPROM编程期间,施加编程电源
Vpp。
(4)I/O线
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
3电路模块设计
3.1系统的整体方案设计
本系统拟采用AT89C51单片机作为智能交通灯系统的控制核心。
从设计所要完成的任务来看,单一路口显示倒计时时间的数码必须用两位,对于七段数码管,考虑到AT89C51单片机所能提供I/O接口的数量,倒计时显示装置中的数码管在本系统中采用的是静态显示;
设置了3个按键用来处理交通灯在实际应用中可能出现的特殊情况,共使用3个I/O端口,其中P3.0接K1键,P3.2接K2键,P3.3接K3键;
十字路口共需4组红绿灯,加上转换黄灯,一共是12只灯,须用6个端口进行控制,具体I/O接口分配为:
P1.0~P1.2分别接东西方向的红、绿、黄共6盏信号灯,P1.3~P1.5分别接南北方向的红、绿、黄共6盏信号灯;
AT89C51单片机的I/O口作为输出时,具有较大的吸收电流能力,因此我们可以选用共阳极数码管,这样由单片机的I/O口就可以驱动,从而简化硬件电路的设计;
此外专门设计了监控电路对控制系统进行实时监控,保证系统工作的稳定性和持续性。
系统的整体方案设计如图3.1所示
图3.1系统的整体方案设计如
4单元电路模块设计
4.1复位电路
图4-1上电自动复位电路
为了确保控制系统能够稳定可靠的工作,复位电路是必不可少的一部分。
它可以保证程序从指保证程序从指定处开始执行,即从程序存储器的0000H地址单元开始执行程序。
另外当程序运行出错或操作错误使系统处于死机状态时需复位以重新启动。
上电自动复位是通过外部复位电路的电容充电实现的。
通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过电阻对电容进行麅,RST端电压慢慢降下来,降到一定程度时变为低电平,单片机正常工作。
上电自动复位电路如图4-1所示
4.2晶振电路
图4.2晶振电路
单片机必须在时钟的驱动下才能进行工作。
AT89C51单片机内部具有一个时钟振荡电路,只需要外接振荡器,即可为各部分提供时钟信号。
使用晶振电路时,只要在引脚XTAL1和XTAL2上外接定时反馈回路,振荡器OSC就能自激振荡,产生矩形时钟脉冲序列。
定时反馈回路常由石英晶振和微调电容组成,其中石英晶振的频率是单片机的重要性能指标之一,时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。
该电路是用12MHz的石英晶振和两个30p的电容器。
石英晶振的频率选为典型值12MHz,这样有得于得到没有误差的波特率。
电容器C2和C3是起稳定振荡频率、快速起振的作用。
4.3倒计时显示电路
图4.3倒计时显示电路图
该交通灯控制系统在正常工作情况下,每15s循环变换一次,为方便提示路上的行人及车辆交通灯转换的剩余时间,专门为控制系统设计了一个倒计时显示装置。
该显示装置选用七段数码管来显示交通灯的剩余时间。
本来根据控制要求,每个路口需要两个数码管,这样四个路口就需要八个数码管,但由于四组显示的倒计时时间都是一样所以只需使用一组数码管即可。
由于AT89C51单片机的I/O作为输出时,具有较大的吸收电流能力,因此我们可以选用共阳型数码管,这样由单片机的I/O就可以直接驱动,从而简化硬件电路的设计。
而在电路中是用阻值为4.7k的排电路作为上位电路,限流电阻却用阻值为200的电阻。
如图3-3所示。
4.4交通灯电路
图4.4交通灯电路图
单片机的I/O接口直接和交通灯(LED)连接。
在十字路口的四组红、黄、绿三色交通灯中,东西方向道路上的两组同色灯连接在一起,南北方向道路上的两组同色灯连接在一起,受单片机P1.0~P1.5控制。
12个发光二极管采用了共阳极的连接方式,因此I/O口输出低电平时,与之相连的LED会亮,I/O口输出高电平时,与之相连的LED会灭。
交通灯电路如图4-4所示。
4.5紧急通行电路
图4.5紧急通行电路
该系统的K1、K2、K3三个键分别与单片机的P3.0、P3.1、P3.6相接,它们可以在特殊的交通情况下使用。
例如,当有紧急情况发生时:
按下K1键,四个路口同时加亮黄灯进行闪烁5s后,并且关闭倒计装置,四个路口信号灯同时转为红灯,从而保证紧急车辆通过。
松开K1键,交通灯系统恢复正常工作状态;
按下K2键,四个路口同时加亮黄灯进行闪烁5s后,并且关闭倒计装置,只允许东西方向车辆通行,南北方向禁行。
松开K2键,交通灯系统恢复正常工作状态;
按下K3键,四个路口同时加亮黄灯进行闪烁5s后,并且关闭倒计装置,只允许南北方向车辆通行,东西方向禁行。
松开K3键,交通灯系统恢复正常工作状态
5系统程序设计
5.1主程序流程图
该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。
智能交通灯控制系统在正常的情况下,每15s循环变化一次。
每个循环周期在还剩余5s时,四个路口的黄灯同时点亮并开始闪烁,以提醒行人及车辆,交通灯将发生转换。
要程序中定时扫描P3口,若有键按下,则调用键盘子程序进行相应也处理;
若无,则程序继续执行。
主程序流程图如图5-1所示。
5.2紧急中断程序流程图
5.3程序清单
程序如下:
ORG0000H
LJMPMAIN
ORG001BH;
定时器T1中断入口
LJMPKK
ORG0100H;
主程序入口
MAIN:
MOVSP,#60H
MOVTMOD,#10H;
定时器T1工作在方式1
MOVTH1,#9EH;
给定时器T1赋初值
MOVTL1,#58H
SETBEA;
开中断系统总开关
SETBET1;
开定时器T1中断开关
SETBTR1;
启动定时器T1
HERE:
MOV88H,#15H;
设置中断循环次数
MOV33H,#10H;
设置倒计时显示数值
MOVP1,#0F3H;
使交通灯东西绿,南北红
MOVR7,#0AH
MM:
LCALLDISP
MOVA,P3;
键盘扫描
CJNEA,#0FFH,READKEY
DJNZR7,MM
MOVP1,#0E1H;
交通灯东西绿,南北红同时加亮黄灯
MOV20H,#02H
NN:
MOVA,P3
CJNEA,#0FFH,READKEY
SETBP1.1;
黄灯进行闪烁5s
SETBP1.4
CLRP1.1
CLRP1.4
LCALLDISP;
调显示子程序
DJNZ20H,NN
SETBP1.1
MOVP1,#0DEH;
交通灯南北绿,东西红
PP:
MOVA,P3
DJNZR7,PP
MOVP1,#0CCH;
交通灯南北绿,东西红同时加亮黄灯
QQ:
扫描P3口
LCALLDISP
DJNZ20H,QQ
LCALLQW
QW:
SJMPHERE
RET
DELAY:
MOVR1,#0AH
DELAY0:
MOVR2,#0C8H
DELAY1:
MOVR3,#0F8H
NOP
DELAY2:
DJNZR3,DELAY2
DJNZR2,DELAY1
DJNZR1,DELAY0
READKEY:
MOVA,#0FFH
MOVP3,A
JNBACC.0,K1;
判断K1键是否按下
JNBACC.1,K2;
判断K2键是否按下
JNBACC.6,K3;
判断K3键是否按下
K1:
MOVP0,#0FFH;
判断倒计时显示装置
MOVP2,#0FFH
LCALLXX
LCALLYY
SJMPREADKEY
K2:
关断倒计时显示装置
LCALLYY1
K3:
LCALLYY2
XX:
MOV20H,#05H
LCALLBB
BB:
LCALLDELAY
LCALLDELAY
DJNZ20H,BB
YY:
MOVP1,#0F6H;
四个路口均变为红灯
JNBACC.0,YY;
判断K2键是否仍然按下
YY1:
东西方向亮绿灯,南北方向亮红灯
JNBACC.1,YY1;
YY2:
南北方向亮绿灯,东西方向亮红灯
JNBACC.6,YY2;
判断K3键是否仍然按下
RET
KK:
DEC88H
MOVA,88H
CJNEA,#01H,BN
MOV88H,#15H
BN:
重新给定时器T1赋初值
RETI
DISP:
DEC33H
MOVA,33H
CJNEA,#01H,DIR1
MOV33H,#10H
DIR1:
MOVB,#0AH
DIVAB;
提取出倒计时数值的十位和个位数
MOVDPTR,#TAB;
字形表的入口地址
MOVCA,@A+DPTR;
查表获取十位数的字型码
MOV30H,A
MOVA,B
查表获取个位数的字型码
MOV31H,A
MOVA,30H
MOVP0,A