首页 > 其他分享 >成都控制设备订做:利用74373芯片进行单片机IO口扩展的方法介绍

成都控制设备订做:利用74373芯片进行单片机IO口扩展的方法介绍

时间:2023-04-16 22:33:38浏览次数:48  
标签:输出 数字 引脚 微处理器 扩展 单片机 74373 IO

本文介绍用74373芯片进行微处理器IO口扩展的方法。
1.为什么要进行IO口扩展?
在电路设计的某些时候,微处理器(如单片机)IO口不够用了,此时该怎么办呢?利用辅助芯片进行IO口扩展是个简单直接的方法,能用较少的成本增多IO口。
我处提供单片机、PLC、电路板、控制器/箱、仪器仪表、机电设备或系统、自动化、工控、传感、数据采集、自控系统、控制系统,软件、APP开发设计定制订做业务,如有需要可联系(业务扣扣:二五三一二六三七二六)。
2.常见的扩展方法有哪些?
IO扩展的方法一般有以下几种:
(1)利用串转并芯片扩展。这需要一个数据引脚一个时钟引脚,还需要若干控制引脚。
(2)利用锁存/缓存芯片进行扩展,如74373。这需要若干数据引脚和少量的控制引脚。
以上的方法都是可行。虽然用锁存/缓存芯片数据引脚消耗较多,但是其数据引脚可以由若干个锁存/缓存芯片分时复用,所以只需要控制少量的控制引脚就能使其扩展能力倍数级增长。
3.74373芯片介绍以及引脚定义?
74373一般有两种芯片,74LS373和74HC373。74LS373是TTL电路,74HC373是COMS电路,它们电平范围不一样,但两者实现的功能一样。本文以74HC373为例介绍。
74HC373是八路D 型锁存器,每个锁存器具有独立的D 型输入,以及适用于面向总线的应用的三态输出。所有锁存器共用一个锁存使能(LE)端和一个输出使能(OE)端。74HC373一般用于数字量信号锁存或缓存。

4.典型的扩展电路

4.1数字量输入扩展的原理和电路

 

如图 3,为用2个74373扩展数字量IO口的电路,这个电路消耗了8个微处理器的IO口,达到了至少读取16个数字量的目的。如果再继续扩展,每新增一个74373,就可以多扩展8个数字量,很有优势。说明如下:
微处理器的引脚定义:
P00控制第1个74373的OE;
P01控制第2个74373的OE;
若干个74373的数据输出脚Q并联连接接入微处理器的P10- P17;
74373的D脚接来自外部的数字量,Q脚接微处理器,OE受微处理器控制;
74373的LE引脚接高电平使其进入随动模式。
扩展流程如下:
(1)、外部电路的1-8号数字量输入引脚接入第1个74373的输入引脚1D-8D, 外部电路的9-16号数字量输入引脚接入第2个74373的输入引脚1D-8D;
(2)、2个74373的输出引脚1Q-8Q并联后接入微处理器的P10-P17引脚;
(3)、用微处理器的P00控制第1个74373的OE, 用微处理器的P01控制第2个74373的OE;
(4)、当微处理器要读取外部电路的1-8号数字量输入引脚时,令P00=0,P01=1,那么第1个74373的输出(对应1-8号外部数字量)会正常输入到微处理器,第2个74373的输出处于高阻状态,相当于断路。
当微处理器要读取外部电路的9-16号数字量输入引脚时,令P00=1,P01=0,那么第1个74373的输出处于高阻状态(相当于断路),第2个74373的输出(对应9-16号外部数字量)会正常输入到微处理器。
如此,实现数字量输入扩展。如果需要更多数字量输入扩展口类似操作即可,在后面,只需要多消耗一个IO口,就能获取8个扩展数字量。

 

注意,在某一时刻,只能有一个74373处于导通随变状态,其余必须处于高阻态,不然可能会产生电平冲突。
4.2数字量输出扩展的原理和电路

引脚定义:

若干个74373的数据输入引脚D并联连接接入微处理器的P20-P27;
74373的LE引脚受微处理器控制,OE引脚接地使其进入非锁存态;
扩展流程如下:
(1)、令第1个74373的LE=1,使其处于随动状态,并第2个及其他74373的LE=0,使其处于锁存状态;
(2)、微处理器把输出数据到第1个74373,输出完成后令LE=0,使第1个74373对微处理器传输来的数据进行锁存;
(3)、再使第2个74373的LE=1,使其处于随动状态,微处理器输出数据到第2个74373后再使LE=0令其锁存,这样,各个74373的输出位就保持了微处理器输出的数据,依次类似处理各个74373,达到输出扩展的目的。
74373的输出引脚Q,分别接到待控制的外部电路中。

5.典型的扩展程序流程

