第 6 章 通用 I/O 接口基本结构与输出应用从本章开始,将从 AVR 单片机的基本功能单元入手,讲解其各个外围功能部件的基本组成和特性,以及它们的应用
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 口同外围电路的有机组合,构成各式各样的单片机嵌入式系统的前向、后向通道接口,人机交互接口和数据通信接口,形成和实现了千变万化的应用
1 通用 I/O 口的基本结构与特性6
1 I/O 口的基本结构图 6-1 为 AVR 单片机通用 I/O 口的基本结构示意图
从图中可以看出,每组 I/O 口配备三个 8 位寄存器,它们分别是方向控制寄存器 DDRx,数据寄存器 PORTx,和输入引脚寄存器 PINx(x=A\B\C\D)
I/O 口的工作方式和表现特征由这 3 个 I/O 口寄存器控制
物理引脚PINxPORTxDDRx00
数 据 总 线上拉方向:输入上拉: OFF由于刚开始学习 I/O 的应用,读者还没有掌握中断和定时计数器的使用,所以在本章的实例中,调用了 CVAVR 提供的软件延时函数来实现时间延时等待的功能
需要指出的是,使用软件延时的方式会造成 MCU 效率的下降,而且也不能实现精确的延时,所以在一般情况下应尽量不使用软件延时的方式
在后面的章节里,会逐步介绍如何使用 T/C 和中断实现延时的正确方法
图 6-1 通用 I/O 口结构示意图方向控制寄存器 DDRx 用于控制 I/O 口的输入输出方向,