概述
用8255作输出口,控制十二个发光二极管燃灭,模拟交通灯管理。
①通过8255A控制发光二极管PB3、PB0、PA5、PA2对应黄灯,PB1、PA6、PA3、PA0对应红灯,PB2、PA7、PA4、PA1对应绿灯,以模拟交通路灯的管理。
②要完成本实验,必须先了解交通路灯的亮灭规律,没有一个十字路口1、3为南北方向,2、4为东西方向,初始状态为四个路口的红灯全亮。之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后,重复上述过程。
③程序中设定好8255A的工作模式,及三个端口均工作在方式0,并处于输出状态。
④各发光二极管共阳极,使其点亮应使8255A相应端口的位清0。
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 32F0H
PA EQU 0FFD8H
PB EQU 0FFD9H
PC EQU 0FFDAH
PCTL EQU 0FFDBH
H3: MOV AL,88H
MOV DX,PCTL
OUT DX,AL ;MOD:0,
MOV DX,PA
MOV AL,0B6H
OUT DX,AL
INC DX
MOV AL,0DH
OUT DX,AL
CALL DELAY1
P30: MOV AL,75H
MOV DX,PA
OUT DX,AL
INC DX
MOV AL,0DH
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV CX,08H
P31: MOV DX,PA
MOV AL,0F3H
OUT DX,AL
INC DX
MOV AL,0CH
OUT DX,AL
CALL DELAY2
MOV DX,PA
MOV AL,0F7H
OUT DX,AL
INC DX
MOV AL,0DH
OUT DX,AL
CALL DELAY2
LOOP P31
MOV DX,PA
MOV AL,0AEH
OUT DX,AL
INC DX
MOV AL,0BH
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV CX,08H
P32: MOV DX,PA
MOV AL,9EH
OUT DX,AL
INC DX
MOV AL,07H
OUT DX,AL
CALL DELAY2
MOV DX,PA
MOV AL,0BEH
OUT DX,AL
INC DX
MOV AL,0FH
OUT DX,AL
CALL DELAY2
LOOP P32
JMP P30
DELAY1: PUSH AX
PUSH CX
MOV CX,0030H
DELY2: CALL DELAY2
LOOP DELY2
POP CX
POP AX
RET
DELAY2: PUSH CX
MOV CX,8000H
LOOP $
POP CX
RET
CODE ENDS
END H3
最后
以上就是谨慎大地为你收集整理的8255控制交通灯的全部内容,希望文章能够帮你解决8255控制交通灯所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复