【微机原理及接口技术】可编程并行接口芯片8255A
【微机原理及接口技术】可编程并行接口芯片8255A
文章目录
- 【微机原理及接口技术】可编程并行接口芯片8255A
- 前言
- 一、8255A的内部结构和引脚
- 1.与外设接口(数据端口)
- 2.与处理器接口
- 二、8255A的工作方式
- 三、8255A的编程
- 1. 写入方式控制字:控制字格式
- 2. 读写数据端口
- 3. 读写端口C
- 四、8255A的应用
- 1.开关量的检测
- 2.LED数码管的驱动
- 3.多个LED数码管的显示
- 总结
前言
本篇文章就8255芯片展开,包括8255A的内部结构和引脚,8255A的工作方式,8255A的编程,8255A的应用等展开详细介绍。
并行数据传输方式
以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据
适合于外部设备与微机之间进行近距离、大量和快速的信息交换
例如:微机与并行接口打印机、磁盘驱动器
微机系统中最基本的信息交换方法
例如:系统板上各部件之间,接口电路板上各部件之间
8255A简介
包括四个端口——1个控制端口,3个数据端口
还包括端口的译码和控制电路、中断控制电路
包括三种输入输出工作方式
一、8255A的内部结构和引脚

1.与外设接口(数据端口)
端口A:PA0~PA7
A组,支持工作方式0、1、2
端口B:PB0~PB7
B组,支持工作方式0、1
端口C:PC0~PC7
仅支持工作方式0
A组控制高4位PC4~PC7
B组控制低4位PC0~PC3
端口A:PA0~PA7
常作数据端口,功能最强大
端口B:PB0~PB7
常作数据端口
端口C:PC0~PC7
可作数据、状态和控制端口
分两个4位,每位可独立操作
控制最灵活,最难掌握
2.与处理器接口

二、8255A的工作方式
- 方式0:基本输入输出
端口A、端口B、端口C高4位和低4位——输入口或输出口
适用于无条件传送和查询方式的接口电路 - 方式1:选通输入输出
端口A、端口B——输入口或输出口
端口C——端口A和端口B的联络信号、输入口或输出口
适用于查询和中断方式的接口电路 - 方式2:双向选通输入输出
端口A——输入口和输出口
端口C——一部分作为端口A的联络信号
适用于双向传送数据的外设
适用于查询和中断方式的接口电路
方式1输入引脚:A端口

方式1输入引脚:B端口

方式1输入联络信号
方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能
STB——选通信号,低电平有效*
由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器
IBF——输入缓冲器满信号,高电平有效
8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器
INTR——中断请求信号,高电平有效
8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据
方式1中断控制
8255A的中断由中断允许触发器INTE控制
置位允许中断,复位禁止中断
对INTE的操作通过写入端口C的对应位实现,只要对那一位置位/复位就可以控制INTE触发器
选通输入方式下
端口A的INTEA对应PC4
端口B的INTEB对应PC2
方式1输出引脚:A端口

方式1输出引脚:B端口

方式1输出联络信号
OBF——输出缓冲器满信号,低有效*
8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走
ACK——响应信号,低有效*
外设的响应信号,指示8255A的端口数据已由外设接收
INTR——中断请求信号,高有效
当输出设备已接收数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据
三、8255A的编程
初始化过程中:写入方式控制字
利用控制端口地址,A1A0=11
工作过程中:
通过数据端口来读写外设数据:
利用端口A、B和C的地址,A1A0依次等于00、01、10
通过控制端口来写入端口C的位控制字:
利用控制端口地址,A1A0=11
通过端口C来读取状态信息:
利用端口C的地址,A1A0=10
1. 写入方式控制字:控制字格式

2. 读写数据端口
初始化编程后:
当数据端口作为输入接口时,CPU执行IN指令将从输入设备得到外设数据
当数据端口作为输出接口时,CPU执行OUT指令将把CPU的数据送给输出设备
8255A具有锁存输出数据的能力
对输出方式的端口同样可以输入
不是读取外设数据
读取的是上次CPU给外设的数据
读写数据端口:示例
利用8255A的输出锁存能力,可实现按位输出控制
对输出端口B的PB7位置位的程序段:
mov DX,FFFDH ;设B端口地址为FFFDH
in AL,DX ;读出B端口原输出内容
or AL,80H ;使PB7=1
out DX,AL ;输出新的内容
3. 读写端口C
归纳1
C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出
在控制上,C端口高4位和A端口编为A组,C端口低4位和B端口编为B组
归纳2
当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用
其余引脚仍可设定工作在方式0
归纳3
对端口C的数据输出有两种办法
利用端口C的地址:
向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效——字节操作
利用控制端口地址:
向控制端口写入端口C的位控制字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器——位操作
端口C的位控制字

