基于8051與1601LCD設(shè)計(jì)的計(jì)算器_第1頁
基于8051與1601LCD設(shè)計(jì)的計(jì)算器_第2頁
基于8051與1601LCD設(shè)計(jì)的計(jì)算器_第3頁
基于8051與1601LCD設(shè)計(jì)的計(jì)算器_第4頁
基于8051與1601LCD設(shè)計(jì)的計(jì)算器_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 密級(jí): nanchang university學(xué) 士 學(xué) 位 論 文thesis of bachelor(20082012年)題 目: 基于8051與1601lcd設(shè)計(jì)的計(jì)算器 英文題目: in 8051 and 1601 lcd design calculator 學(xué) 院: 系 別: 信息工程系 專 業(yè): 電子信息工程 班 級(jí): 電子信息工程(本) 學(xué)生姓名: 學(xué) 號(hào): 8051107013 指導(dǎo)老師: 起訖日期: 2012年2月1日2012年4月30日 目錄摘要.1第1章 緒論.3第2章 方案論證與設(shè)計(jì).42.1 要求與內(nèi)容.42.2 方案一.62.3 方案二.62.4 方案三.72.5

2、 方案四.72.6 方案論證與設(shè)計(jì).7第3章 硬件模塊介紹.73.1 系統(tǒng)模塊圖.83.2 單片機(jī).83.3 輸入模塊:鍵盤掃描.93.4 運(yùn)算模塊:單片機(jī)控制.113.5 顯示模塊:lcd1602.11第4章 軟件設(shè)計(jì).124.1 讀鍵輸入程序流程圖設(shè)計(jì).124.2 主程序流程圖設(shè)計(jì).13最后總結(jié).14第5章 硬軟件的調(diào)試.155.1 調(diào)試.155.2 實(shí)驗(yàn)結(jié)果與性能達(dá)標(biāo).16結(jié) 論.17致 謝.18參考文獻(xiàn).18附錄一 系統(tǒng)原理圖.19附錄二 程序源代碼.20 摘要當(dāng)今時(shí)代,是一個(gè)新技術(shù)層出不窮的時(shí)代。在電子領(lǐng)域,尤其是自動(dòng)化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng)正以前所

3、未見的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動(dòng)控制的核心就是單片機(jī)。目前,一個(gè)學(xué)習(xí)與應(yīng)用單片機(jī)的高潮正在工廠、學(xué)校及企事業(yè)單位大規(guī)模地興起。過去習(xí)慣于傳統(tǒng)電子領(lǐng)域的工程師、技術(shù)員正面臨著全新的挑戰(zhàn),如不能在較短時(shí)間內(nèi)學(xué)會(huì)單片機(jī),勢(shì)必會(huì)被時(shí)代所遺棄,只有勇敢地面對(duì)現(xiàn)實(shí),挑戰(zhàn)自我,加強(qiáng)學(xué)習(xí),爭(zhēng)取在較短的時(shí)間內(nèi)將單片機(jī)技術(shù)融會(huì)貫通,才能跟上時(shí)代的步伐。 它所給人帶來的方便也是不可否定的,它在一塊芯片內(nèi)集成了計(jì)算機(jī)的各種功能部件,構(gòu)成一種單片式的微型計(jì)算機(jī)。20世紀(jì)80年代以來,國際上單片機(jī)的發(fā)展迅速,其產(chǎn)品之多令人目不暇接,單片機(jī)應(yīng)用不

4、斷深入,新技術(shù)層出不窮。20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。本設(shè)計(jì)是由單片機(jī)實(shí)現(xiàn)的模擬計(jì)算器,它不僅能實(shí)現(xiàn)數(shù)據(jù)的加減乘除運(yùn)算,而且還能使數(shù)據(jù)及其計(jì)算結(jié)果在數(shù)碼管上顯示出來,能夠?qū)崿F(xiàn)0-256的數(shù)字四則運(yùn)算。本設(shè)計(jì)是用單片機(jī)at89c51來控制,采用共陽極數(shù)碼顯示,軟件部分是由c語言來編寫的。設(shè)計(jì)任務(wù)利用鍵盤和數(shù)碼管設(shè)計(jì)一個(gè)簡單的數(shù)學(xué)計(jì)算器,可以完成簡單的如加,減,乘,除的四則運(yùn)算,并將運(yùn)算結(jié)果在數(shù)碼管上顯示出來。 abstra

