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

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