归纳4
读取的C端口数据有两种情况
未被A和B端口征用的引脚:
将从定义为输入的部分(上半部或下半部)读到引脚输入信息;
将从定义为输出的部分(上半部或下半部)读到输出锁存器中的信息
被A和B端口征用作为联络线的引脚:
将读到反映8255A状态的状态字
四、8255A的应用
作为通用的并行接口电路芯片,8255A具有广泛的应用
应用在IBM PC/XT微机上
应用于打印机接口电路
连接简易键盘
驱动LED数码管
……
1.开关量的检测
例:在工业控制过程中,经常需要检测某些开关的状态。例如,在某一系统中,有8个开关K7~K0,要求不断地检测它们的通断状态,并随时在发光二极管上显示。通过8255A的端口A读入开关状态信息,使端口B、端口C连接的发光二极管的状态与端口A开关状态相呼应,并重复执行。假设8255A在系统中端口A、B、C及控制口的地址分别为100H,101H,102H,103H,试设计出硬件电路图,并编写初始化程序。
(1) 硬件电路

(2) 相应的8255A程序为:
MOV DX,103H ;控制端口地址送给DX
MOV AL, 10010000B ;控制字
OUT DX,AL ;写入控制字
L1: MOV DX,100H ;端口A地址送给DX
IN AL,DX ;从端口A读入开关状态
MOV DX,101H ;端口B地址送给DX
OUT DX,AL ;从端口B输出,控制LED
XOR AL, 0FFH ;AL← AL取反
MOV DX,102H ;端口C地址送给DX
OUT DX, AL ;从端口C输出
JMP L1 ;循环
2.LED数码管的驱动
发光二极管LED是最简单的显示设备
由7段LED就可以组成的LED数码管
LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中
LED数码管可以显示内存地址和数据等
(1) LED数码管的工作原理
主要部分是7段发光管
顺时针分别称为a、b、c、d、e、f、g
有的产品还附带有一个小数点h
通过7个发光段的不同组合
主要显示0~9
也可以显示A~F(实现16进制数的显示)
还可以显示个别特殊字符,如-、P 等

LED数码管的结构

(2) 单个LED数码管的显示


3.多个LED数码管的显示
8个数码管:用2个8位输出端口控制
硬件上用公用的驱动电路来驱动各数码管
软件上用扫描方法实现数码显示
段控制端口电路

位控制端口电路

控制哪个(位)数码管显示
共阴极时,当位控制端口的控制码某位为高电平时,经反相驱动,便在相应数码管的阴极加上了低电平,这个数码管就可以显示数据
段控制端口作用
控制一个数码管显示什么数码
段控制端口送给数码管要显示字形的段码
段控制端口由所有数码管共用

通过位、段控制端口的共同作用才能确定哪个数码管显示什么数码

