AVR单片机寄存器DDR,PORT和PIN之间对应关系(摘)


AVR单片机每一个I/O口都对应3个寄存器DDRx,PORTx和PINx,其中DDRx为数据方向,即输入或输出;PORTx为将内部上拉电阻的状态,PINx为读取的外部引脚的状态.以下是三者对应关系:(假设DDRx.n,PORTx.n如下,PINx.n悬空)

0 0 x : 输入, 高阻态, PINx.n的值不确定.

0 1 1 : 输入, 上拉, 值为1.

1 0 0 : 输出0, 无拉.

1 1 1 : 输出1, 上拉.

代码实例:

#include <mega16.h>
void main(void)
{
unsigned char result;
PORTA = 0b11110000;
PORTA = 0b10101010;
result = PINA;
}

若A口悬空,result应为0b101101x1x