以我們常用的STC單片機為例:STC單片機所有IO口均可由軟件配置成4種工作類型。4種類型分別為:準雙向口/弱上拉(標準8051輸出模式)、強推挽輸出/強上拉、僅為輸入(高阻)或開漏輸出功能。每個口有2個寄存器中的相應位控制每個引腳的工作類型。上電復位后的工作模式為準雙向/弱上拉模式。2V以上為高電平,0.8V以下為低電平,每個I/O口驅動能力可以達到20mA。
那么我們通過配置哪兩個寄存器來設定I/O口的工作模式呢:這兩個寄存器就是PxM1和PxM0,P0口對應的就是P0M1和P0M0,P1口對應的就是P0M1和P0M0,P2口對應的就是P0M1和P0M0,P3口對應的就是P0M1和P0M0。以P0口的設置為例: 如果有P0M1為10100000;P0M0為11000000,我們對照上表可以知道:P0.7管腳為開漏輸出;P0.6為強推挽輸出;P0.5為輸入(高阻);P0.4到P0.0為準雙向口。
單片機I/O控制電路典型接法: 1、典型三極管控制電路 如果用弱上拉控制,建議加上拉電阻R1(3.3K - 10K),如果不加上拉電阻R1,建議R2的阻值在15K以上,或用強推挽輸出。
2、典型發光二極管控制電路 采用準雙向口模式,用灌電流驅動發光二極管限流電阻盡量大于1K,最小不要小于470Ω。

推挽/強上拉口模式,用拉電流驅動發光二極管,限流電阻一般為1K。
3、混合電壓供電系統3V/5V器件I/O口互連 STC單片機如果供電是5V,當它連接3.3V器件時,為防止3.3V器件承受不了5V,可將相應的5V單片機I/O口先串一個330Ω的限流電阻到3.3V器件I/O口,程序初始化時將5V器件的I/O口設置成開漏配置,斷開內部上拉電阻,相應的3.3V器件I/O口外部加10K上拉電阻到3.3V器件的VCC,這樣高電平是3.3V,低電平是0V,輸入輸出一切正常。 4、當I/O口作為PWM輸出I/O口時,需要設置成強推挽輸出/強上拉輸出,同時加輸出限流電阻10K即可。
|