新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)小白學(xué)步(4) 模擬電路、傳統(tǒng)數(shù)字電路與單片機(jī)

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

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò) 收藏
大家都用過(guò)計(jì)算器,有沒(méi)有想過(guò)它是怎么實(shí)現(xiàn)的呢?這里我不詳述計(jì)算器的原理,而只對(duì)思路進(jìn)行簡(jiǎn)單介紹。等我們學(xué)會(huì)了單片機(jī),也可以親手制作一個(gè)計(jì)算器。

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

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

本文引用地址:http://m.butianyuan.cn/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表示數(shù)字1,它計(jì)算出來(lái)3和5的平均值是4;如果我們定義1mV表示數(shù)字1,這個(gè)電路就計(jì)算出了3000和5000的平均值是4000。如果我能通過(guò)巧妙的方法,利用電阻電容乃至晶體管等元器件的特性,設(shè)計(jì)出很多類似這樣的電路,它就可以完成很復(fù)雜的四則運(yùn)算,以及平方、開(kāi)方、對(duì)數(shù)等運(yùn)算。這就是通過(guò)電路來(lái)幫助我們進(jìn)行數(shù)學(xué)計(jì)算的簡(jiǎn)單例子。在這個(gè)例子中,并不見(jiàn)得能體現(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í)際中工作并沒(méi)有那么理想。做基本電學(xué)實(shí)驗(yàn)測(cè)量電壓的時(shí)候,大家會(huì)發(fā)現(xiàn),電壓的測(cè)量總是有誤差的,電壓表有誤差,讀數(shù)也有誤差,并且基本上無(wú)法避免。自然界中很多東西都是有誤差的。在這里除了電壓表測(cè)出來(lái)的值和實(shí)際值不同,實(shí)際C點(diǎn)電壓值也并不完全等于AB電壓值的平均,因?yàn)槲覀兒茈y保證R1和R2阻值完全一致,并且導(dǎo)線也有電阻。于是我們計(jì)算出來(lái)的結(jié)果,更可能是3.99或者4.01而不是精確的4.00,這就導(dǎo)致我們的計(jì)算出了誤差。如果電路復(fù)雜了,誤差會(huì)逐步累積,越來(lái)越大,最后導(dǎo)致計(jì)算結(jié)果完全沒(méi)有意義,而減小電路的誤差也是相當(dāng)不容易的。

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

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

我們?nèi)祟愑檬M(jìn)制計(jì)數(shù)法表示數(shù)字,原因是我們有十個(gè)手指。而數(shù)字電路中使用二進(jìn)制數(shù)字來(lái)進(jìn)行運(yùn)算,因?yàn)楹芏嚯娮悠骷鶗?huì)有兩種很確定的狀態(tài),比如開(kāi)關(guān)的“開(kāi)”和“關(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。一開(kāi)始我們會(huì)感覺(jué)這樣很別扭,實(shí)際上并非二進(jìn)制有多難,只是我們習(xí)慣了十進(jìn)制而已。

數(shù)字電路中,我們使用的比較多的一種用電壓表示二進(jìn)制數(shù)字的方式,稱為T(mén)TL電平(TTL = Transistor-Transistor Logic,原意為邏輯門(mén)電路)。它規(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ù)字電路。下面我們要說(shuō)的傳統(tǒng)數(shù)字電路,指的是除單片機(jī)這類可編程器件以外的數(shù)字電路。下面我們來(lái)看看單片機(jī)和傳統(tǒng)數(shù)字電路的區(qū)別。

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

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

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

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

=======================================================



評(píng)論


技術(shù)專區(qū)

關(guān)閉