單片機小白學(xué)步(4) 模擬電路、傳統數字電路與單片機
用電路進(jìn)行數學(xué)計算
通過(guò)電路進(jìn)行數學(xué)計算,應該怎么做呢?為了便于理解,下面我舉個(gè)很簡(jiǎn)單的例子。
本文引用地址:http://dyxdggzs.com/article/201611/318529.htm
在這個(gè)電路中,電阻R1=R2,我給A、B兩點(diǎn)分別接入3V和5V電壓,這個(gè)時(shí)候,C點(diǎn)的電壓則為(5+3)/2=4V。這個(gè)電路完成了一個(gè)求平均值的操作,如果我們用1V表示數字1,它計算出來(lái)3和5的平均值是4;如果我們定義1mV表示數字1,這個(gè)電路就計算出了3000和5000的平均值是4000。如果我能通過(guò)巧妙的方法,利用電阻電容乃至晶體管等元器件的特性,設計出很多類(lèi)似這樣的電路,它就可以完成很復雜的四則運算,以及平方、開(kāi)方、對數等運算。這就是通過(guò)電路來(lái)幫助我們進(jìn)行數學(xué)計算的簡(jiǎn)單例子。在這個(gè)例子中,并不見(jiàn)得能體現到電路計算相比于我們用筆紙計算的優(yōu)勢。但是如果我們把電路做的足夠復雜,它的計算速度是相當快的,并且只要有電能供應,它就永遠不知疲倦的計算,而且不容易出錯。
上面我們設計了一個(gè)簡(jiǎn)單的模擬電路計算器,它能計算兩個(gè)數的平均值,我們用電壓值直接表示數字。但是這個(gè)電路在實(shí)際中工作并沒(méi)有那么理想。做基本電學(xué)實(shí)驗測量電壓的時(shí)候,大家會(huì )發(fā)現,電壓的測量總是有誤差的,電壓表有誤差,讀數也有誤差,并且基本上無(wú)法避免。自然界中很多東西都是有誤差的。在這里除了電壓表測出來(lái)的值和實(shí)際值不同,實(shí)際C點(diǎn)電壓值也并不完全等于A(yíng)B電壓值的平均,因為我們很難保證R1和R2阻值完全一致,并且導線(xiàn)也有電阻。于是我們計算出來(lái)的結果,更可能是3.99或者4.01而不是精確的4.00,這就導致我們的計算出了誤差。如果電路復雜了,誤差會(huì )逐步累積,越來(lái)越大,最后導致計算結果完全沒(méi)有意義,而減小電路的誤差也是相當不容易的。
模擬電路與數字電路、十進(jìn)制與二進(jìn)制
于是數字電路誕生了。相較于模擬電路的不精確,數字電路就有很大優(yōu)勢了。注意,數字電路是相對于模擬電路而言的,數字電路的本質(zhì)也是模擬電路。通常我們所說(shuō)的模擬電路,指的是除數字電路以外的電路。
我們人類(lèi)用十進(jìn)制計數法表示數字,原因是我們有十個(gè)手指。而數字電路中使用二進(jìn)制數字來(lái)進(jìn)行運算,因為很多電子器件往往會(huì )有兩種很確定的狀態(tài),比如開(kāi)關(guān)的“開(kāi)”和“關(guān)”,燈的“亮”和“滅”。二進(jìn)制數其實(shí)比十進(jìn)制數簡(jiǎn)單多了。十進(jìn)制中,從0到9,滿(mǎn)10就向高位進(jìn)位,即9+1=10;而二進(jìn)制滿(mǎn)二進(jìn)一,所以二進(jìn)制中1+1=10。一開(kāi)始我們會(huì )感覺(jué)這樣很別扭,實(shí)際上并非二進(jìn)制有多難,只是我們習慣了十進(jìn)制而已。
數字電路中,我們使用的比較多的一種用電壓表示二進(jìn)制數字的方式,稱(chēng)為T(mén)TL電平(TTL = Transistor-Transistor Logic,原意為邏輯門(mén)電路)。它規定+5V電壓為高電平,表示數字“1”,0V電壓為低電平,表示數字“0”。由于電路自身特點(diǎn),實(shí)際上這種TTL電平電路輸出的電壓,并非絕對準確的5V和0V,而是規定將>2.4V的電壓視為高電平, 電壓<0.4V則視為低電平。也正是因為這樣的特點(diǎn),我們根本不需要將電壓控制的很準確,就能很準確的表示出我們想要表示的數字。和前面的模擬平均數計算電路相比,明顯很有優(yōu)勢。而這也正是數字電路得以廣泛應用的根本原因。
傳統數字電路和單片機
數字電路的介紹就到此為止,在原理篇中會(huì )有更詳細的介紹。事實(shí)上,單片機的本質(zhì)也是數字電路。下面我們要說(shuō)的傳統數字電路,指的是除單片機這類(lèi)可編程器件以外的數字電路。下面我們來(lái)看看單片機和傳統數字電路的區別。
利用一些常用的傳統數字電路器件(一般都是集成電路芯片),我們可以設計出如下圖的電路。它是一個(gè)電子表,有六個(gè)數碼管顯示時(shí)間,圖中正顯示的就是00:00:18??梢钥闯鰜?lái)這個(gè)電路還是挺復雜的,設計起來(lái)也是很費時(shí)間的。

但是單片機的出現,使得實(shí)現相同功能的電路設計難度大大降低。下圖就是使用單片機設計的電路。同樣是電子表,不僅顯示效果比前面的那個(gè)要好,而且功能更強大了,兩個(gè)按鍵可以像市面上常見(jiàn)的兩個(gè)按鍵的手表一樣調整時(shí)間和日期;而電路卻簡(jiǎn)單了很多。我們只需要給單片機寫(xiě)進(jìn)去特定的程序,就可以讓它按照我們設計好的方式工作。
如果某天,我們想要給這個(gè)電子表增加馬表計時(shí)的功能,對于前面的那個(gè)數字電路,恐怕整個(gè)電路都得重新設計制作;但是對于單片機制作的這個(gè)電路,我們只需要修改程序代碼,然后重新寫(xiě)進(jìn)去就可以了,就像在電腦上安裝軟件一樣,根本不需要修改電路,十分方便。

傳統數字電路和單片機的關(guān)系就像非智能手機和智能手機的關(guān)系一樣,智能手機最大的優(yōu)勢在于它可以安裝各種軟件游戲,而非智能手機就沒(méi)有這么強大的功能。單片機也是如此,同樣的電路,你可以給它下載各種程序,讓它按照你的想法去工作。對于單片機來(lái)說(shuō),硬件電路是單片機的軀體,而程序才是它的靈魂,而寫(xiě)程序的你,就是它的上帝。
=======================================================
評論