Arduino与Proteus仿真实例-MCP23017-I/O扩展器驱动仿真

MCP23017-I/O扩展器驱动仿真

1、MCP23017介绍

MCP23017/MCP23S17 (MCP23X17) 器件系列为 I2C 总线或 SPI 应用提供 16 位通用并行 I/O 扩展。两种设备仅在串行接口上有所不同:

  • MCP23017——I2C 接口

  • MCP23S17——SPI 接口

MCP23X17 由多个 8 位配置寄存器组成,用于输入、输出和极性选择。系统主站可以通过写入 I/O 配置位(IODIRA/B) 来启用 I/O 作为输入或输出。每个输入或输出的数据保存在相应的输入或输出寄存器中。输入端口寄存器的极性可以用极性反转寄存器反转。所有寄存器都可以被系统主机读取。

16 位 I/O 端口在功能上由两个 8 位端口(PORTA 和 PORTB)组成。 MCP23X17 可以通过 IOCON.BANK 配置为在 8 位或 16 位模式下工作。有两个中断引脚,INTA 和 INTB,它们可以与它们各自的端口相关联,或者可以逻辑或运算在一起,以便在任一端口导致中断时两个引脚都将激活。中断输出可以配置为在两种情况下激活(互斥):

  • 当任何输入状态与其对应的输入端口寄存器状态不同时。这用于向系统主机指示输入状态已更改。
  • 当输入状态与预配置的寄存器值(DEFVAL 寄存器)不同时。

中断捕获寄存器在中断发生时捕获端口值,从而保存导致中断的条件。上电复位 (POR) 将寄存器设置为其默认值并初始化器件状态机。硬件地址引脚用于确定设备地址。

Guess you like

Origin blog.csdn.net/wujuxKkoolerter/article/details/121077947