基于單片機的簡易計算器論文畢業(yè)設(shè)計_第1頁
基于單片機的簡易計算器論文畢業(yè)設(shè)計_第2頁
基于單片機的簡易計算器論文畢業(yè)設(shè)計_第3頁
基于單片機的簡易計算器論文畢業(yè)設(shè)計_第4頁
基于單片機的簡易計算器論文畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、密級: NANCHANG UNIVERSITY學(xué) 士 學(xué) 位 論 文(設(shè) 計)THESIS OF BACHELOR(20112015年)中文題目:基于單片機的簡易計算器英文題目:Simple calculator based on single chip microcomputer 學(xué) 院:南昌大學(xué)共青學(xué)院系 別:電子信息工程專業(yè)班級:11級電子信息工程學(xué)生姓名:向廣宇學(xué) 號:8120211037指導(dǎo)教師:譚金平二 一 五 年 六 月學(xué)士學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨立進行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體

2、已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律后果由本人承擔(dān)。本人簽名: 日期: 摘 要 近年來隨著科技的飛速發(fā)展,以單片機技術(shù)為基礎(chǔ)的電子產(chǎn)品在不斷推廣和應(yīng)用,單片機技術(shù)的發(fā)展也帶來了傳統(tǒng)計算方式的改變。在目前市場上采用的計算器大部分都是基于單片機技術(shù)設(shè)計的,采用單片機結(jié)合軟件編程技術(shù)實現(xiàn)的電子計算器,可以控制多種顯示單元,同時可以根據(jù)需要方便對產(chǎn)品功能的升級和完善??紤]到價格成本的約束,本系統(tǒng)中央處理器由市場上較為成熟的51單片機來承擔(dān),51單片機價格低廉操作簡單,外圍接口豐富,可以很好的實現(xiàn)系統(tǒng)的各項功能要求,鍵盤輸入

3、部分采用4*4矩陣鍵盤來實現(xiàn),16個按鍵分別完成0-9數(shù)字的輸入和加、減、乘、除、等號、5個計算鍵的功能,最后一個按鍵實現(xiàn)清除計算內(nèi)容的功能,顯示 單元采用LCD1602液晶顯示屏顯示,液晶顯示效果相比數(shù)碼管更加穩(wěn)定,無閃爍同時顯示字符內(nèi)容豐富。關(guān)鍵詞: 單片機 計算器 液晶顯示器 Simple calculator design base on MCU Abstract In recent years with the rapid development of technology, SCM technology-based electronic products continue to s

4、pread and the application of SCM technology development has also brought a change in the traditional method of calculation. In the current calculator market, most of which are microcontroller-based, which is designed by single-chip combination of software programming technology of electronic calcula

5、tors, you can control a variety of display units, at the same time also easily to upgrade and improve product functionality required. Taking into account constraints of the cost price, the central processor of the system take use of the more mature microcontroller 51 in the market, which has low pri

6、ce and rich peripheral interfaces, also simple to operate, so it can be very good to achieve the functional requirements of the system, the keyboard input part 4 * 4 matrix keypad, or 16 keys are 0-9 complete input and processing, subtraction, multiplication, division, equals, five key functions to

7、calculate, calculate the final key to achieve clear content features, the display unit using LCD1602 display, LCD digital effects compared to more stable, flicker-free display rich character content simultaneously.Keyword : MCU calculator LCD display目 錄第一章 前 言51.1課題背景51.2課題研究的目的和意義51.3計算器設(shè)計的任務(wù)和要求6第二

8、章 簡易計算器的方案設(shè)計72.1系統(tǒng)設(shè)計方案論述72.2系統(tǒng)設(shè)計方案比較與論證82.2系統(tǒng)設(shè)計方選擇9第三章 系統(tǒng)硬件電路設(shè)計103.1系統(tǒng)電源接口電路設(shè)計103.2 單片機最小系統(tǒng)設(shè)計113.2.1系統(tǒng)單片機選型113.2.2系統(tǒng)單片機最小系統(tǒng)電路設(shè)計123.3 系統(tǒng)顯示電路設(shè)計133.3.1 系統(tǒng)顯示器件選擇133.3.2 系統(tǒng)顯示電路設(shè)計143.4 系統(tǒng)矩陣鍵盤輸入電路設(shè)計153.5 系統(tǒng)整體電路設(shè)計分析16第四章 計算器的軟件系統(tǒng)設(shè)計184.1系統(tǒng)軟件編程環(huán)境介紹184.2系統(tǒng)主程序流程圖184.3系統(tǒng)子程序介紹20第五章 系統(tǒng)的仿真與調(diào)試225.1系統(tǒng)仿真軟件介紹225.2系統(tǒng)仿真結(jié)

9、果分析22第六章 實物的制作與調(diào)試256.1電路的安裝過程256.2系統(tǒng)的調(diào)試及問題25總結(jié)27致 謝27參考文獻29附錄A 系統(tǒng)源程序30附錄B 系統(tǒng)電路圖38附錄C系統(tǒng)仿真圖39附錄D系統(tǒng)實物圖39基于單片機的簡易計算器設(shè)計論文42第一章 前 言1.1課題背景在人們的日常生活中,計算器的使用已經(jīng)和人們的生活密切相關(guān),當(dāng)今人們對日常生活的便利性要求越來越高,傳統(tǒng)的口算和珠算的計算方式由于諸多的不便已經(jīng)不能滿足人們對便利性的要求,攜帶方便,使用便捷的簡易計算器是目前市場上最受消費者親睞的產(chǎn)品。計算是我們?nèi)粘I钪胁豢杀苊獾囊粋€環(huán)節(jié),小到市場買菜,大到買房置家,計算都會如影隨形,因而計算器的開發(fā)

