大家都用過計算器,有沒有想過它是怎么實現(xiàn)的呢?這里我不詳述計算器的原理,而只對思路進行簡單介紹。等我們學(xué)會了單片機,也可以親手制作一個計算器。通過電路進行數(shù)學(xué)計算,應(yīng)該怎么做呢?為了便于理解,下面我舉個很簡單的例子。
在這個電路中,電阻R1=R2,我給A、B兩點分別接入3V和5V電壓,這個時候,C點的電壓則為(5+3)/2=4V。這個電路完成了一個求平均值的操作,如果我們用1V表示數(shù)字1,它計算出來3和5的平均值是4;如果我們定義1mV表示數(shù)字1,這個電路就計算出了3000和5000的平均值是4000。如果我能通過巧妙的方法,利用電阻電容乃至晶體管等元器件的特性,設(shè)計出很多類似這樣的電路,它就可以完成很復(fù)雜的四則運算,以及平方、開方、對數(shù)等運算。這就是通過電路來幫助我們進行數(shù)學(xué)計算的簡單例子。在這個例子中,并不見得能體現(xiàn)到電路計算相比于我們用筆紙計算的優(yōu)勢。但是如果我們把電路做的足夠復(fù)雜,它的計算速度是相當(dāng)快的,并且只要有電能供應(yīng),它就永遠不知疲倦的計算,而且不容易出錯。
上面我們設(shè)計了一個簡單的模擬電路計算器,它能計算兩個數(shù)的平均值,我們用電壓值直接表示數(shù)字。但是這個電路在實際中工作并沒有那么理想。做基本電學(xué)實驗測量電壓的時候,大家會發(fā)現(xiàn),電壓的測量總是有誤差的,電壓表有誤差,讀數(shù)也有誤差,并且基本上無法避免。自然界中很多東西都是有誤差的。在這里除了電壓表測出來的值和實際值不同,實際C點電壓值也并不完全等于AB電壓值的平均,因為我們很難保證R1和R2阻值完全一致,并且導(dǎo)線也有電阻。于是我們計算出來的結(jié)果,更可能是3.99或者4.01而不是精確的4.00,這就導(dǎo)致我們的計算出了誤差。如果電路復(fù)雜了,誤差會逐步累積,越來越大,最后導(dǎo)致計算結(jié)果完全沒有意義,而減小電路的誤差也是相當(dāng)不容易的。
于是數(shù)字電路誕生了。相較于模擬電路的不精確,數(shù)字電路就有很大優(yōu)勢了。注意,數(shù)字電路是相對于模擬電路而言的,數(shù)字電路的本質(zhì)也是模擬電路。通常我們所說的模擬電路,指的是除數(shù)字電路以外的電路。
我們?nèi)祟愑檬M制計數(shù)法表示數(shù)字,原因是我們有十個手指。而數(shù)字電路中使用二進制數(shù)字來進行運算,因為很多電子器件往往會有兩種很確定的狀態(tài),比如開關(guān)的“開”和“關(guān)”,燈的“亮”和“滅”。二進制數(shù)其實比十進制數(shù)簡單多了。十進制中,從0到9,滿10就向高位進位,即9+1=10;而二進制滿二進一,所以二進制中1+1=10。一開始我們會感覺這樣很別扭,實際上并非二進制有多難,只是我們習(xí)慣了十進制而已。
數(shù)字電路中,我們使用的比較多的一種用電壓表示二進制數(shù)字的方式,稱為TTL電平(TTL = Transistor-Transistor Logic,原意為邏輯門電路)。它規(guī)定+5V電壓為高電平,表示數(shù)字“1”,0V電壓為低電平,表示數(shù)字“0”。由于電路自身特點,實際上這種TTL電平電路輸出的電壓,并非絕對準(zhǔn)確的5V和0V,而是規(guī)定將>2.4V的電壓視為高電平, 電壓<0.4V則視為低電平。也正是因為這樣的特點,我們根本不需要將電壓控制的很準(zhǔn)確,就能很準(zhǔn)確的表示出我們想要表示的數(shù)字。和前面的模擬平均數(shù)計算電路相比,明顯很有優(yōu)勢。而這也正是數(shù)字電路得以廣泛應(yīng)用的根本原因。
數(shù)字電路的介紹就到此為止,在原理篇中會有更詳細的介紹。事實上,單片機的本質(zhì)也是數(shù)字電路。下面我們要說的傳統(tǒng)數(shù)字電路,指的是除單片機這類可編程器件以外的數(shù)字電路。下面我們來看看單片機和傳統(tǒng)數(shù)字電路的區(qū)別。
利用一些常用的傳統(tǒng)數(shù)字電路器件(一般都是集成電路芯片),我們可以設(shè)計出如下圖的電路。它是一個電子表,有六個數(shù)碼管顯示時間,圖中正顯示的就是00:00:18??梢钥闯鰜磉@個電路還是挺復(fù)雜的,設(shè)計起來也是很費時間的。
但是單片機的出現(xiàn),使得實現(xiàn)相同功能的電路設(shè)計難度大大降低。下圖就是使用單片機設(shè)計的電路。同樣是電子表,不僅顯示效果比前面的那個要好,而且功能更強大了,兩個按鍵可以像市面上常見的兩個按鍵的手表一樣調(diào)整時間和日期;而電路卻簡單了很多。我們只需要給單片機寫進去特定的程序,就可以讓它按照我們設(shè)計好的方式工作。
如果某天,我們想要給這個電子表增加馬表計時的功能,對于前面的那個數(shù)字電路,恐怕整個電路都得重新設(shè)計制作;但是對于單片機制作的這個電路,我們只需要修改程序代碼,然后重新寫進去就可以了,就像在電腦上安裝軟件一樣,根本不需要修改電路,十分方便。
傳統(tǒng)數(shù)字電路和單片機的關(guān)系就像非智能手機和智能手機的關(guān)系一樣,智能手機最大的優(yōu)勢在于它可以安裝各種軟件游戲,而非智能手機就沒有這么強大的功能。單片機也是如此,同樣的電路,你可以給它下載各種程序,讓它按照你的想法去工作。對于單片機來說,硬件電路是單片機的軀體,而程序才是它的靈魂,而寫程序的你,就是它的上帝。
-
單片機計算器
+關(guān)注
關(guān)注
1文章
2瀏覽量
7824
原文標(biāo)題:單片機小白學(xué)步系列(四) 模擬電路、傳統(tǒng)數(shù)字電路與單片機
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論