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