3.3 三極管在數字電路中的應用
三極管在數字電路和模擬電路中都有大量的應用,在Kingst51開發板上也用了多個三極管。在板子上的LED小燈部分,就有這個三極管的應用了,圖3-5的LED電路中的 Q16就是一個PNP型的三極管。

圖3-5 LED電路
3.3.1 三極管的初步認識
三極管是一種常用的控制和驅動器件,常用的三極管根據材料分有硅管和鍺管兩種,原理相同,壓降略有不同,硅管用的較普遍,而鍺管應用較少,本書采用硅管的參數來進行講解。三極管有2種類型,分別是PNP型和NPN型,如圖3-6所示。

圖3-6 三極管示意圖
三極管一共有3個極,從圖3-6來看,橫向左側的引腳叫做基極(base),中間有一個箭頭,一頭連接基極,另外一頭連接的是發射極e(emitter),剩下的一個引腳就是集電極c(collector)了。這是必須要記住的內容,死記硬背即可。
3.3.2 三極管的原理
三極管有截止、放大、飽和三種工作狀態。放大狀態主要應用于模擬電路中,且用法和計算方法也比較復雜暫時用不到。而數字電路主要使用的是三極管的開關特性,只用到了截止與飽和兩種狀態,所以重點講這兩種用法。三極管的類型和用法作者給大家總結了一句口訣:箭頭朝內PNP,導通電壓順箭頭過,電壓導通,電流控制。
解析一下這個口訣。如圖3-6所示,三極管有2種類型,箭頭朝內就是PNP,那箭頭朝外的自然就是NPN了,在實際應用中,要根據實際電路的需求來選擇到底用哪種類型。
三極管的用法特點,關鍵點在于b極(基極)和e級(發射極)之間的電壓情況,對于PNP而言,e極電壓只要高于b級0.7V以上,這個三極管e級和c級之間就可以順利導通。也就是說,控制端在b和e之間,被控制端是e和c之間。同理,NPN型三極管的導通電壓是b極比e極高0.7V,總之是箭頭的始端比末端高0.7V就可以讓三極管的e極和c極導通。這就是關于“導通電壓順箭頭過,電壓導通”的解釋。

圖3-7 三極管的用法
以圖3-7為例,三極管基極通過一個10kΩ的電阻接到了單片機的一個I/O口上,假定是P1.0,發射極接到5V的電源上,集電極接了一個LED小燈,并且串聯了一個1K的限流電阻最終接到了電源負極GND上。
如果P1.0由程序給一個高電平1,那么基極b和發射極e都是5V,也就是說e到b不會產生一個0.7V的壓降,這個時候,發射極和集電極也就不會導通,那么豎著看這個電路在三極管處是斷開的,沒有電流通過,LED2小燈也就不會亮。如果程序給P1.0一個低電平0,這時e極還是5V,于是e和b之間產生了壓差,三極管e和b之間也就導通了,三極管e和b之間大概有0.7V的壓降,那還有(5-0.7)V的電壓會在電阻R47上。這個時候,e和c之間也會導通了,那么LED小燈本身有2V的壓降,三極管本身e和c之間大概有0.2V的壓降,忽略不計。在R41上就會有大概3V的壓降,可以計算出來,這條支路的電流大概是3mA,可以成功點亮LED。
電流控制是什么意思呢?前邊講過,三極管有截止、放大以及飽和三個狀態。截止,就是e和b之間不導通。而要讓這個三極管處于飽和狀態,就是所謂的開關特性,必須要滿足一個條件。三極管都有一個放大倍數β,要想處于飽和狀態,b極電流就必須大于e和c之間電流值除以β。這個β,對于常用的三極管大概可以認為是100。那么圖3-7中的R47的阻值必須要來計算一下了。
剛才算過了,e和c之間的電流是3mA,那么b極電流最小就是3mA除以100等于30uA,大概有4.3V電壓會落在基極電阻上,基極電阻最大值就是4.3V/30uA = 143K。電阻值只要比這個值小就可以,當然也不能太小,太小會導致單片機的I/O口電流過大燒壞三極管或者單片機,STC89C52的I/O口輸入電流最大理論值是25mA,推薦不要超過6mA,用電壓和電流算一下,就可以算出來最小電阻值,圖3-7取的是經驗值。
3.3.3 三極管的應用
三極管在數字電路里的開關特性,最常見的應用有2個:一個是控制應用,一個是驅動應用。所謂的控制就是如圖3-7里邊介紹的,可以通過單片機控制三極管的基極來間接控制后邊的小燈的亮滅。還有一個控制就是進行不同電壓之間的轉換控制,比如Kingst51單片機是5V系統,現在要跟一個12V的系統對接,如果I/O直接接12V電壓就會燒壞單片機,所以加一個三極管,三極管的工作電壓高于單片機的I/O口電壓,用5V的I/O口來控制12V的電路,如圖3-8所示。

圖3-8 三極管實現電壓轉換
圖3-8中,當I/O口輸出高電平5V時,三極管導通,OUT輸出低電平0V,當I/O口輸出低電平時,三極管截止,OUT則由于上拉電阻R2的作用而輸出12V的高電平,這樣就實現了低電壓控制高電壓的工作原理。
所謂的驅動,主要是指電流輸出能力。如圖3-9中兩個電路之間的對比。

