單片機(jī)小白學(xué)步(4) 模擬電路、傳統(tǒng)數(shù)字電路與單片機(jī)

大家都用過計(jì)算器,有沒有想過它是怎么實(shí)現(xiàn)的呢?這里我不詳述計(jì)算器的原理,而只對(duì)思路進(jìn)行簡(jiǎn)單介紹。等我們學(xué)會(huì)了單片機(jī),也可以親手制作一個(gè)計(jì)算器。

用電路進(jìn)行數(shù)學(xué)計(jì)算

通過電路進(jìn)行數(shù)學(xué)計(jì)算,應(yīng)該怎么做呢?為了便于理解,下面我舉個(gè)很簡(jiǎn)單的例子。

在這個(gè)電路中,電阻R1=R2,我給A、B兩點(diǎn)分別接入3V和5V電壓,這個(gè)時(shí)候,C點(diǎn)的電壓則為(5+3)/2=4V。這個(gè)電路完成了一個(gè)求平均值的操作,如果我們用1V表示數(shù)字1,它計(jì)算出來3和5的平均值是4;如果我們定義1mV表示數(shù)字1,這個(gè)電路就計(jì)算出了3000和5000的平均值是4000。

如果我能通過巧妙的方法,利用電阻電容乃至晶體管等元器件的特性,設(shè)計(jì)出很多類似這樣的電路,它就可以完成很復(fù)雜的四則運(yùn)算,以及平方、開方、對(duì)數(shù)等運(yùn)算。這就是通過電路來幫助我們進(jìn)行數(shù)學(xué)計(jì)算的簡(jiǎn)單例子。在這個(gè)例子中,并不見得能體現(xiàn)到電路計(jì)算相比于我們用筆紙計(jì)算的優(yōu)勢(shì)。但是如果我們把電路做的足夠復(fù)雜,它的計(jì)算速度是相當(dāng)快的,并且只要有電能供應(yīng),它就永遠(yuǎn)不知疲倦的計(jì)算,而且不容易出錯(cuò)。

上面我們?cè)O(shè)計(jì)了一個(gè)簡(jiǎn)單的模擬電路計(jì)算器,它能計(jì)算兩個(gè)數(shù)的平均值,我們用電壓值直接表示數(shù)字。但是這個(gè)電路在實(shí)際中工作并沒有那么理想。做基本電學(xué)實(shí)驗(yàn)測(cè)量電壓的時(shí)候,大家會(huì)發(fā)現(xiàn),電壓的測(cè)量總是有誤差的,電壓表有誤差,讀數(shù)也有誤差,并且基本上無(wú)法避免。自然界中很多東西都是有誤差的。在這里除了電壓表測(cè)出來的值和實(shí)際值不同,實(shí)際C點(diǎn)電壓值也并不完全等于AB電壓值的平均,因?yàn)槲覀兒茈y保證R1和R2阻值完全一致,并且導(dǎo)線也有電阻。于是我們計(jì)算出來的結(jié)果,更可能是3.99或者4.01而不是精確的4.00,這就導(dǎo)致我們的計(jì)算出了誤差。如果電路復(fù)雜了,誤差會(huì)逐步累積,越來越大,最后導(dǎo)致計(jì)算結(jié)果完全沒有意義,而減小電路的誤差也是相當(dāng)不容易的。

模擬電路與數(shù)字電路、十進(jìn)制與二進(jìn)制

于是數(shù)字電路誕生了。相較于模擬電路的不精確,數(shù)字電路就有很大優(yōu)勢(shì)了。注意,數(shù)字電路是相對(duì)于模擬電路而言的,數(shù)字電路的本質(zhì)也是模擬電路。通常我們所說的模擬電路,指的是除數(shù)字電路以外的電路。

