【微机原理与接口技术】简单易学的 简单接口芯片—— 三态门 74LS244和 锁存器 74LS273

article/2025/9/17 23:40:44

作者:MiTu_-_

本帖内容著作权归作者所有,转载请务必保留本文链接

接口电路的基本构成

CPU通过接口与外部设备的连接示意图如下:
在这里插入图片描述
负责把信息从外部设备传入 CPU 的接口(端口)叫做输入接口(端口),而将信息从 CPU 输出到外部设备的接口(端口)叫做输出接口(端口)

1)在输入数据时,由于外部设备处理的时间一般比 CPU 要长的多,不可能让 CPU 一直等外设传完数据再工作吧。所以
 * 对输入接口的要求是:必须具有对数据的控制能力。不必让外设一直向 CPU 传数据,让外设传入到输入接口,等数据准备好后,CPU开始读取时,才将数据传入 CPU。这样在外设传入数据的时候,CPU 就不用一直等,可以干其他活,等需要时,在发出读信号获取外设的数据。典型的输入接口芯片是三态门芯片 74LS244

2)在输出数据时,同样外设的速度比较慢,要使正确写入外设,CPU 输出的数据必须要保持一段时间,但这样对 CPU 来说是极大的浪费。所以
 * 对输出接口的要求是:必须具有对数据的锁存能力。不必让 CPU 等待向外设传输数据的整个过程,通过向输出接口传输数据,让输出接口来为外设传输数据,就可以节约 CPU 的时间,让 CPU 干其他事情。典型的输出接口芯片是锁存器 74LS273


三态门接口

普通三态门如下图所示,A 为输入端,Y 为输出端,C 为控制端。当 C 为低电平,三态门导通,A 和 Y 之间导通;当 C 为高电平,三态门不导通,为高阻状态,A 和 Y 之间不导通。
在这里插入图片描述
典型的三态门芯片 74LS244 如图所示。它由8个三态门构成,有两个控制端 E1 和 E2。每个控制端各控制四个三态门。当某一控制端有效(低电平)时,相应的四个三态门导通,否则为高阻状态(断开)。实际应用中,通常将两个三态门并联,这样就可以用一个控制引号来使 8 个三态门同时导通或关断。
在这里插入图片描述

Example:

  编写程序判断下图中的开关状态。如果所有开关都闭合,则程序转向 NEXT1 的程序段执行,否则转向 NEXT2。
在这里插入图片描述
先来分析电路结构:

  • 右边是外设、开关Ki 和三态门输入端 Ii 构成的电路。当开关闭合时,三态门输入端被短路,不会导通;当开关断开时,三态门导通。于是就可以从 74LS244 的输出端 D0 ~ D7 传给 CPU 的数据端,从而得知开关的状态。
  • 左下角是 CPU 的地址,可以看到地址线 A1 和 A0 未参与译码,所以它占用的地址是 83FCH ~ 83FFH。可以任选一个地址。CPU的地址线和端口读信号端一起经过或门到 74LS244 的使能端。

再来分析整体电路:

  • 当 CPU 不发出端口读信号时,IOR非为高电平,使能端 E1非 和 E2非 为高电平,三态门不导通。
  • 当 CPU 发出端口读信号时,IOR非为低电平,使能端为低电平,三态门导通,就可以由外设向 CPU 发送数据了。

程序段如下:

mov dx, 83FCH
in 	al, dx
and	al, 0FFH
JZ	NEXT1
JMP	NEXT2

锁存器接口

D触发器如下图所示。在每个上升沿,将 D 的状态所存到 Q 里。
在这里插入图片描述
常用的锁存器 74LS273 如图所示。它内部包含8个 D 触发器。共有 8 个数据输入端(D0 ~ D7)和8个输出端(Q0 ~ Q7)。S为复位端,低电平有效。CP 为脉冲输入端,在每个脉冲的上升沿将输出端 Di 的锁存到输出端 Qi 里,并将此状态保持到下一个时钟脉冲上升沿的到来。
在这里插入图片描述

Example:

  8个 Q 端 与 8 个发光二极管相连接,编程使接到 Q0 端和 Q6 端的发光二极管发光。假设该输出接口的地址为 0FFFFH。
