三極管在數(shù)字電路里的開關(guān)特性,最常見的應用有 2 個:一個是控制應用,一個是驅(qū)動應用。所謂的控制就是如圖 3-7 里邊介紹的,我們可以通過單片機控制三極管的基極來間接控制后邊的小燈的亮滅,用法大家基本熟悉了。還有一個控制就是進行不同電壓之間的轉(zhuǎn)換控制,比如我們的單片機是 5V 系統(tǒng),它現(xiàn)在要跟一個 12V 的系統(tǒng)對接,如果 IO 直接接 12V電壓就會燒壞單片機,所以我們加一個三極管,三極管的工作電壓高于單片機的 IO 口電壓,用 5V 的 IO 口來控制 12V 的電路,如圖 3-8 所示。
圖1 三極管實現(xiàn)電壓轉(zhuǎn)換
圖 3-8 中,當 IO 口輸出高電平 5V 時,三極管導通,OUT 輸出低電平 0V,當 IO 口輸出低電平時,三極管截止,OUT 則由于上拉電阻 R2 的作用而輸出 12V 的高電平,這樣就實現(xiàn)了低電壓控制高電壓的工作原理。
所謂的驅(qū)動,主要是指電流輸出能力。我們再來看如圖 3-9 中兩個電路之間的對比。
圖2 LED 小燈控制方式對比
圖 3-9 中上邊的 LED 燈,和我們第二課講過的 LED 燈是一樣的,當 IO 口是高電平時,小燈熄滅,當 IO 口是低電平時,小燈點亮。那么下邊的電路呢,按照這種推理,IO 口是高電平的時候,應該有電流流過并且點亮小燈,但實際上卻并非這么簡單。
單片機主要是個控制器件,具備四兩撥千斤的特點。就如同杠桿必須有一個支點一樣,想要撐起整個地球必須有力量承受的支點。單片機的 IO 口可以輸出一個高電平,但是他的輸出電流卻很有限,普通 IO 口輸出高電平的時候,大概只有幾十到幾百 uA 的電流,達不到1mA,也就點不亮這個 LED 小燈或者是亮度很低,這個時候如果我們想用高電平點亮 LED,就可以用上三極管來處理了,我們板上的這種三極管型號,可以通過 500mA 的電流,有的三極管通過的電流還更大一些,如圖 3-10 所示。
圖3 三極管驅(qū)動 LED 小燈
圖 3-10 中,當 IO 口是高電平,三極管導通,因為三極管的電流放大作用,c 極電流就可以達到 mA 以上了,就可以成功點亮 LED 小燈。
雖然我們用了 IO 口的低電平可以直接點亮 LED,但是單片機的 IO 口作為低電平,輸入電流就可以很大嗎?這個我想大家都能猜出來,當然不可以。單片機的 IO 口電流承受能力,不同型號不完全一樣,就 STC89C52 來說,官方手冊的 81 頁有對電氣特性的介紹,整個單片機的工作電流,不要超過 50mA,單個 IO 口總電流不要超過 6mA。即使一些增強型 51 的IO 口承受電流大一點,可以到 25mA,但是還要受到總電流 50mA 的限制。那我們來看電路圖的 8 個 LED 小燈這部分電路,如圖 3-11 所示。
圖4 LED 電路圖(一)
這里我們要學會看電路圖的一個知識點,電路圖右側(cè)所有的 LED 下側(cè)的線最終都連到一根黑色的粗線上去了,大家注意,這個地方不是實際的完全連到一起,而是一種總線的畫法,畫了這種線以后,表示這是個總線結(jié)構(gòu)。而所有的名字一樣的節(jié)點是一一對應的連接到一起,其他名字不一樣的,是不連在一起的。比如左側(cè)的 DB0 和右側(cè)的最右邊的 LED2 小燈下邊的DB0 是連在一起的,而和 DB1 等其他線不是連在一起的。
那么我們把圖 3-11 中現(xiàn)在需要講解的這部分單獨摘出來看,如圖 3-12 所示。
圖5 LED 電路圖(二)
現(xiàn)在我們通過 3-12 的電路圖來計算一下,5V 的電壓減去 LED 本身的壓降,減掉三極管e 和 c 之間的壓降,限流電阻用的是 330 歐,那么每條支路的電流大概是 8mA,那么 8 路 LED如果全部同時點亮的話電流總和就是 64mA。這樣如果直接接到單片機的 IO 口,那單片機肯定是承受不了的,即使短時間可以承受,長時間工作就會不穩(wěn)定,甚至導致單片機燒毀。
有的同學會提出來可以加大限流電阻的方式來降低這個電流。比如改到 1K,那么電流不到 3mA,8 路總的電流就是 20mA 左右。首先,降低電流會導致 LED 小燈亮度變暗,小燈的亮度可能關(guān)系還不大,但因為我們同樣的電路接了數(shù)碼管,后邊我們要講數(shù)碼管還要動態(tài)顯示,如果數(shù)碼管亮度不夠的話,那視覺效果就會很差,所以降低電流的方法并不可取。其次,對于單片機來說,他主要是起到控制作用,電流輸入和輸出的能力相對較弱,P0 的 8 個口總電流也有一定限制,所以如果接一兩個 LED 小燈觀察,可以勉強直接用單片機的 IO 口來接,但是接多個小燈,從實際工程的角度去考慮,就不推薦直接接 IO 口了。那么我們?nèi)绻脝纹瑱C控制多個 LED 小燈該怎么辦呢?
除了三極管之外,其實還有一些驅(qū)動 IC,這些驅(qū)動 IC 可以作為單片機的緩沖器,僅僅是電流驅(qū)動緩沖,不起到任何邏輯控制的效果,比如我們板子上用的 74HC245 這個芯片,這個芯片在邏輯上起不到什么別的作用,就是當做電流緩沖器的,我們通過查看其數(shù)據(jù)手冊,74HC245 穩(wěn)定工作在 70mA 電流是沒有問題的,比單片機的 8 個 IO 口大多了,所以我們可以把他接在小燈和 IO 口之間做緩沖,如圖 3-13 所示。
圖6 74HC245 功能圖
從圖 3-13 我們來分析,其中 VCC 和 GND 就不用多說了,細心的同學會發(fā)現(xiàn)這里有個0.1uF 的去耦電容哦。
74HC245 是個雙向緩沖器,1 引腳 DIR 是方向引腳,當這個引腳接高電平的時候,右側(cè)所有的 B 編號的電壓都等于左側(cè) A 編號對應的電壓。比如 A1 是高電平,那么 B1 就是高電平,A2 是低電平,B2 就是低電平等等。如果 DIR 引腳接低電平,得到的效果是左側(cè) A 編號的電壓都會等于右側(cè) B 編號對應的電壓。因為我們這個地方控制端是左側(cè)接的是 P0 口,我們要求 B 等于 A 的狀態(tài),所以 1 腳我們直接接的 5V 電源,即高電平。圖 3-13 中還有一排電阻 R10 到 R17 是上拉電阻,這個電阻的用法我們在后邊介紹。
還有最后一個使能引腳 19 腳 OE,叫做輸出使能,這個引腳上邊有一橫,表明是低電平有效,當接了低電平后,74HC245 就會按照剛才上邊說的起到雙向緩沖器的作用,如果 OE接了高電平,那么無論 DIR 怎么接,A 和 B 的引腳是沒有關(guān)系的,也就是 74HC245 功能不能實現(xiàn)出來。
從下面的圖 3-14 可以看出來,單片機的 P0 口和 74HC245 的 A 端是直接接起來的。這個地方,有個別同學有個疑問,就是我們明明在電源 VCC 那地方加了一個三極管驅(qū)動了,為何還要再加 245 驅(qū)動芯片呢。這里大家要理解一個道理,電路上從正極經(jīng)過器件到地,首先必須有電流才能正常工作,電路中任何一個位置斷開,都不會有電流,器件也就不會參與工作了。其次,和水流一個道理,從電源正極到負極的電流水管的粗細都要滿足要求,任何一個位置的管子過細,都會出現(xiàn)瓶頸效應,電流在整個通路中細管處會受到限制而降低,所以在電路通路的每個位置上,都要保證通道足夠暢通,這個 74HC245 的作用就是消除單片機IO 這一環(huán)節(jié)的瓶頸。
圖7 單片機與 74HC245 的連接
-END-
推薦閱讀
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!