上一篇文章我們對C51的IO簡單的介紹了一下,現(xiàn)在我們來簡單了解C51的IO的結(jié)構(gòu)
這里我們學習一下比較常見的單片機的IO模式,分別是準雙向,開漏輸出和推挽輸出
(這里要提一嘴,我們用的STC88C52RC是沒有推挽輸出功能的,STC公司后續(xù)推出的一些機型才有推挽輸出功能)
接下來我們來看看這幾種模式
1.準雙向
看看下面的原理圖,機內(nèi)信號通過一個非門取反后送入一個MOS管,MOS管負責控制這個IO的高低電平,配合內(nèi)部上拉電阻完成高低電平的輸出
?
為了方便我們分析,我們把這個MOS管看成一只NPN三極管。區(qū)別是三極管靠電流導通,MOS管靠電壓導通
?
結(jié)合前面我們講過的知識,對于一只NPN三極管,基極b電壓比集電極c電壓大0.7V的時候,三極管發(fā)射極e與集電極c之間導通
準雙向輸出高電平
當機內(nèi)給高電平信號的時候,經(jīng)過非門取反,得到低電平信號,在這里我視作0V,非門取反后直接接到三極管b極,相當于b極電壓0V,三極管的c極接地,視作0V。此時由于b極電壓與c極電壓差小于0.7V,三極管截止
?
電源正極的電流就經(jīng)過內(nèi)部上拉電阻流向c極,只有一路電流從正極到上拉電阻再流出IO,這時候相當于IO接入高電平
準雙向輸出低電平
當機內(nèi)給低電平信號的時候,經(jīng)過非門取反,得到高電平信號,在這里我視作5V,非門取反后直接接到三極管b極,相當于b極電壓5V,三極管的c極接地,視作0V。此時由于b極電壓與c極電壓差達到0.7V以上,三極管導通
?
電源正極的電流就經(jīng)過內(nèi)部上拉電阻流向c極,c,e之間導通,所以直通,一直流至負極。另一路電流從外部IO經(jīng)過三極管的C極,再流向e極,最后流至地,實現(xiàn)接低
這時候我想你會問,那電流為什么不從vcc流向電阻,最后流出IO呢?我想說,我相信你高中的時候?qū)W過,電流總是從正極流向負極。我們來觀察,在這個電路里面,正極的電流已經(jīng)流向負極了,IO這一路電流也流向負極,也就實現(xiàn)了低電平輸出
2.開漏輸出
開漏輸出的結(jié)構(gòu)如下
?
細心的朋友已經(jīng)發(fā)現(xiàn)了,開漏輸出的電路結(jié)構(gòu)跟準雙向的區(qū)別就是沒有內(nèi)部上拉電阻
內(nèi)部輸出0的時候,原理跟準雙向輸出相同
?
但是如果內(nèi)部輸出為1的時候
?
這時候IO是懸空狀態(tài),相當于IO跟單片機斷開了
如果需要輸出高電平,這時候就需要外部上拉電阻
?
3.推挽輸出(了解)
所謂的推挽,就是指使用兩個三極管或者MOS管交替地將信號推到正和負極性,實現(xiàn)放大的效果
推挽輸出的電路結(jié)構(gòu)
?
在這個結(jié)構(gòu)中,兩個MOS管配合,實現(xiàn)推挽輸出,最大的特點就是輸出電流夠大(大約20mA)
在這里,T1 MOS管可以看成PNP三極管,T2 MOS管可看成NPN三極管
?
輸出高電平的原理:
內(nèi)部輸出高電平信號經(jīng)過非門取反,送到兩個三極管的b極,上面的PNP三極管導通,下面的NPN三極管截止,電流從VCC流過PNP管,流出IO。
?
輸出低電平的原理:
內(nèi)部輸出低電平信號經(jīng)過非門取反,送到兩個三極管的b極,上面的PNP三極管截止,下面的NPN三極管導通,IO電流經(jīng)過NPN三極管流過地,實現(xiàn)輸出低電平
C51的IO模式
?我們的AT89C52單片機只支持開漏輸出和準雙向輸出
P0組IO只支持開漏輸出,仔細觀察,你的開發(fā)板上的P0組IO是不是有一排上拉電阻?
?
P1,P2,P3支持準雙向IO輸出
這些是單片機設(shè)計的時候就配置好的
我們無法修改,但是根據(jù)不同IO組的輸出功能進行合理利用,依舊能達到我們想要的效果
-
單片機
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634614 -
MOS管
+關(guān)注
關(guān)注
108文章
2410瀏覽量
66756 -
C51單片機
+關(guān)注
關(guān)注
12文章
164瀏覽量
34756 -
IO口
+關(guān)注
關(guān)注
3文章
170瀏覽量
24023
發(fā)布評論請先 登錄
相關(guān)推薦
評論