在这里插入图片描述
先来分析电路结构:

  • 右边是外设,当 Q 端为高电平,经过非门,变为低电平,发光二极管才能发光;否则不发光。
  • 左上角是 CPU 向 74LS273 发送数据,使指定的灯亮。左下角是 CPU的地址线,如题目所说地址为 0FFFFH。则 A0 ~ A7 与 A8 ~ A15 经过与非门输出的都是低电平。

再来分析整体电路:

  • 当 CPU 不发出端口写信号时,IOW非为高电平,则脉冲 CP 为高电平,因为没有上升沿,之前C P 就是高电平,所以 Qi 状态不发生改变。
  • 当 CPU 发出端口写信号时,IOW非为低电平,因为 CPU 发出的写脉冲是极窄的负脉冲,当 CP 读到下一次上升沿时,会将 CPU 写入的 数据 D0 ~ D7 存入到锁存器,再经锁存器输出到发光二极管的阴极,就可以使相应的二极管发光。

程序段如下:

mov dx, 0FFFFH
mov	al, 01000001b
out	dx, al

通过以上的两个例子,可以看出三态门和锁存器所发挥的作用。三态门控制输入端口的信号,锁存器锁存输出端口的信号。这样 CPU 就无需等待缓慢的外设了,而可以把任务交给这些接口芯片,去干其他更值得干的事情。如此便可以大大提高计算机的运转效率。



赠人玫瑰,手有余香!!!还望大家随手点个赞哟(^U^)ノ~YO


http://chatgpt.dhexx.cn/article/sC5E2NOO.shtml

相关文章

三态门——概念,作用,原理