5、ctthe modern era, is a new technology emerge in endlessly era. in the electronic field, especially automation intelligent control field, the traditional division components or digital logic circuit consists of the control system is unprecedented speed is single chip microcomputer intelligent control

6、 system is replaced. scm has small, strong function, the cost is low, the wide application advantages, such as, say, intelligent control and automatic control is the core of the single chip microcomputer. at present, a study and application of the climax of the single chip microcomputer is factory,

7、schools and enterprises and institutions rise on a large scale. the past used to traditional electronic fields of engineers, technicians are faced with new challenges, such as not in a relatively short period of time to learn a single-chip microcomputer, certainly will will be thrown up by age, only

8、 brave to face reality, challenge ourselves, strengthen learning, for in a relatively short time will of single chip microcomputer mastery, to keep up with the pace of the times.it brings convenience is not negative, it on a chip integrated within the functions of computer parts, constitute a kind o

9、f single chip microcomputer. since the 1980 s, the international on mcu development rapidly, its product of dazzling, scm unceasingly thorough, new technology are endless. the 20 th century, electronic technology has experienced rapid growth in its promotion, modern electronic product almost permeat

10、ed every area of society a powerful impetus to the development of the social productive forces and the enhancement of social informatization, and at the same time, make modern electronic products to further improve the performance, product update rhythm also more and more quickly.this design is by m

11、icrocomputer simulation calculator, it can not only realize the data add, subtract, multiply and divide operation, and still can make the data and results in digital tube displayed, will be able to realize the 0-256 digital arithmetic. this design is at89c51 single chip microcomputer to control with

12、, of all the anode digital display, software part is written by the c language. design taskusing a keyboard and digital pipe design a simple mathematical calculator, can complete simple as add, subtract, multiply, divide arithmetic, and the operation result in digital tube will be displayed. 第一章 緒論計(jì)

13、算器(calculator)是微型電子計(jì)算機(jī)的一種特殊類型。它與一般通用計(jì)算機(jī)的主要區(qū)別在于程序輸入方式的不同。計(jì)算器的程序一般都已經(jīng)固定,只需按鍵輸入數(shù)據(jù)和運(yùn)算符號(hào)就會(huì)得出結(jié)果,很容易就能掌握。而一般計(jì)算機(jī)的程序可以根據(jù)需要隨時(shí)改動(dòng),或重新輸入新的程序。簡易計(jì)算器主要用于加減乘除;科學(xué)計(jì)算器,又增添了初等函數(shù)運(yùn)算(有的還帶有數(shù)據(jù)總加、求平均值等統(tǒng)計(jì)運(yùn)算)。現(xiàn)代電子計(jì)算器首次問世是1963年。那時(shí)的計(jì)算器是臺(tái)式的,在美國波士頓的電子博覽會(huì)上展出過。與計(jì)算機(jī)相比,它小巧玲瓏,計(jì)算迅捷,一般問題不必事先編寫復(fù)雜的程序。隨著社會(huì)需求,計(jì)算器也從原有單一的數(shù)字加減計(jì)算演變?yōu)閺?fù)雜的多種運(yùn)算?,F(xiàn)在不在單一

14、的在某一方面而是涉及到生活的方方面面.計(jì)算器為人們?nèi)粘I钪惺∪チ舜罅康臅r(shí)間和精力,成為現(xiàn)代社會(huì)最普遍、最實(shí)用的計(jì)算工具,作為學(xué)習(xí)電子行業(yè)的我們,就更應(yīng)該更貼近生活,開發(fā)制作一些具有實(shí)用意義,又具有學(xué)習(xí)意義的小產(chǎn)品。在設(shè)計(jì)中,把理論與實(shí)踐相結(jié)合,用理論來指導(dǎo)實(shí)踐,通過實(shí)踐更好的掌握理論知識(shí),達(dá)到全面提高各方面的專業(yè)知識(shí)和專業(yè)技能。因此針對(duì)以上方面,在貼近自己的實(shí)際生活中,結(jié)合自己專業(yè)特點(diǎn),選擇用8051單片機(jī)來設(shè)計(jì)簡易計(jì)算器,一方面,簡易計(jì)算器對(duì)我們來說比較熟悉,對(duì)沒有很多設(shè)計(jì)經(jīng)驗(yàn)的我們來說也比較容易能接受,容易激發(fā)我們的興趣。另一方面,在單片機(jī)百花齊放的時(shí)代,我們需放點(diǎn)精力在單片機(jī)上,針對(duì)為

