--- title: IO扩展 updated: 2022-05-24 00:51:35Z created: 2022-01-08 13:17:45Z tags: - '#io扩展' --- > 原文链接:https://mbb.eet-china.com/forum/topic/79968_1_1.html # 输入/输出扩展3-逻辑芯片实现 74系列逻辑芯片非常经典,而且功能强大,也可以实现对单片机IO口的扩展。常用的扩展芯片有74HC138、74HC165、74HC595、74HC164、74HC148等。这类数字芯片可以使用较少的单片机IO,即可实现多路输入或者多路输出,但是需要根据芯片的时序图或者真值表进行编程。 ## 逻辑芯片实现扩展输出 以74HC164为例,介绍如何通过逻辑芯片实现单片机IO口的扩展输出,74HC164是串入并出的移位寄存器,占用单片机3个IO口就可以实现8个IO口的输出。==与该芯片类似的芯片是74HC595,该芯片是带锁存的移位寄存器,并且可以级联扩展==,即通过3个IO口就能实现多个八路输出的扩展。典型电路原理图 如6所示。 ![5e6df28a5df3b42db9c2a4890ccb559c.png](../../../_resources/5e6df28a5df3b42db9c2a4890ccb559c.png) 6-数字芯片实现输出扩展 ## 逻辑芯片实现扩展输入 以74HC165为例,介绍如何通过逻辑芯片实现输入扩展,74HC165是并入串出的移位寄存器,单片74HC165可以扩展8路输入,只需要占用单片机3个IO口。并且可以级联,实现多个8路输入的扩展。典型的74HC165的扩展电路图如下图所示。 ![217b0528b5143bc2dc854a3f53796003.png](../../../_resources/217b0528b5143bc2dc854a3f53796003.png) 7-数字芯片实现输入扩展 ## 逻辑芯片实现扩展的优缺点分析 逻辑芯片实现输入输出IO口的扩展时,其硬件电路非常简单,电路原理非常清晰,关键是价格非常便宜,国产逻辑芯片价格只有几毛钱。其稍微复杂的地方是真值表和时序图。以上介绍的逻辑芯片都是需要通过编程来实现扩展的,程序虽然不复杂,但如果是第一次使用,可能需要费一番功夫的。 # 模拟口的扩展-多路选择开关实现 在设计产品的时候,可能要用到多路AD采样端口,如实现多路PT100温度采样。单片机虽然有多路AD采样通道,但是多通道的AD采样在程序的时序上稍微复杂,或者所剩与AD口不足,这时候就要扩展,对于采样类扩展选用多路选择开关是一个不错的选择。 ## HCF4051 单片机使用三个IO口作为HCF4051的通道选择控制端,一个AD采样口接第3引脚,可以实现8路模拟量的采集。其实现电路原理图如图8所示。 ![1573bbfdd42b78419b29b3212937bed2.png](../../../_resources/1573bbfdd42b78419b29b3212937bed2.png) 8-模拟口的扩展 ## ADS1015 除了用这种多路选择开关实现外,还可以使用专用的模拟量扩展芯片,如ADS1015,这类芯片即可以作为四通道的单端采样使用,又可以当作两通道的差分采样使用,其与单片机的接口为IIC接口。 ## 模拟口扩展的优缺点分析 使用4051之类的多路选择开关,虽然只占用一个AD采样口,但是只能使用多路轮询的方式采集每一个通道,导致采样周期过长,而且采样的时序不好控制;采用ADS1015类的采样芯片,由于是通过IIC与单片机通讯的,所以采样时许容易控制,但是价格比较贵。 # 显示驱动及键盘扫描芯片 **CH423S**,为IIC接口扩展芯片,提供8个双向输入输出引脚和16个通用输出引脚, **CH455G**,便宜 ## CH423 官方定义:“两线远程IO扩展芯片”,提供8个双向输入输出引脚和16个通用引脚,支持输入电平中断,可静态驱动24只LED或动态驱动128只LED。 常见用于1602屏中IIC到SPI转换以减少驱动IO **可优先使用** ## CH455G 本是为扩展IO驱动数码管而设计,支持键盘扫描,故分“位”和“段”两种驱动,共4位8段。 但变通后可用于通用IO扩展,可直接扩展4+8路带锁存IO,只是比74HC595略微复杂。 ##IO扩展