当前位置: 首页 > news >正文

【微机原理及接口技术】可编程并行接口芯片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、音调:声音的高低&#xff0…...

如何做好软件项目的沟通管理

如何做好软件项目的沟通管理 软件项目的沟通管理是确保项目信息在团队成员、利益相关者和相关群体之间有效流通的过程。良好的沟通是项目成功的关键,在项目开始时,需要制定详细的沟通计划,包括沟通的目的、对象、内容、频率和渠道等信息。 …...

linmux

了了了了了了了了了了了了了了...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

云原生安全实战:API网关Kong的鉴权与限流详解

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...