AVR單片機(jī)寄存器DDR,PORT和PIN之間對(duì)應(yīng)關(guān)系
AVR單片機(jī)每一個(gè)I/O口都對(duì)應(yīng)3個(gè)寄存器DDRx,PORTx和PINx,其中DDRx為數(shù)據(jù)方向,即輸入或輸出;PORTx為將內(nèi)部上拉電阻的狀態(tài),PINx為讀取的外部引腳的狀態(tài).以下是三者對(duì)應(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, 上拉.
代碼實(shí)例:
#include
void main(void)
{
unsigned char result;
PORTA = 0b11110000;
PORTA = 0b10101010;
result = PINA;
}
若A口懸空,result應(yīng)為0b101101x1x