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
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
举报