【微机原理与接口技术】具体芯片(1)并行接口8255A(2):控制字概述

核心

对于一个多功能可编程接口芯片,我们要想使用它,必须

  1. 先确定需求,要用什么芯片去干什么
  2. 设置芯片的工作方式
  3. 然后再让芯片工作

至于设置的方式,当然是软件编程。

同时重点注意,例如8255A,它一次只能写8位数据,像多干活,就多写几次就好了,反正速度快。需要理解不是一次性完成就好。

与CPU控制接口的方式结合理解

  • 无条件
  • 查询
  • 中断
  • DMA

前提

CPU能够对接口进行读写控制,通过IO译码能够选中端口地址,进行数据读写。

控制字的编码含义

我们将8位控制字编码拆开看!

D7D6D5D4D3D2D1D0
1xxxxxxx
0xxxxxxx

首先看最高位D7

  • D7 = 1:方式选择控制
  • D7 = 0:C端口置0置1控制

方式选择控制

对于方式选择控制,我们拆开看

D7D6D5D4D3D2D1D0
1
  • 最高位是1
  • D6~D3:A组控制
  • D2~D0:B组控制
A组控制
D6D5D4D3
  • D6D5:A组的方式选择(很好记,与二进制的十进制值一样)
    • 00:方式0
    • 01:方式1
    • 10、11:方式2
  • D4:A端口输入输出控制
  • D3:C端口高4位输入输出控制

B组控制

D2D1D0
  • D2:B组方式选择
    • 0:方式0
    • 1:方式1
  • D1:B端口输入输出控制
  • D0:C端口低四位输输出控制

一些通用法则

  1. A组和B组控制是相互独立的
  2. 端口的输入,就是1(input的i就像1);端口输出,就是0(output)
  3. 方式的选择,二进制的十进制值与方式对应
  4. A、B端口只能作为输入或输出,用于传送外设数据
  5. C端口不同方式下的含义不同
    1. 可以设置D7 = 0来设置C寄存器的每一位的值
    2. 方式0下是作为独立的输入输出的
    3. 其他方式下,作为A组或B组的补充信息位,用于表示A端口或B端口传送状态,空闲位仍可以独立使用
    4. A组与B组的工作方式可以不一样,因此C端口的高4位和低4位的作用也可以不一样,相互独立
  6. 如果没有用到,就写0,当然这只是习惯

总之,二进制编码分开看待,相互独立,不同情况下含义不同,一样分开看,就什么都能看清楚了

C端口置0置1控制

D7D6D5D4D3D2D1D0
0xxx
  • x可以直接都写0就好
  • D3D2D1:3位编码对应C端口的8个二进制位,用于选中某一位
  • D0:0的时候将选中的位置0,1的时候置1

这个控制字的作用,就是控制C端口某一位的值的,如果有单独控制的需要,就设置就好了。

  • 可能是设置空闲位
  • 也可能设置状态位

对待每种工作方式的思考点

  • 接口:如何设置,原理和功能
  • CPU :如何控制,控制方式,汇编指令
  • 外设:能干啥(数据肯定行,但是响应信号之类的呢?它能不能干,能不能用?)

其实也就这些了,还是内3个器件,4个箭头的事儿。

接下来,将会具体阐述每个工作方式下,二进制编码的含义。


见下一篇。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法】【殊途同归】搜索算法之(深度优先 || 广度优先) (约束条件 || 限界函数)

对于所谓的分支限界法和回溯法,我们完全可以更加灵活,请看表格。 深度优先广度优先约束条件限界函数算法策略√√回溯法局部判定√√√分支限界法局部判定√√√加限界的回溯法局部判定√枚举法全局判定√枚举法全局判定 前两种是我们常见的&#xff0c…

【算法】学习方法

看理论学示例做图示 最重要的是 最开始直接抄别人的优秀的代码,就是如此简单,摆正心态,最开始不要非得自己想怎么做。

【算法】学习笔记(0):算法初探(逻辑抽象 + 示例 + 代码实现)

什么是算法? 人生皆算法,算法的本质,是解决问题的方法,遇到问题,寻找答案,解决问题,是作为一个人,一生都在做的事情。 算法是人类思维的产物,是解决问题的方案,并且&a…

【Verilog】数据流建模传输问题:赋值传输有方向

这次,我们说明的是,assign语句实现的数据流建模,包含的是两个层面 建立联系传输方向 assign A B的本质含义是 A与B建立关联B的值传给A 这个传输方向至关重要,实际情况是什么,就必须按照顺序进行,不是单…

【计算机系统设计】实践笔记(2)数据通路构建:第一类R型指令分析(2)

待办事项 时钟频率高,取指周期长,远大于执行周期,如何处理? 不可综合逻辑的处理 接上一篇 【计算机系统设计】实践笔记(2)数据通路构建:第一类R型指令分析(1) 8.2 ALU运…

【计算机系统设计】实践笔记(2)插叙:综合与实现

接上一篇文章的第10节 之前完成了功能仿真,下面我们进行综合实现。 10.1.1 综合 综合成功。 实现试试 这真是令人悲伤……找Bug吧。 我们看看综合后的门级网表。 发现综合后的并不是我们想要的……看了看可能是综合的目录错误,我们再试试。 不是这…

【电路原理】学习笔记(1):电路模型的基本变量

