日常更新7!
單片機(jī)IO口的結(jié)構(gòu):
這里為了嚴(yán)謹(jǐn),T1、T2是MOS管而非三極管,但功能和用法與三極管完全一樣:T1為PNP型,T2為NPN型。三極管與MOS管的不同之處在于三極管靠電流導(dǎo)通,而MOS管靠電壓導(dǎo)通。
準(zhǔn)雙向IO: 內(nèi)部輸出1經(jīng)反向后為0,不導(dǎo)通,IO與上拉電阻相連,為高電平。 內(nèi)部輸出0經(jīng)反向后為1,單通。IO導(dǎo)通到GND,為低電平。
開漏輸出: 比如單片機(jī)的P0口,沒有內(nèi)部的上拉電阻,這時(shí)候要想正常的使用IO控制,就必須在外部加上拉電阻。如果不接,那么IO將處于不確定狀態(tài)。
強(qiáng)推挽輸出: 上拉電阻很小,或者直接沒有上拉電阻,有著很強(qiáng)的輸出輸入電流的能力。 內(nèi)部輸出1,經(jīng)反向?yàn)?,T1導(dǎo)通,IO為高電平; 內(nèi)部輸出0,經(jīng)反向?yàn)?1,T1不導(dǎo)通,T2導(dǎo)通,接地,IO為低電平。
高阻態(tài): 電平狀態(tài)雖它后面接的東西而定,一般處于懸空狀態(tài),理論上電阻值無窮大。
如何設(shè)置IO口的狀態(tài): 可通過設(shè)置PXM1:PXM0的值:
PXM1:PXM0
0 0 準(zhǔn)雙向口(傳統(tǒng)IO)
0 1 推挽輸出(強(qiáng)上拉 ,電流可達(dá)20mA,盡量少用)
1 0 僅為輸入(高阻)
1 1 開漏,如傳統(tǒng)8051的P0口
例:C語言中直接賦值
P1M0 = 0xC0;
P1M1 = 0xA0;//P1.7開漏,P1.6高阻,P1.5強(qiáng)推挽輸出,其他準(zhǔn)雙向IO口 上下拉電阻: - 上拉電阻就是將不確定的信號(hào)通過一個(gè)電阻拉到高電平,同時(shí)此電阻起到一個(gè)限流的作用,下拉就是下拉到低電平。
- 1、OC門要輸出高電平,外部必須加上拉電阻。
- 2、加大普通IO口的驅(qū)動(dòng)能力。
- 3、起到限流的作用。
- 4、抵抗電磁干擾。
上下拉電阻的選取原則: - 1、從降低功耗方面考慮應(yīng)該足夠大,因?yàn)殡娮柙酱螅娏髟叫 ?/font>
- 2、從確保足夠的引腳驅(qū)動(dòng)能力考慮應(yīng)該足夠小,電阻越小,電流才能越大。
- 3、開漏輸出時(shí),過大的上拉電阻會(huì)導(dǎo)致信號(hào)上升沿變緩。
過大的上拉電阻會(huì)導(dǎo)致信號(hào)變緩。
完整的Word格式文檔51黑下載地址:
|