15、何選8051,因?yàn)樗且环N通用型的單片機(jī),性價(jià)比較高,雖然是8位的單片機(jī),但現(xiàn)在應(yīng)用的量及范圍還很大,同時(shí),因51單片機(jī)發(fā)展的歷史長,學(xué)習(xí)資料比較多而且完善??傊?,這是我選擇用8051來設(shè)計(jì)簡易計(jì)算器的原因。 第二章 方案設(shè)計(jì)與論證2.1 要求與內(nèi)容 為了滿足計(jì)算器的基本要求,可以基本的運(yùn)算(加減乘除),數(shù)據(jù)歸零和出錯(cuò)警告提示,我們采用基于單片機(jī)設(shè)計(jì)計(jì)算器,并用lcd 液晶顯示數(shù)據(jù),4*4 的矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)輸入,程序語言我們使用c語言。2.2 方案一此方案中,該計(jì)算器的設(shè)計(jì)采用了現(xiàn)場(chǎng)可編程邏輯器件fpga的asic設(shè)計(jì),并基于超高速硬件描述語言vhdl在xilinx公司的spartanii系

16、列的2sc200pq2085芯片上編程實(shí)現(xiàn)整個(gè)系統(tǒng)的控制。計(jì)算器以fpga為核心控制器,系統(tǒng)由分頻模塊、運(yùn)算模塊和譯碼顯示模塊四個(gè)模塊構(gòu)成。利用硬件描述語言編程,仿真調(diào)試后下載到可編程邏輯器件上實(shí)現(xiàn)。對(duì)計(jì)算器工作的過程進(jìn)行判斷和處理。2.3 方案二 用數(shù)字邏輯電路設(shè)計(jì)簡易計(jì)算器,此方案中,用兩塊帶并行輸入的bcd碼計(jì)數(shù)器74ls192芯片,和一塊8位數(shù)比較器74ls682,,兩塊bcd七段譯碼器,兩個(gè)數(shù)碼管和脈沖發(fā)生電路來實(shí)現(xiàn)的。該計(jì)算器用555做時(shí)鐘信號(hào)發(fā)生器,通過選擇開關(guān)把cp脈沖加到計(jì)數(shù)器,計(jì)數(shù)器置數(shù)時(shí),先將置數(shù)開關(guān)合上,再通過bcd撥碼開關(guān)置數(shù),完成后將置數(shù)開關(guān)復(fù)位,計(jì)數(shù)器的輸出要通過

17、七段譯碼器送到數(shù)碼管顯示,將計(jì)數(shù)器的輸出信號(hào)送到比較器與所設(shè)的上限數(shù)值進(jìn)行比較,將比較結(jié)果再通過繼電器輸出,將結(jié)果送到脈沖信號(hào)發(fā)生器,進(jìn)行加減法計(jì)算。2.4 方案三基于arm簡易計(jì)算器的設(shè)計(jì)此方案中,基于jxarm9-2410實(shí)驗(yàn)箱實(shí)現(xiàn)計(jì)算機(jī)器,要求可實(shí)現(xiàn)帶括號(hào)以及優(yōu)先級(jí)的計(jì)算器??蛇\(yùn)算加減乘除等基本運(yùn)算。它的計(jì)算原理置操作數(shù)棧為空,操作符棧壓入元素"#"(它具有最高優(yōu)先級(jí)),依次讀入表達(dá)式中的每個(gè)字符ch,如果ch是操作數(shù),則ch壓入操作數(shù)棧,如果ch是操作符,那么將ch和操作符棧頂元素進(jìn)行優(yōu)先級(jí)比較(如×優(yōu)先級(jí)高于)。如果優(yōu)先級(jí)大于當(dāng)前棧頂元素,那么將其壓棧,

