新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機小白學步(4) 模擬電路、傳統數字電路與單片機

        單片機小白學步(4) 模擬電路、傳統數字電路與單片機

        作者: 時間:2016-11-19 來源:網絡 收藏
        大家都用過計算器,有沒有想過它是怎么實現的呢?這里我不詳述計算器的原理,而只對思路進行簡單介紹。等我們學會了單片機,也可以親手制作一個計算器。

        用電路進行數學計算

        通過電路進行數學計算,應該怎么做呢?為了便于理解,下面我舉個很簡單的例子。

        本文引用地址:http://www.104case.com/article/201611/318529.htm

        在這個電路中,電阻R1=R2,我給A、B兩點分別接入3V和5V電壓,這個時候,C點的電壓則為(5+3)/2=4V。這個電路完成了一個求平均值的操作,如果我們用1V表示數字1,它計算出來3和5的平均值是4;如果我們定義1mV表示數字1,這個電路就計算出了3000和5000的平均值是4000。如果我能通過巧妙的方法,利用電阻電容乃至晶體管等元器件的特性,設計出很多類似這樣的電路,它就可以完成很復雜的四則運算,以及平方、開方、對數等運算。這就是通過電路來幫助我們進行數學計算的簡單例子。在這個例子中,并不見得能體現到電路計算相比于我們用筆紙計算的優勢。但是如果我們把電路做的足夠復雜,它的計算速度是相當快的,并且只要有電能供應,它就永遠不知疲倦的計算,而且不容易出錯。

        上面我們設計了一個簡單的模擬電路計算器,它能計算兩個數的平均值,我們用電壓值直接表示數字。但是這個電路在實際中工作并沒有那么理想。做基本電學實驗測量電壓的時候,大家會發現,電壓的測量總是有誤差的,電壓表有誤差,讀數也有誤差,并且基本上無法避免。自然界中很多東西都是有誤差的。在這里除了電壓表測出來的值和實際值不同,實際C點電壓值也并不完全等于AB電壓值的平均,因為我們很難保證R1和R2阻值完全一致,并且導線也有電阻。于是我們計算出來的結果,更可能是3.99或者4.01而不是精確的4.00,這就導致我們的計算出了誤差。如果電路復雜了,誤差會逐步累積,越來越大,最后導致計算結果完全沒有意義,而減小電路的誤差也是相當不容易的。

        模擬電路與數字電路、十進制與二進制

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

        我們人類用十進制計數法表示數字,原因是我們有十個手指。而數字電路中使用二進制數字來進行運算,因為很多電子器件往往會有兩種很確定的狀態,比如開關的“開”和“關”,燈的“亮”和“滅”。二進制數其實比十進制數簡單多了。十進制中,從0到9,滿10就向高位進位,即9+1=10;而二進制滿二進一,所以二進制中1+1=10。一開始我們會感覺這樣很別扭,實際上并非二進制有多難,只是我們習慣了十進制而已。

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

        傳統數字電路和單片機

        數字電路的介紹就到此為止,在原理篇中會有更詳細的介紹。事實上,單片機的本質也是數字電路。下面我們要說的傳統數字電路,指的是除單片機這類可編程器件以外的數字電路。下面我們來看看單片機和傳統數字電路的區別。

        利用一些常用的傳統數字電路器件(一般都是集成電路芯片),我們可以設計出如下圖的電路。它是一個電子表,有六個數碼管顯示時間,圖中正顯示的就是00:00:18。可以看出來這個電路還是挺復雜的,設計起來也是很費時間的。

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

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

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

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



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 深水埗区| 诏安县| 宁陕县| 交口县| 景泰县| 康乐县| 长乐市| 泸西县| 永宁县| 秦皇岛市| 阆中市| 南陵县| 卢氏县| 十堰市| 和平县| 区。| 全州县| 彭州市| 商城县| 保康县| 潜江市| 利辛县| 天长市| 沭阳县| 吉木乃县| 吴堡县| 资源县| 西乌珠穆沁旗| 阿勒泰市| 洪湖市| 正宁县| 诏安县| 太原市| 原阳县| 博乐市| 柳河县| 峡江县| 德庆县| 谢通门县| 衢州市| 郑州市|