总结
到这里这篇文章的内容就结束了,谢谢大家的观看,如果有好的建议可以留言喔,谢谢大家啦!
相关文章:
【微机原理及接口技术】可编程并行接口芯片8255A
【微机原理及接口技术】可编程并行接口芯片8255A 文章目录 【微机原理及接口技术】可编程并行接口芯片8255A前言一、8255A的内部结构和引脚1.与外设接口(数据端口)2.与处理器接口 二、8255A的工作方式三、8255A的编程1. 写入方式控制字:控制字…...
第3天 Web源码拓展_小迪网络安全笔记
1.关于web源码目录结构 #数据库配置文件 后台目录 模板目录 数据库目录 1.1数据库配置文件: 1.1就拿wordpress来说,先到官网下载源码:Download – WordPress.org,解压源码之后: 2.2找到目录下名为 wp-config-sample.php的文件,这就是数据库配置文件: 设想: 我们在渗透…...
基于物联网技术的智能家居实训教学解决方案
引言 随着信息技术的飞速发展,,物联网(IoT)已深入至我们生活的每一个角落,从智能家居、智能健康、智能交通到智慧城市,无所不在。物联网技术已成为推动社会进步和产业升级的重要力量。智能家居作为物联网技…...
K-近邻算法(KNN)基础详解
K-近邻算法(K-Nearest Neighbors,简称KNN)是机器学习中一种简单而有效的监督学习方法,用于分类和回归任务。其核心思想基于“物以类聚,人以群分”的原则,通过计算待分类对象与已知数据集中的样本点之间的距离,找出距离最近的K个邻居,然后根据这些邻居的类别或数值来预测…...
spring aop 内部引用失效分析
背景 用了spring retry 发现在有些场景下失效,也让我想起了之前看spring 事务时会有一些场景下失效的这个问题 代码 接口public interface UserService {public void start() ;public void stop(); }实现类 Service public class UserServiceImpl implements User…...
IEDA常用快捷键(后续更新ing)
1. 快速生成语句 1.快速生成main()方法 psvm或者main回车 2.快速生成输出语句 sout,回车 3.快速生成for循环 fori或者itar,回车 2.快捷键 含义操作查找文本CtrlF替换文本CtrlR单行注释Ctrl/多行注释CtrlShift/格式化CtrlAltL复制当前内容至下一行CtrlD补全代码Alt/快速生成…...
Day03—flask与react实现交互(解决跨域问题)
flask :默认的端口为 http://127.0.0.1:5000 react :默认端口为 http://localhost:3000 两个项目运行起来之后,没有实现前后端交互调用 弄了半天,是因为没有给flask 配置跨域 解决办法: pip install flask-cors from …...
JavaScript中的闭包
闭包 闭包是什么 内部函数(嵌套函数)能够访问其外部函数(父函数)的变量,即使外部函数执行完毕后,这些变量仍会保留在内存中,因为内部函数保持着对它们的引用,从而防止了垃圾回收机制回收这些变量。闭包是函数与其词法环境(包括外…...
python画图:matpolt,设置图片尺寸,字体大小,副坐标轴,保存
文章重心: 写论文的时候,图片的大小,字体的大小,副坐标轴,这些都是很重要的因素,保存一下之前用过的画图代码单图多图(两个子图)堆叠柱状图两个Y轴的图问题: python保存的时候,我选择的是svg,但是这样图片会比较大,查重什么的需要把图片都删了(一般有文件大小限制…...
如果突然失业,靠这个项目也能养活自己,6天收入3K
在前两天,我与两位好友相约外出就餐。当时正值雨天,我们便选择了一家大排档,边品尝美食边畅谈人生。聊得尽兴,直到凌晨一点多才回到家中。其中一位朋友最近刚刚遭遇裁员,为了寻找新的工作机会,他已经经历了…...
【OpenCV 基础知识 13】高斯平滑处理图像
函数 cvSmooth 可使用简单模糊、简单无缩放变换的模糊、中值模糊、高斯模糊、双边滤波的任何一种方法平滑图像。每一种方法都有自己的特点以及局限。 没有缩放的图像平滑仅支持单通道图像,并且支持8位到16位的转换(与cvSobel和cvLaplace相似)…...
web安全渗透测试工具篇(二):sqlmap常用命令和nmap常用命令
web安全渗透测试工具篇 1. web安全渗透测试-工具使用-sqlmap1.1 SQLMap 的详细使用1.1.1 SQLMap 支持五种不同的注入模式1.2.SQLmap的模块划分1.2.1.Target目标1.2.2.Request请求1.2.3.Optimization(优化):1.2.4.Injection(注入):1.2.5.Detection(检测):1.2.6.Techniques…...
STM32 USART的字符编码(发送器的实现逻辑)
目录 概述 1 字符编码 1.1 USART 字符说明 1.2 字长编程 2 发送器 2.1 字符发送 2.2 可配置的停止位 2.3 配置停止位方法 3 单字节通信 4 中断字符 5 空闲字符 概述 本文主要讲述STM32 USART的发送端功能实现的原理,包括字节编码长度,发送器…...
[市赛2024-X2]自习室
Description 临近期末考试,自习室的学生来来往往。 这可忙坏了管理自习室的大爷,他随时准备开关灯。 自习室只要有学生来,就需要开灯。一开始没有学生来之前灯是关闭的。 周日这一天共有 n 位同学来自习,第 i 个同学将在时间 …...
Spring ----> IOC
文章目录 一、 Spring 是一个包含众多工具的IoC容器二、 什么是IOC以及好处三、 如何实现loc思想四、Spring提供的实现loC的方法 --- 类注解方法注解4.1 类注解类注解概念介绍类注解的使用 4.2 方法注解Bean 一、 Spring 是一个包含众多工具的IoC容器 场景解析:首先…...
AI重塑保险业未来:机器学习在风险评估、欺诈检测与客户服务中的深度应用
🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…...
某某某加固系统分析
某某某加固系统内核so dump和修复: 某某某加固系统采取了内外两层native代码模式,外层主要为了保护内层核心代码,从分析来看外层模块主要用来反调试,释放内层模块,维护内存模块的某些运行环境达到防止分离内外模块&am…...
嵌入式之音频基础知识
声音特性 1、响度:人主观上感觉声音的大小(俗称音量),由“振幅”和人离声源的距离决定,振幅越大响度越大,人和声源的距离越小,响度越大; 2、音调:声音的高低࿰…...
如何做好软件项目的沟通管理
如何做好软件项目的沟通管理 软件项目的沟通管理是确保项目信息在团队成员、利益相关者和相关群体之间有效流通的过程。良好的沟通是项目成功的关键,在项目开始时,需要制定详细的沟通计划,包括沟通的目的、对象、内容、频率和渠道等信息。 …...
linmux
了了了了了了了了了了了了了了...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