18、如果其優(yōu)先級(jí)小于當(dāng)前棧頂元素,那么執(zhí)行取當(dāng)前棧頂操作符,如果優(yōu)先級(jí)相等,則當(dāng)前操作符出棧.2.5 方案四基于單片機(jī)的簡易計(jì)算器設(shè)計(jì)此方案中,硬件主要由四部分組成,核心部分為8051單片機(jī)芯片,按鍵部分是一個(gè)keypad-calculator鍵盤,采用軟件識(shí)別鍵值,并執(zhí)行相應(yīng)的操作。顯示部分是一個(gè)1601液晶顯示器。軟件部分主要用c程序語言來實(shí)現(xiàn)。執(zhí)行過程:開機(jī)顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,經(jīng)通過數(shù)碼管顯示出來,當(dāng)鍵入+、-、*、/運(yùn)算符,計(jì)算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲(chǔ),并等待再次鍵入數(shù)值,當(dāng)再鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號(hào)就會(huì)在數(shù)碼管上輸出運(yùn)算結(jié)果。2.6 方案論證與設(shè)計(jì)方案一:用fp

19、ga來實(shí)現(xiàn) ,可以將所有器件集成在一塊芯片上,體積大大減小,外圍電路也比較簡單,易于實(shí)現(xiàn),但其運(yùn)算速度比單片機(jī)實(shí)現(xiàn)慢,價(jià)格也比較昂貴。方案二:利用邏輯運(yùn)算電路,由加法器,控制器,延時(shí)電路以及一些輔助電路構(gòu)成,然后對(duì)單元電路進(jìn)行焊接,組合,比較直觀、邏輯器件分工鮮明、思路也比較清晰,但是由于通道的元器件種類、個(gè)數(shù)繁多,而過于復(fù)雜的硬件電路也容易引起系統(tǒng)的精度不高、體積過大等不利因素。方案三:采用對(duì)于現(xiàn)有的開發(fā)硬件平臺(tái)的試驗(yàn)箱來實(shí)現(xiàn),對(duì)于設(shè)計(jì)的器件運(yùn)用不會(huì)太復(fù)雜,費(fèi)用也較低,但是在這種基礎(chǔ)上的設(shè)計(jì)比較沒有普遍性,很少能擁有這種條件的。方案四:采用8051單片機(jī)加上外圍的鍵盤模塊和液晶顯示模塊,通過

20、軟件編程,仿真,調(diào)試,符合要求后將程序用編程器寫入到單片機(jī)芯片上,利用單片機(jī)的中斷響應(yīng)計(jì)算器運(yùn)算的請(qǐng)求,然后進(jìn)行相應(yīng)的處理。利用ram存放計(jì)算器系統(tǒng)存儲(chǔ)的數(shù)據(jù),從而可以根據(jù)需要隨時(shí)的讀入和寫出。雖然處理速度比arm速度慢,但是用來設(shè)計(jì)計(jì)算器還是能滿足要求,而且單片機(jī)的接口簡單,方便我們使用,同時(shí)降低了我們的設(shè)計(jì)成本。因此我們選擇單片機(jī)來實(shí)現(xiàn)的方案。用8051單片機(jī)作為中央處理單元進(jìn)行計(jì)算器的設(shè)計(jì)。針對(duì)軟件編程,看個(gè)人習(xí)慣,用匯編來實(shí)現(xiàn)或者用c語言程序來實(shí)現(xiàn)都可以。c語言可能會(huì)更加簡短和容易理解,實(shí)現(xiàn)起來比匯編要快一點(diǎn)。總結(jié) 采用方案四利用單片機(jī)來實(shí)現(xiàn),對(duì)單片機(jī)快速發(fā)展的時(shí)代,單片機(jī)的應(yīng)用正在不

21、斷地走向深入。研究單片機(jī),熟練單片機(jī)的開發(fā)流程對(duì)應(yīng)屆畢業(yè)生來說是很有難度且有重要意義的,通過自己對(duì)這次簡易計(jì)算器的設(shè)計(jì)和實(shí)踐,能夠掌握單片機(jī)的設(shè)計(jì)流程及基本原理,對(duì)單片機(jī)的認(rèn)識(shí)有個(gè)質(zhì)的飛躍。作為大學(xué)生的我們,尤其是電子信息專業(yè)的我們,對(duì)于開發(fā)單片機(jī),探索單片機(jī),增強(qiáng)自己的專業(yè)技術(shù)技能,為我國的高科技技術(shù)貢獻(xiàn)一份自己力所能及的力量更是特別重要。系統(tǒng)模塊圖: 單 片 機(jī) 輸入 模塊 顯示 模塊 第三章 硬件模塊介紹3.2 單片機(jī)80c51 單片機(jī)是在一塊芯片中集成了cpu、ram、rom、定時(shí)器/計(jì)數(shù)器和多功能i/o等一臺(tái)計(jì)算機(jī)所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器

