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

文章目录

  • 一、内部结构、端口地址以及与系统总线的连接
    • 1、8255A的内部结构
    • 2、8255A的端口地址与读/写操作
      • 端口地址
      • 读/写操作
    • 3、系统总线
  • 二、8255A三种工作方式(方式0 ~方式2 )的工作特点和I/O过程
    • 工作方式
    • 工作特点
  • 三、在方式1中C口哪几个引脚作为信号联络线,各信号联络线的含义
    • 名词解释
      • STB:
      • IBF:
      • INTR:
  • 四、8255A初始化编程
    • 注意
    • 工作在方式0
    • 工作在方式1、2
  • 五、8255A应用编程

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

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满。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/267624.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Plantuml之时序图语法介绍(二十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

无线路由器DHCP导致网络故障一例

多个DHCP故障 这几天公司网络很难用,也不知道原因。通过路由器的检测功能,领导截图如下: 故障解决 其实解决办法也很简单,就是关闭设备排查。结果发现是一个无线路由器导致的。进入路由器管理界面,关闭DHCP即可。 反思…

windows server 2008 R2 x64 基础知识(2)

一、防火墙设置 1.windows防火墙的种类: 1)工作组网络环境 2)域网络环境 2.防火墙的配置 1)打开管理工具:win->管理工具->高级安全windows防火墙 2)管理配置: (1)防火墙的数据流类型 a.入站流量:外部访问内部分流量 b…

Springsecurty【2】认证连接MySQL

1.前期准备 基于Spring Initializr创建SpringBoot项目(基于SpringBoot 2.7.12版本),实现与MyBatisPlus的项目整合。分别导入:CodeGenerator和MyBatisPlusConfig。 CodeGenerator:用于MybatisPlus代码生成;…

Netty Review - 深入理解Netty: ChannelHandler的生命周期与事件处理机制

文章目录 概述CodeLifeCycleInBoundHandler 验证 概述 Netty的ChannelHandler是处理网络事件(如数据读取、数据写入、连接建立、连接关闭等)的核心组件。 在Netty中,ChannelHandler的生命周期与Channel的状态紧密相关,主要涉及到…

基于信道探测(Channel Sounding)的新一代低功耗蓝牙高精度测距技术原理详解

目录 1. 介绍 2. BLE HADM步骤 3. BLE HADM步骤一:设备同步 Synchronization 4. BLE HADM步骤二:跳频测相 Ranging 5. BLE HADM步骤三:交互相位信息,并计算距离 6. 发起设备和反射设备间的同步偏差问题 7. 总结 8. 参考文献 1. 介绍 在现今高度数字化与互联网普及的…

【AI提示词艺术】第12期 摄影艺术构图处理和人像生成的技巧

摄影艺术构图 星空宇宙 关键词: 强烈的明暗对比,8k,精细的描述,相片纸,超高分辨率,无建筑的,大自然,星空,云朵,刺眼流星,群星,银河,仰视视角,广角镜头 以下是按照提示词类别整理的相关描述&a…

常见的Ubuntu命令30条(一)

Ubuntu命令是指在Ubuntu操作系统中用于执行各种任务和操作的命令行指令。这些命令可以用于管理系统、配置网络、安装软件、浏览文件等。Ubuntu命令通常在终端(Terminal)应用程序中输入并执行。 在Ubuntu中,有许多常用的命令和指令。以下是一…

Windows漏洞利用开发——利用ROP绕过DEP保护

实验6 Windows漏洞利用开发 6.1实验名称 Windows漏洞利用开发 6.2实验目的 学习windows漏洞利用开发,使用kali linux相关工具对windows内目标程序进行漏洞利用 6.3实验步骤及内容 第三阶段:利用ROP绕过DEP保护 了解DEP保护理解构造ROP链从而绕过DEP…

RabbmitMQ基础

RabbmitMQ基础 1.1 什么是MQ MQ(Message Queue),从字面意思看,本质是个队列,FIFO先入先出,队列中存放的是message。是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游…

springboot整合JPA 多表关联 :一对多 多对多

补充一下自定义SQL 这是连表查询,可以任意查出字符,用Map接收 Testvoid test3() {JPAQueryFactory jpaQueryFactory new JPAQueryFactory(em);QStudent student QStudent.student;QMessage message QMessage.message;//constructor(StuMesDto.class, …

前端扫盲:什么是API网关?为什么它有用?

API 通常被称为应用程序从后端服务访问数据和业务逻辑的前门。API 本质上是一个软件向其他人或程序提供的接口,允许他们与该软件进行交互。 在创建 API 时,需要选择编程语言(Java、Python、PHP 等)来编写 API 逻辑,还需要将 API 部署到服务器…

VRF -- 虚拟路由转发

VRF VRF(Virtual Routing and Forwarding)虚拟路由转发,是一种网络虚拟化技术,用于在同一物理网络设备上创建多个虚拟路由表,每个虚拟路由表都是相互独立的,就像是在同一设备上运行了多个独立的路由器一样…

C# 判断两个时间段是否重叠

public static bool IsOverlap(DateTime startTime1, DateTime endTime1, DateTime startTime2, DateTime endTime2){// 判断两个时间段是否有重叠return !(endTime1 < startTime2 || startTime1 > endTime2);//根据德摩根定律&#xff0c;等效为&#xff1a;endTime1 &g…

由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求路由),服务器无法或不会处理当前请求。

问题描述&#xff1a; 由于被认为是客户端对错误&#xff08;例如&#xff1a;畸形的请求语法、无效的请求信息帧或者虚拟的请求路由&#xff09;&#xff0c;服务器无法或不会处理当前请求。 在实现向数据库中添加记录时&#xff0c;请求发送无效&#xff0c;参数也未传递到控…

git首次使用--去公司第一次拉取

文章目录 一&#xff0c; 在企业中首次拉取项目二&#xff0c;提交项目1. 提交----新添加的文件2. 将分支上的代码同步到master3. 提交----更改后的文件 三&#xff0c;常见问题1. Git Pull Failed 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一&am…

C语言之字符串数组

目录 字符串数组 读取字符串数组中字符串 注意 字符串可以用数组来表示&#xff0c;所以字符串的集合也可以用数组的数组&#xff08;即多维数组&#xff09;来表示&#xff0c;下面我们就来学习字符串数组。 字符串数组 类型相同的数据集合适合用数组来实现&#xff0c;所…

javascript变量提升机制

变量提升&#xff1a;当栈内存&#xff08;作用域&#xff09;形式&#xff0c;js代码自上而下执行之前&#xff0c;浏览器首先会把所有带VAR/FUNCTION关键词的进行提前的“声明”或者“定义”。这种预先处理机制称为变量提升。 声明&#xff08;declare&#xff09;&#xff…

图片转excel:“保留数字格式”在什么场景下该勾

保留数字格式是什么意思呢&#xff1f;顾名思义&#xff0c;就是将转出来的数字保留为数字格式&#xff0c;而不是文本格式。我们知道&#xff0c;OCR程序将图片上的文字识别为电脑可编辑的文字后&#xff0c;如果导入到excel不加处理&#xff0c;则单个数字过长的文字就会被ex…