8255控制交通灯

用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

  • 8
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值