上一篇文章我們對(duì)C51的IO簡(jiǎn)單的介紹了一下,現(xiàn)在我們來(lái)簡(jiǎn)單了解C51的IO的結(jié)構(gòu)
這里我們學(xué)習(xí)一下比較常見(jiàn)的單片機(jī)的IO模式,分別是準(zhǔn)雙向,開(kāi)漏輸出和推挽輸出
(這里要提一嘴,我們用的STC88C52RC是沒(méi)有推挽輸出功能的,STC公司后續(xù)推出的一些機(jī)型才有推挽輸出功能)
接下來(lái)我們來(lái)看看這幾種模式
1.準(zhǔn)雙向
看看下面的原理圖,機(jī)內(nèi)信號(hào)通過(guò)一個(gè)非門(mén)取反后送入一個(gè)MOS管,MOS管負(fù)責(zé)控制這個(gè)IO的高低電平,配合內(nèi)部上拉電阻完成高低電平的輸出

?
為了方便我們分析,我們把這個(gè)MOS管看成一只NPN三極管。區(qū)別是三極管靠電流導(dǎo)通,MOS管靠電壓導(dǎo)通

?
結(jié)合前面我們講過(guò)的知識(shí),對(duì)于一只NPN三極管,基極b電壓比集電極c電壓大0.7V的時(shí)候,三極管發(fā)射極e與集電極c之間導(dǎo)通
準(zhǔn)雙向輸出高電平
當(dāng)機(jī)內(nèi)給高電平信號(hào)的時(shí)候,經(jīng)過(guò)非門(mén)取反,得到低電平信號(hào),在這里我視作0V,非門(mén)取反后直接接到三極管b極,相當(dāng)于b極電壓0V,三極管的c極接地,視作0V。此時(shí)由于b極電壓與c極電壓差小于0.7V,三極管截止

?
電源正極的電流就經(jīng)過(guò)內(nèi)部上拉電阻流向c極,只有一路電流從正極到上拉電阻再流出IO,這時(shí)候相當(dāng)于IO接入高電平
準(zhǔn)雙向輸出低電平
當(dāng)機(jī)內(nèi)給低電平信號(hào)的時(shí)候,經(jīng)過(guò)非門(mén)取反,得到高電平信號(hào),在這里我視作5V,非門(mén)取反后直接接到三極管b極,相當(dāng)于b極電壓5V,三極管的c極接地,視作0V。此時(shí)由于b極電壓與c極電壓差達(dá)到0.7V以上,三極管導(dǎo)通

?
電源正極的電流就經(jīng)過(guò)內(nèi)部上拉電阻流向c極,c,e之間導(dǎo)通,所以直通,一直流至負(fù)極。另一路電流從外部IO經(jīng)過(guò)三極管的C極,再流向e極,最后流至地,實(shí)現(xiàn)接低
這時(shí)候我想你會(huì)問(wèn),那電流為什么不從vcc流向電阻,最后流出IO呢?我想說(shuō),我相信你高中的時(shí)候?qū)W過(guò),電流總是從正極流向負(fù)極。我們來(lái)觀察,在這個(gè)電路里面,正極的電流已經(jīng)流向負(fù)極了,IO這一路電流也流向負(fù)極,也就實(shí)現(xiàn)了低電平輸出
2.開(kāi)漏輸出
開(kāi)漏輸出的結(jié)構(gòu)如下

?
細(xì)心的朋友已經(jīng)發(fā)現(xiàn)了,開(kāi)漏輸出的電路結(jié)構(gòu)跟準(zhǔn)雙向的區(qū)別就是沒(méi)有內(nèi)部上拉電阻
內(nèi)部輸出0的時(shí)候,原理跟準(zhǔn)雙向輸出相同

?
但是如果內(nèi)部輸出為1的時(shí)候

?
這時(shí)候IO是懸空狀態(tài),相當(dāng)于IO跟單片機(jī)斷開(kāi)了
如果需要輸出高電平,這時(shí)候就需要外部上拉電阻

?
3.推挽輸出(了解)
所謂的推挽,就是指使用兩個(gè)三極管或者M(jìn)OS管交替地將信號(hào)推到正和負(fù)極性,實(shí)現(xiàn)放大的效果
推挽輸出的電路結(jié)構(gòu)

?
在這個(gè)結(jié)構(gòu)中,兩個(gè)MOS管配合,實(shí)現(xiàn)推挽輸出,最大的特點(diǎn)就是輸出電流夠大(大約20mA)
在這里,T1 MOS管可以看成PNP三極管,T2 MOS管可看成NPN三極管

?
輸出高電平的原理:
內(nèi)部輸出高電平信號(hào)經(jīng)過(guò)非門(mén)取反,送到兩個(gè)三極管的b極,上面的PNP三極管導(dǎo)通,下面的NPN三極管截止,電流從VCC流過(guò)PNP管,流出IO。

?
輸出低電平的原理:
內(nèi)部輸出低電平信號(hào)經(jīng)過(guò)非門(mén)取反,送到兩個(gè)三極管的b極,上面的PNP三極管截止,下面的NPN三極管導(dǎo)通,IO電流經(jīng)過(guò)NPN三極管流過(guò)地,實(shí)現(xiàn)輸出低電平
C51的IO模式
?我們的AT89C52單片機(jī)只支持開(kāi)漏輸出和準(zhǔn)雙向輸出
P0組IO只支持開(kāi)漏輸出,仔細(xì)觀察,你的開(kāi)發(fā)板上的P0組IO是不是有一排上拉電阻?

?
P1,P2,P3支持準(zhǔn)雙向IO輸出
這些是單片機(jī)設(shè)計(jì)的時(shí)候就配置好的
我們無(wú)法修改,但是根據(jù)不同IO組的輸出功能進(jìn)行合理利用,依舊能達(dá)到我們想要的效果
-
單片機(jī)
+關(guān)注
關(guān)注
6078文章
45548瀏覽量
672690 -
MOS管
+關(guān)注
關(guān)注
111文章
2803瀏覽量
77620 -
C51單片機(jī)
+關(guān)注
關(guān)注
12文章
164瀏覽量
36167 -
IO口
+關(guān)注
關(guān)注
3文章
170瀏覽量
25830
發(fā)布評(píng)論請(qǐng)先 登錄
C51單片機(jī)并行口擴(kuò)展設(shè)計(jì)及應(yīng)用
單片機(jī)C51編程規(guī)范
單片機(jī)基礎(chǔ)知識(shí)C51版
89C51單片機(jī)IO口模擬串行通信的實(shí)現(xiàn)方法
51單片機(jī)、AVR單片機(jī)和PIC單片機(jī)的IO口操作
51單片機(jī)如何讀寫(xiě)AT29C040?51單片機(jī)讀寫(xiě)AT29C040的c51程序免費(fèi)下載
51單片機(jī)教程之80C51單片機(jī)的C語(yǔ)言程序設(shè)計(jì)資料概述
PIC單片機(jī)以及51單片機(jī)和AVR單片機(jī)的IO口操作方法介紹
C51單片機(jī)與C52單片機(jī)內(nèi)部的資源區(qū)別
C51單片機(jī)的IO口介紹(下)
評(píng)論