10、具有廣闊的應(yīng)用市場,目前市場上的計算器種類已經(jīng)很多,但是大多數(shù)計算器功能相對較多,體積較大,價格相對較貴,不利于家庭的推廣和使用。本文正是基于攜帶方便,功能簡易,成本低廉為應(yīng)用背景進行開發(fā)和設(shè)計,最終設(shè)計完成一款能夠?qū)崿F(xiàn)簡單計算功能的廉價計算器。1.2課題研究的目的和意義計算是伴隨人們?nèi)粘I畹囊粋€概念,計算工具是一個從古至今一直存在而又不斷發(fā)展的。在遙遠(yuǎn)的古代人們用簡單的數(shù)字的多少來計算,這種計算在我們?nèi)缃竦娜粘I钪羞€能看到,當(dāng)我們問三四歲的小孩簡單的加法運算時,我們會發(fā)現(xiàn)大部分兒童還是會伸出手指來數(shù)數(shù)的多少來進行簡單的加減運算,雖然計算的方式古老,但是卻簡單可行。在后來,中國珠算的發(fā)明與

11、使用使得計算的速度和準(zhǔn)確性得到很大的提高,珠算在中國的計算領(lǐng)域有這悠久的歷史,直到上個世紀(jì)80年代之前珠算還是大多從事會計與相關(guān)計算領(lǐng)域方面較為常用的工具,然而隨著科技的進步,電子計算器的發(fā)明與使用是計算領(lǐng)域內(nèi)的又一次革新,電子計算器無論在計算速度還是可靠性方面相比珠算都有了很大的提高,另外電子計算器操作簡單,不需要專業(yè)的學(xué)習(xí)和培訓(xùn)即可操作,因而隨著電子計算器的發(fā)明和使用,珠算很快便從中國一千多年的應(yīng)用歷史中退出了市場。在現(xiàn)實生活中,我們總是會被各種繁瑣的計算問題而煩心,由于生活節(jié)奏的提高,面對突然來到的計算問題,我們已經(jīng)沒有足夠的時間和耐心拿上筆和紙進行計算了,計算器已經(jīng)成為我們?nèi)粘I钪胁?/p>

12、可或缺的計算工具了,在大多的工作場合我們會發(fā)現(xiàn)每個人的辦公工具中,計算器已經(jīng)是必不可少的了,因而如何結(jié)合所學(xué)電子知識,開發(fā)一款價格低廉,操作簡單,計算準(zhǔn)確可靠性高的計算器具有和好的開發(fā)價值和應(yīng)用前景,設(shè)計完成一款價格低廉、操作方便的簡易計算器對自己不僅具有很好的鍛煉意義,同時也具有很好的市場需求,適當(dāng)?shù)倪M行完善即可推廣到市場上應(yīng)用。1.3計算器設(shè)計的任務(wù)和要求本設(shè)計采用宏晶科技公司生產(chǎn)的STC89C52單片機作為系統(tǒng)的核心控制單元,然后以此單片機為基礎(chǔ)結(jié)合外圍所需的硬件電路,最后在硬件設(shè)計平臺上完成軟件代碼的驗證,最終完成簡易數(shù)字計算器各項功能要求。此簡易數(shù)字計算器主要電路模塊包括:單片機最小

13、系統(tǒng)、矩陣鍵盤電路、液晶LCD顯示電路、系統(tǒng)電源電路等單元組成。系統(tǒng)所使用的主要元器件包括:STC89C52單片機、4*4矩陣鍵盤、液晶顯示屏LCD1602、DC直流電源等。本設(shè)計主要實現(xiàn)的功能和要求包括:(1)實現(xiàn)100000000以內(nèi)的加法運算功能;(2)實現(xiàn)100000000以內(nèi)的減法運算功能;(3)實現(xiàn)100000000的乘法運算功能;(4)實現(xiàn)100000000的除法運算功能;(5)系統(tǒng)計算時輸入數(shù)字和符號以及運算結(jié)果顯示功能;(6)系統(tǒng)輸入錯誤時具有清除的功能。 第二章 簡易計算器的方案設(shè)計2.1系統(tǒng)設(shè)計方案論述本次設(shè)計所要實現(xiàn)的功能主要有加減乘除的運算,能夠?qū)崿F(xiàn)上述運算的設(shè)計方案

14、進行簡要的介紹。 方案一:以51單片機為基礎(chǔ),結(jié)合鍵盤輸入電路、電源轉(zhuǎn)換電路、單片機復(fù)位電路和晶體振蕩電路以及液晶顯示電路進行設(shè)計完成。其硬件設(shè)計框圖如圖21所示。STC89C52單片機LCD液晶顯示電路矩陣鍵盤輸入電路單片機復(fù)位電路系統(tǒng)電源轉(zhuǎn)換電路晶體振蕩電路圖21 方案二:以51單片機為基礎(chǔ),結(jié)合鍵盤輸入電路、電源轉(zhuǎn)換電路、單片機復(fù)位電路和晶體振蕩電路以及LED數(shù)碼管顯示電路進行設(shè)計完成。其硬件設(shè)計框圖如圖22所示。STC89C52單片機Led數(shù)碼管顯示電路矩陣鍵盤輸入電路單片機復(fù)位電路系統(tǒng)電源轉(zhuǎn)換電路晶體振蕩電路圖22方案三:以ARM為平臺,結(jié)合電源轉(zhuǎn)換電路以及液晶LCD顯示電路進行設(shè)計