22、(cpu)、數(shù)據(jù)存儲(chǔ)器(ram)、程序存儲(chǔ)器(rom/eprom)、并行i/o 口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(sfr)。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,通過使用單片機(jī)編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機(jī)作為計(jì)算器的主要功能部件,可以進(jìn)行很快地實(shí)現(xiàn)運(yùn)算功能,如圖2-1所示: 3.3 輸入模塊:鍵盤掃描 計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡單,但是會(huì)占用大量的 i/o 口資源,因此在很多情況下都不采用這種方式。為此,我們引入了矩

23、陣鍵盤的應(yīng)用,采用四條i/o 線作為行線,四條i/o 線作為列線組成鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為 4×4個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中i/o 口的利用率。 矩陣鍵盤的工作原理: 計(jì)算器的鍵盤布局如圖2所示:一般有16 個(gè)鍵組成,在單片機(jī)中正好可以用一個(gè)p 口實(shí)現(xiàn) 16 個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也最常用。 8/*=-+976543201 圖2:矩陣鍵盤布局圖 p30 p31p32p33p34p35 p36 p37 圖3:矩陣鍵盤內(nèi)部電路圖由圖 3矩陣鍵盤內(nèi)部電路圖可以知道, 當(dāng)無按鍵閉合時(shí), p30p33與p34p37

24、之間開路。當(dāng)有鍵閉合時(shí),與閉合鍵相連的兩條 i/o 口線之間短路。判斷有無按鍵按下的方法是:第一步,置列線 p34p37 為輸入狀態(tài),從行線 p30p33 輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線 p34p37 讀入數(shù)據(jù),若有某一列為低電平,則對(duì)應(yīng)行線上有鍵按下。綜合一二兩步的結(jié)果,可確定按鍵編號(hào)。 但是鍵閉合一次只能進(jìn)行一次鍵功能操作, 因此須等到按鍵釋放后, 再進(jìn)行鍵功能操作,否則按一次鍵,有可能會(huì)連續(xù)多次進(jìn)行同樣的鍵操作。 3.4 運(yùn)算模塊:單片機(jī)控制 at80c51 單片機(jī)是在一塊芯片中集成了 cpu、ram、rom、定時(shí)器/

25、計(jì)數(shù)器和多功能 i/o等一臺(tái)計(jì)算機(jī)所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(cpu)、數(shù)據(jù)存儲(chǔ)器(ram)、程序存儲(chǔ)器(rom/eprom)、并行 i/o 口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(sfr)。35 單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,通過使用單片機(jī)編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機(jī)作為計(jì)算器的主要功能部件,可以進(jìn)行很快地實(shí)現(xiàn)運(yùn)算功能。 3.5 顯示模塊:lcd1602 本設(shè)計(jì)采用lcd液晶顯示器來顯示輸出數(shù)據(jù)。通過d0-d7引腳向lcd寫指令字或?qū)?/p>

26、數(shù)據(jù)以使lcd實(shí)現(xiàn)不同的功能或顯示相應(yīng)數(shù)據(jù)。 第四章 軟件設(shè)計(jì)4.1 讀鍵輸入程序流程圖設(shè)計(jì) 為了實(shí)現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個(gè)鍵都有其處理子程序,為此每個(gè)鍵都對(duì)應(yīng)一個(gè)碼鍵碼。為了得到被按鍵的鍵碼,現(xiàn)使用行掃描法識(shí)別按鍵。列掃描信號(hào)進(jìn)行讀入行的信號(hào)判斷該列是否有列的輸出是則進(jìn)行按照行列計(jì)算鍵盤的值,查表取得鍵碼并返回若否則進(jìn)行再次掃描。其程序框圖如下: 開始 初始化地址參數(shù) 4列掃描完? 該列有鍵輸入? 列掃描信號(hào)移位 返回 輸出列掃描信號(hào) 讀入行信號(hào) 是 按照行列計(jì)算鍵值 查表得鍵碼 等待按鍵釋放 返回否4.2主程序流程圖設(shè)計(jì) 運(yùn)算主程序設(shè)計(jì)首先初始化參數(shù),送led低位顯示“0”

27、,高位不顯示。然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵碼。判斷鍵碼是數(shù)字鍵、清零鍵還是功能鍵(“+”“-”“*”“/”“=” ),是數(shù)值鍵則送led顯示并保存數(shù)值,是清零鍵則做清零處理,是功能鍵則又判斷是“=”還是運(yùn)算鍵,若是“=”則計(jì)算最后結(jié)果并送led顯示,若是運(yùn)算鍵則保存相對(duì)運(yùn)算程序的首地址。運(yùn)算主程序框圖如3-4所示: 開始等待數(shù)值鍵入結(jié)果送顯示緩沖保存結(jié)果和功能鍵計(jì)算最后結(jié)果其它鍵是“=”本次功能鍵根據(jù)上次功能鍵和輸入的數(shù)據(jù)計(jì)算結(jié)果數(shù)值送顯示緩沖狀態(tài)清零輸入數(shù)值初始化參數(shù)lcd顯示有鍵輸入讀取鍵碼功能鍵盤清零鍵鍵碼是?數(shù)字鍵盤 圖4.2 運(yùn)算主程序框圖 最后總結(jié) : 本設(shè)計(jì)采用 80

28、s51芯片,實(shí)現(xiàn)了利用單片機(jī)進(jìn)行了一個(gè)簡單計(jì)算器設(shè)計(jì)。允許對(duì)輸入數(shù)據(jù)進(jìn)行加減乘除運(yùn)算及 lcd 顯示。如果設(shè)計(jì)對(duì)象是更為復(fù)雜的計(jì)算器系統(tǒng),其實(shí)際原理與方法與本設(shè)計(jì)基本相同。 另外,實(shí)例所設(shè)計(jì)的計(jì)算器是用 lcd 液晶顯示的,當(dāng)然也可以用其他的器件顯示,這樣就可以顯示出更多的字符,在此基礎(chǔ)上,還可以編寫更加完善的程序來實(shí)現(xiàn)更多的計(jì)算功能。 設(shè)計(jì)的關(guān)鍵所在,必須非常熟悉單片機(jī)的原理與結(jié)構(gòu),同時(shí)還要對(duì)整個(gè)設(shè)計(jì)流程有很好的把握,將單片機(jī)和其他模塊完整的銜接。 第五章 硬軟件的調(diào)試 5.1調(diào)試 一般lcd易出現(xiàn)的現(xiàn)象,我再做實(shí)驗(yàn)的時(shí)候遇到過以下幾種情況:狀態(tài)1 上電之后,1601的第一行全黑,即16個(gè)5

29、x8黑塊產(chǎn)生原因:液晶根本就沒有進(jìn)行初始化操作,需要檢查連線或者程序。運(yùn)氣不好的情況下就是整塊lcd是壞的。狀態(tài)2 運(yùn)算結(jié)果顯示亂碼 產(chǎn)生原因:在本作品的程序中,我只設(shè)計(jì)了最多三位數(shù)運(yùn)算,結(jié)果最多只能顯示四位數(shù),超過了就不能夠正常的運(yùn)算或顯示,如果要實(shí)現(xiàn)更多的位的運(yùn)算或顯示更多的位的數(shù)則需要在程序中做些改動(dòng)。5.2實(shí)驗(yàn)結(jié)果與性能達(dá)標(biāo)1. 加法運(yùn)算 2. 減法運(yùn)算 3. 乘法運(yùn)算 4. 除法運(yùn)算 我的計(jì)算器只能進(jìn)行最多三位數(shù)結(jié)果最多顯示四位數(shù)的四則運(yùn)算,如果要進(jìn)行更大的數(shù)的運(yùn)算則只需要在程序中稍加改動(dòng)即可。 結(jié)論 經(jīng)過近兩個(gè)月的努力,終于順利完成了畢業(yè)設(shè)計(jì)。剛開始,我們頭緒不是很清楚,不知道從哪

30、里入手,但通過老師的耐心指導(dǎo)并和同學(xué)認(rèn)真研究設(shè)計(jì)課題,跑圖書館查資料、確定基本設(shè)計(jì)方案、對(duì)所用芯片功能進(jìn)行查找、調(diào)試、上機(jī)仿真等,經(jīng)歷了一次次的困難,卻積累了很多寶貴的經(jīng)驗(yàn)。在整個(gè)設(shè)計(jì)的過程中遇到的問題主要有以下三點(diǎn),第一:基礎(chǔ)知識(shí)掌握的不牢固,主要表現(xiàn)在一些常用到的應(yīng)用軟件缺少應(yīng)用,體現(xiàn)在畫電路圖和系統(tǒng)的仿真的時(shí)候,對(duì)這些軟件的操作不熟練,浪費(fèi)了很多時(shí)間。第三:相關(guān)知識(shí)掌握的不夠全面,缺少系統(tǒng)設(shè)計(jì)的經(jīng)驗(yàn)。這次設(shè)計(jì)進(jìn)一步端了我的學(xué)習(xí)態(tài)度,學(xué)會(huì)了實(shí)事求是,嚴(yán)謹(jǐn)?shù)淖黠L(fēng),對(duì)自己要嚴(yán)格要求,不能夠一知半解,要力求明明白白。急于求成是不好的,我有所感受。如果省略了那些必要的步驟,急于求成,不僅會(huì)浪費(fèi)時(shí)間

31、,還會(huì)適得其反。我覺得動(dòng)手之前,頭腦里必須清楚該怎么做,這一點(diǎn)是很重要的。就目前來說,我的動(dòng)手能力雖然差一點(diǎn),但我想,通過我的不懈努力,在這方面,我總會(huì)得到提高。這一點(diǎn),我堅(jiān)信。因?yàn)閯e人能做到的,我也一定能做到。 在此次的畢業(yè)設(shè)計(jì)中我最大的體會(huì)就是進(jìn)一步認(rèn)識(shí)到了理論聯(lián)系實(shí)踐的重要要性。一份耕耘,一份收獲。通過這段時(shí)間的設(shè)計(jì),讓我明白科學(xué)的思維方法和學(xué)習(xí)方法是多么重要,只有這樣才能夠有很高的效率,才能夠讓自己的工作更完美。總而言之,此次畢業(yè)設(shè)計(jì)讓我學(xué)到了好多平時(shí)在課堂上學(xué)不到的東西,增加了我的知識(shí)運(yùn)用能力,增強(qiáng)我的實(shí)際操作能力。謝謝老師給我們提供這么好的機(jī)會(huì),為我們之后走向社會(huì)奠定了一個(gè)好的基礎(chǔ)

32、。 本次畢業(yè)設(shè)計(jì)讓我學(xué)到了很多,也學(xué)會(huì)到了要怎么樣去面對(duì)困難,不要對(duì)知識(shí)一知半截,要有的求實(shí)的能力,通過老師的幫助我學(xué)到了很多在平時(shí)的沒有注意到的動(dòng)?xùn)|西及知識(shí),更美沒有深入的的去理解,通過這次我要更加的明確自己。更要注重自己在各方面的鍛煉能力,把握機(jī)會(huì)。這次的設(shè)計(jì)非常的感謝老師們。 致 謝畢業(yè)設(shè)計(jì)就要結(jié)束了,在這一段時(shí)間里,我感到自己的收獲是非常大的,使我在專業(yè)技能、動(dòng)手能力多方面都有了很大的提高。在整個(gè)設(shè)計(jì)過程中,受到了我們老師和同學(xué)的熱切關(guān)注和耐心輔導(dǎo),特別是對(duì)我進(jìn)行了系統(tǒng)的講解和指導(dǎo),對(duì)設(shè)計(jì)提出了很多建設(shè)性的意見及建議,對(duì)我的設(shè)計(jì)起到了指導(dǎo)性和決定性的作用,還教給了我們遇到問題,如何去分

33、析問題、解決問題的方法。使我受益匪淺。從接受課題到現(xiàn)在完成畢業(yè)設(shè)計(jì)論文,尤其是在課題設(shè)計(jì)的前期準(zhǔn)備工作和設(shè)計(jì)的過程中,導(dǎo)師提出了許許多多寶貴的設(shè)計(jì)意見,在最后的論證修改過程中老師還在百忙之中,抽出時(shí)間對(duì)我的論文提供了必要的指導(dǎo)和幫助。這使得我能夠順利的完成畢業(yè)設(shè)計(jì)工作。在這里我向他表示真誠的感謝!同時(shí)得到了同組同學(xué)的支持與幫助,使我深刻的體會(huì)到了良師益友給我?guī)淼膸椭?,在此表示深深的感謝!感謝母校的辛勤培育之恩!感謝它給我提供的良好學(xué)習(xí)及實(shí)踐環(huán)境,使我學(xué)到了許多新的知識(shí),掌握了一定的操作技能。感謝和我在一起進(jìn)行課題研究的同學(xué)們,和他們?cè)谝黄鹩懻摗⒀芯渴刮沂芤娣菧\。感激師友的教誨和 參考文獻(xiàn) 1

34、 胡 輝. 單片機(jī)原理與應(yīng)用. 北京:中國水利水電出版社,20072 林志琦. 單片機(jī)原理接口及應(yīng)用(c語言版). 北京:中國水利水社,20073 趙克林. c語言實(shí)例教程. 北京:人民郵電出版社,20074 姜承昊. 最新led驅(qū)動(dòng)電路設(shè)計(jì)、應(yīng)用與制造新技術(shù)新工藝實(shí)用手冊(cè).北京:中國科學(xué)技術(shù)文獻(xiàn)出版社,20085 6 附錄一:系統(tǒng)原理圖附錄二:程序源代碼#include<reg52.h>#include<intrins.h>#include<stdio.h>#define uint unsigned int#define uchar unsigned ch

35、arsbit dw=p27;sbit lo=p26;sbit e=p16;sbit lcdrs=p21;sbit rw=p15;uchar temp,num,i;uchar code table13="hello world !"extern unsigned char temp13,temp23;/uchar code table1="somewhere i belong!"uchar code asc_code='0','1','2','3','4','5'

36、;,'6','7','8','9','+','-','e','=','*','/'uchar keyscan();void calcul();/*- 延時(shí)函數(shù)-*/void delay(uchar z) uchar x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);/*- 判忙函數(shù)-*/ bit lcd_check_busy(void) p0= 0xff; lcdrs=0; rw=1; e=0;

