一个关于微机原理8255A的题,在线等答案!!

已知8255A的四个端口地址为D0H、D2H、D4H、和D6H编写8255A初始化程序和LED灯控制程序。初始时8个灯
L1-L8均不亮,以后每隔一秒每次点亮一个灯,当8个灯都亮后隔一秒后全灭,构成一个循环。共执行上述循环10次。要求用汇编语言。写出满足上述要求的程序段(提示;可选A口或者B口工作于输出方式,延时一秒的子程序用CALL DELAY1实现)

第1个回答  推荐于2016-09-30
;
MOV AL, 1000 0000B ;控制字
OUT 0D6H, AL ;初始化

MOV AL, 00H ;全零
OUT 0D0H, AL ;开始时全灭
CALL DELAY1

MOV AH, 10
LP0:
MOV AL, 01H ;有一位是高电平
MOV CX, 8
LP1:

OUT 0D0H, AL ;输出到PA
CALL DELAY1 ;延时
SHL AL ;左移一位
LOOP LP1 ;循环8次
MOV AL, 00H
OUT 0D0H, AL ;全灭
CALL DELAY1

DEC AH
CMP AH, 0
JNE LP0 ;不到10遍则循环

HLT ;停止

END本回答被提问者采纳
相似回答