15、完成。其硬件設(shè)計框圖如圖23所示。STM3的ARM平臺矩陣鍵盤輸入電路LCD液晶顯示電路系統(tǒng)電源轉(zhuǎn)換電路圖23 2.2系統(tǒng)設(shè)計方案比較與論證方案一以51單片機為核心結(jié)合液晶顯示電路來實現(xiàn)具有以下優(yōu)點:1、 STC89C52單片機是目前市場上主流的51單片機型號,其價格低廉、IO端口豐富,在很多中低端的電子產(chǎn)品上具有很廣泛的應(yīng)用。2、 以STC89C52單片機作為方案設(shè)計的控制核心,開發(fā)相對容易,開發(fā)周期相對較短,可以有效的節(jié)約開發(fā)時間。3、 采用液晶LCD作為系統(tǒng)的顯示界面,液晶顯示效果穩(wěn)定,顯示字符數(shù)相對較多,而且能夠很好的顯示運算符號。方案二相比方案一來講,采用LED數(shù)碼管顯示界面代替LC

16、D液晶,相比方案一成本價格更為低廉,開發(fā)費用和周期更短,不足之處是數(shù)碼管顯示效果存在一定的閃爍現(xiàn)象,同時顯示字符數(shù)有限,如果計算的位數(shù)較多就需要級聯(lián)較多個數(shù)的數(shù)碼管才能實現(xiàn),同時市場上通用的數(shù)碼管一般不能直接顯示運算符,如需要直觀的顯示運算符則需要單獨定做,這樣又會使得設(shè)計成本得到提高。 方案三相比前兩個方案講,外圍電路更加簡單,由于ARM芯片內(nèi)部已經(jīng)集成了晶體振蕩電路和看門狗復(fù)位電路,因而不需要在單獨外接復(fù)位電路和晶振電路,這樣使得外圍電路更加簡單,可以有效的縮減線路板的體積,使得整個設(shè)計體積更小,攜帶更為方便,除此之外,ARM處理器處理速度相比51單片機更為快捷,以ARM為控制核心的計算器

17、反應(yīng)靈敏度更高;方案三的不足之處是ARM處理器價格相對較高,開發(fā)難度大、開發(fā)周期長。2.2系統(tǒng)設(shè)計方選擇基于本文是以價格低廉、開發(fā)容易和使用方便為開發(fā)背景的前提下,經(jīng)過對上述3種方案的論證和比較,方案一更能符合課題開發(fā)的背景,因而本文設(shè)計方案最終以方案一為基礎(chǔ)進行設(shè)計。第三章 系統(tǒng)硬件電路設(shè)計3.1系統(tǒng)電源接口電路設(shè)計系統(tǒng)電源電路主要完成供電系統(tǒng)的穩(wěn)壓濾波和開關(guān)控制功能,此部分電路如圖3-1所示。圖3-1系統(tǒng)電源管理電路圖3-1為系統(tǒng)5V輸出電壓管理電路,其中J1為DC005電源輸入接口,用于連接DC9V直流電源,SW1為系統(tǒng)電源開關(guān),用于控制整個系統(tǒng)的電源的開啟與關(guān)閉,C1為電解電容,一般取

18、值在220uf到680uf之間,此電解電容是用于濾除電源線上存在的高頻干擾,U1為三端穩(wěn)壓芯片LM7805,LM7805輸入電壓范圍在7-16V情況下,穩(wěn)定輸出直流5V電壓,輸出穩(wěn)定度在5V正負(fù)0.05mv的波動內(nèi)變化,能夠很好的保證單片機系統(tǒng)電壓的穩(wěn)定性,電容C1和C4分別用于濾除輸出電壓上存下的低頻干擾和高頻干擾,LED為電源指示燈,當(dāng)系統(tǒng)電源輸出正常的情況下LED燈點亮,電阻R1為1K阻值的限流電阻,保證LED在允許的工作電流下工作,避免LED被電流過高造成的損壞,D0為整理二極管,在此是為了防止輸入電源極性反接造成后續(xù)電路器件的燒壞,當(dāng)電源極性反接時,二極管D0的反向截止功能可以對后續(xù)

19、電路進行有效的保護。3.2 單片機最小系統(tǒng)設(shè)計3.2.1系統(tǒng)單片機選型單片機為整個系統(tǒng)的控制核心,單片機型號的選擇好壞直接會影響到整個系統(tǒng)設(shè)計的成敗,因而選擇一款合適的單片機對整個系統(tǒng)設(shè)計的成功與否起著至關(guān)重要的作用,目前市場上單片機種類型號千差萬別,從基礎(chǔ)的8位單片機到高端的64位單片機,價格從幾元到上百元不等,選擇單片機要首先要考慮價格因素,由于本系統(tǒng)設(shè)計是簡易型計算器,因而功能相對較少,不需要較多的IO端口以及強大的存儲空間,所以不需要選擇價位較高的高端的單片機,考慮到目前市場上應(yīng)用較為廣泛的51位單片機完全能夠達到設(shè)計的功能要求,因而本設(shè)計首選單片機是51單片機。宏晶科技公司生產(chǎn)的ST