37、_nop_(); e=1; return (bit)(p0 & 0x80); /*- 寫指令函數(shù)-*/void write_com(uchar com) while(lcd_check_busy(); /忙則等待 delay(5); e=0; lcdrs=0; rw=0; e=1; p0=com; e=0; /*- 寫數(shù)據(jù)函數(shù)-*/void write_data(uchar dat) while(lcd_check_busy(); /忙則等待 delay(5); e=0; lcdrs=1; rw=0; e=1; p0=dat; e=0;void init() lo=0; dw=0; e

38、=0; write_com(0x38); /*顯示模式設(shè)置*/ delay(5); write_com(0x38); delay(5); write_com(0x38); delay(5); write_com(0x38); write_com(0x08); /*顯示關(guān)閉*/ write_com(0x01); /*顯示清屏*/ write_com(0x06); /*顯示光標(biāo)移動(dòng)設(shè)置*/ delay(5); write_com(0x0f); /*顯示開及光標(biāo)設(shè)置*/*- 清屏函數(shù)-*/void lcd_clear(void) write_com(0x01); delay(5); /*- 寫入字符

39、函數(shù)-*/ void lcd_write_char(unsigned char x,unsigned char y,unsigned char data) if (y = 0) write_com(0x80 + x); else write_com(0xc0 + x); write_data( data); /*- 顯示函數(shù)-*/void display(int a)uchar bai,shi,ge; bai=a/100; shi=a/10%10; ge=a%10; if(bai!=0) write_data(asc_codebai); write_data(asc_codeshi); write_data(asc_codege); /*- 鍵盤掃描-*/uchar keyscan() p3=0x7f; temp=p3; temp=temp&0x0f; while(temp!=0x0f) /檢測(cè)是否有按鍵按下 delay(5);/清抖 temp=p3;temp=temp&0x0f;wh

溫馨提示

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

評(píng)論

0/150

提交評(píng)論