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