圖3-9 LED小燈控制方式對比
圖3-9中上邊的的LED燈,和第二課講過的LED燈是一樣的,當I/O口是高電平時,小燈熄滅,當I/O口是低電平時,小燈點亮。那么下邊的電路呢,按照這種推理,I/O口是高電平的時候,應該有電流流過并且點亮小燈,但實際上卻并非這么簡單。
單片機主要是個控制器件,具備四兩撥千斤的特點。就如同杠桿必須有一個支點一樣,想要撐起整個地球必須有力量承受的支點。單片機的I/O口可以輸出一個高電平,但是它的輸出電流卻很有限,普通I/O口輸出高電平的時候,大概只有幾十到幾百uA的電流,達不到1mA,也就點不亮這個LED小燈或者是亮度很低,這個時候如果想用高電平點亮LED,就可以用上三極管來處理了,板上的這種三極管型號,可以通過500mA的電流,有的三極管通過的電流還更大一些,如圖3-10所示。

圖3-10 三極管驅動LED小燈
圖3-10中,當I/O口是高電平,三極管導通,因為三極管的電流放大作用,c極電流就可以達到mA以上了,就可以成功點亮LED小燈。
3.4 74HC138三八譯碼器的應用
在設計單片機電路的時候,單片機的I/O口數量是有限的,有時滿足不了產品需求,比如STC89C52一共有32個I/O口,但是為了控制更多的器件,就可以使用一些外圍的數字芯片,這類數字芯片由簡單的輸入邏輯來控制輸出邏輯,比如74HC138這個三八譯碼器,圖3-11是74HC138在Kingst51開發板上的一個應用。

圖3-11 74HC138應用原理圖
從名字來分析,三八譯碼器就是把3種輸入狀態翻譯成8種輸出狀態。從圖3-11能看出,74HC138的1~6一共是6個輸入引腳,但是其中4、5、6這三個引腳是使能引腳。這三個引腳如果不符合芯片規定的輸入要求,不管輸入的1、2、3引腳是什么電平狀態,7到15引腳總是輸出高電平。所以根據器件使用手冊說明,要想讓74HC138正常工作,ENLED接的4腳和5腳必須輸入低電平,ADDR3接的6腳必須輸入高電平,這兩個位置都是使能控制端口。不知道是否記得前邊點亮LED程序有這么兩條控制74HC138使能的語句:
ENLED = 0;ADDR3 = 1;
這類邏輯芯片,大多都是有使能引腳的,使能符合要求的前提下,就可以研究控制邏輯了。對于數字器件的引腳,如果一個引腳輸入的時候,有0和1兩種狀態;對于兩個引腳輸入的時候,就會有00、01、10、11這四種狀態了,那么對于3個輸入的時候,就會出現8種狀態了,大家可以看下邊的這個真值表——圖3-12,其中輸入是A2、A1、A0的順序,輸出是從Y7、Y6……Y0的順序。

圖3-12 74HC138真值表
從圖3-12可以看出,任一輸入狀態下,只有一個輸出引腳是低電平,其他的引腳都是高電平。在前面的電路中已經看到,8個LED小燈的總開關三極管Q16基極的控制端是LEDS6,也就是Y6輸出一個低電平的時候,可以開通三極管Q16,從右側的希望LEDS5輸出低電平這樣的結果,可以推導出左側輸入端A2、A1、A0的輸入狀態應該是110,如圖3-13。

圖3-13 LED小燈整體電路圖
那么再整體捋一遍點亮LED小燈的過程,首先看74HC138,要讓LEDS6為低電平才能導通三極管Q16,所以
ENLED = 0;ADDR3 = 1; 保證74HC138使能。
ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; 保證了三極管Q16這個開關開通,5V電源加到LED上。
通過P0口控制,讓P0.0引腳等于0,就是DB0等于0,那么這樣在這一排共8個LED小燈當中,只有最右側的小燈和5V之間有壓差,有壓差就會有電流通過,LED2就會發光了。
從原理圖左上角P0口總線可以看出,74HC138的ADDR0 、ADDR1、ADDR2、 ADDR3和ENLED接在P1.0到P1.3引腳上,如圖3-14所示。

圖3-14 單片機引腳圖
審核編輯 黃宇
-
三極管
+關注
關注
145文章
3719瀏覽量
127921 -
模擬電路
+關注
關注
126文章
1605瀏覽量
105412
發布評論請先 登錄
阻燃系列基礎知識
第8章 函數進階與按鍵(8.1 8.2)
第6章 中斷與數碼管動態顯示(6.1 6.2)
第3章 硬件基礎知識學習(3.5)
【「AI芯片:科技探索與AGI愿景」閱讀體驗】+內容總覽
【「Yocto項目實戰教程:高效定制嵌入式Linux系統」閱讀體驗】01初讀體驗
【「# 運算放大器參數解析與LTspice應用仿真」閱讀體驗】+全書概覽與第一章閱讀分享
《ESP32S3 Arduino開發指南》第二章 Arduino基礎知識
新概念51單片機C語言教程入門、提高、開發、拓展全攻略
【硬件設計】模擬電子基礎一元器件完整詳解
【北京迅為】iTOP-RK3568開發板OpenHarmony系統南向驅動開發-第4章 UART基礎知識
第3章 硬件基礎知識學習(3.3 3.4)
評論