AVR單片機寄存器DDR,PORT和PIN之間對應(yīng)關(guān)系
AVR單片機每一個I/O口都對應(yīng)3個寄存器DDRx,PORTx和PINx,其中DDRx為數(shù)據(jù)方向,即輸入或輸出;PORTx為將內(nèi)部上拉電阻的狀態(tài),PINx為讀取的外部引腳的狀態(tài).以下是三者對應(yīng)關(guān)系:(假設(shè)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應(yīng)為0b101101x1x