IO口

ATmega16芯片有PORTA、PORTB、PORTC、PORTD (简称PA、PB、PC、PD)4组8位,共32路通用I/O接口, 分别对应于芯片上32根I/O引脚。所有这些I/O口都是双 (有的为3)功能复用的。
其中第一功能均作为数字通用I/O接口使用,复用功能则 分别用于中断、时钟/计数器、USRAT、I2C和SPI串行通 信、模拟比较、捕捉等应用。

I/O口的基本结构

(三)【AVR单片机】IO口

每组I/O口配备三个8位寄存器,它们分别是方向控制寄 存器DDRx,数据寄存器PORTx,和输入引脚寄存器PINx (x=A\B\C\D)。
I/O口的工作方式和表现特征由这3个I/O口寄存器控制。

方向控制寄存器DDRx用于控制I/O口的输入输出方向,即 控制I/O口的工作方式为输出方式还是输入方式。
DDRx=1时,I/O口处于输出工作方式。
PORTx=1时,I/O引脚呈现高电平,同时可提供输出 20mA的电流;而当PORTx=0时,I/O引脚呈现低电平, 同时可吸纳20mA电流。
(三)【AVR单片机】IO口

当DDRx=0时,I/O处于输入工作方式
(三)【AVR单片机】IO口

此时引脚寄存器PINx中的数据就是外部引脚的实际电平, 通过读I/O指令可将物理引脚的真实数据读入MCU。
此外,当I/O口定义为输入时(DDRx=0),通过PORTx 的控制,可使用或不使用内部的上拉电阻。
(三)【AVR单片机】IO口
表中的PUD为寄存器SFIOR中的一位,它的作用相当 AVR全部I/O口内部上拉电阻的总开关。
当PUD=1时,AVR所有I/O内部上拉电阻都不起作用(全 局内部上拉无效);而PUD=0时,各个I/O口内部上拉电 阻取决于DDRXn的设置

注意:

  • 使用AVR的I/O口,首先要正确设置其工作方式,确定其 工作在输出方式还是输入方式。
  • 当I/O工作在输入方式,要读取外部引脚上的电平时,应 读取PINxn的值,而不是PORTxn的值。
  • 当I/O工作在输入方式,要根据实际情况使用或不使用内 部的上拉电阻
  • 一旦将I/O口的工作方式由输出设置成输入方式后,必须 等待一个时钟周期后才能正确的读到外部引脚PINxn的值

I/O端口寄存器:
PA口寄存器—PORTA、DDRA、PINA各个位的具体定义

(三)【AVR单片机】IO口

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2022-01-20
  • 2021-06-25
  • 2022-01-21
  • 2021-07-31
猜你喜欢
  • 2021-09-07
  • 2021-10-23
  • 2021-10-09
  • 2022-02-22
  • 2021-04-25
  • 2021-10-22
相关资源
相似解决方案