8255 有三种工作方式
方式0(基本输入输出方式):
不需任何选通信号,A口、B口、高半C口、低半C口,者可被设定为输入或输出。
作输出口时输出数据存锁;作输入口时输入数据不存锁。
方式1(选通输入输出方式):
A、B、C 三个口分为两组。
A组包括A口及高半C口,A口可编程设定为输入或输出,高半C口作I/O控制及同步信号;
B组包括B口及低半C口,B口可编程设定为输入或输出,低半C口作I/O控制及同步信号;
A口、B口的输入/输出数据都被存锁。
方式2(双向总线方式):
A口(仅A口)作8位双向总线,C口的PC3~PC7位用作I/O控制及同步信号;
B口及C口的PC0~PC2可编程设定为方式0或方式1工作。
设8255的A、B和C口工作在方式0下,能循环查询输入输出,当查询到PC1=1时结束本程序;查询到PC1=0且PC0=1时,从A口读入数据,将其高四位取反,低四位保持不变,然后送B口输出。试编写8255初始化和应用程序(设8255 A、B、C口和控制端口地址为70H-73H)。
参考答案
答:MOV AL,10011001B ;A入0方式,B出0方式,C入
OUT 73H,AL
IN AL,72H
WAIT:TEST AL,2
JNZ DONE
TEST AL,1
JZ WAIT
IN AL,70H
XOR AL,0F0H
OUT 71H,AL
JMP WAIT
DONE:RET
mox al 10010010B