20、C89C52單片機是目前國產(chǎn)單片機中性價比較高的型號,此單片機價格低廉,端口豐富完全兼容國外大品牌Atmel公司的AT89S52單片機,價格相比Atmel公司的單片機只有其價格的一般,鑒于以上分析,本文最終選擇宏晶科技的STC89C52單片機作為簡易計算器的主控單片機,STC89C52單片機的引腳圖如圖3-2所示。圖3-2 STC89C52引腳圖STC89C52單片機具有以下標(biāo)準(zhǔn)功能: l 與MCS-51單片機產(chǎn)品兼容l 8K字節(jié)在系統(tǒng)可編程Flash存儲器l 1000次擦寫周期l 全靜態(tài)操作:0Hz33Hzl 三級加密程序存儲器l 32個可編程I/O口線l 三個16位定時器/計數(shù)器l 八個中

21、斷源l 全雙工UART串行通道l 低功耗空閑和掉電模式l 掉電后中斷可喚醒l 看門狗定時器l 雙數(shù)據(jù)指針l 掉電標(biāo)識符3.2.2系統(tǒng)單片機最小系統(tǒng)電路設(shè)計單片機最小系統(tǒng)電路是整個計算器系統(tǒng)的核心,單片機最小系統(tǒng)電路設(shè)計的好壞直接決定整個系統(tǒng)的設(shè)計成敗,因而在設(shè)計單片機最小系統(tǒng)電路之前一定要對單片機的工作原理有一個系統(tǒng)的學(xué)習(xí),要知道單片機正常工作所需的必備條件,要了解單片機系統(tǒng)電路的組成以及各部分的主要功能。單片機最小系統(tǒng)電路一般由單片機、晶振電路、復(fù)位電路組成,此部分設(shè)計完成的電路如圖3-3所示。圖3-3 單片機最小系統(tǒng)電路圖如圖3-3所示,其中Y1為11.0592M的晶體振蕩器,選擇11.0

22、592M是為了便于計算單片機運行的周期,Y1兩端的電容 C7,C8 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。電容C7和C8應(yīng)選擇瓷片電容,至于電容容值的大小沒有嚴(yán)格的限定,只是電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度的穩(wěn)定性。如果使用石英晶體,推薦電容使用30pF士l0pF。STC89C52單片機為高電平復(fù)位使能,在單片機最小系統(tǒng)電路設(shè)計中需要保證上電的時候能夠復(fù)位單片機,同時當(dāng)系統(tǒng)運行 過程中出現(xiàn)跑飛或者進入死循環(huán)的時候能夠通過相應(yīng)的按鍵實現(xiàn)單片機的復(fù)位,因而單片機復(fù)位需要有上電復(fù)位和按鍵復(fù)位兩種復(fù)位方式,復(fù)位電路設(shè)計如圖3-3所示,其中 S0為復(fù)位按

23、鍵。上電復(fù)位的工作原理為:通電時,電容兩端相當(dāng)于短路,于是單片機的復(fù)位引腳上為高電平,然后電源通過電阻對電容C6充電,單片機復(fù)位引腳端電壓慢慢下降,降到一定程度,即為低電平,單片機開始正常工作;按鍵復(fù)位的工作原理為:當(dāng)S0被按下后,電容C6迅速放電,使單片機復(fù)位引腳為高電平,從而實現(xiàn)復(fù)位。當(dāng)S0彈起后,電源通過10K的電阻R5放電,電平變?yōu)榈碗娖?,?fù)位停止。3.3 系統(tǒng)顯示電路設(shè)計3.3.1 系統(tǒng)顯示器件選擇目前市場上的計算器顯示屏主要包括以下幾種:1、 OLED段碼液晶屏,此種液晶屏只能顯示固定的數(shù)字和字符,由于簡易計算器的運算符號種類較少,因而考慮到OLED段碼液晶屏的價格相對較低,在一些

24、簡單的計算器上應(yīng)用較多。2、 LED數(shù)碼管顯示屏,近年來隨著LED技術(shù)的發(fā)展,LED數(shù)碼管應(yīng)用場合也逐漸增多,LED數(shù)碼管顯示亮度較高,同時LED顏色種類較多,客戶可以根據(jù)自己的喜好選擇自己喜歡的顏色,不足之處是LED數(shù)碼管功耗較高,顯示效果會有輕微的閃爍,長時間觀看不利于眼睛的保護。3、 LCD液晶屏,目前市場上主要用到的液晶屏分為字符型液晶屏和中文漢字液晶屏, 字符型 LCD 液晶顯示,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機應(yīng)用設(shè)計中最常用的信息顯示器件;中文漢字液晶屏體積尺寸較大,同時價格較貴,考慮到價格和體積因素,字符型LCD液晶更適合本

25、系統(tǒng)設(shè)計的需要,采用LCD液晶顯示價格適中,顯示效果穩(wěn)定,不足是亮度效果會相對降低。綜合以上幾種顯示器件的優(yōu)缺點,系統(tǒng)最終采用LCD液晶顯示器做系統(tǒng)的顯示器件,系統(tǒng)選用字符型LCD1602作為顯示部分。3.3.2 系統(tǒng)顯示電路設(shè)計系統(tǒng)顯示電路主要包括單片機控制器、單片機P0口上拉電阻、LCD1602液晶顯示器和對比度調(diào)節(jié)電阻器組成,此部分電路如圖3-4所示。圖3-4 系統(tǒng)顯示器件電路圖由圖3-4所示:液晶LCD1602的1腳為接地端,2腳為電源引腳,此款液晶顯示器采用DC5V電壓供電,此處VCC接5V電壓,3腳為液晶顯示器的對比度調(diào)節(jié)引腳,通過電阻R6接地,R6阻值可以選擇2.2K到4.7K之

