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