8255 C口初始化高四位设置为输出,低四位为输入,输入时会怎么样

8255 C口初始化高四位设置为输出,低四位为输入,输入时会怎么样,第1张

当8255的C口工作于方式0,高4位、低4位,是相对独立的,

对C口作输入或输出操作时,高4位、低4位,互不影响;

例如,设定C口高4位输出,低4位输入,假设C口地址为82H,

若执行MOV DX,82H //IN AL,DX 两条指令,从C口读入的数值仅对AL的低4位有影响;

若执行OUT DX,AL 指令,从AL的输出的数值仅对C口高4位有影响。

1、首先用串口模块将一个从PC机发来的串行数据转换成并行数据存放到数据输出选择模块的DOUT口,至于这个八位数据是输入到控制寄存器还是从PA/PB/PC口输出,就由另一个输入输出逻辑判断模块来控制。

2、逻辑判断模块根据A0-A1,WR,RD,还有控制字来判断三个端口处于什么工作方式,并将数据发送(接收)至A口、B口、C口的缓冲区。

3、通过PA输出模块、PA输入模块、PB输出模块、PB输入模块、PC输出模块将缓存区中的数据根据不同的工作方式进行输入输出。

8个模块的作用:

1、串口通信模块(Rs232RefComp):由于8255端口众多,而fpga板载I/O口不够用,所以采用串口输入的方式来给8255提供所需的数据(D0-D7)。

2、数据输出选择模块(dout_mux):8255A有3个8位数据端口,即端口A、端口B和端口C,通过数据输出选择模块来最终判断选择哪个端口输出。

3、数据输入输出逻辑判断模块(cntl_log):8255A的三个端口,还有一个控制寄存器,通过数据输出输入逻辑判断模块来判断8255处于何种工作方式。

4、PA口输出模块(portaout):用来控制PA的缓存区的八位数据输出到PA口。

5、PA口输入模块(portain):用来控制PA口读到的数据放到PA的缓存区。

6、PB口输出模块(portbout):用来控制PB的缓存区的八位数据输出到PB口。

7、PB口输入模块(portbin):用来控制PB口读到的数据放到PB的缓存区。

8、PC口输出模块(portcout):用来控制PC口的位输出。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/652004.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-23
下一篇2023-07-23

发表评论

登录后才能评论

评论列表(0条)

    保存