26、間的電阻,也可以接4.7K的可調(diào)電位器接地,可通過改變此電阻的阻值大小來調(diào)節(jié)液晶的對比度;4腳、5腳、6腳為液晶片選控制引腳,分別連接到單片機的P25、P26、P27端口,714腳為數(shù)據(jù)接口,與單片機的P0口相連實現(xiàn)數(shù)據(jù)的傳輸,15、16、腳為液晶的背光控制腳,分別接到電源和地,如果懸空不接則不使用背光。3.4 系統(tǒng)矩陣鍵盤輸入電路設(shè)計按鍵輸入電路用來完成密碼的輸入和修改,按鍵輸入電路采用4*4矩陣鍵盤實現(xiàn),矩陣鍵盤電路如圖3-5所示。圖3-5系統(tǒng)矩陣鍵盤輸入電路系統(tǒng)矩陣鍵盤對應(yīng)按鍵功能如圖3-6所示。圖3-6系統(tǒng)矩陣鍵盤按鍵功能說明如上表所示,0-9位數(shù)字鍵,當(dāng)運算時按下對應(yīng)數(shù)字的按鍵即可輸

27、入相應(yīng)數(shù)字,符號鍵“”“-”“*”“/”“=”號對應(yīng)計算器的運算功能鍵,當(dāng)輸入完相應(yīng)的數(shù)字后按下對應(yīng)的運算符后即可執(zhí)行相應(yīng)的計算操作,清除鍵指的是當(dāng)運算過程中如果操作錯誤可以按下清除鍵完成對本次運算的清除功能,按下清除鍵以后即可進行再次運算操作。3.5系統(tǒng)整體電路設(shè)計分析當(dāng)系統(tǒng)各部分電路設(shè)計完成后,需要對各部分電路進行總體匯總,然后對完整的電路進行可行性分析論證,在保證系統(tǒng)電路的完整性和可靠性的前提下方可進行下一步的軟件設(shè)計以及成品組裝,系統(tǒng)匯總完成的總體電路如圖3-7所示。圖3-7 系統(tǒng)整體電路圖圖3-7為系統(tǒng)整體電路圖,主要包括電源部分電路,矩陣鍵盤輸入電路,單片機最小系統(tǒng)電路以及液晶顯示

28、電路4大部分組成,系統(tǒng)電源電路用了完成系統(tǒng)電壓的穩(wěn)壓和濾波作用,因為單片機系統(tǒng)需要在比較穩(wěn)定的5V電壓系統(tǒng)下工作,因而要想保證整個系統(tǒng)能夠穩(wěn)定可靠的運行,首先要保證系統(tǒng)電源電路穩(wěn)定可靠,所以增加穩(wěn)壓濾波電路是必不可少的環(huán)節(jié);考慮到計算器輸入鍵盤部分由0-9共10個數(shù)字鍵,5個運算符號鍵,一個清除鍵,共需要16個按鍵,因而系統(tǒng)設(shè)計鍵盤輸入部分采用4*4的矩陣鍵盤,共16個按鍵完成;顯示界面采用LCD1602字符型液晶顯示屏,LCD1602液晶能夠顯示2行32個字符,可以很好的滿足系統(tǒng)設(shè)計的要求。第四章 計算器的軟件系統(tǒng)設(shè)計4.1系統(tǒng)軟件編程環(huán)境介紹系統(tǒng)軟件設(shè)計采用C語言編程,編譯環(huán)境為Keil。

29、Keil c51 是美國Keil Software 公司出品的51 系列兼容單片機C 語言軟件開發(fā)系統(tǒng),和匯編相比,C 在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil c51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows 界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil c51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。Keil C51 可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件,然后分別有C

30、51 及A51 編輯器編譯連接生成單片機可執(zhí)行的二進制文件(.HEX),然后通過單片機的燒寫軟件將HEX 文件燒入單片機內(nèi)。軟件主要三個方面:一是初始化系統(tǒng);二是數(shù)據(jù)采集;三是數(shù)據(jù)處理并進行顯示。這三個方面的操作分別在主程序中來進行。程序采用模塊化的結(jié)構(gòu),這樣程序結(jié)構(gòu)清楚,易編程和易讀性好,也便于調(diào)試和修改。4.2系統(tǒng)主程序流程圖系統(tǒng)主程序主要包括系統(tǒng)的初始化、鍵盤掃描、運算的執(zhí)行以及液晶的顯示等,系統(tǒng)主程序流程圖如圖4-1所示。判斷是否有按鍵按下?按鍵掃描開始系統(tǒng)初始化否是液晶顯示輸入數(shù)字和運算符是否判斷是否按下“=”號鍵?是執(zhí)行運算操作顯示計算結(jié)果是否判斷是否按下清除鍵?是圖4-1 系統(tǒng)主

31、程序流程圖系統(tǒng)主程序流程如圖4-1所示,當(dāng)系統(tǒng)上電后首先完成各個組件的初始化,一個系統(tǒng)的初始化是程序運行必不可少的環(huán)節(jié),系統(tǒng)初始化部分主要包括:單片機初始化、液晶顯示初始化、矩陣鍵盤初始化等;初始化完成以后系統(tǒng)首先要掃描矩陣鍵盤,通過判斷矩陣鍵盤對應(yīng)的單片機IO端口是否發(fā)生變化來判斷是否進入有效的運算操作,當(dāng)按鍵掃描到有按鍵輸入時,單片機通過鍵盤鍵值的判斷來確定輸入的是數(shù)字還是運算符,同時通過控制液晶屏實時顯示輸入的運算數(shù)字和運算符,當(dāng)單片機判斷到有“=”鍵按下后開始執(zhí)行運算符前后數(shù)字的相應(yīng)運算,然后把運算的結(jié)果顯示在液晶屏的“=”符之后。此時如果系統(tǒng)檢測到清除功能鍵按下則系統(tǒng)返回到按鍵掃描狀

