王麗琴史 航
(1.常州信息職業技術學院,常州 213164;2.江蘇理工學院,常州 213001)
基于單片機的數字式計算器設計
王麗琴1史 航2
(1.常州信息職業技術學院,常州 213164;2.江蘇理工學院,常州 213001)
該系統以單片機AT89S52為控制核心,矩陣鍵盤為輸入及控制單位,數碼管為動態顯示系統組成,完成了具有基本計算功能的計算器設計。設計中的重點部分主要是系統完成算法、顯示等一系列計算的電路設計和程序設計。系統的硬件部分主要包括鍵盤掃描、最小系統板、數據顯示、蜂鳴器四大部分。軟件部分應用單片機C語言實現全部設計的控制功能,包括基本的數碼管動態顯示、矩陣鍵盤的掃描、輸入數字的記錄、運算的各種實現。蜂鳴器具有報警的功能,在輸入錯誤或無法計算時進行報警。整個系統設計成本較低,能對輸入的數據及正常的運算結果進行實時顯示。
單片機 矩陣鍵盤 數碼管 蜂鳴器 穩壓芯片
隨著電子計算機的普及發展,人們曾經預言計算器將退出歷史舞臺。然而,電子技術的不斷進步,也使計算器的功能越來越強大。由于計算器具有體積小、攜帶方便、易于掌握、節省工作時間等優點,它的應用不但沒有縮小,而且在工程計算、商業和金融業務及中學數學、物理、化學教學中被廣泛應用。
本次數字式計算器的設計要擁有以下幾個功能,數據的輸入、內部處理、結果顯示、各種報錯功能。鍵盤與數碼顯示器是單片機應用系統中常用的輸入和輸出的外部設備。單片機通過鍵盤接收數據和命令,顯示器用來顯示單片機的計算結果或運行狀態。這里要解決的硬件內容有數據和符號輸入鍵盤與處理器的連接,報警器的設計和實現,結果顯示數碼管的驅動控制與實現及各種元器件的選擇,包括PCB布線的選擇;軟件部分包括對輸入數據和符號的識別和處理,將結果輸出到結果數碼管顯示,對輸入和計算錯誤的輸出報錯警示等功能。設計中的重點部分主要是系統完成算法、顯示等一系列計算的電路設計和程序設計。
本設計是基于51系列的單片機進行的計算器模擬系統設計,可以完成計算器的鍵盤輸入,進行加、減、乘、除數字運算,并在LED上相應顯示[1-2]。在輸入錯誤或無法計算時,蜂鳴器具有報警功能。硬件方面,從功能考慮,首先選擇內部存儲資源豐富的AT89C52單片機,輸入采用4×4矩陣鍵盤。顯示采用8位7段共陰極LED動態顯示,復位電路采用上電復位,時鐘采用12MHz晶體振蕩電路。由于AT89C52單片機內部有充足的程序存儲單元和數據存儲單元,因此不需要進行外圍存儲擴展[3-4]。軟件方面,從分析計算器功能、流程圖設計,再到程序的編寫進行系統設計,針對計算器四則運算算法特別是乘法和除法運算的實現,完成程序編寫。系統框圖如圖1所示。

圖1 系統整體框圖
1.1 系統硬件設計
系統的硬件設計主要有系統的供電電源設計、矩陣鍵盤設計、蜂鳴器電路設計、數碼管動態顯示電路設計四部分。
1.1.1 系統供電電源設計
該系統采用AT89S52單片機為核心控制器,因此,要使系統能穩定持久工作,必須要為系統提供5V的穩壓電源輸入,所以最終選擇5V直流電源作為系統電源輸入[3-6]。
1.1.2 矩陣鍵盤設計
當鍵盤中按鍵數量較多時,為了減少I/O口線的占用,通常將按鍵排列成矩陣形式。如圖二所示在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣做一個并行口可以構成4*4=16個按鍵,比直接將端口線用于鍵盤多出了一倍,且線數越多區別就越明顯。矩陣式結構的鍵盤顯然比獨立式鍵盤復雜一些,識別也要復雜一些,分為行掃描和列掃描。在按鍵識別過程中,同時加入鍵盤的消抖處理。
1.1.3 蜂鳴器電路設計
蜂鳴器只有通過電流達到一定程度時,才能聽到響聲,而單片機不能輸出如此大的電流,所以要加一級蜂鳴器的驅動,本系統中采用一個三極管,放大驅動蜂鳴器的電流。
1.1.4 數碼管動態顯示電路設計
為了節約成本,本設計的顯示部分采用由發光二極管組成的共陰極數碼管動態顯示。它的驅動級應為射極輸出或源極輸出電路,如圖2所示。
1.2 系統軟件設計
本系統采用模塊化設計方法后,可依據設計的功能要求將軟件的初始化模塊、數碼管顯示模塊、鍵盤輸入模塊、鍵功能處理模塊、數值運算模塊、延時模塊,分別進行設計和調試,然后把它們連接起來,進行總調。系統主流程圖如圖3所示。主要模塊的設計思路如下。

