![基于單片機的LCD科學(xué)計算器設(shè)計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/3083ed79-e03c-4d35-9cc8-fc94c5c17fd4/3083ed79-e03c-4d35-9cc8-fc94c5c17fd41.gif)
![基于單片機的LCD科學(xué)計算器設(shè)計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/3083ed79-e03c-4d35-9cc8-fc94c5c17fd4/3083ed79-e03c-4d35-9cc8-fc94c5c17fd42.gif)
![基于單片機的LCD科學(xué)計算器設(shè)計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/3083ed79-e03c-4d35-9cc8-fc94c5c17fd4/3083ed79-e03c-4d35-9cc8-fc94c5c17fd43.gif)
![基于單片機的LCD科學(xué)計算器設(shè)計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/3083ed79-e03c-4d35-9cc8-fc94c5c17fd4/3083ed79-e03c-4d35-9cc8-fc94c5c17fd44.gif)
![基于單片機的LCD科學(xué)計算器設(shè)計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/21/3083ed79-e03c-4d35-9cc8-fc94c5c17fd4/3083ed79-e03c-4d35-9cc8-fc94c5c17fd45.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、作 者: 學(xué) 號:系:電子工程與光電技術(shù)系專 業(yè):電子信息工程 題 目:基于單片機的 液晶計算器設(shè)計 南 京 理 工 大 學(xué) 畢業(yè)設(shè)計(論文)評語 學(xué)生姓名: 班級、學(xué)號: 題 目: 基于單片機的液晶計算器設(shè)計 綜合成績: 指導(dǎo)者評語: 指導(dǎo)者(簽字): 年 月 日畢業(yè)設(shè)計(論文)評語評閱者評語: 評閱者(簽字): 年 月 日答辯委員會(小組)評語: 答辯委員會(小組)負責(zé)人(簽字): 年 月 日畢業(yè)設(shè)計說明書(論文)中文摘要本設(shè)計是實現(xiàn)一個有四則運算及函數(shù)運算的多功能計算器。它的硬件部分包括:一個AT89C52單片機芯片,一塊LCD1602液晶顯示器,一個4*4的鍵盤,外加4個功能設(shè)置按鍵。
2、AT89C52單片機為核心控制電路,LCD1602負責(zé)顯示輸入輸出數(shù)據(jù),利用4*4矩陣鍵盤加上一些功能鍵完成電路的鍵入操作部分。電路簡單,功能齊全。軟件部分采用C語言編寫,實現(xiàn)了14位浮點數(shù)內(nèi)的加、減、乘、除基本的四則運算,帶有sin、cos、tan、exp、ln、lg、倒數(shù)、xy、sqrt、fmod 10個常用數(shù)學(xué)函數(shù)運算。這樣一個簡易的計算器實現(xiàn)了多功能,比較實用和方便。關(guān)鍵字 單片機 函數(shù) C語言 顯示 計算器 畢業(yè)設(shè)計說明書(論文)外文摘要Title LCD calculator design based on single chip microcomputer AbstractThi
3、s design is to achieve a four arithmetic operations and function multi-function calculator. Its hardware includes: a AT89C52 chip, a LCD1602 LCD display, a 4 * 4 keyboard, plus four function setting button. AT89C52 core control circuit, LCD1602 is responsible for displaying the input and output data
4、, the use of 4 * 4 matrix keyboard function keys plus some typing part of the circuit is completed. Circuit is simple and functional. Software written using C language to achieve a floating point number within the 14 plus, subtract, multiply, and divide the four basic arithmetic, with a sin', co
5、s', tan ', exp ',ln ',lg ', countdown ',x y ', sqrt ', fmod '10 commonly used mathematical functions. Such a simple calculator to achieve a multi-functional, it is practical and convenient.Keywords MCU Function The C language Display Calculator第 頁 共 頁 本科畢業(yè)設(shè)計說明書(論文
6、) 目 次1 緒論11.1 計算器的簡介11.2 單片機的簡介與發(fā)展趨勢11.3 設(shè)計的目的與意義22 簡易計算器的設(shè)計實現(xiàn)32.1 計算器系統(tǒng)模塊32.2 核心控制器選擇32.3 顯示電路的設(shè)計選擇32.4 鍵盤設(shè)計方案選擇42.4.1 按鍵消抖方案選擇42.5 本章小結(jié)43 硬件電路設(shè)計63.1 單片機介紹63.1.1 AT89C52管腳說明63.2 單片機最小系統(tǒng)73.2.1 復(fù)位電路83.2.2 時鐘電路93.3 顯示模塊設(shè)計93.4 按鍵模塊設(shè)計113.5 本章小結(jié)124 軟件設(shè)計134.1 系統(tǒng)總設(shè)計流程134.2 按鍵程序流程設(shè)計144.3 LCD1602顯示流程設(shè)計154.4
7、本章小結(jié)175 功能仿真及其結(jié)果185.1 軟件簡介185.1.1 KEIL軟件簡介185.1.2 PPOTUES ISIS簡介185.2 仿真結(jié)果與操作說明185.2.1 系統(tǒng)總體仿真185.2.2 系統(tǒng)的操作說明195.3 加減乘除四則運算顯示結(jié)果20 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 頁 5.4 計算器擴展功能的實現(xiàn)225.4.1 三角函數(shù)的實現(xiàn)225.4.2 對數(shù)和指數(shù)函數(shù)的實現(xiàn)235.4.3 平方根與倒數(shù)以及余數(shù)的實現(xiàn)255.5 本章小結(jié)26結(jié) 論27致 謝28參 考 文 獻29 45 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 29 頁 1 緒論隨著科技的日益更新,嵌入式系統(tǒng)與我
8、們的生活愈發(fā)息息相關(guān),一些能夠使用單片機完成的工具也頻繁出現(xiàn)于日常生活中,比如計算器。計算器的出現(xiàn)為我們帶來許多便捷,如今運用我們所學(xué)知識,也能夠做出簡單的計算器。本文便是講述了如何使用所學(xué)來設(shè)計一個計算器。1.1 計算器的簡介簡易計算器是一種生活中必不可少的計算工具,大生活中所用的簡易計算器大多由控制器、運算器、存儲器、顯示屏等組成。一臺簡易計算器能夠?qū)崿F(xiàn)基本的加減乘除四則運算。除了結(jié)果顯示這一功能之外,大多數(shù)計算器為了降低出錯率和提高效率,都加入了錯誤提示和復(fù)位按鍵。計算器的出現(xiàn)使我們的生活效率更加!由于它的簡單便捷,日常生活中的計算已經(jīng)少不了它。1.2 單片機的簡介與發(fā)展趨勢單片機是把C
9、PU和其他相關(guān)外設(shè)都高度集中在單個芯片上的微型計算機。通常芯片內(nèi)包括CPU、ROM、RAM、并行I/O口、串行口、定時/計數(shù)器、中斷控制系統(tǒng)、系統(tǒng)時鐘及系統(tǒng)總線等1。單片機一詞來源于“Single Chip Microcomputer”(SCM)。單片機由于它的高度集成,可以算是微型機的重要代表。從小的方面講,一臺單片機與一臺計算機在功能方面大致相同。單片機主要有以下特點:(1) 性價比高。(2) 體積小、集成度高、抗干擾性好、可靠性較強。單片機內(nèi)部高度集成,采用總線結(jié)構(gòu)的方式使其具有很強的抗干擾性與可靠性。另外,由于體積小,適合大部分惡劣環(huán)境下操作,如強磁場環(huán)境,單片機就比較方便采取屏蔽措施
10、。(3) 控制功能強。單片機有工業(yè)標準需求,單片機擁有豐富的轉(zhuǎn)移指令系統(tǒng),I/O口的邏輯操作以及位處理功能。單片機的處理速度和控制功能均好于一般微機。(4) 低功耗、低電壓,廣泛用于生產(chǎn)各類生活常用產(chǎn)品或者便攜式產(chǎn)品。(5) 方便擴展,可以在單片機的基礎(chǔ)上擴展各種規(guī)模的系統(tǒng)。單片機作為嵌入式計算機系統(tǒng)的核心,實時控制將成為它的主要發(fā)展方向。不斷提高的控制性能,成本的降低,體積的減小以及可靠性和穩(wěn)定性的提高,將逐步取代傳統(tǒng)的純電路的電子控制系統(tǒng)2。單片機技術(shù)的飛速發(fā)展,也極大地推動了嵌入式系統(tǒng)的發(fā)展。1.3 設(shè)計的目的與意義由于單片機特點的多樣性,它已經(jīng)在成為了工業(yè)科技領(lǐng)域一個重要的力量。本次設(shè)
11、計的計算器雖然結(jié)構(gòu)簡單,但它卻是生活中必不可少的工具,在日常計算中,它的地位不可取代。我們所學(xué)四年,現(xiàn)將知識運用到生活中的部分,這一點很有必要。本次設(shè)計需要系統(tǒng)的梳理單片機的知識,內(nèi)部電路,接口電路和其他相關(guān)擴展方面的知識。同時,在選材時,也需要合理。一次簡單的設(shè)計就是一個系統(tǒng)化的過程,這在平時的學(xué)習(xí)生活中是可遇不可求的。這次簡易計算器的設(shè)計,使我掌握了單片機的理論知識,并且我也知道如何將理論與實際聯(lián)系,知道如何用軟件分析實際硬件電路。這次設(shè)計為我以后在這項工作方面打下了堅實的基礎(chǔ)。2 簡易計算器的設(shè)計實現(xiàn)簡易計算器主要用于計算一般的加、減、乘除四則算數(shù),雖功能簡單,但它讓然活躍在我們生活當中
12、。簡易計算器的使用不僅是的運算時間縮短,挺高了工作的效率,還大大減少了計算的出錯率,給我們的生活帶來便捷。如今,想要設(shè)計一款計算器有很多種方法,在了解計算器各部分組成之后,我們通過各種方案的對比,選擇出最合適的一種方案。2.1 計算器系統(tǒng)模塊我們已經(jīng)知道計算器主要由核心控制器,鍵盤,顯示器組成,它的系統(tǒng)框圖如圖2.1所示。我們可以根據(jù)設(shè)計需求選擇各部分元器件。顯示電路電源鍵盤核心控制器圖2.1 計算器系統(tǒng)框圖2.2 核心控制器選擇方案一:選擇專用計算器芯片做核心控制器,進行設(shè)計編程。運用這個芯片雖然在處理速度方面有不俗的表現(xiàn),但同時成本也相對較高,并且本人不熟悉此芯片,還不足以用它來實現(xiàn)計算器
13、的功能,對設(shè)計增加了難度,因此不可取。方案二:單片機作為核心控制器。由于單片機內(nèi)部集成了運算器電路、控制器電路、存儲器電路等,并且單片機是可編程器件,它成本低,技術(shù)成熟,運用廣泛,編程操作簡單。綜上所述,核心控制器選擇單片機。2.3 顯示電路的設(shè)計選擇方案一:選用數(shù)碼管做顯示。采用數(shù)碼管顯示,程序簡單,同時它對外界環(huán)境要求低,顯示很直觀。但是由于它只能顯示一些代碼和數(shù)字,并且硬件電路復(fù)雜。這個局限性很不方便以后的擴展,因此數(shù)碼管電路在本次設(shè)計中不可取。方案二:選用LCD1602顯示,LCD1602顯示效果好,與單片機硬件連接電路簡單,而且它的編程指令簡單易懂。能夠顯示豐富的字符,方便做擴展,并
14、且成本低功耗低。相比于LED顯示。綜上所述,本次設(shè)計選擇LCD1602作為顯示模塊。2.4 鍵盤設(shè)計方案選擇方案一:選用獨立鍵盤。在獨立鍵盤中,一個按鍵需要連接一個相應(yīng)I/O口。在按鍵數(shù)量不多時,這個方法簡單易行,然而計算器需要使用的按鍵眾多,顯然用獨立鍵盤會浪費較多I/O口,不可取。但是進行后期擴展時,會增加幾個新的按鍵,此時,使用獨立鍵盤,則十分便捷。方案二:選用矩陣鍵盤。矩陣鍵盤在需要多個按鍵時結(jié)構(gòu)相對,編程方法足夠成熟。比起獨立鍵盤,矩陣鍵盤能夠節(jié)約I/O口,本次設(shè)計需要用的按鍵較多,如果使用獨立按鍵則需要至少16個I/O口。相對而言,獨立鍵盤比較浪費I/O口。因此本次設(shè)計的輸入選用矩
15、陣鍵盤。這樣做硬件電路相對簡單,且方便日后擴展。綜上所述,鍵盤輸入部分選擇矩陣鍵盤,而后期擴展時,選擇獨立鍵盤。2.4.1 按鍵消抖方案選擇方案一:硬件消抖。硬件消抖主要通過外部電路來穩(wěn)定按鍵消除按鍵抖動,比較常用的硬件消抖方法是在電路中加入RS觸發(fā)器。RS觸發(fā)器可以將有抖動的電壓波形轉(zhuǎn)換成正規(guī)的矩形波。這種方法在對按鍵較少的情況下可以使用,但本次設(shè)計按鍵需求多,RS觸發(fā)器無疑增加了成本與功耗,也會使電路連接變復(fù)雜。方案二:軟件消抖。軟件消抖就是在按鍵閉合檢測之后執(zhí)行一個延時子程序,產(chǎn)生一個5ms10ms的延時,讓前沿抖動之后再次檢測按鍵的狀態(tài),如果按鍵依舊保持閉合時的電平狀態(tài),則肯定有按鍵按
16、下。當檢測到按鍵釋放后,同樣也要給一個5ms10ms的延時,等待后沿抖動消失后再轉(zhuǎn)入到該鍵的處理程序中,執(zhí)行后續(xù)操作。 在本次按鍵較多的情況下,我們采用軟件消抖的方法。綜上所述,本次設(shè)計采用軟件消抖的方法。2.5 本章小結(jié)經(jīng)過對各個模塊方案的詳細對比,我們最終選擇單片機作為核心控制部分;矩陣鍵盤作為輸入部分,獨立鍵盤作為擴展部分按鍵,考慮案件數(shù)量以及電路復(fù)雜程度,選擇軟件消抖的方法,減少了按鍵出錯率;LCD1602液晶作為顯示器。這樣合理使用了各個元器件,在能夠達成目標的同時節(jié)約了成本。且所需元器件皆為本人所學(xué),設(shè)計起來也方便快捷易出成果。3 硬件電路設(shè)計硬件電路主要分為單片機最小系統(tǒng)電路模塊
17、,鍵盤輸入電路模塊,LCD1602顯示電路模塊等。3.1 單片機介紹大家熟知的是51系列單片機,因此本次設(shè)計采用51系列單片機,為了配合仿真,最終采用AT89C52單片機。AT89C52與MCS-51系列單片機所用指令完全兼容。AT89C52是一種高性能,低電壓并且?guī)в?K字節(jié)FLASH只讀存儲器的CMOS8位微處理器。AT89C52是一種高效低功耗的單片機,憑借其高度的靈活性,低廉的價格,它廣泛用于工業(yè)設(shè)計,它的引腳如圖3.1所示。圖3.1 單片機引腳3.1.1 AT89C52管腳說明(1)VCC:+5V電壓。(2)GND:接地端口。(3)I/O接口:第一功能:P0、P1、P2、P3、P4,
18、四個通用雙向8位接口,可以通過程序控制,按字節(jié)輸入/出,或者按位輸入/出。第二功能:當CPU對片外存儲器讀/寫操作時,P0,P2作為地址與數(shù)據(jù)總線,P3口的各位都具有第二功能。1)P0口在對片外數(shù)據(jù)數(shù)據(jù)操作時,作為地址和數(shù)據(jù)線使用。由于P0口的這個特點,需片外接一個8個鎖存器。2)P1口是一個8位雙向I/O口,它內(nèi)部提供上拉電阻。P1口管腳寫入高電平之后,內(nèi)部上拉為高,此時可用作輸入;當P1口被外部下拉為低電平時,由于內(nèi)部上拉,將輸出電流。P1口在FLASH編程和校驗時將接收低8位地址。3)P2口為準雙向I/O口,口對片外存儲器操作時將輸出高八位地址(A8A15)。4)P3口也可作為AT89C
19、52的一些特殊功能口,如表3.2所示。表3.2 P3口的第二功能引腳名稱作用P3.0RXD串行輸入端口P3.1TXD串行輸出端口P3.2外中斷0P3.3外中斷1P3.4T0定時器0外部輸入P3.5T1定時器1外部輸入P3.6外部數(shù)據(jù)存儲器寫選通P3.7外部數(shù)據(jù)存儲器讀選通RST:復(fù)位輸入。ALE/PROG:為地址鎖存控制輸入端/編程脈沖,有兩種功能。PSEN:程序存儲器讀選通輸出。單片機從外部存儲器取數(shù)時,將在PSEN輸出低電平,選通ROM。EA/VPP:是訪問程序存儲器控制輸入端/編程電壓,有兩種功能。XTAL1:作為振蕩器的倒向放大器的輸入及內(nèi)部時鐘工作電路的輸入4。XTAL2:作為反向振
20、蕩器的輸出。3.2 單片機最小系統(tǒng)單片機最小系統(tǒng)主要由單片機,晶振電路,復(fù)位電路組成,單片機正常工作需要依賴最小系統(tǒng)的支持。本次選擇自帶ROM的AT89C52單片機,省去了單片機沒有自帶ROM,還必須要接外部ROM擴展電路的麻煩。選擇AT89C52單片機時,EA端口須接高電平(+5V)。對于需要使用片外存儲器的單片機,EA必須接地。一般單片機最小系統(tǒng)如圖3.3所示。圖3.3 單片機的最小系統(tǒng)組成3.2.1 復(fù)位電路復(fù)位是單片機的初始化操作,其功能是把系統(tǒng)初始化。當系統(tǒng)由于非正常操作而處于死鎖狀態(tài)時,為恢復(fù)正常工作狀態(tài),也需要復(fù)位重啟。RST引腳用于輸入單片機的復(fù)位信號,RST復(fù)位高電平有效。在
21、時鐘電路工作后,在RST引腳應(yīng)出現(xiàn)寬度不小于2個機器周期的高電平信號,單片機才會進入復(fù)位狀態(tài),此時,如果RST一直處于高電平狀態(tài),那么單片機也會一直處于復(fù)位狀態(tài)。復(fù)位操作有自動復(fù)位和手動復(fù)位兩種方式。自動復(fù)位是通過外部復(fù)位電路的電容上電來實現(xiàn)的,也稱上電復(fù)位。按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與Vcc電源接通而實現(xiàn)的,按鍵電平復(fù)位也稱為開關(guān)復(fù)位。目前,一些結(jié)構(gòu)簡單的系統(tǒng)中,單片機都采用按鍵電平復(fù)位的方式,此方式方便快捷。本次設(shè)計便采用這種方式,其復(fù)位電路如圖3.4。圖3.4 復(fù)位電路3.2.2 時鐘電路單片機的時鐘電路用于產(chǎn)生工作所需要的時鐘信號,主要是片內(nèi)外振蕩電路。單片機內(nèi)部有一個復(fù)雜的同步
22、時序電路。電路應(yīng)在唯一的時鐘信號控制下按時序進行工作以實現(xiàn)同步工作的方式。在AT89C52芯片內(nèi)部有一個高增益反相放大器,它用來構(gòu)成穩(wěn)定振蕩器。它的輸入端為芯片引腳為XTAL1,輸出端為引腳XTAL2。在芯片的外部跨接晶體振蕩器和兩個的微調(diào)電容,形成反饋電路,X1為晶振,構(gòu)成了一個穩(wěn)定的自激振蕩器7。時鐘電路如圖3.5所示。圖3.5 時鐘電路3.3 顯示模塊設(shè)計LCD是一種工業(yè)型字符液晶,它能夠顯示32個字符(16列×2行),工作電壓為3.3V或5V,對比度可自行調(diào)節(jié),LCD的內(nèi)部內(nèi)部含有復(fù)位電路,用來提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能。由于LCD16
23、02功耗低、體積小、顯示多樣,常用在微型儀表和低功耗應(yīng)用中。市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片,LCD1602控制原理也基于HD44780。LCD1602采用標準14腳(無背光)或16腳(有背光)接口,它的管腳如圖3.6所示。圖3.6 LCD的管腳LCD1602各個管腳說明如表3.7所示。表3.7 LCD各管腳說明編號引腳引腳說明編號引腳引腳說明1VSS接地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令12D5數(shù)據(jù)5R/W讀/寫13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極第1腳:VSS接地電源
24、。第2腳:VDD接3.3V或5V正電源。第3腳:VL端可以用來調(diào)整液晶對比度,接正電源時對比度最弱,接地時對比度最高。第4腳:RS端為寄存器選擇端口,高電平時為數(shù)據(jù)寄存器、低電平時則是指令寄存器。第5腳:R/W為讀寫信號端口,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)4。第6腳:E端口為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光正極。第16腳:背光負極。液晶與單片機的連接電路如圖3.8所示。圖
25、3.8 LCD與單片機的鏈接圖3.4 按鍵模塊設(shè)計鍵盤有獨立鍵盤和矩陣鍵盤。本次設(shè)計需要的按鍵較多,如果使用獨立鍵盤會占用較多的I/O口。因此,本次輸入鍵盤設(shè)計采用矩陣鍵盤。矩陣鍵盤的按鍵設(shè)置在鍵盤行列線交點上,行列線分別連接到按鍵開關(guān)兩端。行線通過上拉電阻接到+5V的電源上。當沒有鍵按下時,行線處于高電平的狀態(tài);而當有按鍵按下時,行線電平則由與此行線相連的列線電平?jīng)Q定。運用行列掃描法可以確定按鍵具體位置,從而得到按鍵數(shù)值。鍵盤部分的設(shè)計如圖3.9所示。圖3.9 矩陣按鍵輸入如圖3.9所示,按鍵輸入采用4*4矩陣鍵盤,鍵盤接在單片機的P2口,可以看出16個按鍵共用8個I/O,相對較節(jié)約I/O口
26、。本人在簡易計算器的基礎(chǔ)上還增加了一鍵多用的功能。鍵盤中除了包含“09”數(shù)字鍵,“+”“-”“×”“÷”運算鍵以及“.”之外,還包括了三角函數(shù),指數(shù)函數(shù),開根,求余數(shù),倒數(shù)等,為了實現(xiàn)這一個復(fù)用功能,需要進行按鍵的擴展。此時,則需要幾個獨立按鍵做擴展使用。獨立按鍵的設(shè)計如圖3.10所示。圖3.10 獨立復(fù)用按鍵由3.10圖可知,四個獨立按鍵各有功能,從左往右分別是:清除鍵,用于清楚所有數(shù)據(jù);刪除鍵,用來撤銷錯誤輸入;保存數(shù)據(jù)鍵,用來存儲結(jié)果數(shù)據(jù);計算器復(fù)用功能鍵,用來對矩陣鍵盤進行復(fù)用。3.5 本章小結(jié)本章主祝要介紹了計算器各個主要硬件模塊,包括:單片機最小系統(tǒng),顯示模塊,
27、鍵盤電路,以及一些擴展方面的設(shè)計方案。4 軟件設(shè)計軟件設(shè)計部分主要介紹計算器個模塊的軟件設(shè)計流程。設(shè)計統(tǒng)一采用C語言編程,C語言功能強大,同時具有高級語言和匯編語言的特點,并且可以直接對硬件進行操作。C語言運算符和數(shù)據(jù)類型相當豐富,用C語言配合單片機來進行計算器設(shè)計相當便捷。4.1 系統(tǒng)總設(shè)計流程系統(tǒng)總流程圖如圖4.1所示。圖4.1 系統(tǒng)運行總流程圖如圖4.1所示,系統(tǒng)主要主要由主程序、按鍵輸入子程序、顯示子程序、運算部分組成。主程序主要完成初始化功能;液晶主要負責(zé)顯示輸入數(shù)據(jù)和輸出結(jié)果的工作;按鍵主要負責(zé)鍵入數(shù)據(jù),進行數(shù)據(jù)運算。系統(tǒng)進入工作時首先進行初始化工作,之后系統(tǒng)將在循環(huán)以下這一過程:
28、顯示,按鍵掃描,鍵碼處理,檢測輸入數(shù)據(jù)是否能夠正確進行運算處理,如果數(shù)據(jù)正確則進行數(shù)據(jù)運算,反之,則返回到按鍵,重新掃描。4.2 按鍵程序流程設(shè)計按鍵模塊的的子程序執(zhí)行流程為:首先需要進行行列按鍵掃描,此時需要一個按鍵消抖的過程,然后確定按鍵位置,在進入對應(yīng)鍵碼內(nèi)的數(shù)據(jù)進行處理。按鍵模塊子程序流程圖如圖4.2所示。圖4.2 按鍵掃描流程鍵盤掃描子程序,首先讀出I/O口低四位,然后讀出I/O口高四位,鍵值并顯示緩存。然后將鍵如的值轉(zhuǎn)換為ASCII碼然后就可以軟件來設(shè)置硬件按鍵各個鍵代表的內(nèi)容。讀鍵程序使用行列掃描法。流程圖中的消除抖動所用就是軟件消抖的方法。軟件消抖所用到的延時函數(shù)如下:/*延時
29、*/void delay(uchar z) uchar x,y; for(x=z;x>0;x-) for(y=100;y>0;y-);4.3 LCD1602顯示流程設(shè)計當按鍵鍵入數(shù)值和結(jié)果顯示時,都需要用到LCD1602作為顯示屏,LCD1602顯示流程如圖4.3所示。圖4.3 顯示流程圖由圖4.3可以很清楚地看出LCD1602的顯示流程。顯示模塊程序首先要對顯示模塊進行初始化,然后控制光標的位置。定義液晶顯示的控制端口,用sbit指令完成;然后設(shè)置清屏、開關(guān)顯示、歸位、顯示位置的首地址等等。相關(guān)的代碼如下:/*lcd*/sbit lcdrs=P37; /LCD控制腳sbit lc
30、drw=P36;sbit lcden=P35; /*液晶初始化*/void init(void ) write_com(0x38); /模式:8位數(shù)據(jù),兩行,5*7字體 write_com(0x0c); /開顯示,無光標 write_com(0x06); /向左增量移動 write_com(0x01); /清屏/*寫命令*/void write_com(uchar com) lcdrs=0; lcdrw=0; lcden=0; P1=com; delay(5); /延時函數(shù) lcden=1; delay(5); lcden=0;/*寫數(shù)據(jù)*/void write_date(uchar date
31、) lcdrs=1; lcdrw=0; lcden=0; P1=date; delay(5); lcden=1; delay(5); lcden=0; /*讀AC 地址*/ void read_date(void)lcdrs=0;lcdrw=1;delay(5);P1=0xff;lcden=1;delay(5);state=P1;delay(5);lcden=0;delay(5);state=state&127; 4.4 本章小結(jié)本章主要介紹計算器各個模塊詳細的運行流程,包括系統(tǒng)流程圖,按鍵程序流程圖,LCD顯示流程圖等。計算器的程序主要包括以下模塊: 讀鍵程序、判斷按鍵程序段、運算操
32、作子程序等部分;LCD顯示程序模塊;主程序模塊,對整個系統(tǒng)進行初始化。C語言模塊化的特點使得這些程序模塊條理清晰。與此同時,為了挺高整個系統(tǒng)的有效性,加入了復(fù)位按鍵,錯誤提示報警等。5 功能仿真及其結(jié)果根據(jù)各個模塊介紹以及軟件設(shè)計流程圖,進行硬件仿真,從而達到計算器的基本功能,并且在此基礎(chǔ)上進行功能擴展。5.1 軟件簡介5.1.1 KEIL軟件簡介KEIL C51是基于51系列單片機為內(nèi)核的,由美國KEIL Software公司研制的一款智能、實用的開發(fā)系統(tǒng)軟件。KEIL C51為80C51系列的單片機不但提供了C語言編譯環(huán)境,而且也保留了匯編環(huán)境。uVision2是由KEIL Softwar
33、e公司研制的51系列兼容單片機C語言軟件開發(fā)工具,uVision2的集成開發(fā)環(huán)境囊括了:匯編器、編譯器、實時操作系統(tǒng)、調(diào)試器和項目管理器。uVision2可以為用戶提供一個單一而又方便的開發(fā)環(huán)境。5.1.2 PPOTUES ISIS簡介PROTUES軟件是由英國Labcenter Electronics公司研發(fā)的EDA系統(tǒng)設(shè)計工具軟件,它可以幫助設(shè)計者進行電路分析和仿真。該軟件包含其它EDA工具軟件的仿真功能,而且還可以仿真單片機和外圍電路。PROTUES不僅是當今最好的單片機和外圍電路仿真的工具軟件,而且還提供設(shè)計、仿真數(shù)字電路和分析、模擬電路及模/數(shù)混合電路的平臺,真正的實現(xiàn)了從概念到產(chǎn)品
34、的完整設(shè)計。PROTUES可以仿真51系列、PIC和AVR等主流單片機。該軟件可以直接在原理圖的虛擬原型上進行編譯,然后配合顯示和輸出可以看到仿真的結(jié)果。ISIS是一款操作智能、簡便,可完成系統(tǒng)仿真的實用軟件。5.2 仿真結(jié)果與操作說明5.2.1 系統(tǒng)總體仿真本系統(tǒng)以AT89C52單片機為核心,選用11.0592MHz的晶振,利用液晶和鍵盤來做計算器設(shè)計,應(yīng)用范圍廣泛而且方便實用。通過Proteus仿真環(huán)境,keil編程環(huán)境的支持,用主程序初始化系統(tǒng),其他程序模塊化選擇的方式,進行軟件調(diào)試,當各個模塊都調(diào)試成功之后,添加入主程序,最后完成計算器的設(shè)計。本設(shè)計應(yīng)當達到一般計算器所具有的加、減、乘
35、、除四則運算功能,并且在此基礎(chǔ)上擁有一定的擴展。因此,本設(shè)計需要優(yōu)化硬件電路的設(shè)計,減少串口的使用,合理的分配單片機硬件資源,在保證計算器功能正常實現(xiàn)的同時還需要保證計算器擁有一定的抗干擾性。根據(jù)模塊需求以及計算器的工作流程基本確定計算器總體的仿真設(shè)計圖,系統(tǒng)的總體仿真圖如圖5.1所示。圖5.1 總體仿真圖仿真圖中的硬件分配:(1)P1口與P3.6、P3.7口:為輸出端口,連接LCD1602的D0D7,顯示數(shù)據(jù)。(2)P2口:為輸入端口,與4*4矩陣鍵盤連接,實現(xiàn)計算器的按鍵輸入。(3)P3.0P3.3口:連接4個獨立按鍵,做計算器的擴展使用。整個計算器包括鍵盤電路與顯示電路。運用C語言mat
36、h.h函數(shù)庫可以在軟件方面實現(xiàn)四則運算,并通過KEIL軟件編程生成hex文件,然后通過PROTEUS中單片機鏈接hex文件,從而使整個仿真系統(tǒng)工作。根據(jù)硬件仿真和軟件語言編程,系統(tǒng)基本完成了簡易計算器的功能,并且在此基礎(chǔ)上進行了功能擴展。下面分別介紹所取得的研究成果。5.2.2 系統(tǒng)的操作說明(1) 開機默認LCD1602顯示屏亮起并顯示本人信息,做屏保使用,按清除鍵可清除信息做計算器使用,如圖5.2所示。圖5.2 開機顯示(2)計算器:09和.為數(shù)字按鍵;“”“”“×”“÷”為運算符號;C 是清除鍵,也做計算器復(fù)位使用;DEL是刪除鍵,用于撤銷上次鍵入的錯誤數(shù)據(jù),可以連續(xù)
37、按DEL進行連續(xù)撤銷;M+鍵用于存儲上次計算的數(shù)據(jù)和結(jié)果,按一次M+輸出上次結(jié)果,按TS&S 后再按此鍵可以輸出數(shù)據(jù)。如果以M+TS&SM+'的順序按下鍵盤,那么M+中的數(shù)據(jù)將會更新;TS&S鍵為復(fù)用鍵,先按下TS&S,再按下數(shù)字上標明的函數(shù)即可進行函數(shù)運算。(3)運算格式:(符號)A 運算符(符號)B格式中A、B是運算數(shù)據(jù),可以是鍵入的數(shù)字,也可以是函數(shù)或者M+中的數(shù)據(jù);符號即+、-號,可以隨意添加減;如果本次計算沒有按等號鍵而是繼續(xù)按運算符,則結(jié)果會顯示,成為下次運算的A運算符,通過這種按鍵方式可以進行連續(xù)運算。函數(shù)說明:Func (符號)C,F(xiàn)un
38、c為函數(shù),符號為+、-,C只能是數(shù)字、M+或者是。函數(shù)主要包括:1)sin 正弦函數(shù)2)Cos 余弦函數(shù)3)tan 正切函數(shù)4)exp 以e為底的指數(shù)函數(shù)5)ln 自然對數(shù)值6)lg 以10為底的對數(shù)7)sqrt 平方根8)dao 倒數(shù)9) 圓周率,可以帶加權(quán)10)度 角度輸入11)xy x的y次方12)f% A/B的余數(shù)(雙精度)5.3 加減乘除四則運算顯示結(jié)果上面已經(jīng)提到,在系統(tǒng)編程語句中加入C語言“math.h”庫函數(shù),使得數(shù)學(xué)計算能夠很容易實現(xiàn)。圖5.3 加法的實現(xiàn)如圖5.3所示,數(shù)據(jù)計算時將兩個數(shù)據(jù)分別列于LCD液晶屏的第一行和第二行,出結(jié)果時,液晶屏?xí)诘谝恍酗@示結(jié)果。這樣做的目的
39、主要是為了在運算位數(shù)較多的數(shù)據(jù)時,顯示更加直觀。如圖5.4所示,本次設(shè)計的顯示方法相當直觀。圖5.4 減法的實現(xiàn)如圖5.4所示,和加法一樣,減法也能夠?qū)崿F(xiàn),并且能夠顯示負數(shù)結(jié)果。計算結(jié)果10-6106以內(nèi)以f%方式顯示,超過范圍以e%方式顯示,保留有六位有效數(shù)字,但是計算結(jié)果范圍不能超過10-381038。乘法與除法都能夠通過相同的操作,進行計算。如圖5.5和5.6所示。圖5.5 乘法的實現(xiàn)圖5.6 除法的實現(xiàn)如圖5.5所示,除法已經(jīng)可以實現(xiàn),精確到小數(shù)點后5位。本次設(shè)計的計算器已經(jīng)可以完成帶有小數(shù)點數(shù)據(jù)的運算,小數(shù)點運算同樣適用于加減法和乘法計算。5.4 計算器擴展功能的實現(xiàn)完成基本的四則運
40、算之后,考慮擴展問題,簡易計算器的擴展主要是面向科學(xué)計算器發(fā)展。因此,除了實現(xiàn)加減乘除四則運算,設(shè)計出能夠完成一些如三角函數(shù)運算的計算器也是計算器設(shè)計的目的。本次設(shè)計的擴展部分上面已經(jīng)提到,包括三角函數(shù),指數(shù)函數(shù),對數(shù)函數(shù),sqrt 平方根,倒數(shù)等。經(jīng)過仿真以及C語言代碼編程,上述函數(shù)已經(jīng)可以實現(xiàn)。當我們需要進行按鍵復(fù)用時,按下TS&S鍵,此時,液晶屏左下角會出現(xiàn)復(fù)用標志,如圖5.7所示。圖5.7按鍵復(fù)用標志按下TS&S復(fù)用鍵,屏幕左下角出現(xiàn)“S”標志,再按一次可以復(fù)用的函數(shù)按鍵,即可在原計算器基礎(chǔ)上進行一些擴展運算。因為C語言強大的math.h庫函數(shù),使得三角函數(shù)可以很方便的
41、執(zhí)行。下面來介紹擴展部分的運算情況。5.4.1 三角函數(shù)的實現(xiàn)C語言math.h庫函數(shù)也能夠?qū)崿F(xiàn)三角函數(shù),需要注意的是輸入的數(shù)據(jù)要注意的是角度數(shù)據(jù)。要運算三角函數(shù)要先按一下復(fù)用鍵,然后再輸入三角函數(shù),再輸入數(shù)字,然后在按下復(fù)用鍵輸入角度。我們以60°角為例,來計算三角函數(shù)三角函數(shù)的運算。計算結(jié)果如圖5.85.11所示。圖5.8 sin60°計算圖5.9 cos60°計算圖5.10 tan60°計算以上三個結(jié)果基本完成了計算器三角函數(shù)的實現(xiàn),在每次運算結(jié)束時,可以按C鍵進行清零進行下一次運算。5.4.2 對數(shù)和指數(shù)函數(shù)的實現(xiàn)實現(xiàn)三角函數(shù)功能之后,再進行下一
42、步的函數(shù)運算展示。下面就介紹對數(shù)函數(shù)在此設(shè)計中的實現(xiàn)。計算器已經(jīng)可以完成“l(fā)g”、“l(fā)n”和“exp”函數(shù)的計算。圖5.11 lg100的計算圖5.12 ln的計算這里的就是一個數(shù)字,因為e,所以此程序可以運行,而當計算ln0時,程序便會報錯,液晶會顯示“error!”如圖5.13所示。圖5.13 ln0報錯只要程序輸入無法計算,計算器便都會報錯,適用于整個計算器系統(tǒng),這樣做提高了運算效率。圖5.14表示exp指數(shù)函數(shù)的計算。圖5.14 exp函數(shù)計算5.4.3 平方根與倒數(shù)以及余數(shù)的實現(xiàn)平方根與倒數(shù)也都可以在該計算器中實現(xiàn)。如圖5.15和5.16所示。圖5.15 開根號計算開根號后數(shù)據(jù)為無窮
43、小數(shù)時,保存到小數(shù)點后5位。圖5.16顯示了倒數(shù)的計算。圖5.16 倒數(shù)計算除此之外,計算器還支持求余數(shù)計算,我們以6%5為例。計算結(jié)果如圖5.17所示。圖5.17 6%5余數(shù)計算由以上截圖可知,本次設(shè)計的計算器已經(jīng)可以完成大部分基本功能,擴展部分也基本能夠達到要求。5.5 本章小結(jié)本章主要介紹了系統(tǒng)仿真功能以及結(jié)果展示,在完成基本四則運算以及帶小數(shù)點計算功能的同時,擴展部分函數(shù)也基本能夠?qū)崿F(xiàn)。結(jié) 論本次設(shè)計是基于單片機的計算器設(shè)計,在完成基本的四則運算之后,在此基礎(chǔ)進行了一定的功能擴展。計算器以矩陣鍵做數(shù)據(jù)輸入,4個獨立按鍵做多功能按鍵,LCD1602作為顯示輸出,AT89C52單片機作為系
44、統(tǒng)核心進行控制。計算器能夠?qū)崿F(xiàn)14位以內(nèi)的浮點數(shù)運算和1012位浮點數(shù)函數(shù)運算,具有撤銷操、復(fù)位、連續(xù)計算、角度轉(zhuǎn)換等功能。計算結(jié)果10-6106以內(nèi)以f%方式顯示,超過范圍以e%方式顯示,保留有六位有效數(shù)字,但是計算結(jié)果范圍不能超過10-381038。本次畢業(yè)設(shè)計使我清楚的認識到查資料做對比的重要性,完善自己的設(shè)計需要經(jīng)過很多次的修改,查閱相關(guān)資料之后會使得效果事半功倍。在完成此次的畢業(yè)設(shè)計之前,我需要知道計算器大致組成,并且需要了解一些硬軟件設(shè)計相關(guān)概念。在進行硬件電路設(shè)計的時侯,需要明白系統(tǒng)需要達到什么標準和擁有的功能,從而根據(jù)所需選擇合適的芯片,不能盲目的選擇價格偏高,功能過剩的單片機
45、,從降低成本考慮,能完成計算功能,并可以進行擴展的單片機芯片足矣。軟件設(shè)計需要對單片機模塊化設(shè)計有一個系統(tǒng)的了解,同時也需要對使用的單片機的內(nèi)部結(jié)構(gòu)以及接口電路有一個很好的了解,在進行編寫LCD1602液晶相關(guān)代碼之前,需要熟悉LCD1602的內(nèi)部結(jié)構(gòu)和一些常用的代碼指令,要有一個清晰的思路。在調(diào)試階段,需要嚴謹細心,仔細排錯找問題,最終得出結(jié)果,完成設(shè)計。致 謝參 考 文 獻1 黃惟公. 單片機原理與應(yīng)用技術(shù)M. 西安:西安電子科技大學(xué)出版社,2007.2 三恒星科技. 單片機原理與應(yīng)用實例M. 北京:電子工業(yè)出版社,2007.3 于志贛. 液顯LCD1602模塊的應(yīng)用J. 機電技術(shù),200
46、9(3):21-23.4 于永. 單片機C語言實例精講M. 北京:電子工業(yè)出版社, 2008.5 陸應(yīng)華. 電子系統(tǒng)設(shè)計教程M. 北京:國防工業(yè)出版社, 2009.6 譚浩強. C程序設(shè)計教程M. 北京:清華大學(xué)出版社,2007.7 賈立新. 電子系統(tǒng)設(shè)計與實踐M. 北京:清華大學(xué)出版社, 2007 .8 李建忠. 單片機原理及應(yīng)用M. 西安:西安電子科技大學(xué)出版社,2007.9 范愛平. 電子電路實驗與虛擬技術(shù)M. 濟南:山東科學(xué)技術(shù)出版社, 2002.10 謝自美. 電子線路設(shè)計.實驗.測試M. 武漢:華中科技大學(xué)出版社, 2001.11 王立欣. 電子技術(shù)實驗與課程設(shè)計M. 哈爾濱:哈爾
47、濱工業(yè)大學(xué)出版社, 2003.12 路勇. 電子電路實驗與仿真M. 北京:清華大學(xué)出版社, 2003.13 吳建輝. CMOS模擬集成電路分析與設(shè)計M. 北京:電子工業(yè)出版社, 2004.14 陳金平. 電子系統(tǒng)設(shè)計M. 北京:電子工業(yè)出版社, 2007.15 徐愛軍. 單片機原理實用教程M. 北京:電子工業(yè)出版社, 2009.16 姚福安. 電子電路設(shè)計與實踐M. 山東:山東科學(xué)出版社, 2001.17 何立民. 單片機應(yīng)用系統(tǒng)設(shè)計M. 北京:北京航空航天大學(xué)出版社, 1990.18 夏繼強. 單片機實驗與實踐教程M. 北京:北京航空航天大學(xué)出版社, 2001.19 Kang,Sung-Mo
48、/Leblebici,Yusuf. CMOS Digital Integrated Circuits Analysis and DesignM. McGraw-Hill College, 2002.20 Meehan Joanne,Muir Lindsey. SCM in Merseyside SMEs:Benefits and barriersJ. TQM Journal, 2008.21 Lee Jri.High-Speed Circuit Designs for Transmittersin Broad-band Data LinksJ. IEEE Journal of Solid-St
49、ate Circuits, 2006(5):566-573. 源碼僅供參考。#include "reg52.h"#include <stdlib.h> /包含atof(),字符串->實數(shù)#include <stdio.h> /包含sprintf(),實數(shù)->字符串#include <string.h> /包含strcpy(),字符串復(fù)制#include <math.h> /數(shù)學(xué)函數(shù)頭文件#define uchar unsigned char#define uint unsigned intuchar num;/*lcd*/sbit lcdrs=P37; /LCD控制腳sbit lcdrw=P36;sbit lcden=P35;bit form; /lcd顯示方式切換uchar idata state; /lcd狀態(tà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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025項目法律服務(wù)合同
- 2023八年級英語下冊 Unit 4 Why don't you talk to your parents Section A 第1課時(1a-2d)說課稿 (新版)人教新目標版
- 7多元文化 多樣魅力《多彩的世界文化》(說課稿)-統(tǒng)編版道德與法治六年級下冊
- 2025合同模板承包合同書(車輛)范本
- 2025中外合資公司勞動合同協(xié)議書
- 直飲水施工方案
- 食堂餐廳售賣設(shè)備施工方案
- 2024年春七年級語文下冊 第4單元 13 葉圣陶先生二三事說課稿 新人教版
- 《1 信息并不神秘》說課稿-2023-2024學(xué)年華中師大版信息技術(shù)三年級上冊
- Unit 2 Expressing yourself Part A Lets spell(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級下冊001
- 如何當好學(xué)校的中層干部
- SWITCH塞爾達傳說曠野之息-1.6金手指127項修改使用說明教程
- 2022-2023學(xué)年廣東省佛山市順德區(qū)高三(下)模擬英語試卷
- 節(jié)后復(fù)工培訓(xùn)內(nèi)容五篇
- GB/T 33322-2016橡膠增塑劑芳香基礦物油
- GA 1051-2013槍支彈藥專用保險柜
- 某水毀公路維修工程施工方案
- 家庭病房工作制度和人員職責(zé)
- 建設(shè)工程監(jiān)理合同示范文本GF-2018-0202
- 2022質(zhì)檢年終工作總結(jié)5篇
- 江蘇省中等職業(yè)學(xué)校學(xué)業(yè)水平考試商務(wù)營銷類(營銷方向)技能考試測試題
評論
0/150
提交評論