基于单片机8255交通灯Word格式.docx
《基于单片机8255交通灯Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机8255交通灯Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
辆及行人的交通管理,系统包括左拐、右拐、及行基本的交通灯的功能,计时牌显示路口通行转换剩余时间,在出现紧急情况时可由交通手动实现全路口车辆禁行而行人通行状态。
另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。
其他还有84s与60s通行管理转换等功
能。
采用数码管与点阵LED相结合的显示方法,既要求倒计时数字输出,又要求有状态灯输出等。
关键字:
单片机系统<AT89C51)控制8255、交通规则、LED显示、动态扫描、按键输入、分时段调整
参考文献:
《单片机课程设计指导》北京航天航空大学出版社
《基于MCS-51系列的单片机原理的应用设计》国防工业出版社
《单片机实训教程》北京大学出版社
《单片机系统原理及应用》
《微机原理及应用》
二、方案设计与论证
1电源提供方案:
采用独立的稳压电源,此方案稳定可靠,且有各种成熟电路可供选用
2显示界面方案
采用数码管和点阵LED相结合的方法,因为实际既要求倒计时施主输出,又要求又状态
灯输出等,为方便观看并考虑到现实状况,用数码管与LED分别显示时间和提示信息。
这
种方案既满足系统功能要求,又减少了系统实现的复杂度。
3输入方案
直接在10口上接按键开关。
因为设计时精简和优化了电路,所以剩余口的资源还比较
多。
4主控制方案
采用AT89C51单片机作为控制器,控制8255实行通行倒计时及左拐、右拐、直行、行人通
行指示采用单块LCD液晶点阵显示器。
这种方案设计占用单片机的端口最少,硬件也少。
耗电也最小;
系统框图
正文
一、功能描述
本系统由单片机系统、键盘、发光二极管、交通灯演示系统组成,单片机作为主控制器用
于十字路口的车辆及行人的交通管理,每个方向具有左拐、右拐、直行及行人4种通行指
示灯,计时牌显示路口通行转换剩余时间。
另外,在特种车辆如119、120通过路口时,系
统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。
并有手动控制分时段84s与60s通行管理转换等功能。
二、系统硬件电路的设计
整套电路系统由控制系统模块、通行灯输出控制显示模块、时间显示模块、时间显示模块
和自动特种车辆控制模块等组成。
1、主控制系统
单片机的P0口用于控制8255。
8255的PA口和PB口用于控制南北及东西的通行灯,。
PC口及P3.0~P3.2口用于4组2位LED计时器的控制,特种车通过时使用外中断1口
<
P3.3),手动自动转换采用P1.0按键。
选择8255的工作方式0,在这种情况下三个端口都可以由程序设置为输入和输出。
2、通行灯输出控制
道口交通灯指示采用高亮度红绿双色发光二极管,左拐、直行、右拐及行人各一
个。
当发光电流为6mA时,按公式R=(5-1.8>
/0.006计算,限流电阻应为510Q.因为南北通行时双向指示牌相同,因此每个端口应具有12mA的吸收电流能力。
图7.4所示为指示灯
电路图。
3、时间显示模块
道口通行剩余时间采用高亮红色7段LED发光数码管显示,采用共阳数码管,如用单片机
吸收电流驱动,列扫描驱动使用三极管,按每段6mA电流算,全显示字形“8”时,每个数
码管需6mA<
8=48mA因为时间显示每个道口相同,4组需192mA因此设计中采用中功率
三极管9012.因为单片机每个断码输出口需吸收24mA电流,因此在电路设计中也使用了驱
动集成块74HC244其显示驱动电路如图示。
4、特种车辆自动控制模块
自动道口灯在特种车辆到来时能自动关闭所有绿灯,让特种车通过。
设计中采用红外线发
生器作为特种车的发生器,使用实时中断来影响特种车的通行要求。
红外线接收器一般采
用电视机上用的一体化红外接收器,具有很高的灵敏度和较强的抗干扰能力
5、电源电路
因为整个系统采用的电源电压需+5V电压,所以采用不可调的3端稳压器件,用常用的
lm7850就可以满足系统电源的要求。
LM7850三端集成稳压电源内部由准电压回路、恒流
源、过流保护、过压保护和短路保护回路等8部分组成具有低功耗,高效率,波纹系数
小,输出电压稳定等优点。
三、系统主要程序的设计
道口交通控制系统程序主要分为以下几个模块:
初始化程序、主程序、定时中断程序和特种车实时响应程序等。
1、初始化程序
初始化程序主要完成内存划,定时器的工作模式、中断方式等的设定。
因为子程序调用较多,因此初始化时堆栈指针设于80H处。
定时器TO、T1设为16位定时器模式,定时时间
位50ms,为秒计时用,T1为通行结束闪烁用。
2、主程序
主程序要负责总体程序管理功能,实现人机交换设定。
因为采用动态扫描方式显示时间,
因此主程序大部分时间要调用扫描显示程序。
主程序流程图如下图示。
3、夕卜中断1中断服务程序
经过时,车中发射红外线信号,其信号被道口控制板上的接收器接收,并输出一个低电平处外中断1•中断处理程序流程图如下页图所示。
4、定时服务中断程序
序主要用于行车与行人的通行指示,按照交通规则,红绿灯控制转换逻辑表如7.1表所
列。
南北方向端口控制功能120~110s110~70s70~60s60~10s10~0s
P*.7左拐红00011
P*.6左拐绿11100/1
P*.5直行红11100
P*.4直行绿000/111
P*.3右拐红01111
P*.2右拐绿10000/1
P*.1行人红11100
P*.0行人绿000/111
道口控制字66H6AH6AH/7BH99H99H/DDH
东西方向P*.7左拐红00000
P*.6左拐绿11111
P*.5直行红00000
P*.4直行绿11111
P*.1行人绿00000
P*.0行人红11111
道口控制字55H59H59H59H59H/5DH
通行规则如下:
1)车辆南北直行、各路右拐,南北向行人通行。
南北向通行时间为1min,各路右拐比
直行滞后10s开放。
2)车辆南北向左拐、各路右拐,行人禁行。
通行时间为1min。
3)车辆东西向直行、各路右拐,东西向行人通行。
东西向通行时间为1min,各路右拐
比直行滞后10s开放。
4)车辆东西向左拐、各路右拐,行人禁行。
表中通行规则,是以给控制红绿灯端口送控制码的方式实现的。
它的原理是,将按不同通
行规则时的各路口的红绿灯亮灭情况转换为单片机端口控制码。
其指示灯功能通过TO定时
中断服务程序实现。
定时器TO定时益出中断周期为10ms,中断累计20次<即1s)时对120s倒计时单元减1操作。
设计中将4种通行规则分成集中不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。
控制码分为5个时间段:
84—74s、
74—58s、58—48s、48—10s、10—Os。
交通管理定时功能程序流程图如下页图所示。
5、调试及性能分析
设计时按红绿交通灯控制程序和特种车辆经过中断程序两大部分电路进行测试。
1、红绿交通灯控制程序
时器T0,直接按照表7.1中算好的数据码送出来控制灯,观察其逻辑状态是否符合要求。
可多次、反复地进行调试,直至逻辑关系正确。
值得注意的是,南北方向、东西方向的指示灯要同时调试。
2、特殊车辆通行时红外线检测电路的调试
在模拟小车中放一块红外发射模块,将示波器输入端接在交通控制灯的红外接收模块的输出引脚上,当小车通过路口时,检测红外线是否被接收。
若该脚输出为低电平,则说明可以收到信号,电路正常。
本系统以AT89C51单片机为核心,开发程序调试阶段采用W78E516BS行在线编程及修改,
可大大加快调试进度。
设计的交通灯可用于十字路口的车辆及行人的交通管理,显示采用
2位7段数码管,可以很直观的显示红绿灯的开放和关闭的时间;
设计中应用了两种倒计时显示方式,84S倒计时适用于车流量较大的城市,60s倒计时可用于中小型城市;
功能
完整,不仅有普通交通灯的指示功能,还增加了特种车辆自动通行功能。
其控制功能和效果与真实道口管理红绿灯完全一致。
ORG0630H
HA4S:
MOVSP,#60H
MOVDPTR,#0FF2BH
MOVA,#80H
MOVX@DPTR,A
MOVDPTR,#0FF29H
MOVA,#49H
INCDPTR
MOVR2,#25H
LCALLDELAY
HA4S3:
MOVDPTR,#0FF29H
MOVA,#08H
MOVA,#61H
MOVR2,#55H
MOVR7,#05H
HA4S1:
MOVA,#04H
MOVA,#51H
MOVR2,#20H
MOVA,#00H
MOVA,#41H
DJNZR7,HA4S1
MOVA,#03H
MOVA,#0cH
HA4S2:
MOVA,#02H
MOVA,#8aH
DJNZR7,HA4S2
LJMPHA4S3
DELAY:
PUSH02H
DELAY1:
DELAY2:
DELAY3:
DJNZR2,DELAY3
POP02H
DJNZR2,DELAY2
DJNZR2,DELAY1
DJNZR2,DELAY
RET
END
交通灯<带外部中断)实验
作者:
徐学军
一、实验教案目的
1、学习外部中断技术的基本使用方法。
2、.学习中断处理程序的编程方法。
3、学习数据输出程序的设计方法。
4、学习模拟交通灯控制的方法。
5、学习双色灯的使用。
6、学习在单片机系统中扩展简单I/O接口的方法。
7、复习软件延时子程序的编写和使用。
二、实验教案内容
1、双色灯的使用,数据输出程序的设计。
2、P1、P0口的特点,主要是做为普通输入输出口使用时的特点<输出可以锁存,输入可以缓冲,包
括它们的负载能力),P0口的扩展。
3、使用驱动芯片<这里主要讲74LS240)驱动四只双色灯,包括各个引脚的功能与连接方法。
4、编写三层循环程序,用来延时,会计算延时时间。
5、外部中断的编程方法。
三、实验教案的重点与难点
单片机I/O口的使用和软件延时子程序的编写是重点,其中难点是软件延时子程序延时时
间的计算,但不
是重点,因为我们用它来做不太精确的延时,准确的延时,我们会在后面用定时器来完成。
四、实验的软件与硬件
微型计算机、爱迪克单片机实验箱及相关附件、爱迪克实验箱配套软件
五、实验教案的过程
1、让学生打开爱迪克实验软件<实验箱配套的软件)帮助中的实验帮助,参考实验五<约十
分钟时间)
,在黑板上写下学生需要参考教材的地方并画出接口电路简图,写下做本实验时的几点要求。
2、学生熟悉实验五帮助之后,跟学生讲清楚,利用爱迪克实验箱上的74LS240作为驱动
芯片。
详细
讲解硬件接口图。
3、让学生打开实验五的原程序,给学生讲解特别需要注意的地方。
4、讲解本次实验的具体要求,因为原程序太长,不适合让学生在短时间内编写,需要删除部分状态
,但要突出中断与交通灯的特点。
5、讲解程序设计中关键的程序<下面附有参考程序),并在黑板上板述出来。
6、让学生开始编程序,现在指导,并检查学生连线是否正确。
7、如果有学生做完,并且程序运行正确,就给他验收。
采用直接问答的方式,问题点主要在程序中
几个难点。
跟据学生的答问的情况进行评分,并且当堂记下成绩<根据学生实验报告等情况
最后还要综合
评分,作为学生的最终实验成绩)。
8、帮助部分学生修改程序。
六、参考程序
。
系统晶振是11.0592MHz
ORG
0000H
LJMP
START
0003H
INT0中断入口地址
INT_0
0040H
START:
MOV
SP,#60H
SETB
EX0
INT0中断有效
IT0
EA
LCALL
STATUS0
初始
状态(都是红灯>
CIRCLE:
LCALL
STATUS1
南北绿灯,东西红灯
STATUS2
南北
绿灯闪转黄灯,东西红灯
STATUS3
红灯,东西绿灯
STATUS4
红灯,东西绿灯闪转黄灯
INT0_:
CIRCLE
保护现场
PUSH
PSW
2
ACC
DPTR,#8300H
北,东西都亮红灯
A,#0FH
南
MOVX
@DPTR,A
时10秒
R2,#100
延
DELAY
恢复现场
POP
STATUS0:
红灯
RETI
南北红灯
东西
延时1秒
R2,#10
STATUS1:
南北绿灯
A,#96H
时20秒
R2,#200
STATUS2:
灯,东西红灯
南北绿灯闪转黄
R3,#03H
绿
灯闪3次
FLASH:
A,#9FH
R2,#03H
DJNZ
R3,FLASH
A,#06H
北黄灯,东西红灯
STATUS3:
南北红灯,东西
绿灯
A,#69H
STATUS4:
绿灯闪转黄灯
FLASH1:
MOV
A,#6FH
R3,FLASH1
A,#09H
北红灯,东西黄灯
NOP
1
1,#00H
0,#0B2H
0,$
1,DELAY2
100mS
2,DELAY1
七、实验要求与说明
1、参考实验五的硬件图进行连线。
2、用P1口或P0的扩展口作为输出。
3、参考实验帮助中程序进行编程序,至少用两个状态进行变换,并且进入中断之后有全
延时子程序
延时
红的状态。
4、说明:
因为做同一个实验的班级较多,为了避免学生直接调用上一个班级学生做过的程序,采用稍微改变上要求的方法