初學(xué)單片機(jī)必讀:電子基礎(chǔ)
很多初學(xué)單片機(jī)的網(wǎng)友都問(wèn)過(guò)我,關(guān)于如何確定數(shù)碼管的限流電阻問(wèn)題。我想這是對(duì)電路不理解造成的。因此在這就用最通俗的方法說(shuō)說(shuō)基礎(chǔ)的電子知識(shí)。
首先就說(shuō)說(shuō)三極管,實(shí)際上只要你了解了三極管的特性對(duì)你使用單片機(jī)就順手很多了。大家其實(shí)也都知道三極管具有放大作用,但如何去真正理解它卻是你以后會(huì)不會(huì)使用大部分電子電路和IC的關(guān)鍵。
我們一般所說(shuō)的普通三極管是具有電流放大作用的器件。其它的三極管也都是在這個(gè)原理基礎(chǔ)上功能延伸。三極管的符號(hào)如下圖左邊,我們就以NPN型三極管為例來(lái)說(shuō)說(shuō)它的工作原理。
它就是一個(gè)以b(基極)電流Ib來(lái)驅(qū)動(dòng)流過(guò)CE的電流Ic的器件,它的工作原理很像一個(gè)可控制的閥門。
左邊細(xì)管子里藍(lán)色的小水流沖動(dòng)杠桿使大水管的閥門開大,就可允許較大紅色的水流通過(guò)這個(gè)閥門。當(dāng)藍(lán)色水流越大,也就使大管中紅色的水流更大。如果放大倍數(shù)是100,那么當(dāng)藍(lán)色小水流為1千克/小時(shí),那么就允許大管子流過(guò)100千克/小時(shí)的水。三極管的原理也跟這個(gè)一樣,放大倍數(shù)為100時(shí),當(dāng)Ib(基極電流)為1mA時(shí),就允許100mA的電流通過(guò)Ice。我這么說(shuō)大家能理解嗎?
這個(gè)原理大家可能也都知道,但是把它用在電路里的狀況能理解,那單片機(jī)的運(yùn)用就少了一大障礙了。最常用的連接如下圖。
我們來(lái)分析一下這個(gè)電路,如果它的放大倍數(shù)是100,基極電壓我們不計(jì)。基極電流就是10V÷10K=1mA,集電極電流就應(yīng)該是100mA。根據(jù)歐姆定律,這樣Rc上的電壓就是0.1A×50Ω=5V。那么剩下的5V就吃在了三極管的C、E極上了。好!現(xiàn)在我們假如讓Rb為1K,那么基極電流就是10V÷1K=10mA,這樣按照放大倍數(shù)100算,Ic就是不是就為1000mA也就是1A了呢?假如真的為1安,那么Rc上的電壓為1A×50Ω=50V。???50V!都超過(guò)電源電壓了,三極管都成發(fā)電機(jī)了嗎?其實(shí)不是這樣的。見(jiàn)下圖:
我們還是用水管內(nèi)流水來(lái)比喻電流,當(dāng)這個(gè)控制電流為10mA時(shí)使主水管上的閥開大到能流過(guò)1A的電流,但是不是就能有1A的電流流過(guò)呢?不是的,因?yàn)樯厦孢€有個(gè)電阻,它就相當(dāng)于是個(gè)固定開度的閥門,它串在這個(gè)主水管的上面,當(dāng)下面那個(gè)可控制的閥開度到大于上面那個(gè)固定電阻的開度時(shí),水流就不會(huì)再增大而是等于通過(guò)上面那個(gè)固定閥開度的水流了,因此,下面的三極管再開大開度也沒(méi)有用了。因此我們可以計(jì)算出那個(gè)固定電阻的最大電流10V÷50Ω=0.2A也就是200mA。就是說(shuō)在電路中三極管基極電流增大集電極的電流也增大,當(dāng)基極電流Ib增大到2mA時(shí),集電極電流就增大到了200mA。當(dāng)基極電流再增大時(shí),集電極電流已不會(huì)再增大,就在200mA不動(dòng)了。此時(shí)上面那個(gè)電阻也就是起限流作用了。下面我們來(lái)理解單片機(jī)內(nèi)的IO的狀況:
在單片機(jī)內(nèi)有P1-P3的24個(gè)IO口的電路都如上圖那樣。平常我們用電子電路的目的是最終讓目標(biāo)器件工作,例如讓發(fā)光二極管亮起來(lái),讓電機(jī)正常轉(zhuǎn)起來(lái),從根本上說(shuō)就是讓這些器件獲得一定的電流讓它做功。例如要讓發(fā)光二極管亮一般就需要1mA以上的電流。但是,單片機(jī)是智能芯片,它可以通過(guò)檢測(cè)各IO口的電壓值來(lái)做出邏輯分析和判斷,并能輸出高或低電壓作為結(jié)果信號(hào),因此可以看出,單片機(jī)的各IO口注重的是所產(chǎn)生的電壓而不是流過(guò)R和三極管的電流。那么單片機(jī)內(nèi)IO口的電壓和電流的關(guān)系又是怎么樣的呢?我們還是用水管流水的例子來(lái)說(shuō)明。
假設(shè)我們讓R的這個(gè)閥開的較大,讓下面那個(gè)控制閥全關(guān),這時(shí)如圖1所示可以看出P點(diǎn)的壓力就是水箱的壓力。當(dāng)我們將下面的控制閥全開,如圖2所示,則水將以很大的水流流過(guò)管線,而此時(shí)P點(diǎn)的壓力為0。這個(gè)原理和電子電路很相似。通過(guò)三極管的關(guān)閉或開大來(lái)使輸出點(diǎn)P測(cè)得的邏輯量為1(電源電壓)或0(0電位)。但這個(gè)過(guò)程有一個(gè)問(wèn)題,就是當(dāng)需要P點(diǎn)輸出為0時(shí),三極管將開得很大,流過(guò)的電流很大,單片機(jī)上有32個(gè)IO口,這樣消耗的電能就很多。有沒(méi)有辦法改進(jìn)呢?有!見(jiàn)下圖:
見(jiàn)圖3,如果我們將上面那個(gè)閥門R關(guān)得很小,將下面的控制閥全關(guān),這時(shí)P點(diǎn)的壓力仍舊會(huì)是水箱的壓力,和上面圖1是一樣的。但當(dāng)我們將控制閥開大時(shí),如圖4,P點(diǎn)的壓力雖然也同樣為0,但這時(shí)通過(guò)的水流就大大減少了。這樣我們既能輸出1或者0。但消耗的水卻很少。單片機(jī)里的電路正是這樣做的,它上面的電阻R大約為50K,最大電流是5V÷50K=0.1mA。也就是說(shuō),當(dāng)P輸出1時(shí),不消耗電流,當(dāng)P輸出0時(shí)消耗的電流為0.1mA。正因?yàn)樗纳侠娮鑂很大,因此對(duì)于初學(xué)者來(lái)說(shuō),要它直接驅(qū)動(dòng)發(fā)光管或其它的負(fù)載就要有一定的方法技巧了。這里我再和大家一起分析一下IO口外接負(fù)載時(shí)的各種情況。
我們先來(lái)看看接TTL器件的情況,當(dāng)P1.0接到74HC373的一個(gè)輸入腳上時(shí),因?yàn)門TL器件的輸入阻抗很高,大約幾百K到M歐姆級(jí)。這就相當(dāng)于P1.0接了個(gè)500K(我們假設(shè)為500K)的電阻到地。這樣當(dāng)三極管導(dǎo)通時(shí),P1.0點(diǎn)為低電平,0.1mA的電流經(jīng)Rc然后流過(guò)三極管一地,Ri上沒(méi)有電流流過(guò)。而當(dāng)三極管截止后,電流就由Rc流過(guò)再通過(guò)Ri流到地。由于電阻分壓的作用,在Rc和Ri上各有部分電壓,P1.0點(diǎn)的電壓為Rc和Ri的分壓。總電流=5V÷(5