基于单片机8255交通灯.docx
- 文档编号:29040430
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:16
- 大小:25.39KB
基于单片机8255交通灯.docx
《基于单片机8255交通灯.docx》由会员分享,可在线阅读,更多相关《基于单片机8255交通灯.docx(16页珍藏版)》请在冰豆网上搜索。
基于单片机8255交通灯
8255控制交通灯
一、实验目的
了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。
二、实验内容
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
三、实验说明
1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1东西绿灯通车,南北红灯。
过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。
再转状态3,南北绿灯通车,东西红灯。
过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。
最后循环至状态1。
四、实验程序框图
五、实验接线图
六、实验步骤
①8255PA0—PA7、PB0—PB3依次接发光二极管L1—L12。
②以连续方式从0BB0H开始执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。
延时一段时间后东西路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪耀。
闪耀若干次后,再切换到东西路口方向,之后重复以上过程。
一摘要:
本系统采用单片机、键盘、LED显示、交通灯演示系统组成。
设计一个用于十字路口的车辆及行人的交通管理,系统包括左拐、右拐、及行基本的交通灯的功能,计时牌显示路口通行转换剩余时间,在出现紧急情况时可由交通手动实现全路口车辆禁行而行人通行状态。
另外,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行的状态,15s后系统自动恢复正常管理。
其他还有84s与60s通行管理转换等功能。
采用数码管与点阵LED相结合的显示方法,既要求倒计时数字输出,又要求有状态灯输出等。
关键字:
单片机系统(AT89C51)控制8255、交通规则、LED显示、动态扫描、按键输入、分时段调整
参考文献:
《单片机课程设计指导》北京航天航空大学出版社
《基于MCS-51系列的单片机原理的应用设计》国防工业出版社
《单片机实训教程》北京大学出版社
《单片机系统原理及应用》
《微机原理及应用》
二、方案设计与论证
1电源提供方案:
采用独立的稳压电源,此方案稳定可靠,且有各种成熟电路可供选用
2显示界面方案
采用数码管和点阵LED相结合的方法,因为实际既要求倒计时施主输出,又要求又状态灯输出等,为方便观看并考虑到现实状况,用数码管与LED分别显示时间和提示信息。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
3输入方案
直接在IO口上接按键开关。
因为设计时精简和优化了电路,所以剩余口的资源还比较多。
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计算,限流电阻应为510Ω.由于南北通行时双向指示牌相同,因此每个端口应具有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处。
定时器T0、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*.3右拐红01111
P*.2右拐绿10000/1
P*.1行人绿00000
P*.0行人红11111
道口控制字55H59H59H59H59H/5DH
通行规则如下:
(1)车辆南北直行、各路右拐,南北向行人通行。
南北向通行时间为1min,各路右拐比直行滞后10s开放。
(2)车辆南北向左拐、各路右拐,行人禁行。
通行时间为1min。
(3)车辆东西向直行、各路右拐,东西向行人通行。
东西向通行时间为1min,各路右拐比直行滞后10s开放。
(4)车辆东西向左拐、各路右拐,行人禁行。
通行时间为1min。
表中通行规则,是以给控制红绿灯端口送控制码的方式实现的。
它的原理是,将按不同通行规则时的各路口的红绿灯亮灭情况转换为单片机端口控制码。
其指示灯功能通过T0定时中断服务程序实现。
定时器T0定时益出中断周期为10ms,中断累计20次(即1s)时对120s倒计时单元减1操作。
设计中将4种通行规则分成集中不同的亮灯方式,通过查询秒倒计时单元的数据,实现在不同的时间段给控制端口送不同的控制数据码。
控制码分为5个时间段:
84—74s、74—58s、58—48s、48—10s、10—0s。
交通管理定时功能程序流程图如下页图所示。
5、调试及性能分析
设计时按红绿交通灯控制程序和特种车辆经过中断程序两大部分电路进行测试。
1、红绿交通灯控制程序
时器T0,直接按照表7.1中算好的数据码送出来控制灯,观察其逻辑状态是否符合要求。
可多次、反复地进行调试,直至逻辑关系正确。
值得注意的是,南北方向、东西方向的指示灯要同时调试。
2、特殊车辆通行时红外线检测电路的调试
在模拟小车中放一块红外发射模块,将示波器输入端接在交通控制灯的红外接收模块的输出引脚上,当小车通过路口时,检测红外线是否被接收。
若该脚输出为低电平,则说明可以收到信号,电路正常。
本系统以AT89C51单片机为核心,开发程序调试阶段采用W78E516B进行在线编程及修改,可大大加快调试进度。
设计的交通灯可用于十字路口的车辆及行人的交通管理,显示采用2位7段数码管,可以很直观的显示红绿灯的开放和关闭的时间;设计中应用了两种倒计时显示方式,84S倒计时适用于车流量较大的城市,60s倒计时可用于中小型城市;功能完整,不仅有普通交通灯的指示功能,还增加了特种车辆自动通行功能。
其控制功能和效果与真实道口管理红绿灯完全一致。
ORG0630H
HA4S:
MOVSP,#60H
MOVDPTR,#0FF2BH
MOVA,#80H
MOVX@DPTR,A
MOVDPTR,#0FF29H
MOVA,#49H
MOVX@DPTR,A
INCDPTR
MOVA,#49H
MOVX@DPTR,A
MOVR2,#25H
LCALLDELAY
HA4S3:
MOVDPTR,#0FF29H
MOVA,#08H
MOVX@DPTR,A
INCDPTR
MOVA,#61H
MOVX@DPTR,A
MOVR2,#55H
LCALLDELAY
MOVR7,#05H
HA4S1:
MOVDPTR,#0FF29H
MOVA,#04H
MOVX@DPTR,A
INCDPTR
MOVA,#51H
MOVX@DPTR,A
MOVR2,#20H
LCALLDELAY
MOVDPTR,#0FF29H
MOVA,#00H
MOVX@DPTR,A
INCDPTR
MOVA,#41H
MOVX@DPTR,A
MOVR2,#20H
LCALLDELAY
DJNZR7,HA4S1
MOVDPTR,#0FF29H
MOVA,#03H
MOVX@DPTR,A
INCDPTR
MOVA,#0cH
MOVX@DPTR,A
MOVR2,#55H
LCALLDELAY
MOVR7,#05H
HA4S2:
MOVDPTR,#0FF29H
MOVA,#02H
MOVX@DPTR,A
INCDPTR
MOVA,#8aH
MOVX@DPTR,A
MOVR2,#20H
LCALLDELAY
MOVDPTR,#0FF29H
MOVA,#02H
MOVX@DPTR,A
INCDPTR
MOVA,#08H
MOVX@DPTR,A
MOVR2,#20H
LCALLDELAY
DJNZR7,HA4S2
LJMPHA4S3
DELAY:
PUSH02H
DELAY1:
PUSH02H
DELAY2:
PUSH02H
DELAY3:
DJNZR2,DELAY3
POP02H
DJNZR2,DELAY2
POP02H
DJNZR2,DELAY1
POP02H
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
ORG 0003H ;INT0中断入口地址
LJMP INT_0
ORG 0040H
START:
MOV SP,#60H
SETB EX0 ;INT0中断有效
SETB IT0
SETB EA
LCALL STATUS0 ;初始状态(都是红灯)
CIRCLE:
LCALL STATUS1 ;南北绿灯,东西红灯
LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯
LCALL STATUS3 ;南北红灯,东西绿灯
LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯
LJMP CIRCLE
INT0_:
PUSH PSW ;保护现场
PUSH 2
PUSH ACC
MOV DPTR,#8300H
MOV A,#0FH ;南北,东西都亮红灯
MOVX @DPTR,A
MOV R2,#100 ;延时10秒
LCALL DELAY
POP ACC ;恢复现场
MOVX @DPTR,A
POP 2
POP PSW
RETI
STATUS0:
;南北红灯,东西红灯
MOV DPTR,#8300H
MOV A,#0FH
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
RET
STATUS1:
;南北绿灯,东西红灯
MOV DPTR,#8300H
MOV A,#96H ;南北绿灯,东西红灯
MOVX @DPTR,A
MOV R2,#200 ;延时20秒
LCALL DELAY
RET
STATUS2:
;南北绿灯闪转黄灯,东西红灯
MOV DPTR,#8300H
MOV R3,#03H ;绿灯闪3次
FLASH:
MOV A,#9FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#96H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
MOV A,#06H ;南北黄灯,东西红灯
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
RET
STATUS3:
;南北红灯,东西绿灯
MOV DPTR,#8300H
MOV A,#69H
MOVX @DPTR,A
MOV R2,#200 ;延时20秒
LCALL DELAY
RET
STATUS4:
;南北红灯,东西绿灯闪转黄灯
MOV DPTR,#8300H
MOV R3,#03H ;绿灯闪3次
FLASH1:
MOV A,#6FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#69H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#09H ;南北红灯,东西黄灯
MOVX @DPTR,A
MOV R2,#10 ;延时1秒
LCALL DELAY
NOP
RET
DELAY:
;延时子程序
PUSH 2
PUSH 1
PUSH 0
DELAY1:
MOV 1,#00H
DELAY2:
MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2 ;延时100mS
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
RET
END
七、实验要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 8255 交通灯