數字計算器

數字計算器

現代的電子計算器能進行數學運算的手持電子機器,擁有積體電路晶片,但結構比電腦簡單的多,可以說是第一代的電子計算機(電腦),且功能也較弱,但較為方便與廉價,可廣泛運用於商業交易中,是必備的辦公用品。

單片機控制的數字計算器

以STC89C52單片機為核心,採用4×4的矩陣鍵盤輸入數字,可以實現加、減、乘、除的運算,然後在LCD12864上顯示輸入的過程和計算結果,同時蜂鳴器報警。該系統有電路結構簡單,開發成本低、操作方便等優點。

系統工作原理

該系統的數字和運算的輸入按鍵以4×4的矩陣鍵盤為基礎,單片機採用線反轉法對矩陣鍵盤進行驅動,並用LCD12864對輸入內容進行顯示,在每一次按鍵按下的時候,通過系統預先設計好的程式對輸入的信息進行處理和計算,在所有數字和運算法則輸入完之後,以“=”為輸出結果的標誌,在按下之後將運算的結果顯示到LCD12864的液晶螢幕上。整個系統的工作過程為:首先進行初始化和按鍵掃描,然後判斷按鍵位置,讀出按鍵值,進行鍵值的存儲和計算並實時的顯示到液晶螢幕上。

硬體系統設計

1、系統硬體設計

整個系統由單片機、液晶屏、矩陣按鍵、蜂鳴器等構成。選用STC89C52與MCS-51系列的單片機在指令系統和引腳上完全兼容;全靜態工作;片內有4k位元組線上可以重複編程快擦寫程式存儲器;三級程式存儲器加密;128×8位內部RAM;32位雙向輸入輸出線;五個中斷源,兩級中斷優先權;一個全雙工的異步串列口;間歇和掉電兩種工作方式。

2 液晶顯示電路設計

LCD12864是本系統的重要組成部分之一,主要用於顯示數字和功能按鍵的輸入和運算結果的輸出,單片機的P0口和其輸入數據相連,單片機P2.5~P2.7和其控制端相連,其中的10k的電位器是對液晶的極化電壓進行調節進而調節對比度。因為52單片機的P0口內部不帶上拉電阻,因此不能有效的輸出高低電平,所以在外部要接上拉電阻。

3、按鍵電路設計

該系統使用的是有16個按鍵的4×4的矩陣鍵盤,用來作為數字和功能按鍵的輸入,是系統的重要組成部分之一。該矩陣鍵盤的第1行到第4行分別接在單片機的P3.0~P3.3口,該矩陣鍵盤的的第1列到第4列分別接在單片機P3.4~P3.7口,這樣僅通過單片的P3口就成功驅動了4×4的矩陣鍵盤,而且驅動此矩陣鍵盤只使用了8個I/O口,與獨立按鍵相比矩陣按鍵更加節省I/O口。

4、聲響電路設計

聲響電路主要由蜂鳴器組成,由於人耳只能聽到一定範圍的音頻的聲音,所以可以通過程式對單片機的 P2.3口的高低電平進行控制,因此單片機的P2.3口能產生固定頻率的矩形波,將此I/O口通過電阻及三極體接蜂鳴器後,蜂鳴器就能發出聲音。三極體是功率驅動電路,為了避免單片機I/O的輸出電流不足而無法驅動蜂鳴器發聲的弊端。

系統軟體設計

數字計算器的功能是把矩陣按鍵所對應的內容在液晶上顯示,在有功能按鍵按下時能存儲數據並計算,然後顯示出輸入的表達式和結果,並且在每個按鍵按下後,會發出“滴”的一聲。因此,計算器處理程式由按鍵掃描程式、液晶動態顯示程式、蜂鳴器發聲程式以及算術運算程式四個部分組成。

按鍵掃描程式的設計。採用線反轉法判斷按鍵。P3高4位為列、低4位為行,將行線作為輸出線,列線作為輸入線。置輸出線全部為0,此時列線中呈低電平0的為按鍵所在的列,如果全部都不是0,則沒有鍵按下。若有鍵按下則延時15s,在判斷是否有鍵按下。在將第一步反過來,將列線作為輸出線,行線作為輸入線,此時行線中呈低電平0的為按鍵所在的列。至此,便確定了按鍵的位置。

液晶動態顯示的程式設計。12864點陣液晶顯示模組是由128×64個液晶顯示點組成的一個128列×64行的陣列。每一個顯示點對應一個一位二進制數,1表示亮,0表示滅。要想顯示某個圖形或數字,其方法就是將相應的點陣信息與其存儲單元一一對應。即設計豎中指和符號就是把其顯示點在液晶螢幕上的位置與其存儲器的地址一一對應。

