8255A汇编题,求高手进!!

8255A的PA0-PA7端接有开关K0-K7(开关闭合为低电平,为‘0’),PB0-PB7接有8支LED发光管(低电平亮)。端口A,B均工作在方式0下,8255A端口地址为90H-93H,编程:
1.使LED1,3,5,7,9同时亮,2,4,6,8灭,然后相反的循环下去。

2.循环的从第一个顺序亮到最后一个。

问题1:
mov dx,93h ;控制端口地址
mov al,10010000B ;控制字,A口输入,B口输出,均为方式0,C口没用上,随便设置
out dx,al ;控制字送控制端口
;mov dx,90h ;A口地址
;in al,dx ;读取A口开关状态
;(按照题目要求,貌似跟开关状态无关吧,注释掉)
mov dx,91h ;B口地址
continue:
mov al,01010101B ;PB0,PB2,PB4,PB6低电平,PB1,PB3,PB5,PB7高电平,LED1,3,5,7亮
out dx,al ;数据送至B口
;(这里可以调用延时子程序,你自己可以按需要设定延时,即LED灯显示多久再转换,我省略了哦)
not al ;求反,即使PB0,PB2,PB4,PB6为高电平,PB1,PB3,PB5,PB7为低电平,LED2,4,6,8亮
out dx,al ;数据送至B口
jmp continue ;循环显示

问题2:
mov dx,93h ;控制端口地址
mov al,10010000B ;控制字,A口输入,B口输出,均为方式0,C口没用上,随便设置
out dx,al ;控制字送控制端口
mov al,01111111B ;初始化PB0低电平,其它位高电平,LED1亮
mov dx,91h ;B口地址
continue:
out dx,al ;数据送至B口
;(调用延时子程序)
ROR al,1 ;循环右移1位,使LED依次亮
jmp continue ;循环显示

A口的开关没用上,按我的理解就是这样,如果理解有所偏差,抱歉!
温馨提示:答案为网友推荐,仅供参考
相似回答