51單片機(jī)不為人知的IO口之謎
準(zhǔn)雙向口輸出類型可用作輸出和輸入功能而不需重新配置口線輸出狀態(tài)。這是因為當(dāng)口線輸出為1時驅(qū)動能力很弱,允許外部裝置將其拉低。當(dāng)引腳輸出為低時,它的驅(qū)動能力很強(qiáng),可吸收相當(dāng)大的電流。準(zhǔn)雙向口有3個上拉晶體管適應(yīng)不同的需要。在3個上拉晶體管中,有1個“極弱上拉”,當(dāng)口線鎖存為1時打開。當(dāng)引腳懸空時,這個極弱的上拉源產(chǎn)生很弱的上拉電流將引腳上拉為高電平。第2個上拉晶體管稱為“弱上拉”,當(dāng)口線寄存器為1且引腳本身也為1時打開。此上拉提供基本驅(qū)動電流使準(zhǔn)雙向口輸出為1。如果一個引腳輸出為1而由外部裝置下拉到低時,弱上拉關(guān)閉而“極弱上拉”維持開狀態(tài),為了把這個引腳強(qiáng)拉為低,外部裝置必須有足夠的灌電流能力使引腳上的電壓將到門檻電壓以下。第3個上拉晶體管稱為“強(qiáng)上拉”。當(dāng)口線鎖存器由0到1跳變時,這個上拉用來加快準(zhǔn)雙向口由邏輯0到邏輯1轉(zhuǎn)換。當(dāng)發(fā)生這種情況時,強(qiáng)上拉打開約2個機(jī)器周期以使引腳能夠迅速地上拉到高電平。準(zhǔn)雙向口輸出如下圖所示,
本文引用地址:http://m.butianyuan.cn/article/201611/323503.htm那么以上介紹的輸出狀態(tài),我們可以通過設(shè)置STC單片機(jī)的相關(guān)特殊寄存器實現(xiàn)。
2.當(dāng)準(zhǔn)雙向口作為輸入引腳時(讀取引腳狀態(tài))
此時我們首先需要將口所存數(shù)據(jù)“1”,這是為什么呢?大家仔細(xì)分析下這個電路,當(dāng)口所存數(shù)據(jù)“0”時,強(qiáng)上拉的下面的管是導(dǎo)通的,那么端口引腳就相當(dāng)與地直接相連,這樣高電平信號將會被強(qiáng)制拉低輸入數(shù)據(jù)將無法正確檢測!
評論