李新雪
摘要:本系統(tǒng)中央處理器由市場(chǎng)上較為成熟的51單片機(jī)來(lái)承擔(dān),51單片機(jī)價(jià)格低廉操作簡(jiǎn)單,外圍接口豐富,可以很好的實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能要求,鍵盤(pán)輸入部分采用4*4矩陣鍵盤(pán)來(lái)實(shí)現(xiàn),16個(gè)按鍵分別完成0-9數(shù)字的輸入和加、減、乘、除、等號(hào)、5個(gè)計(jì)算鍵的功能,最后一個(gè)按鍵實(shí)現(xiàn)清除計(jì)算內(nèi)容的功能,顯示單元采用LCD1602液晶顯示屏顯示,液晶顯示效果相比數(shù)碼管更加穩(wěn)定,無(wú)閃爍同時(shí)顯示字符內(nèi)容豐富。
關(guān)鍵詞:計(jì)算器;單片機(jī);顯示屏
1.計(jì)算器設(shè)計(jì)的任務(wù)和要求
本設(shè)計(jì)采用宏晶科技公司生產(chǎn)的STC89C52單片機(jī)作為系統(tǒng)的核心控制單元,然后以此單片機(jī)為基礎(chǔ)結(jié)合外圍所需的硬件電路,最后在硬件設(shè)計(jì)平臺(tái)上完成軟件代碼的驗(yàn)證,最終完成簡(jiǎn)易數(shù)字計(jì)算器各項(xiàng)功能要求。此簡(jiǎn)易數(shù)字計(jì)算器主要電路模塊包括:?jiǎn)纹瑱C(jī)最小系統(tǒng)、矩陣鍵盤(pán)電路、液晶LCD顯示電路等單元組成。系統(tǒng)所使用的主要元器件包括:STC89C52單片機(jī)、4*4矩陣鍵盤(pán)、液晶顯示屏LCD1602等。
本設(shè)計(jì)主要實(shí)現(xiàn)的功能和要求包括:(1)實(shí)現(xiàn)100000000以?xún)?nèi)的加法運(yùn)算功能;(2)實(shí)現(xiàn)100000000以?xún)?nèi)的減法運(yùn)算功能;(3)實(shí)現(xiàn)10000的乘法運(yùn)算功能;(4)實(shí)現(xiàn)100000000的除法運(yùn)算功能;(5)系統(tǒng)計(jì)算時(shí)輸入數(shù)字和符號(hào)以及運(yùn)算結(jié)果顯示功能;(6)系統(tǒng)輸入錯(cuò)誤時(shí)具有清除的功能。
2.單片機(jī)最小系統(tǒng)設(shè)計(jì)
單片機(jī)為整個(gè)系統(tǒng)的控制核心,單片機(jī)型號(hào)的選擇好壞直接會(huì)影響到整個(gè)系統(tǒng)設(shè)計(jì)的成敗,因而選擇一款合適的單片機(jī)對(duì)整個(gè)系統(tǒng)設(shè)計(jì)的成功與否起著至關(guān)重要的作用,目前市場(chǎng)上單片機(jī)種類(lèi)型號(hào)千差萬(wàn)別,從基礎(chǔ)的8位單片機(jī)到高端的64位單片機(jī),價(jià)格從幾元到上百元不等,選擇單片機(jī)要首先要考慮價(jià)格因素,由于本系統(tǒng)設(shè)計(jì)是簡(jiǎn)易型計(jì)算器,因而功能相對(duì)較少,不需要較多的IO端口以及強(qiáng)大的存儲(chǔ)空間,所以不需要選擇價(jià)位較高的高端的單片機(jī),考慮到目前市場(chǎng)上應(yīng)用較為廣泛的51位單片機(jī)完全能夠達(dá)到設(shè)計(jì)的功能要求,因而本設(shè)計(jì)首選單片機(jī)是51單片機(jī)。宏晶科技公司生產(chǎn)的STC89C52單片機(jī)是目前國(guó)產(chǎn)單片機(jī)中性?xún)r(jià)比較高的型號(hào),此單片機(jī)價(jià)格低廉,端口豐富完全兼容國(guó)外大品牌Atmel公司的AT89S52單片機(jī),價(jià)格相比Atmel公司的單片機(jī)只有其價(jià)格的一般,鑒于以上分析,本文最終選擇宏晶科技的STC89C52單片機(jī)作為簡(jiǎn)易計(jì)算器的主控單片機(jī),STC89C52單片機(jī)的引腳圖如圖1所示。
單片機(jī)最小系統(tǒng)電路是整個(gè)計(jì)算器系統(tǒng)的核心,單片機(jī)最小系統(tǒng)電路設(shè)計(jì)的好壞直接決定整個(gè)系統(tǒng)的設(shè)計(jì)成敗,因而在設(shè)計(jì)單片機(jī)最小系統(tǒng)電路之前一定要對(duì)單片機(jī)的工作原理有一個(gè)系統(tǒng)的學(xué)習(xí),要知道單片機(jī)正常工作所需的必備條件,要了解單片機(jī)系統(tǒng)電路的組成以及各部分的主要功能。單片機(jī)最小系統(tǒng)電路一般由單片機(jī)、晶振電路、復(fù)位電路組成,此部分設(shè)計(jì)完成的電路如圖2所示。
其中Y1為12M的晶體振蕩器,選擇12M是為了便于計(jì)算單片機(jī)運(yùn)行的周期,Y1兩端的電容 C1,C1 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。電容C1和C2應(yīng)選擇瓷片電容,至于電容容值的大小沒(méi)有嚴(yán)格的限定,只是電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度的穩(wěn)定性。如果使用石英晶體,推薦電容使用30pF士l0pF。
3.系統(tǒng)顯示電路
主要包括單片機(jī)控制器、單片機(jī)P0口上拉電阻、LCD1602液晶顯示器和對(duì)比度調(diào)節(jié)電阻器組成,此部分電路如圖3所示。
液晶LCD1602的1腳為接地端,2腳為電源引腳,此款液晶顯示器采用DC5V電壓供電,此處VCC接5V電壓,3腳為液晶顯示器的對(duì)比度調(diào)節(jié)引腳,通過(guò)電阻R6接地,R6阻值可以選擇2.2K到4.7K之間的電阻,也可以接4.7K的可調(diào)電位器接地,可通過(guò)改變此電阻的阻值大小來(lái)調(diào)節(jié)液晶的對(duì)比度;4腳、5腳、6腳為液晶片選控制引腳,分別連接到單片機(jī)的P1^0、P1^1、P1^2端口,7~14腳為數(shù)據(jù)接口,與單片機(jī)的P0口相連實(shí)現(xiàn)數(shù)據(jù)的傳輸,15、16腳為液晶的背光控制腳,分別接到電源和地,如果懸空不接則不使用背光。
按鍵輸入電路用來(lái)完成密碼的輸入和修改,按鍵輸入電路采用4*4矩陣鍵盤(pán)實(shí)現(xiàn),矩陣鍵盤(pán)電路如圖4所示。
4.系統(tǒng)矩陣鍵盤(pán)對(duì)應(yīng)按鍵功能如圖5所示。
如上圖5所示,0-9位數(shù)字鍵,當(dāng)運(yùn)算時(shí)按下對(duì)應(yīng)數(shù)字的按鍵即可輸入相應(yīng)數(shù)字,符號(hào)鍵“+”“-”“*”“/”“=”號(hào)對(duì)應(yīng)計(jì)算器的運(yùn)算功能鍵,當(dāng)輸入完相應(yīng)的數(shù)字后按下對(duì)應(yīng)的運(yùn)算符后即可執(zhí)行相應(yīng)的計(jì)算操作,清除鍵指的是當(dāng)運(yùn)算過(guò)程中如果操作錯(cuò)誤可以按下清除鍵完成對(duì)本次運(yùn)算的清除功能,按下清除鍵以后即可進(jìn)行再次運(yùn)算操作。
當(dāng)系統(tǒng)各部分電路設(shè)計(jì)完成后,需要對(duì)各部分電路進(jìn)行總體匯總,然后對(duì)完整的電路進(jìn)行可行性分析論證,在保證系統(tǒng)電路的完整性和可靠性的前提下方可進(jìn)行下一步的軟件設(shè)計(jì)以及成品組裝,系統(tǒng)匯總完成的總體電路如圖6所示。
圖6為系統(tǒng)整體電路圖,主要包括矩陣鍵盤(pán)輸入電路,單片機(jī)最小系統(tǒng)電路以及液晶顯示電路3大部分組成,考慮到計(jì)算器輸入鍵盤(pán)部分由0-9共10個(gè)數(shù)字鍵,5個(gè)運(yùn)算符號(hào)鍵,一個(gè)清除鍵,共需要16個(gè)按鍵,因而系統(tǒng)設(shè)計(jì)鍵盤(pán)輸入部分采用4*4的矩陣鍵盤(pán),共16個(gè)按鍵完成;顯示界面采用LCD1602字符型液晶顯示屏,LCD1602液晶能夠顯示2行32個(gè)字符,可以很好的滿(mǎn)足系統(tǒng)設(shè)計(jì)的要求。
5.系統(tǒng)軟件設(shè)計(jì)采用C語(yǔ)言編程,編譯環(huán)境為Keil。
Keil c51 是美國(guó)Keil Software 公司出品的51 系列兼容單片機(jī)C 語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),和匯編相比,C 在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。
Keil c51 軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows 界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil c51 生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。
Keil C51 可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件,然后分別有C51 及A51 編輯器編譯連接生成單片機(jī)可執(zhí)行的二進(jìn)制文件(.HEX),然后通過(guò)單片機(jī)的燒寫(xiě)軟件將HEX 文件燒入單片機(jī)內(nèi)。軟件主要三個(gè)方面:一是初始化系統(tǒng);二是數(shù)據(jù)采集;三是數(shù)據(jù)處理并進(jìn)行顯示。這三個(gè)方面的操作分別在主程序中來(lái)進(jìn)行。程序采用模塊化的結(jié)構(gòu),這樣程序結(jié)構(gòu)清楚,易編程和易讀性好,也便于調(diào)試和修改。
6.系統(tǒng)的調(diào)試及問(wèn)題
在調(diào)試過(guò)程中,曾遇到以下問(wèn)題:
當(dāng)硬件連接無(wú)誤,在系統(tǒng)啟動(dòng)后液晶不顯示,系統(tǒng)沒(méi)有反應(yīng),經(jīng)過(guò)分析這種情況有以下幾種可能:第一,硬件電路中存在虛焊,或電路接線(xiàn)焊錯(cuò);第二,芯片插反了導(dǎo)致電路短路;第三,液晶電路焊接錯(cuò)誤。
遇到這種情況首先要用萬(wàn)用表檢查芯片的供電電壓是否為5V,如果不是就檢查供電電路有沒(méi)有問(wèn)題。如果兩端有電壓就檢查一下單片機(jī)有沒(méi)有插反,通過(guò)逐步排查最終找到問(wèn)題是因?yàn)閱纹瑱C(jī)供電引腳虛焊造成的。
鍵盤(pán)輸入顯示亂碼,和設(shè)計(jì)的鍵值不符,經(jīng)檢查發(fā)現(xiàn)矩陣鍵盤(pán)的行列端口定義與仿真接口定義不一致引起的,后重新修改端口問(wèn)題得以解決。
初期系統(tǒng)顯示不穩(wěn)定,這有可能是系統(tǒng)電壓不穩(wěn)定,或者STC89C52芯片的31引腳EA引腳沒(méi)有接高電平,經(jīng)過(guò)排查發(fā)現(xiàn)系統(tǒng)電源電路中未加濾波電容,由于仿真電路不存在電源干擾問(wèn)題,所以在仿真中可以穩(wěn)定運(yùn)行的情況下,根據(jù)仿真電路制作出的實(shí)物可能會(huì)出現(xiàn)由于外界干擾帶來(lái)的系統(tǒng)工作不穩(wěn)定情況,這種情況一般是由電源的干擾造成,可以通過(guò)增加電源端的濾波電容來(lái)解決這種問(wèn)題。
7.總結(jié):
本文采用STC89C52單片機(jī)設(shè)計(jì)完成了一款簡(jiǎn)易計(jì)算器的制作, 經(jīng)過(guò)實(shí)際測(cè)試,功能穩(wěn)定操作方便,能夠達(dá)到計(jì)算器的基本功能要求,通過(guò)適當(dāng)?shù)陌b和完善即可得到很好的推廣和應(yīng)用,此次設(shè)計(jì)對(duì)我具有很好的鍛煉效果,但此次制作也有有待提高之處,比如數(shù)據(jù)處理方面,顯示屏可以顯示15位數(shù)字,去掉一位符號(hào)位,理論上可以實(shí)現(xiàn)兩個(gè)7位數(shù)的加減乘除運(yùn)算,但遺憾的是數(shù)據(jù)處理能力不足,未很好的解決乘法數(shù)據(jù)的處理,只能處理5位數(shù)與5位數(shù)的乘法,原因在于C語(yǔ)言運(yùn)算符本身大小限制,程序方面也沒(méi)有很好的思路解決這個(gè)問(wèn)題。同時(shí)由于時(shí)間和費(fèi)用的限制,此款計(jì)算器只是實(shí)現(xiàn)了計(jì)算器的基礎(chǔ)功能,諸如開(kāi)方等一些常用功能未能夠?qū)崿F(xiàn)。
參考文獻(xiàn):
[1]李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.
[2]康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版) [M].北京:高等教育出版社, 2005.
[3]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2005.
[4]白延敏.51單片機(jī)典型系統(tǒng)開(kāi)發(fā)實(shí)例精講[M].北京:電子工業(yè)出版社,2009.
[5]張齊.杜群貴.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)[M].北京:電子工業(yè)出版社,2007.