32、態(tài),如果沒有清除鍵按下,則一直保留此次運算的狀態(tài)。4.3系統(tǒng)子程序介紹系統(tǒng)子程序主要包括按鍵掃描子程序和液晶顯示子程序,按鍵掃描子程序是通過檢測矩陣鍵盤所接的單片機IO端口的電平變化來實現(xiàn)。矩陣鍵盤電路設(shè)計成4X4矩陣式,在程序中可以先判斷按鍵編碼,然后根據(jù)編碼將鍵盤代表的數(shù)值送到相應(yīng)的存儲單元,再進行功能選擇或數(shù)據(jù)處理。液晶顯示子程序主要完成在顯示字符發(fā)生變化時,通過單片機控制液晶的讀寫操作來完成顯示字符的更新。按鍵掃描子程序流程圖如圖4-2所示。判斷是否有按鍵按下?按鍵掃描開始鍵盤端口電平初始化行列端口掃描判斷行端口電平是否發(fā)生變化?否是否判斷列端口電平是否發(fā)生變化?是得出對應(yīng)行列交叉線處

33、按鍵碼值圖4-2 系統(tǒng)按鍵掃描子程序流程圖系統(tǒng)按鍵掃描是通過對矩陣鍵盤行列掃描的方式實現(xiàn)的,系統(tǒng)首先對行進行掃描,檢測出4行當(dāng)中是否有一行對應(yīng)的端口電平發(fā)生變化,如果有則進行列的掃描,同樣如果4列中的一列端口電平發(fā)生了變化,則電平發(fā)生變化的行列交叉處的按鍵碼值即可檢測出來,此時單片機就可以通過對端口電平的變化來判斷出所按下的按鍵具體位置,然后即可記錄下對應(yīng)按鍵所對應(yīng)的數(shù)字或者符號,如此循環(huán)檢測即可完成按鍵的掃描工作。第五章 系統(tǒng)的仿真與調(diào)試5.1系統(tǒng)仿真軟件介紹Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件。Proteus不僅具有其它EDA工具軟件

34、的仿真功能,還能仿真單片機及外圍器件。它是目前比較好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA仿真工具,從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真。它是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等多種型號的單片機。5.2系統(tǒng)仿真結(jié)果分析系統(tǒng)完成加法運算的仿真運行效果圖如圖5-1所示。圖5-1系

35、統(tǒng)運行仿真效果圖系統(tǒng)完成加法運算的運行效果圖5-1所示,加數(shù)分別為123和56,完成運算符為加法運算,運算得出的結(jié)果為179,經(jīng)驗證運算結(jié)果正確,液晶顯示內(nèi)容和實際運算輸出數(shù)字及運算符完全一致,系統(tǒng)加法運算仿真運行正確無誤。系統(tǒng)完成減法運算的仿真運行效果圖如圖5-2所示。圖5-2 系統(tǒng)減法運算仿真效果圖系統(tǒng)完成減法運算的運行效果圖5-2所示,減數(shù)和被減數(shù)分別為456和123,完成運算符為減法運算,運算得出的結(jié)果為333,經(jīng)驗證運算結(jié)果正確,液晶顯示內(nèi)容和實際運算輸出數(shù)字及運算符完全一致,系統(tǒng)減法運算仿真運行正確無誤。系統(tǒng)完成乘法運算的仿真運行效果圖如圖5-3所示。圖5-3 系統(tǒng)乘法運算仿真效果

36、圖系統(tǒng)完成乘法運算的運行效果圖5-3所示,乘數(shù)和被乘數(shù)分別為45和2,完成運算符為乘法運算,運算得出的結(jié)果為90,經(jīng)驗證運算結(jié)果正確,液晶顯示內(nèi)容和實際運算輸出數(shù)字及運算符完全一致,系統(tǒng)乘法運算仿真運行正確無誤。系統(tǒng)完成除法運算的仿真運行效果圖如圖5-4所示。圖5-4 系統(tǒng)除法運算運行仿真圖系統(tǒng)完成除法運算的運行效果圖5-4所示,除數(shù)和被除數(shù)分別為10000和5,完成運算符為除法運算,運算得出的結(jié)果為2000,經(jīng)驗證運算結(jié)果正確,液晶顯示內(nèi)容和實際運算輸出數(shù)字及運算符完全一致,系統(tǒng)除法運算仿真運行正確無誤。第六章 實物的制作與調(diào)試6.1電路的安裝過程元件在安裝時,注意事項如下:1) 晶振要緊挨

37、單片機的晶振引腳,晶振引線的太長會直接影響到晶振的起震效果,引線太長會造成晶振不起震的情況出現(xiàn)。2) 裝配時,應(yīng)該先安裝那些需要安裝底座的器件,比如說單片機、液晶顯示屏等,由于這些器件價格較貴,如果直接裝配到板子上,一旦系統(tǒng)安裝出現(xiàn)意外情況不得不重新焊接的時候,這些主要器件就沒法再次利用了。3) 各種元器件的安裝時應(yīng)盡量留出較大的空間,這樣既可以避免器件太近存在的短路隱患也利于元器件的散熱。4)在元器件焊接之前應(yīng)該先用紗布將元器件的引腳打磨一遍,這樣可以將元件引腳氧化的部分去除掉,以便于焊接;在焊接過程中還要注意焊錫的量要得當(dāng),過多可能造成電路短路,過少有可能造成虛焊;最后可以在板子的四個角上