5.1数字量输入扩展的程序流程
数字量输入扩展的程序流程参考4.1中的过程描述,电路图参考图 3。程序流程图如下:

5.2数字量输出扩展的程序流程

数字量输出扩展的程序流程参考4.2中的过程描述,电路参考图 5。参考程序流程如下:

以上为利用74373进行数字量扩展的要点,关键是用好用作输入时对OE引脚的控制,用作输出时对LE引脚的控制。每次操作的最小数据单元为8位,即一个字节。
完。

标签:输出,数字,引脚,微处理器,扩展,单片机,74373,IO
From: https://www.cnblogs.com/yonkotech/p/17324290.html

相关文章

  • Stable Diffusion(一)Stable Diffusion 原理
    StableDiffusion原理此文为译文,原文见:https://stable-diffusion-art.com/how-stable-diffusion-work/StableDiffusion是一个深度学习模型,我们会深入解析SD的工作原理。 1.StableDiffusion能做什么直白地说,SD是一个text-to-image模型,通过给定textprompt(文本提示词),它可......
  • Hugging News #0414: Attention 在多模态情景中的应用、Unity API 以及 Gradio 主题构
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」,本期HuggingNews有哪些有趣的消息,快来看看吧!社区动向Attention在视觉领域的应用注......
  • Versions 2.4.2 MacOS分析
       这是MacOS下的一款SVN客户端。由于试用版和正式版并没有什么明显的区别,所以,如果你的使用时间很长很长,那么跟正式版也没啥区别了,这样也算是最简单的一个突破口了。   直接在HopperDisassembly打开,直接查找label:604800,这是一个星期的总秒数,也是默认的试用时长,因此......
  • 复选框数据通过axios和Vue传输到servlet后台
    引言本来是想百度一下如何将table标签里面嵌入的复选框通过axios以及Vue传输到Servlet后台;百度之后才发现,是我草率了,原来可以直接用复选框标签进行传输(好吧,又暴露了自己基础不扎实的事实......)相关实现步骤1、将相关的标签el-checkbox引入进去这里我们需要引入三个带有el的标......
  • Topcoder 10880 - Functional Equation
    首先分析一下这个鬼畜的函数,我们考虑\(f(x)+2C\)\(=f(2f(x)-x+1)+C\)\(=f(2f(2f(x)-x+1)-(2f(x)-x+1)+1)\)\(=f(2(f(x)+C)-2f(x)+x-1+1)\)\(=f(x+2C)\)也就是\(f(x)=f(x\bmod2C)+2C\lfloor\dfrac{x}{2C}\rfloor\)也就是,只要决定了\(f(x)\),\(f(x+2mC)\)也就被确定了。......
  • DFCN:Deep Fusion Clustering Network
    论文阅读05-DFCN:DeepFusionClusteringNetwork论文信息论文地址:[DFCN][2012.09600]DeepFusionClusteringNetwork(arxiv.org)论文代码:WxTu/DFCN:AAAI2021-DeepFusionClusteringNetwork(github.com)1.存在问题研究方向通过自动编码器AE和图神经网络GCN以利......
  • 【c#表达式树】最完善的表达式树Expression.Dynamic的玩法
    【c#表达式树】最完善的表达式树Expression.Dynamic的玩法 引言在我第一次写博客的时候,写的第一篇文章,就是关于表达式树的,链接:https://www.cnblogs.com/1996-Chinese-Chen/p/14987967.html,其中,当时一直没有研究Expression.Dynamic的使用方法(因为网上找不到资料),就......
  • Deep graph clustering with enhanced feature representations for community detec
    论文阅读03-EFR-DGC:EnhancedFeatureRepresentationsforDeepGraphClustering论文信息论文地址:Deepgraphclusteringwithenhancedfeaturerepresentationsforcommunitydetection|SpringerLink论文代码:https://github.com/grcai/DGC-EFR1.存在问题DAEGC在处理......
  • Multi-View Attribute Graph Convolution Networks for Clustering
    论文阅读04-Multi-ViewAttributeGraphConvolutionNetworksforClustering:MAGCN论文信息论文地址:Multi-ViewAttributeGraphConvolutionNetworksforClustering|IJCAI论文代码:MAGCN1.多视图属性聚类:MAGCN1.存在问题:GNN融入Multi-ViewGraph1)他们不能将指定学习......
  • vue3中使用axios
    1、问题:在vue2中axios通常是经过封装的后挂载使用的,来处理token及报错处理,比如//main.jsimportajaxfrom'@/axios.js'Vue.prototype.ajax=ajax在项目中使用也很方便this.ajax就行了,那vue3中是如何简单、便捷的封装并使用呢2、思路:vue3中使用axios并不难,封装,然后......