王麗琴史 航
(1.常州信息職業(yè)技術(shù)學(xué)院,常州 213164;2.江蘇理工學(xué)院,常州 213001)
基于單片機的數(shù)字式計算器設(shè)計
王麗琴1史 航2
(1.常州信息職業(yè)技術(shù)學(xué)院,常州 213164;2.江蘇理工學(xué)院,常州 213001)
該系統(tǒng)以單片機AT89S52為控制核心,矩陣鍵盤為輸入及控制單位,數(shù)碼管為動態(tài)顯示系統(tǒng)組成,完成了具有基本計算功能的計算器設(shè)計。設(shè)計中的重點部分主要是系統(tǒng)完成算法、顯示等一系列計算的電路設(shè)計和程序設(shè)計。系統(tǒng)的硬件部分主要包括鍵盤掃描、最小系統(tǒng)板、數(shù)據(jù)顯示、蜂鳴器四大部分。軟件部分應(yīng)用單片機C語言實現(xiàn)全部設(shè)計的控制功能,包括基本的數(shù)碼管動態(tài)顯示、矩陣鍵盤的掃描、輸入數(shù)字的記錄、運算的各種實現(xiàn)。蜂鳴器具有報警的功能,在輸入錯誤或無法計算時進(jìn)行報警。整個系統(tǒng)設(shè)計成本較低,能對輸入的數(shù)據(jù)及正常的運算結(jié)果進(jìn)行實時顯示。
單片機 矩陣鍵盤 數(shù)碼管 蜂鳴器 穩(wěn)壓芯片
隨著電子計算機的普及發(fā)展,人們曾經(jīng)預(yù)言計算器將退出歷史舞臺。然而,電子技術(shù)的不斷進(jìn)步,也使計算器的功能越來越強大。由于計算器具有體積小、攜帶方便、易于掌握、節(jié)省工作時間等優(yōu)點,它的應(yīng)用不但沒有縮小,而且在工程計算、商業(yè)和金融業(yè)務(wù)及中學(xué)數(shù)學(xué)、物理、化學(xué)教學(xué)中被廣泛應(yīng)用。
本次數(shù)字式計算器的設(shè)計要擁有以下幾個功能,數(shù)據(jù)的輸入、內(nèi)部處理、結(jié)果顯示、各種報錯功能。鍵盤與數(shù)碼顯示器是單片機應(yīng)用系統(tǒng)中常用的輸入和輸出的外部設(shè)備。單片機通過鍵盤接收數(shù)據(jù)和命令,顯示器用來顯示單片機的計算結(jié)果或運行狀態(tài)。這里要解決的硬件內(nèi)容有數(shù)據(jù)和符號輸入鍵盤與處理器的連接,報警器的設(shè)計和實現(xiàn),結(jié)果顯示數(shù)碼管的驅(qū)動控制與實現(xiàn)及各種元器件的選擇,包括PCB布線的選擇;軟件部分包括對輸入數(shù)據(jù)和符號的識別和處理,將結(jié)果輸出到結(jié)果數(shù)碼管顯示,對輸入和計算錯誤的輸出報錯警示等功能。設(shè)計中的重點部分主要是系統(tǒng)完成算法、顯示等一系列計算的電路設(shè)計和程序設(shè)計。
本設(shè)計是基于51系列的單片機進(jìn)行的計算器模擬系統(tǒng)設(shè)計,可以完成計算器的鍵盤輸入,進(jìn)行加、減、乘、除數(shù)字運算,并在LED上相應(yīng)顯示[1-2]。在輸入錯誤或無法計算時,蜂鳴器具有報警功能。硬件方面,從功能考慮,首先選擇內(nèi)部存儲資源豐富的AT89C52單片機,輸入采用4×4矩陣鍵盤。顯示采用8位7段共陰極LED動態(tài)顯示,復(fù)位電路采用上電復(fù)位,時鐘采用12MHz晶體振蕩電路。由于AT89C52單片機內(nèi)部有充足的程序存儲單元和數(shù)據(jù)存儲單元,因此不需要進(jìn)行外圍存儲擴展[3-4]。軟件方面,從分析計算器功能、流程圖設(shè)計,再到程序的編寫進(jìn)行系統(tǒng)設(shè)計,針對計算器四則運算算法特別是乘法和除法運算的實現(xiàn),完成程序編寫。系統(tǒng)框圖如圖1所示。
圖1 系統(tǒng)整體框圖
1.1 系統(tǒng)硬件設(shè)計
系統(tǒng)的硬件設(shè)計主要有系統(tǒng)的供電電源設(shè)計、矩陣鍵盤設(shè)計、蜂鳴器電路設(shè)計、數(shù)碼管動態(tài)顯示電路設(shè)計四部分。
1.1.1 系統(tǒng)供電電源設(shè)計
該系統(tǒng)采用AT89S52單片機為核心控制器,因此,要使系統(tǒng)能穩(wěn)定持久工作,必須要為系統(tǒng)提供5V的穩(wěn)壓電源輸入,所以最終選擇5V直流電源作為系統(tǒng)電源輸入[3-6]。
1.1.2 矩陣鍵盤設(shè)計
當(dāng)鍵盤中按鍵數(shù)量較多時,為了減少I/O口線的占用,通常將按鍵排列成矩陣形式。如圖二所示在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣做一個并行口可以構(gòu)成4*4=16個按鍵,比直接將端口線用于鍵盤多出了一倍,且線數(shù)越多區(qū)別就越明顯。矩陣式結(jié)構(gòu)的鍵盤顯然比獨立式鍵盤復(fù)雜一些,識別也要復(fù)雜一些,分為行掃描和列掃描。在按鍵識別過程中,同時加入鍵盤的消抖處理。
1.1.3 蜂鳴器電路設(shè)計
蜂鳴器只有通過電流達(dá)到一定程度時,才能聽到響聲,而單片機不能輸出如此大的電流,所以要加一級蜂鳴器的驅(qū)動,本系統(tǒng)中采用一個三極管,放大驅(qū)動蜂鳴器的電流。
1.1.4 數(shù)碼管動態(tài)顯示電路設(shè)計
為了節(jié)約成本,本設(shè)計的顯示部分采用由發(fā)光二極管組成的共陰極數(shù)碼管動態(tài)顯示。它的驅(qū)動級應(yīng)為射極輸出或源極輸出電路,如圖2所示。
1.2 系統(tǒng)軟件設(shè)計
本系統(tǒng)采用模塊化設(shè)計方法后,可依據(jù)設(shè)計的功能要求將軟件的初始化模塊、數(shù)碼管顯示模塊、鍵盤輸入模塊、鍵功能處理模塊、數(shù)值運算模塊、延時模塊,分別進(jìn)行設(shè)計和調(diào)試,然后把它們連接起來,進(jìn)行總調(diào)。系統(tǒng)主流程圖如圖3所示。主要模塊的設(shè)計思路如下。
圖3 主流程圖
1.2.1 數(shù)碼管顯示模塊
考慮到本設(shè)計的顯示部分要求實現(xiàn)鍵盤輸入數(shù)值顯示及0~255以內(nèi)整數(shù)四則運算結(jié)果的顯示(其中顯示數(shù)字要求精確到小數(shù)點后兩位,并且實現(xiàn)對負(fù)值的顯示),因此采用八位數(shù)碼管動態(tài)顯示完成。應(yīng)用單片機來控制數(shù)碼管動態(tài)顯示數(shù)組各元素,首先要通過單片機的口控制來實現(xiàn)數(shù)碼管的選通,即按時對各位數(shù)碼管進(jìn)行片選,然后輪流點亮各位數(shù)碼管,最終完成動態(tài)顯示。
1.2.2 鍵盤功能設(shè)置軟件設(shè)計
根據(jù)系統(tǒng)4*4矩陣鍵盤的設(shè)計,主要完成計算數(shù)值輸入、運算符輸入、數(shù)值清零和運算錯誤報警等功能。
1.2.3 計算功能設(shè)置軟件設(shè)計
當(dāng)鍵盤掃描數(shù)值為0~9實數(shù)時,將數(shù)值存儲作為運算操作數(shù)值并經(jīng)數(shù)碼管顯示,再次進(jìn)行鍵盤掃描。當(dāng)鍵盤掃描數(shù)值為操作符時,保存該操作符,根據(jù)操作符調(diào)用相應(yīng)的計算程序,將操作數(shù)進(jìn)行相應(yīng)運算,結(jié)束時首先將結(jié)果保存,調(diào)用數(shù)碼管顯示程序顯示運算結(jié)果,同時將運算結(jié)果賦值給操作數(shù),再次進(jìn)行鍵盤掃描,以此實現(xiàn)四則運算功能。
該系統(tǒng)以單片機AT89S52為控制核心,4*4鍵盤輸入,數(shù)碼管由動態(tài)顯示系統(tǒng)組成,完成了具有基本功能的數(shù)字式計算器的設(shè)計。在系統(tǒng)中運用單片機控制技術(shù),數(shù)碼管顯示等,并實用了4*4鍵盤掃描法實現(xiàn)數(shù)據(jù)輸入。通過不斷的嘗試和努力,使各個模塊都能穩(wěn)定工作,最終實現(xiàn)具有基本功能的計算器設(shè)計的各項要求。
[1]謝維成,楊加國.單片機原理與應(yīng)用及C51程序設(shè)計[M].北京:清華大學(xué)出版社,2009.
[2]張義和,陳敵北.例說8051[M].北京:人民郵電出版社,2006.
[3]勒達(dá).單片機應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航[M].北京:人民郵電出版社,2003.
[4]陳寧,王文寧.單片機技術(shù)項目教程[M].南京:東南大學(xué)出版社,2008.
[5]張友亮,趙志英,涂時亮.單片機微型型機原理、應(yīng)用與實驗[M].上海:復(fù)旦大學(xué)出版社,2006.
[6]李誠人,高宏陽,劉淼,等.嵌入式系統(tǒng)及單片機應(yīng)用[M].北京:清華大學(xué)出版社,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