51單片機(jī)的P0口開(kāi)漏極輸出,不僅可以方便驅(qū)動(dòng)LED(LED與電阻串聯(lián)后直接接在P0口開(kāi)漏極輸出處,另一端要接電源正極),而且更重要的是可以實(shí)現(xiàn)電平兼容,比如說(shuō),5V的單片機(jī)要和3.3V的元件相連接,例如STC89C52RC單片機(jī)(5V)要與LT8900無(wú)線模塊(3.3V)實(shí)現(xiàn)通信,那么,我們可以將LT8900無(wú)線模塊的通信端口接在51單片機(jī)的P0口開(kāi)漏極輸出處,不過(guò)P0口要接上拉電阻(一般選擇10K的上拉電阻),接下來(lái)就要特別注意了,上拉電阻的電源端引腳要接到3.3V,而不是像平常的應(yīng)用那樣直接與單片機(jī)供電的5V電源相連接。當(dāng)然,可以這樣做的前提是你的板子上要有5V轉(zhuǎn)3.3V的電壓轉(zhuǎn)換電路。這樣,就可以實(shí)現(xiàn)電平兼容了。以下是測(cè)試驗(yàn)證程序:#include
//STC89C52RC,5V單片機(jī),P03口接上拉電阻,上拉10K電阻另一端接3.3V(電平兼容測(cè)試)
sbit P03 = P0^3;
sbit P10 = P1^0;
void main(void)
{
// 單片機(jī)輸出測(cè)試
//P03 = 1;//此時(shí)測(cè)量P03口,其電壓應(yīng)為3.3V//驗(yàn)證成功!
//P03 = 0;//此時(shí)測(cè)量P03口,其電壓應(yīng)為0V//驗(yàn)證成功!
//P0 = 0xff; //此時(shí)測(cè)試P03口和P0口其他IO的區(qū)別,
//實(shí)驗(yàn)表明,只有接上拉電阻的P03口電壓為3.3V,其他不接上拉電阻的P0口電壓在1.3-1.5V之間
//P0 = 0x00; //此時(shí)測(cè)試P03口和P0口其他IO的區(qū)別,
//實(shí)驗(yàn)表明,不論是否接上拉電阻,其電壓都是0V
本文引用地址:http://www.ex-cimer.com/article/201611/322097.htm//外部輸入(高電平為3.3V,低電平為0V)測(cè)試
while(1)
{
P03 = 1;//檢測(cè)外部輸入時(shí),需要先向IO寫(xiě)1
if (P03)P10 = 0; //檢測(cè)到P03口輸入為高時(shí)(3.3V),令P10口為0 ,//驗(yàn)證成功!
else P10 = 1;//檢測(cè)到P03口輸入為低時(shí)(0V),令P10口為1 ,//驗(yàn)證成功!
}
}
評(píng)論