微机原理与接口技术——并行I/O接口(8255A)

发布时间:2023年12月24日

一、内部结构、端口地址以及与系统总线的连接

1、8255A的内部结构

在这里插入图片描述

2、8255A的端口地址与读/写操作

端口地址

在这里插入图片描述

读/写操作

在这里插入图片描述

3、系统总线

在这里插入图片描述

二、8255A三种工作方式(方式0 ~方式2 )的工作特点和I/O过程

工作方式

在这里插入图片描述
总结:
A口可以工作在方式0方式1或方式2;
B口可以工作在方式0或方式1;
C口只能工作在方式0。

工作特点

方式0:是基本型输入输出方式,端口 和 外设 之间没有联络信号
方式1:是选通型输入输出方式,端口与外设之间必须有联络线,CPU与8255A可以用查询方式或中断方式交换信息。
方式2:是双向数据传输方式,只有A口可工作在方式2.

三、在方式1中C口哪几个引脚作为信号联络线,各信号联络线的含义

在这里插入图片描述

名词解释

STB:

输入选通信号。由外设发往8255A,外设数据写入相应端口的输入缓冲器中。

IBF:

输入缓冲器满。由8255A发往外设,读数据前,先查询该引脚,只有当IBF=1时,此时CPU才能从A口或B口读取数据,当CPU操作完后,IBF=0。

INTR:

中断请求信号,在中断允许前提下,8255A接收到一个端口数据后(IBF=1),向CPU发出中断信号。
注意:中断方式时,必须要先讲与INTE对齐的C口引脚置1。

四、8255A初始化编程

注意

不管是工作在方式几,当控制口地址超过八位,就要利用DX作为中间值过渡。

工作在方式0

方式选择控制字—>控制口
格式:

MOV AL,方式控制字
OUT  控制口地址,AL

;若超过八位
MOV AL,方式控制字
MOV DX,控制口地址
OUT DX,AL

工作在方式1、2

  • 方式选择命令字→控制口
  • 允许中断(或禁止中断)的命令字→控制口
MOV AL,方式选择命令字
OUT 控制口地址,AL
MOV AL,允许中断(或禁止中断)的命令字
OUT 控制口地址,AL

五、8255A应用编程

输入查询测试 IBF,输出查询测试 OBF

  • 对于输入查询字符
SCAN:IN AL,C口
    TEST AL,IBF对应的C的引脚号(二进制)
    JZ SCAN
    IN AL,A口

例子:
A口查询一个字符,地址在218H~21BH

SCAN:MOV DX,21BH //C口
     IN AL,DX 
     TEST AL,00100000H //因为IBF对应的是PC5,因为要测D5是否为0
     JZ SCAN
     MOV DX,218H //A口
     IN AL,DX

说明:这是一个很经典的例子,由给出的地址可知,它们分别对应的A B C口地址,这里需要注意一个点,若地址超过八位,需要借助DX。

  • 对于输出
    在上面的代码中,改变测试字和JZ改成JNZ,因为OBF上面有一条杠,是低调平有效,所有当OBF为1时,OBF满。
文章来源:https://blog.csdn.net/qq_64131064/article/details/135138220
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。