我們?nèi)祟愑檬M(jìn)制計(jì)數(shù)法表示數(shù)字,原因是我們有十個(gè)手指。而數(shù)字電路中使用二進(jìn)制數(shù)字來進(jìn)行運(yùn)算,因?yàn)楹芏嚯娮悠骷鶗?huì)有兩種很確定的狀態(tài),比如開關(guān)的“開”和“關(guān)”,燈的“亮”和“滅”。

二進(jìn)制數(shù)其實(shí)比十進(jìn)制數(shù)簡(jiǎn)單多了。十進(jìn)制中,從0到9,滿10就向高位進(jìn)位,即9+1=10;而二進(jìn)制滿二進(jìn)一,所以二進(jìn)制中1+1=10。一開始我們會(huì)感覺這樣很別扭,實(shí)際上并非二進(jìn)制有多難,只是我們習(xí)慣了十進(jìn)制而已。二進(jìn)制與十進(jìn)制的轉(zhuǎn)換等更多知識(shí)可以自行學(xué)習(xí)。

數(shù)字電路中,我們使用的比較多的一種用電壓表示二進(jìn)制數(shù)字的方式,稱為TTL電平(TTL = Transistor-Transistor Logic,原意為邏輯門電路)。它規(guī)定+5V電壓為高電平,表示數(shù)字“1”,0V電壓為低電平,表示數(shù)字“0”。由于電路自身特點(diǎn),實(shí)際上這種TTL電平電路輸出的電壓,并非絕對(duì)準(zhǔn)確的5V和0V,而是規(guī)定將>2.4V的電壓視為高電平, 電壓<0.4V則視為低電平。也正是因?yàn)檫@樣的特點(diǎn),我們根本不需要將電壓控制的很準(zhǔn)確,就能很準(zhǔn)確的表示出我們想要表示的數(shù)字。和前面的模擬平均數(shù)計(jì)算電路相比,明顯很有優(yōu)勢(shì)。而這也正是數(shù)字電路得以廣泛應(yīng)用的根本原因。

傳統(tǒng)數(shù)字電路和單片機(jī)

數(shù)字電路的介紹就到此為止,在原理篇中會(huì)有更詳細(xì)的介紹。事實(shí)上,單片機(jī)的本質(zhì)也是數(shù)字電路。下面我們要說的傳統(tǒng)數(shù)字電路,指的是除單片機(jī)這類可編程器件以外的數(shù)字電路。下面我們來看看單片機(jī)和傳統(tǒng)數(shù)字電路的區(qū)別。

利用一些常用的傳統(tǒng)數(shù)字電路器件(一般都是集成電路芯片),我們可以設(shè)計(jì)出如下圖的電路。它是一個(gè)電子表,有六個(gè)數(shù)碼管顯示時(shí)間,圖中正顯示的就是00:00:18??梢钥闯鰜磉@個(gè)電路還是挺復(fù)雜的,設(shè)計(jì)起來也是很費(fèi)時(shí)間的。

但是單片機(jī)的出現(xiàn),使得實(shí)現(xiàn)相同功能的電路設(shè)計(jì)難度大大降低。下圖就是使用單片機(jī)設(shè)計(jì)的電路。同樣是電子表,不僅顯示效果比前面的那個(gè)要好,而且功能更強(qiáng)大了,兩個(gè)按鍵可以像市面上常見的兩個(gè)按鍵的手表一樣調(diào)整時(shí)間和日期;而電路卻簡(jiǎn)單了很多。我們只需要給單片機(jī)寫進(jìn)去特定的程序,就可以讓它按照我們?cè)O(shè)計(jì)好的方式工作。

如果某天,我們想要給這個(gè)電子表增加馬表計(jì)時(shí)的功能,對(duì)于前面的那個(gè)數(shù)字電路,恐怕整個(gè)電路都得重新設(shè)計(jì)制作;但是對(duì)于單片機(jī)制作的這個(gè)電路,我們只需要修改程序代碼,然后重新寫進(jìn)去就可以了,就像在電腦上安裝軟件一樣,根本不需要修改電路,十分方便。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容