上一讲说到了电路模型,这一电路的抽象,现在我们看看它的基本组成。 1 电流 1.1 概念 对于一根管道,它能够流通电荷,定向移动就形成了电流。 单位时间t内,,某一横截面,穿过电荷量是q&#xf…

【电路原理】学习笔记(0):电路与电路模型

东北大学电路原理MOOC 电路原理的核心点:研究电路模型 我们实际看见的,是真实电路 我们高中学的,是电原理图 现在,我们要研究的是电路模型,它是实际电路的抽象模型,并且是理想化的。 对于电路模型&#…

【计算机系统设计】实践笔记(3)改进数据通路:移位R型指令分析

0 回顾 前面的内容中,第一类R型指令分析,我们完成了一类R型指令的设计,完成了其数据通路,构建了相应的部件,并且完成了从ROM中取指,成功进行了基本的功能仿真,进行了综合和实现,但是…

【计算机系统设计】实践笔记(3)改进数据通路:jr指令分析与实现

1 jr指令分析 instructionoprsrtrdshamtfuncjr000000rs000000000000000001000 举例&#xff1a;jr $31 功能&#xff1a;PC <- &#xff08;$31&#xff09; 这是个跳转指令&#xff0c;将指定寄存器的值&#xff0c;放入PC中&#xff0c;是无条件跳转。 我们需要 更新P…

【计算机系统设计】实践笔记(4)改进数据通路:第一类I型指令分析与实现

0 回顾 之前&#xff0c;我们完成了17条R型指令的设计&#xff0c;接下来&#xff0c;我们逐步完成I型指令的设计。 1 核心思想&#xff1a;增量思维 & 复用思维 & 学会选择 & 分治思想 增量思维 我们从无到有&#xff0c;构建了支持R型指令的CPU&#xff0c;接…

【算法】学习笔记(1):算法就是人类去教会计算机的方法

人生处处皆算法&#xff0c;算法是解决问题之道。 对于计算机科学中的算法&#xff0c;我更喜欢将其理解为利用人类思维之一&#xff1a;计算机思维&#xff0c;去解决一些人类不擅长的问题&#xff0c;比如大量重复运算&#xff0c;然后&#xff0c;人类使用计算机编程语言去…

【算法】学习笔记(2):递归思想

0 回顾 之前的笔记&#xff08;0&#xff09;和笔记&#xff08;1&#xff09;&#xff0c;我们介绍了算法的基本含义&#xff0c;并且举了一些实例&#xff0c;同时理解了&#xff0c;算法就是人类在教计算机做事情&#xff01; 我们知道&#xff0c;算法就是解决问题的方案…

【计算机系统设计】实践笔记(5)插叙:内外有别之CPU和Memory

区分CPU的内外 首先明确&#xff0c;内存&#xff0c;不在CPU内&#xff0c;我们的CPU是会有数据和指令端口的&#xff0c;然后去访问内存和外设。 而CPU设计&#xff0c;我们所说的单周期&#xff0c;多周期和流水线&#xff0c;描述的都是CPU&#xff0c;而不是Memory&…

【计算机系统设计】实践笔记(5)改进数据通路:beq和bne指令分析与实现

接下来的分析和实践非常粗糙&#xff0c;因为跟之前一样的分析流程&#xff0c;不再多说了&#xff0c;如果前面真的掌握&#xff0c;这里不看也罢。 分析 先看beq指令。 ALU输入的是rs和rt&#xff0c;不输入imm&#xff0c;进行subu操作&#xff0c;判断是否为zero&#x…

【算法】学习笔记(4):分治思想 归并排序

分治思想&#xff0c;分治策略&#xff0c;自古有之&#xff0c;与人类生活息息相关&#xff0c;其本质是将大问题拆解为小问题&#xff0c;小问题转换为已知解的问题&#xff0c;进而求解。 军队管理&#xff0c;国家分级治理…… 大规模数据排序&#xff0c;例如10000000000…

【算法】学习笔记(5):快速排序

注意一个C的坑 sizeof()这个函数静态数组可以求长度&#xff0c;动态new出来的数组不行&#xff0c;因为针对的是指针……&#xff0c;不过既然的动态数组了&#xff0c;其长度本身必然是一个变量了&#xff0c;你没有必要这么求长度。 下面看快速排序的代码。 #include <…

【计算机系统设计】实践笔记(6)改进数据通路:lw和sw指令

不想多说了……前面的铺垫足够了&#xff0c;剩下的自己做做应该也会了&#xff0c;如果遇到问题&#xff0c;就搜一下自己查阅就好。 这篇水过&#xff0c;没有太多技术点。 唯一注意的是&#xff0c;引入的RAM和ROM的clk触发问题&#xff0c;可能引起时序问题&#xff0c;等…

html css 核心设计理念

分开看&#xff01; 从不同视角&#xff0c;独立地去看某一部分内容&#xff0c;使用聚焦视角&#xff0c;进行独立操作和批量操作。

html css 学习笔记(1)背景相关

背景颜色 图片 插入图片img背景图片 背景图片 3. logo 4. 大图 5. 装饰性小图 便于控制位置&#xff01; 插入后会执行自动平铺&#xff0c;这与插入图片是不同的&#xff01; div{width: 600px;height: 300px;background-image: url(img/登录用户头像.png); }小结 盒子的第…