AVR單片機每一個I/O口都對應3個寄存器DDRx,PORTx和PINx,其中DDRx為數(shù)據(jù)方向,即輸入或輸出;PORTx為將內(nèi)部上拉電阻的狀態(tài),PINx為讀取的外部引腳的狀態(tài).以下是三者對應關系:(假設DDRx.n,PORTx.n如下,PINx.n懸空)
0 0x : 輸入, 高阻態(tài), PINx.n的值不確定.
0 1 1 : 輸入, 上拉, 值為1.
1 0 0 : 輸出0, 無拉.
1 1 1 : 輸出1, 上拉.
代碼實例:
#include
void main(void)
{
unsigned char result;
PORTA = 0b11110000;
PORTA = 0b10101010;
result = PINA;
}
若A口懸空,result應為0b101101x1x