介绍一下三态门的概念、作用、原理 目录 三态门的概念 三态门的作用 实现总线结构 实现双向数据传输 三态门的原理 三态门的概念 三态门是指逻辑门的输出有三种状态:高电平状态、低电平状态、高阻状态。 其中,高阻状态相当于隔离状态(…

数字IC设计中的三态门原理

数字电路中的三态门 可参考另外一篇博客数字电路基础知识——CMOS门电路 (与非门、或非、非门、OD门、传输门、三态门) 三态门除了高低电平,还有第三个状态——高阻态。 三态门(Three-state gate)是一种重要的总线接口电路。也常常出现在芯片…

计算机电源缓冲器,集成电路中缓冲器的作用

描述 缓冲器的概念 缓冲器在不同的领域有不同的含义。 在计算机领域,缓冲器指的是缓冲寄存器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设…

三态门介绍

如下图,为两种形式的三态门,(a)和(b)一致;(c)和(d)一致。 对于图(a)其真值表如下: 对于图(b&#…

单片机I/O口管脚内部结构(锁存器,输出驱动器,三态缓冲器,多路开关)

学习ARM嵌入式的时候,发现自己对以前学过的数模器件的知识遗忘了不少,按照我的进度本来应该继续学习ARM微处理器控制的课程,但想着后来势必还会遇到相同的问题所以就准备中断一下,杀回来把汇编和一些电路知识再总结一下&#xff0…

三态(tri-state)门、双向(bi-directional)端口的建模、仿真和综合

目录 1. 概要 2. 三态门 2.1 概念 2.2 三态门建模 3. 双向端口 3.1 HDL语言描述 3.2 直接调用元件库中的模块 3. 仿真 4. 综合 1. 概要 双向端口顾名思义是一种既可以作为输入端口接收数据,也可以作为输出端口发出数据,它对数据的操作是双向的。比如某个设计需要一个…

FPGA基础知识极简教程(8)详解三态缓冲器

博文目录 写在前面正文 全双工与半双工FPGA和ASIC中的三态缓冲器如何在VHDL和Verilog中推断出三态缓冲区 参考资料交个朋友 写在前面 下面用举例子的方式引出三态门,内容过长,大家可直接跳过,进入正文! 三态门在FPGA以及ASIC设计中…

三态缓冲器的工作原理

转载自---百家号 三态缓冲器(Three-state buffer),又称为三态门、三态驱动器,其三态输出受到使能输出端的控制,当使能输出有效时,器件实现正常逻辑状态输出(逻辑0、逻辑1)&#xff…

VSCODE调试时在cygwin.S中发生段错误

起因: C实现矩阵类和向量类 当看了我实现的矩阵类后,一个同学问我: 然后我就试了试1000维,结果运行时在cygwin.S里引发了奇奇怪怪的Segmentation fault,而且这个文件还是一片空白,压根就没有代码 后来一番…

【高并发】高并发环境下如何优化Tomcat性能?看完我懂了!

写在前面 Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢? Tomcat运行模式 Tomcat的运行模式有3种。 1.bio模式 默认的模式,性能非常低下,…

Java-JVM-常用参数和调优方案(超保姆级)

Java-JVM-常用参数和调优方案 必须了解的内容 必须看过Java-JVM基础(调优必须知道)知道JVM大概的情况,这篇文章我博客里有 堆区(Java堆:所有的线程共享该区域) 通过new的方式创建的对象(一个类的实例)、数组所占的空间。 非堆区&#xff1a…

嵌入式知识图谱WiKi(嵌入式开发/研发入门教程和路线图)

嵌入式知识图谱WiKi 作者将狼才鲸创建时间2022-02-18 因图床更新不方便,最新版请跳转到Gitee文档源文件仓库网址 才鲸 / 嵌入式知识图谱WiKi CSDN有图的文档阅读网址 嵌入式知识图谱WiKi Bilibili视频讲解网址(待完成) 才鲸嵌入式主页 一、概…

select、poll和epoll

select、poll和epoll 对select、poll、epoll了解得不多,下面是从《构建高性能Web站点》摘录下来的介绍,等以后真正接触到select、poll和epoll方面的开发再详细写一下使用上的区别。 select select最早于1983年出现在4.2BSD中,它通过一个sele…

Mysql 和 Postgresql(PGSQL) 对比

Mysql 和 Postgresql(PGSQL) 对比 转载自:http://www.oschina.net/question/96003_13994 PostgreSQL与MySQL比较 MySQL使用太广泛了,以至于我不得不将一些应用从mysql 迁移到postgresql, 很多开源软件都是以Mysql 作为数据库标准,并且以Mysq…

JVM系列之常用参数的查看和设置

JVM常用参数 参数名称含义默认值说明-Xms初始堆大小,等价于-XX:InitialHeapSize物理内存的1/64默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.-Xmx最大堆大小,等价于-XX:MaxHeapSize物理内存的1/…

Tomcat内存调整和默认线程池调整

上线了很久的一个项目(财政数据共享平台),由于领导要求,新来的同事就把新项目(社保数据共享)做在了该项目上,这就导致了许多的问题,先从日志说起,该同事把数据获取和传送…

lunix下修改tomcat的堆内存大小

修改tomcat的初始堆大小和最大堆大小 要添加在tomcat 的bin 下catalina.sh 里,位置cygwinfalse前 。注意引号要带上,红色的为新添加的. # OS specific support. $var _must_ be set to either true or false.JAVA_OPTS"-Xms256m -Xmx512m -Xss1024K -XX:Perm…

java对象内存布局和对象定位

目录 观察对象在内存中的存储布局 利用java agent 利用JOL工具 Java对象定位 直接指针寻址 间接寻址 JIT(Just In-Time Compiler) c1、c2 编译线程 c1, c2编译器线程高CPU消耗 - 潜在的解决方案 使用字节码和汇编语言同步分析volatile,synchron…

【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南

目录标题 Valgrind 工具的安装 交叉编译Valgrind Valgrind 工具的作用Memcheck 内存泄漏检测工具常规检测(程序结束后生成报告)重要参数长时间运行的服务使报告输出至文件报告分析示例一分析\_示例一示例二分析\_示例二 Massif堆栈检测工具Massif的基本…

C/C++开发,无可避免的多线程(篇一).跨平台并发编程姗姗来迟

目录 一、编译环境准备 1.1 编译环境配置 1.2 先睹为快的c11多线程编程示例 二、c/c并发编程支持 2.1 进程与线程 2.2 c/c多线程的并发编程 2.3 c11以前的多线程支持 2.4 c11以后的多线程支持 2.5 线程与互斥锁 2.6 跨线程安全问题 三、认识c/c的thread 3.1 std::thread类 3…