圖3 主流程圖
1.2.1 數碼管顯示模塊
考慮到本設計的顯示部分要求實現鍵盤輸入數值顯示及0~255以內整數四則運算結果的顯示(其中顯示數字要求精確到小數點后兩位,并且實現對負值的顯示),因此采用八位數碼管動態顯示完成。應用單片機來控制數碼管動態顯示數組各元素,首先要通過單片機的口控制來實現數碼管的選通,即按時對各位數碼管進行片選,然后輪流點亮各位數碼管,最終完成動態顯示。
1.2.2 鍵盤功能設置軟件設計
根據系統4*4矩陣鍵盤的設計,主要完成計算數值輸入、運算符輸入、數值清零和運算錯誤報警等功能。
1.2.3 計算功能設置軟件設計
當鍵盤掃描數值為0~9實數時,將數值存儲作為運算操作數值并經數碼管顯示,再次進行鍵盤掃描。當鍵盤掃描數值為操作符時,保存該操作符,根據操作符調用相應的計算程序,將操作數進行相應運算,結束時首先將結果保存,調用數碼管顯示程序顯示運算結果,同時將運算結果賦值給操作數,再次進行鍵盤掃描,以此實現四則運算功能。
該系統以單片機AT89S52為控制核心,4*4鍵盤輸入,數碼管由動態顯示系統組成,完成了具有基本功能的數字式計算器的設計。在系統中運用單片機控制技術,數碼管顯示等,并實用了4*4鍵盤掃描法實現數據輸入。通過不斷的嘗試和努力,使各個模塊都能穩定工作,最終實現具有基本功能的計算器設計的各項要求。
[1]謝維成,楊加國.單片機原理與應用及C51程序設計[M].北京:清華大學出版社,2009.
[2]張義和,陳敵北.例說8051[M].北京:人民郵電出版社,2006.
[3]勒達.單片機應用系統開發實例導航[M].北京:人民郵電出版社,2003.
[4]陳寧,王文寧.單片機技術項目教程[M].南京:東南大學出版社,2008.
[5]張友亮,趙志英,涂時亮.單片機微型型機原理、應用與實驗[M].上海:復旦大學出版社,2006.
[6]李誠人,高宏陽,劉淼,等.嵌入式系統及單片機應用[M].北京:清華大學出版社,2005.
The Design of Digital Calculator
WANG Liqin,SHI Hang
(1.Changzhou College of Information Technology,Changzho u 213164;2.Jiangsu Institute of science and technology, Changzhou 213001)
The s ystem uses s ingle-chip AT89S52 for the control of the core, matrix keyboard for input and control unit, digital control system for dynamic dis play of th e finish with the basic computing function calculator desi gn. Designed in the focus of s ome of the m ajor systems are algorithm s, s uch as a series of calculations show that the circuit design and program design .Sys tem hardware includes a keyboard s canning, the smallest system board, data show that the majority of four buzzer. Application software Si ngle-c hip C language implementation of all design control functions, including basic digital tube dynamic display, the keyboard matrix scanning, enter the number of records, a variety of com puting implementation. With a buz zer alarm function, the input error or can not be calculated when the alarm. Designed the entire s ystem cost is lower, be able to en ter data in real-time display and computing the results of a normal real-time display.
microcontroller,matrix ke yboards,digital tube,beeper,voltage regulator chip