蜂鳴器發聲程式的設計。利用I/O定時翻轉電平產生驅動波形進而對蜂鳴器進行驅動。此方法利用通過翻轉電平產生特定的頻率的矩形波來驅動蜂鳴器。在程式上,將TIMERO設定成定時連線埠,把其預分頻(在需要分頻的時候,例如二級分頻時前面一級就稱為預分頻)設定為1,將TIMERO始終為系統時鐘,在地址分別寫入載入 / 計數暫存器的高4位和低4位來設計其中斷時間,當需要蜂鳴器鳴叫時,只需要在進入TIMERO中斷的時候對該I/O口的電平進行一次翻轉,當蜂鳴器不用鳴叫的時候,把其電平設定為低電平即可。將I/O口的輸出電平設定成低電平是為了在不鳴叫時防止漏電。

算術運算程式的設計。從矩陣按鍵接收運算式,編程實現兩個數的算術運算(+、-、*、\),若輸入的不是數字或運算符,進行錯誤處理,按任意鍵退出。

有效數字和計算器

介紹了有效數字的概念及其計算規則,介紹了計算器的一般特性及使用技巧,並給出計算實例。

計算器

計算器是被廣泛使用的電子設備,多數是8位和10位兩種(例如,CA SIO的 fx - 80, fx-82和 fx-100D等,前兩種是8位、後一種是10位顯示的)。 這種計算器可以對8位或10位有效數字的多個數值進行乘除法和加減法運算,得出8位或10位有效數字的答案。

那么,用計算器運算,特別是大量數據的連續運算,會不會也產生所說的,答案最末一位甚至前兩位的誤差呢? 其實,計算器廠商已經注意到這一點,那時的10位計算器是‘’10位輸入,機內12位運算,10位顯示‘’的。8位計算器也是一樣,是機內10位運算的。當12位或10位的運算完成時,切掉最末兩位(四捨五入),只顯示前10位或前8位,以避免這一缺點。當然,如果這種計算器能夠12位輸入,那就更好了。

由於晶片工藝的進步,市面上的計算器都是‘’10位輸入,機內15位運算,10位顯示‘’的(例如CASIO的 fx-500ES,甚至學生型的 fx-82ES)。不少機型還可以允許15位輸入,這就可使計算精度更為提高。

熟悉計算器

假如擁有的計算器是10位顯示的。怎樣知道它機內是幾位運算呢? 例如,可以先計算2的開方,按2鍵和開方鍵,顯示的一定是1.414 213 562。從這裡減去一個準確數1.414 213 562 000,後者必須手動鍵入。如果你的機內是12位運算的,前者鍵入的2在機內的運算結果是1.414 213 562 37,二者相減,得3.7×10 ,如果機內是15位運算的,2在機內的運算結果是1.414 213 562 373 09,與手動輸入的準確值相減,應得3.7309×10 。這樣,就可以知道你的計算器機內運算的位數了。

用這一方法,任何計算結果的機內15位數據都可以調出來. 例如計算1.234 567 891的平方,顯示為1.524 157 877,從這裡減去前5位數1.524 1,得5.787 748 818×10 。於是,得到這個平方的15位答案是1.524 157 877 488 18。在一般情況下,機內的15位數據只有最後一位是靠不住的。前面算的根號2機內15位的結果是1.414 213 562 373 09隻有最後一位9與精確值相差1,因為根號2=1.414 213 562 373 095 048 8…。切掉的第16位數是5,應該‘’五入‘’ 才對。再看圓周率,機內的15位顯示是3.141 592 653 589 80,最後一位也相差1,因為π=3.141 592 653 589 793 238…,第16位應當舍掉的。

由此可知,如果這台計算器可以15位輸入,就完全可以當一台15位的計算器使用.其實,無論科研還是教學,通常的物理計算用不到這樣高的精度。就算在金融界,以‘’元‘’為單位的金額已經精確到小數點後第六位。除了你手中的計算器之外,還擁有一 台超高精度的計算器!名符其實的超高精度,機內64位運算,32位顯示的! 這台計算器藏在電腦中。

打開電腦,通過[開始→所有程式→附屬檔案→計算器]即可找到電腦中的計算器。共有兩台,一台是四則計算器,一台是函式計算器。機內的圓周率的數值。點擊圓周率π,顯示出32位數值,然後再把機內的後32位調出,可得圓周率的機內計算結果為:

π=3.141 592 653 589 793 238 462 643 383 279 5 |02884 197 169 399 3 |11 481 966 593 000 570

在等號右邊的數值中有兩條豎線,第一條豎線在第32位後面,表示正常顯示的前 32位;第二條豎線在第47位後面,說明機內給出的圓周率數值47位之前是正確的,豎線以後就不對了。就是說,機內運算所得出的64位數值,後面有17位是靠不住的。

第一,顯然,圓周率的數值是機內預存公式程式臨時現算出來的。機器需要一項一項地算,每項都要算到64位,再一項一項加起來,而且需要加很多很多項才能得出精確結果. 即使這樣,結果中還有最末17位是靠不住的。可見設計選‘’機內64位運算‘’,選那么多位是有道理的。這樣才能充分保證顯示數值的正確性。

相關詞條

熱門詞條

聯絡我們