通用I/O接口的基本结构与特性

2008天前 · AVR单片机 · 643次阅读

I/O口的基本结构

AVR单片机每组I/O口配备3个8位寄存器,它们分别是方向控制寄存器DDRx、数据寄存器PORTx和输入引脚寄存器PINx(x=A/B/C/D)。
DDRx=1时,I/O口处于输出工作方式。此时数据寄存器PORTx中的数据通过一个推挽电路输出到外部引脚。
AVR的输出采用推挽电路是为了提高I/O口的输出能力,当PORTx=1时,I/O口引脚呈现高电平,同时可提供输出20mA的电流;而当PORTx=0时,I/O引脚呈现低电平,同时可吸纳20mA电流。
当DDRx=0时,I/O口处于输入工作方式。此时引脚寄存器的PINx中的数据就是外部引脚的实际电平(PINx的读取最好是等待一个时钟读取,读取PORTx的值无法得到外部引脚电平,不要搞混),通过读I/O指令可将物理引脚的真实数据读入MCU。此外,当I/O口定义为输入时,通过PORTx的控制,可使用或不使用内部的上拉电阻。

DDRXnPORTXnPUDI/O方式内部上拉电阻引脚状态说明
00X输入无效三态(高阻)
01/00输入有效/无效有效时外部引脚拉低输出电流(μA)
0X1输入无效三态(高阻)
10X输出无效推挽0输出,吸收电流(20mA)
11X输出无效推挽1输出,输出电流(20mA)

表中的PUD为寄存器SFIOR中的一位,它的作用相当于AVR全部I/O口内部上拉电阻总开关。
当PUD=1时,AVR所有I/O内部上拉电阻都不起作用;
当PUD=0时,各个I/O口内部上拉电阻取决于PORTn的设置。
AVR通用I/O口的主要特点如下:

  • 双向可独立位控的I/O口。ATmega16的PA、PB、PC、PD 4个接口都是8位双向I/O口,每一位引脚都可以单独进行定义,相互不受影响。
  • Push-Pull大电流驱动(最大40mA)。每个I/O口输出方式均采用推挽式缓冲器输出,提供大电流的驱动,可以输出(吸入)20mA的电流,因而能直接驱动LED显示器。
  • 可控制的引脚内部上拉电阻。每一位引脚内部都有独立的、可通过编程设置的,设定为上拉有效或无效的内部上拉电阻。当I/O口用于输入状态,且内部上拉电阻激活(有效)时,如果外部引脚被拉低,则构成电流源输出电流(μA量级)。
  • DDRx可控的方向寄存器。

I/O接口寄存器

ATmega16的4个8位接口都有各自对应的3个I/O口寄存器,它们占用了I/O空间的12个地址。

名称I/O空间地址RAM地址作用
PORTA$1B0x003BA口数据寄存器
DDRA$1A0x003AA口方向寄存器
PINA$190x0039A口输入引脚寄存器
PORTB$180x0038B口数据寄存器
DDRB$170x0037B口方向寄存器
PINB$160x0036B口输入引脚寄存器
PORTC$150x0035C口数据寄存器
DDRC$140x0034C口方向寄存器
PINC$130x0033C口输入引脚寄存器
PORTD$120x0032D口数据寄存器
DDRD$110x0031D口方向寄存器
PIND$100x0030D口输入引脚寄存器

PORTx支持读和写,复位后默认为0;
DDRx支持读和写,复位后默认为0;
PINx支持读,没有默认值(本身用于读取外部电压的);

注意:

  • 使用AVR的I/O口要注意,要先正确设置DDRx方向寄存器,再进行I/O口的读/写操作。
  • AVR的I/O口复位后的初始状态全部为输入工作方式,内部上拉电阻无效。因此,外部引脚呈现三态高阻输入状态。
  • 用户程序首先需要对要使用的I/O口进行初始化设置,然后根据实际需要设定使用I/O口的工作方式。放设定为输入方式时,还要考虑是否使用上拉电阻。
  • 在硬件电路设计时,如果利用AVR内部I/O的上拉电阻,则可节省外部的上拉电阻。

通用数字I/O接口的设置与编程

在AVR汇编指令系统中,直接用于对I/O寄存器的操作指令有以下3类,全部为单周期指令:

  • IN/OUT指令:实现了32个通用寄存器与I/O寄存器之间的数据交换,格式为:
IN Rd,A     ;从I/O寄存器A读取数据到通用寄存器Rd
OUT A,Rr    ;通用寄存器Rr数据送I/O寄存器A
  • SBI/CBI指令:实现了对I/O寄存器中指定位的置1或清0,格式为:
SBI A,b    ;将I/O寄存器A的第b位置1
CBI A,b    ;将I/O寄存器A的第b位清0
  • SBIC/SBIS指令:为转移类指令,它根据I/O寄存器中指定位的数值实现跳行转移,格式为:
SBIC A,b    ;I/O寄存器A的第b位为0时,跳行执行
SBIC A,b    ;I/O寄存器A的第b位为1时,跳行执行
👍 0

none

最后修改于2007天前

评论

贴吧 狗头 原神 小黄脸
收起

贴吧

狗头

原神

小黄脸

目录

avatar

未末

迷失

126

文章数

275

评论数

7

分类