38、安裝四個固定柱,一方面可以增加整個結(jié)構(gòu)的美觀,另一方面也可以使避免電路板放在導(dǎo)電體上發(fā)生短路的危險。通過以上步驟,一個完整的電路硬件部分就制作完成了,這時可以再檢查一下是否有元器件漏焊、焊錯的情況,以確保電路的正確。6.2系統(tǒng)的調(diào)試及問題在調(diào)試過程中,曾遇到以下問題:1) 當(dāng)硬件連接無誤,在系統(tǒng)啟動后液晶不顯示,系統(tǒng)沒有反應(yīng),經(jīng)過分析這種情況有以下幾種可能:第一,硬件電路中存在虛焊,或電路接線焊錯;第二,芯片插反了導(dǎo)致電路短路;第三,液晶電路焊接錯誤。遇到這種情況首先要用萬用表檢查芯片的供電電壓是否為5V,如果不是就檢查供電電路有沒有問題。如果兩端有電壓就檢查一下單片機有沒有插反,通過逐步排查

39、最終找到問題是因為單片機供電引腳虛焊造成的。2) 鍵盤輸入顯示亂碼,和設(shè)計的鍵值不符,經(jīng)檢查發(fā)現(xiàn)矩陣鍵盤的行列端口定義與仿真接口定義不一致引起的,后重新修改端口問題得以解決。3) 初期系統(tǒng)顯示不穩(wěn)定,這有可能是系統(tǒng)電壓不穩(wěn)定,或者STC89C52芯片的31引腳EA引腳沒有接高電平,經(jīng)過排查發(fā)現(xiàn)系統(tǒng)電源電路中未加濾波電容,由于仿真電路不存在電源干擾問題,所以在仿真中可以穩(wěn)定運行的情況下,根據(jù)仿真電路制作出的實物可能會出現(xiàn)由于外界干擾帶來的系統(tǒng)工作不穩(wěn)定情況,這種情況一般是由電源的干擾造成,可以通過增加電源端的濾波電容來解決這種問題??偨Y(jié)本文采用STC89C52單片機設(shè)計完成了一款簡易計算器的制作

40、, 經(jīng)過實際測試,功能穩(wěn)定操作方便,能夠達到計算器的基本功能要求,通過適當(dāng)?shù)陌b和完善即可得到很好的推廣和應(yīng)用,此次設(shè)計對我具有很好的鍛煉效果,同時也是對自己所學(xué)知識的一次綜合檢驗。在整個畢業(yè)設(shè)計過程中,我對大學(xué)四年所學(xué)的知識有了一個系統(tǒng)的認(rèn)識和理解,尤其是對本課題所用到的單片機及其相關(guān)知識有了進一步的掌握,對單片機相關(guān)軟件的使用水平得到了提高,為今后的工作奠定了堅實的基礎(chǔ)。本課題軟件和硬件相結(jié)合,有相當(dāng)大的難度,同時也有很大的實用性。在做畢業(yè)設(shè)計的過程中,我的理論和實踐水平都有了較大的提高。在課題的設(shè)計與制作過程中,遇到了不少問題,在老師和同學(xué)的指導(dǎo)和幫組下最終得到逐一的解決,通過此次畢業(yè)設(shè)

41、計制作不僅使我的實際動手能力得帶了提高,也使我和同學(xué)老師之間的溝通和協(xié)作能力得到了提高,這些都為我今后進入公司工作打下了很好的基礎(chǔ),為我今后的生活和工作積累了寶貴的財富,同時由于時間和費用的限制,此款計算器只是實現(xiàn)了計算器的基礎(chǔ)功能,諸如開方等一些常用功能未能夠?qū)崿F(xiàn)。致 謝四年的本科學(xué)習(xí)生涯即將結(jié)束,在本人做畢業(yè)設(shè)計中,得到了我的導(dǎo)師的悉心指導(dǎo)和無私幫助。他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和謙和的為人給我留下了深刻的印象。本課題在選題及研究過程中得到譚老師的悉心指導(dǎo)。譚老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。譚老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實的態(tài)度,踏踏實實的精神,讓我受益終身

42、。 通過這次畢業(yè)設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我對單片機的基本原理以及單片機編程技巧的掌握方面都能向前邁了一大步,為日后邁入職場打下了良好的基礎(chǔ)。在我畢業(yè)設(shè)計的過程中,我在譚老師的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識,極大地提高了實踐能力,并對當(dāng)前電了領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,這對我今后進一步學(xué)習(xí)傳感器方面的知識有極人的幫助。在此,我衷心感謝譚老師的指導(dǎo)和支持。在未來的工作和學(xué)習(xí)中,我將以更好的成績來回報老師。 在此,我還要感謝在一起愉快的度過我大學(xué)生活的全體老師和同學(xué)們,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直

