袁 禮成都理工大學(xué)
基于單片機(jī)的多功能計算器的設(shè)計與實現(xiàn)
袁禮
成都理工大學(xué)
單片機(jī)是計算機(jī)制造技術(shù)高速發(fā)展下所誕生的產(chǎn)物,它是嵌入式系統(tǒng)的控制核心,如今,它已被廣泛的應(yīng)用于國民經(jīng)濟(jì)建設(shè)、軍工產(chǎn)品及家用電器之中,而計算器作為一種方便快捷的計算工具在生活中得到了普遍使用。
單片機(jī) 計算器 矩陣鍵盤 LCD
在本次設(shè)計中,主要完成以下幾方面的設(shè)計要求:
(1)了解單片機(jī)最小系統(tǒng)的構(gòu)成以及如何搭建單片機(jī)外圍擴(kuò)展電路的方法;
(2)實現(xiàn)計算器的加、減、乘、除基本四則運算;
(3)實現(xiàn)對溫度的測量;
(4)實現(xiàn)時鐘的顯示和設(shè)定。
2.1方案一 采用PLC控制
PLC是可編程邏輯控制器的簡稱,最早出現(xiàn)于60年代末期的美國,目的是用于取代繼電器??梢詧?zhí)行計時、計數(shù)、算數(shù)運算和邏輯判斷等操作指令,并通過模擬量和數(shù)字量的輸入和輸出,實現(xiàn)對各種類型機(jī)械和生產(chǎn)設(shè)備的控制。但PLC外圍擴(kuò)展模塊的使用方法麻煩且體積相對較大,保密性不好,就本次設(shè)計的需求來說,使用PLC設(shè)計從經(jīng)濟(jì)性來說成本過高,從實用性來說不易于攜帶,因此不被采用。
2.2方案二 采用STC89C52控制
單片機(jī)是一種集成電路芯片,全稱為單片微型計算機(jī),它的制造采用的是超大規(guī)模集成電路工藝將中央處理器CPU、只讀存儲器ROM、隨機(jī)存儲器RAM、以及各種I/O接口電路集成到一塊半導(dǎo)體芯片上。因此,單片機(jī)以重量輕、功耗小、價格低、體積小、可靠性高、易于擴(kuò)展、計算速度快和控制功能強(qiáng)等優(yōu)點在各個領(lǐng)域得到了廣泛的應(yīng)用。
2.3方案的比較和選擇
通過對上述兩種方案的比較,結(jié)合設(shè)計的實用性、便攜性和成本考慮,選擇以STC89C52作為主控芯片,通過添加外圍電路來實現(xiàn)多功能計算器的設(shè)計更加符合實際需求。
美國Keil Software公司出品的Keil C51,是一款能夠兼容51系列單片機(jī)的C語言軟件開發(fā)系統(tǒng),它使用的開發(fā)環(huán)境接近于C語言并且集編輯、編譯、仿真等于一體,編程界面與VC++界相似,與匯編語言相比,C語言在其可讀性、可維護(hù)性、可移植性上等方面都比匯編語言有著十分明顯的優(yōu)勢,Keil C51憑借著其簡單易學(xué),而且能夠縮短單片機(jī)項目的開發(fā)周期提高編程者的工作效率,還可以在程序編寫的關(guān)鍵位置嵌入?yún)R編程序,使得Keil C51編寫的程序執(zhí)行效率接近于匯編程序,因此得以推廣。
由英國Labcenter electronics公司出品的軟件Proteus,是一款實用性很好的EDA Proteus工具軟件。它能對單片機(jī)及其外圍電路構(gòu)成的系統(tǒng)進(jìn)行仿真,因此在單片機(jī)開發(fā)工作者和廣大單片機(jī)愛好者中深受好評。Proteus集成了諸多功能與一身,在編譯方面它支持MATLAB、Keil C51和IAR等多種編譯。
STC_ISP_V6.82E是專門針對51系列單片機(jī)設(shè)計的一款用于程序燒錄的軟件,通過STC_ISP_V6.82E可以很容易的將編譯好的HEX文件燒錄進(jìn)51單片機(jī)。通過選項窗口可以設(shè)置單片機(jī)型號、COM口、波特率、串口等參數(shù),同時還可以作為串口調(diào)試工具,用于串口數(shù)據(jù)的收發(fā)調(diào)試。
6.1主控芯片STC89C52
STC89C52的特點是具有CMOS8位微處理器、低功耗、高性能,擁有8K采用DIP封裝的Flash存儲器,52系列的單片機(jī)可以全部兼容51系列單片機(jī)的引腳和指令,而它的制造工藝采用的是高密度非易失性存儲器技術(shù)。
6.2矩陣鍵盤模塊
本設(shè)計只是實現(xiàn)簡單的四則運算,所以4×4的矩陣鍵盤就能夠滿足設(shè)計較要求。在實際電路的設(shè)計中為了有效地提高單片機(jī)I/O的利用率,往往都會采用這種行列式的矩陣鍵盤。
6.3蜂鳴器
蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,分為電磁式蜂鳴器和電壓式蜂鳴器兩種類型,電路設(shè)計中用字母“H”或“HA”表示。
7.1總體設(shè)計
本系統(tǒng)的軟件設(shè)計思想是采用大小循環(huán)嵌套的方式,大循環(huán)一直不停的掃描按鍵,用以確定功能鍵的選擇,小循環(huán)用來實現(xiàn)具體的功能,功能1實現(xiàn)時鐘顯示,功能2實現(xiàn)溫度測量,功能3實現(xiàn)計算器的四則運算,并在LCD上顯示各個功能的運行結(jié)果。
7.2子程序設(shè)計
7.2.11602液晶控制程序
1602液晶上電以后,需要對其內(nèi)部芯片進(jìn)行初始化后才能進(jìn)行操作。在初始化時,應(yīng)當(dāng)參考芯片的時序圖,先將命令寫入芯片內(nèi)部的寄存器設(shè)置其工作方式及狀態(tài)。
7.2.2矩陣按鍵掃描程序
4×4的矩陣按鍵采用的是4行4列的結(jié)構(gòu),每行每列都有一個I/O口與之對應(yīng),因此需要編寫程序?qū)γ總€I/O口進(jìn)行查詢,當(dāng)檢測到某個按鍵被按下時,就根據(jù)讀到的I/O口的總線數(shù)據(jù)進(jìn)行確定是哪一列被按下,進(jìn)而具體確定是哪個鍵被按下,并返回該按鍵對應(yīng)的值到主程序。
[1] 孫淑霞等.C/C++程序設(shè)計教程(第3版)[M].北京:電子工業(yè)出版社,2007