STC12C5A60S2單片機IO口設(shè)定
掃描二維碼
隨時隨地手機看文章
STC12C5A60S2單片機IO口工作模式設(shè)定
STC12C5A60S2 系列單片機其所有I/O口均可由軟件配置成4種工作類型之一。4種類型分別為:準(zhǔn)雙向口(標(biāo)準(zhǔn)8051 輸出模式)、推挽輸出、僅為輸入(高阻)或開漏輸出功能。
每個口由2個控制寄存器中的相應(yīng)位控制每個引腳工作類型。
STC12C5A60S2系列單片機上電復(fù)位后為準(zhǔn)雙向口(傳統(tǒng)8051的I/O口)模式。2V以上時為高電平,0.8V以下時為低電平。
I/O口工作類型設(shè)定
PxM1[7:0] PxM0[7:0] I/O 口模式
0 0 準(zhǔn)雙向口 (傳統(tǒng) 8051I/O口模式 ),灌電流可達20mA, 拉電流為230uA
0 1 推挽輸出 (強上拉輸出, 可達20mA, 要加限流電阻)
1 0 僅為輸入 (高阻)
1 1 開漏 (Open Dra in), 內(nèi)部上拉電阻斷開, 要外加
注意:
雖然每個I/O口在弱上拉時都能承受20mA的灌電流(還是要加限流電阻,如 1K,560Ω等),在強推挽輸出時都能輸出20mA的拉電流(也要加限流電阻),但整個芯片的工作電流推薦不要超過55mA。即從MCU-VCC流入的電流不超過55mA,從MCU-GND流出電流不超過55mA,整體流入/流出電流都不能超過55mA.
介紹一個宏定義: _BIN
做用是給寄存器的每個位賦值,比如:
ADC_CONTR = _BIN(1,0,0,0, 1,0,0,0);
就是給ADC_CONTR寄存器的第7位和第3位賦值1,其他位為0。 括號中的參數(shù)依次為第7位~第0位
在TF卡程序中,若將SPI口設(shè)置成推挽(強上拉)輸出,就可以這樣寫:
P1M1 = _BIN(0,0,0,0,0,0,0,0);
P1M0 = _BIN(1,1,1,1,1,1,1,1);