43、至本文的順利完成。最后再次對各位評委老師表示衷心的感謝,感謝你們能給我提出寶貴的指導(dǎo)意見,讓我順利通過畢業(yè)答辯,謝謝! 參考文獻1 李朝青單片機原理及接口技術(shù)M北京:北京航空航天大學(xué)出版社,20052 康華光電子技術(shù)基礎(chǔ)模擬部分(第五版) M北京:高等教育出版社, 20053 閻石數(shù)字電子技術(shù)基礎(chǔ)(第四版)M北京:高等教育出版社,20054 白延敏51單片機典型系統(tǒng)開發(fā)實例精講M北京:電子工業(yè)出版社,20095 張齊,杜群貴. 單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)M. 北京:電子工業(yè)出版社,2007.6 楊金巖等. 8051單片機數(shù)據(jù)傳輸接口擴展技術(shù)與應(yīng)用實例M北京:人民郵電出版社,20057 求是科技單片

44、機通信技術(shù)與工程實踐M北京:人民郵電出版社,2005.8 郭永貞主編. 數(shù)字電子技術(shù)M. 西安電子科技大學(xué)出版社,2000.9 李廣弟. 單片機基礎(chǔ)M.北京:北京航空航天大學(xué)出版社,2001.10 張洪潤. 電子線路與電子技術(shù)M.清華大學(xué)出版社M,2005.11 張齊,杜群貴. 單片機應(yīng)用系統(tǒng)設(shè)計技術(shù)M.電子工業(yè)出版社,2004.12 張偉基于8051單片機的無線溫控系統(tǒng)設(shè)計J北京:中國高新技術(shù)企業(yè),2010,34(7)13徐愛鈞.智能化測量控制儀表原理與設(shè)計(第二版)北京航天航空大學(xué)出版社,2004.914孫育才等.MCS-51系列單片微型計算機及其應(yīng)用(第4版)東南大學(xué)出版社,2004.3

45、 15李萍等.智能儀器實驗指導(dǎo)書大連交通大學(xué),2007.9 16單片機應(yīng)用技術(shù)(C語言).中國勞動社會保障出版社,2006.6 17武慶生,仇梅等著.單片機原理與應(yīng)用.電子科技大學(xué)出版,1998.12 18朱定華著.單片機原理與接口技術(shù).電子工業(yè)出版社,2001.4 19王宜懷,劉曉升等著.嵌入式應(yīng)用技術(shù)基礎(chǔ)教程.北京清華大學(xué)出版社,2005.7 20王威著.HCS12微控制器原理及應(yīng)用.北京航空航天大學(xué)出版社,2007.10附錄A 系統(tǒng)源程序#include <reg51.h>#include <stdio.h>#include <stdlib.h>#in

46、clude <string.h>#include <math.h>#include "LCD1602.h"void shortdelay(uchar i)/短延時 for(;i>0;i-);void longdelay(uint i) /長延時 uint j; for(;i>0;i-) for(j=100;j>0;j-);void delay(int i) /延時程序int j; for(;i>0;i-) for(j=0;j<100;j+);void io_init()/初試狀態(tài)P1=0xff;/?-鍵盤掃描部分-/ u

47、nsigned char key_scan() unsigned char key; unsigned char temp; uint flag; io_init(); P1=0xf0; flag=0;loop: temp=P10xf0; while(temp) P1=0xfe; delay(1); if(P1&0xfe)!=0xfe) switch(P1) case 0xee: key=0x11;flag=1;break; case 0xde: key=0x12;flag=1;break; case 0xbe: key=0x13;flag=1;break; case 0x7e: ke

48、y=0x14;flag=1;break; if(flag) goto exit; else P1=0xfd; delay(1); if(P1&0xfd)!=0xfd) switch(P1) case 0xed: key=0x21;flag=1;break; case 0xdd: key=0x22;flag=1;break; case 0xbd: key=0x23;flag=1;break; case 0x7d: key=0x24;flag=1;break; if(flag) goto exit; else P1=0xfb; delay(1); if(P1&0xfb)!=0xfb

49、) switch(P1) case 0xeb: key=0x31;flag=1;break; case 0xdb: key=0x32;flag=1;break; case 0xbb: key=0x33;flag=1;break; case 0x7b: key=0x34;flag=1;break; if(flag) goto exit; else P1=0xf7; delay(1); if(P1&0xf7)!=0xf7) switch(P1) case 0xe7: key=0x41;flag=1;break; case 0xd7: key=0x42;flag=1;break; case

50、0xb7: key=0x43;flag=1;break; case 0x77: key=0x44;flag=1;break; exit: return key; if(temp=0) goto loop; /-鍵盤掃描完-/-顯示初始化?-/void initpindata(bit i) /P0口初始化 if(i=1) pindata=0xff; else pindata=0X00;void setRS(bit i) /寄存器選擇信號 if(i=1) pinRS=1; else pinRS=0;void setRW(bit i) /讀寫操作控制 if(i=1) pinRW=1; else pi

51、nRW=0;void setE(bit i) /使能信號 if(i=1) pinE=1; else pinE=0;uint read_BF_AC()/讀BF以及AC的值 uint temp; initpindata(1); setRS(0); setRW(1); setE(1); shortdelay(1); temp=pindata; shortdelay(10); setE(0); return(temp); bit statuscheck()/判忙 return(bit)(read_BF_AC()&0x80);void writeinstruc(uint instruc) /寫指令函數(shù) while(statuscheck(); initpindata(0); setRS(0); setRW(0); setE(0); pindata=instruc;setE(1); shortdelay(10); setE(0);void writedata(uint data1) /寫數(shù)據(jù)到RAM initpindata(0); setRS(1); setRW(0); setE(0); pindata=data1; setE(1); shortdelay(10); setE(0);uint readdata(void) /從RAM中讀數(shù)據(jù)函數(shù) uint temp; i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論