最基础的也是最容易忽视和遗忘的。曾经没注意IO三态变化而出现的错误印象深刻。 引脚序号 引脚名称 引脚功能 8 位双向I/O 口, 具有可编程的内部上拉电阻。 其输出缓冲器具有对称的驱动特 性,可以输出和吸收大电流。作为输入使用时, 低时将输出电流。在复位过程中,即使系统 时钟还未起振,端口A 处于高阻状态。 MOSI SPI 总线的主机输出/ 从机输入信号 PB6 8 位双向 I/O 口 PB7 8 位双向 I/O 口 复位输入引脚。持续时间超过最小门限时间的低电 5 VCC 数字电路的电源 6 GND 地 7 XTAL2 反向振荡放大器的输出端 8 XTAL1 反向振荡放大器与片内时钟操作电路的输入端 PD0 8 位双向 I/O 口 PD1 8 位双向 I/O 口 PD2 8 位双向 I/O 口 PD3 8 位双向 I/O 口 PD4 8 位双向 I/O 口 PD5 8 位双向 I/O 口 PD6 8 位双向 I/O 口 PD7 8 位双向 I/O 口 17 VCC 数字电路的电源 18 GND 地 PC0 8 位双向 I/O 口 PC1 8 位双向 I/O 口 PC2 8 位双向 I/O 口 PC3 8 位双向 I/O 口 PC4 8 位双向 I/O 口 PC5 8 位双向 I/O 口 PC6 8 位双向 I/O 口 PC7 8 位双向 I/O 口 端口A 与A/D转换器的电源。。不使用ADC 时,该 27 AVCC 引脚应直接与VCC 连接。使用 ADC 时应通过一个低 通滤波器与 VCC 连接。 28 AGND A/D 的模拟地 29 AREF A/D 的模拟基准输入引脚 PA7 8 位双向 I/O 口 PA6 8 位双向 I/O 口 PA5 8 位双向 I/O 口 PA4 8 位双向 I/O 口 PA3 8 位双向 I/O 口 PA2 8 位双向 I/O 口 36 PA1 8 位双向 I/O 口 ADC1 ADC 输入通道 1 PA0 8 位双向 I/O 口 38 VCC 数字电路的电源 39 GND 地 PB0 8 位双向 I/O 口 40 T0 T/C0 外部计数器输入 XCK USART 外部时钟输入/ 输出 PB1 8 位双向 I/O 口 PB2 8 位双向 I/O 口 42 AIN0 模拟比较正输入 INT2 外部中断 2 输入 43 PB3 8 位双向 I/O 口
OC0 T/C0 输出比较匹配输出 44 SS SPI 从机选择引脚 Atmega16单片机有32个通用I/O口,有PA ~PD四组,每组都是8位。其主要的寄存器有DDRXn(X=A,B,C,D;n=0,2,…,7,下同),PORTXn和PINXn。 DDRX是方向寄存器,可读可写。在写操作时用于制定PX口是作为输入口还是输出口;在读操作时,从DDRX寄存器读出来的是端口的方向设定值。DDRX寄存器的初始值为0x00。 PORTX是数据寄存器,可读写。在写操作时,从PORTX写入的数据存入内部锁存器,以确定端口的工作状态或者将写入的数据送到外部数据总线。PORTX寄存器的初始值为0x00。 PINX用来访问端口X的逻辑值,且只允许读操作。从PINX读入的数据只是X口引脚的逻辑 状态。其初始值为高阻态。 /************************************引脚配置**************************************************/ 时并没有时钟在运行。 ({DDxn, PORTxn} = 0b10) 这两种模式必然会有一个发生。通常,上拉电阻使能是xx可以接受的,因为高阻环境不在意是强高电平输出还是上拉输出。如果使用情况不是这样 子,可以通过置位 SFIOR 寄存器的 PUD 来禁止所有端口的上拉电阻. void IO_change_A(void) } } PUD 上拉电 0 0 X Input No 高阻态 (Hi-Z) 0 1 0 Input Yes 被外部电路拉低时将输出电流 0 1 1 Input No 高阻态 (Hi-Z) 1 0 X Output No 输出低电平 ( 吸收电流 ) 1 1 X Output No 输出高电平 ( 输出电流 ) 间范围内由于引脚电平变化而造成的信号不稳定.引入了延迟是必然的。 其它数字输入使能模式 ( 复位、工作模式、空闲模式 ) 消耗电流。最简单的保证未用引脚具有确定电平的方法是使能内部上拉电阻。但要注意的是复位时上拉电阻将被禁用。如 果复位时的功耗也有严格要求则建议使用外部上拉或下拉电阻。不推荐直接将未用引脚与 VCC 或 GND 连接,因为这样可能会在引脚偶然作为输出时出现冲击电流。 */ |