基于MCS-51單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于MCS-51單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于MCS-51單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于MCS-51單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于MCS-51單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 江蘇農(nóng)牧科技職業(yè)學(xué)院畢業(yè)論文(設(shè)計(jì))基于MCS-51單片機(jī)的簡(jiǎn)易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)作者 陳俐園 指導(dǎo)老師 劉雪蘭【摘要】當(dāng)今社會(huì),隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進(jìn)了家家戶戶,無(wú)論是生活或?qū)W習(xí),還是娛樂和消遣幾乎樣樣都離不開電子產(chǎn)品,大型復(fù)雜的計(jì)算能力是人腦所不能勝任的,而且比較容易出錯(cuò)。計(jì)算器作為一種快速通用的計(jì)算工具方便了用戶的使用,可是它還在發(fā)展之中,以后必將出現(xiàn)功能更加強(qiáng)大的計(jì)算器,所以本次設(shè)計(jì)是基于51單片機(jī)來設(shè)計(jì)的計(jì)算器,實(shí)現(xiàn)基本功能加減乘除,采用LCD顯示結(jié)果數(shù)據(jù)?!娟P(guān)鍵詞】MCS-51;MM74C922;Protues;矩陣鍵盤;計(jì)算器Design and impl

2、ementation of a simple calculator based on MCS-51 single chip microcomputer【Abstract】Nowadays, with the continuous improvement of people's living, electronic products have already walked into each and every family, whether life or learning, or entertainment and recreation almost everything canno

3、t do without the electronic products, computing capability of large and complex is the human brain are not competent, and relatively easy to go wrong. The calculator as a fast general-purpose computing tools are easy to use, but it is still in development, later will appear a calculator function mor

4、e powerful, so this design is to design based on 51 single chip computer, the realization of the basic functions of add, subtract, multiply and divide, uses LCD to display the results of data.【Keywords】MCS-51;MM74C922;Protues;Matrix keyboard ;calculatorI目 錄第一章 緒論11.1 設(shè)計(jì)背景11.2 設(shè)計(jì)內(nèi)容11.3 設(shè)計(jì)意義1第二章 設(shè)計(jì)方案及

5、技術(shù)基礎(chǔ)12.1 設(shè)計(jì)方案12.2 方案論證及設(shè)計(jì)12.3 MCS-51單片機(jī)及開發(fā)環(huán)境介紹22.3.1 MCS-51系列單片簡(jiǎn)介22.3.2 MM74C922芯片3第三章 硬件設(shè)計(jì)43.1 硬件電路設(shè)計(jì)43.1.1 電路設(shè)計(jì)原理43.1.2 硬件電路設(shè)計(jì)53.2 時(shí)鐘電路53.3 復(fù)位電路63.4 輸入模塊:鍵盤接口電路6第四章 軟件設(shè)計(jì)84.1 主程序設(shè)計(jì)84.2 外部中斷0處理程序84.2.1 鍵值轉(zhuǎn)化為鍵盤上按鍵值程序94.2.2 算術(shù)運(yùn)算程序104.3 LCD顯示程序10第五章 開發(fā)體會(huì)135.1 Keil軟件調(diào)試135.2 Protues軟件仿真14第六章 總結(jié)15參考文獻(xiàn)16致

6、謝17附 錄18III第一章 緒論1.1 設(shè)計(jì)背景隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。電子產(chǎn)品的更新速度快就不足驚奇了, 單片機(jī)的應(yīng)用已經(jīng)越來越貼近生活。計(jì)算器在人們的日常中就是比較的常見的電子產(chǎn)品之一??墒撬€在發(fā)展之中,以后必將出現(xiàn)功能更加強(qiáng)大的計(jì)算器,基于這樣的理念,本次設(shè)計(jì)是用單片機(jī)來設(shè)計(jì)一個(gè)簡(jiǎn)易計(jì)算器。1.2 設(shè)計(jì)內(nèi)容本次設(shè)計(jì)是基于MCS-51單片機(jī)來設(shè)計(jì)的計(jì)算器。計(jì)算器將完成的功能有加,減,乘,除等功能。設(shè)計(jì)的關(guān)鍵所在,必須非常熟悉單片機(jī)的原理與結(jié)構(gòu),同時(shí)還要對(duì)整個(gè)設(shè)計(jì)流程有很好的把握,將單片機(jī)和其他模塊完整的銜接。

7、1.3 設(shè)計(jì)意義此次論文的價(jià)值和核心在于倡導(dǎo)自己把所學(xué)知識(shí)運(yùn)用到現(xiàn)實(shí)生活,為現(xiàn)實(shí)生活服務(wù),把自己的知識(shí)轉(zhuǎn)化為實(shí)物哪怕是很簡(jiǎn)單的物件,很簡(jiǎn)單的功能,但真真切切的讓自己感受到創(chuàng)造的快樂,為自己今后的工作做好鋪墊,往后通過更多的學(xué)習(xí),更多的嘗試,把知識(shí)的作用真正發(fā)揮出來,改變大家的生活。第二章 設(shè)計(jì)方案及技術(shù)基礎(chǔ)2.1 設(shè)計(jì)方案為了滿足計(jì)算器的基本要求,可以基本的運(yùn)算(加減乘除),數(shù)據(jù)歸零和出錯(cuò)警告提示,我們采用基于51單片機(jī),結(jié)合MM74C922芯片設(shè)計(jì)一個(gè)簡(jiǎn)易的計(jì)算器,用4*4的矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)輸入,實(shí)現(xiàn)基本功能加減乘除,并用LCD顯示數(shù)據(jù)。設(shè)計(jì)仿真和調(diào)試要用到Keil、Protues等軟件。2

8、.2 方案論證及設(shè)計(jì)根據(jù)功能與要求,本系統(tǒng)選用MCS-51單片機(jī)為主控機(jī)。通過擴(kuò)展必要的外圍接口電路,實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì)。具體設(shè)計(jì)如下:(1)由于要設(shè)計(jì)的是簡(jiǎn)單的計(jì)算器,可以進(jìn)行四則運(yùn)算,為了得到較好的顯示效果,采用LCD 顯示數(shù)據(jù)和結(jié)果。(2)另外鍵盤包括數(shù)字鍵(09)、符號(hào)鍵(+、-、×、÷)、清除鍵和等號(hào)鍵,故只需要16個(gè)按鍵即可,設(shè)計(jì)中采用集成的計(jì)算鍵盤。(3)執(zhí)行過程:開機(jī)顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過LCD顯示出來,當(dāng)鍵入+、-、*、/運(yùn)算符,計(jì)算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲(chǔ),并等待再次鍵入數(shù)值,當(dāng)再鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號(hào)就會(huì)在LCD上輸出運(yùn)算

9、結(jié)果。(4)錯(cuò)誤提示:當(dāng)計(jì)算器執(zhí)行過程中有錯(cuò)誤時(shí),會(huì)在LCD上顯示相應(yīng)的提示,如:當(dāng)輸入的數(shù)值或計(jì)算得到的結(jié)果大于計(jì)算器的表示范圍時(shí),計(jì)算器會(huì)在LCD上提示溢出;當(dāng)除數(shù)為0時(shí),計(jì)算器會(huì)在LCD上提示錯(cuò)誤。2.3 MCS-51單片機(jī)及開發(fā)環(huán)境介紹2.3.1 MCS-51系列單片簡(jiǎn)介MCS-51單片機(jī)較之前的單片機(jī)相比,功能增強(qiáng)許多,就其指令和運(yùn)行速度而言,超過了Intel8085的CPU和Z80的CPU,成為工業(yè)控制系統(tǒng)中較為理想的機(jī)種。目前與MCS-51單片機(jī)兼容的一些單片機(jī)的時(shí)鐘頻率達(dá)到40MHz甚至更高。51系列單片機(jī)的特點(diǎn):(1)8位cpu;(2)片內(nèi)帶振蕩器,頻率范圍為1.2MHz12

10、MHz;(3)片內(nèi)帶128M 的數(shù)據(jù)存儲(chǔ)器;(4)片內(nèi)帶4KB的程序存儲(chǔ)器;(5)程序存儲(chǔ)器的尋址空間為64KB;(6)片外數(shù)據(jù)存儲(chǔ)器的尋址空間為64KB;(7)128個(gè)用戶位尋址空間;(8)21個(gè)字節(jié)特殊功能寄存器;(9)4個(gè)8位的I/O并行接口:P0、P1、P2、P3;(10)兩個(gè)16位定時(shí)、計(jì)數(shù)器;(11)兩個(gè)優(yōu)先級(jí)別的五個(gè)中斷源;(12)一個(gè)全雙工的串行I/O接口,可多機(jī)通信;(13)111條指令,包含乘法指令和除法指令;(14)片內(nèi)采用單總線結(jié)構(gòu);(15)有較強(qiáng)的位處理能力;(16)采用單一+5V電源圖2-1 MCS-51結(jié)構(gòu)圖2.3.2 MM74C922芯片為了進(jìn)一步節(jié)省單片機(jī)I/

11、O口資源,我們?cè)谠O(shè)計(jì)中使用了MM74C922芯片。MM74C922是一款4*4鍵盤掃描IC,它可檢測(cè)到與之相連的4*4鍵盤的按鍵輸入,并通過數(shù)據(jù)輸出口將按鍵相應(yīng)的編碼輸出。其引腳圖如圖2-2所示:圖2-2 MM94C922硬件圖MM74C922引腳說明:(1) Y1Y4(腳1腳4):4*4鍵盤第一列至第四。(2) X1X4(腳11、10、8、7):4*4鍵盤第一行至第四行。(3) DOA DOD(Dataout AD,腳1417):按鍵之BCD碼輸出,其中DOA為L(zhǎng)SB,DOD為MSB。(4) VCC(腳18):電源腳,+3V+15V。(5) GND(腳9):接地管腳。(6) OSC(Osci

12、llator,腳5):鍵盤掃描電路之頻率所需外加電容的連引腳。(7) KBM(Keyboard Mask,腳6):內(nèi)部消除開關(guān)彈跳電路所外加電容的引腳。(8) OE(Output Enable,腳13):芯片使能腳,接低電位可使芯片使能。(9) DA(Data Available,腳12):數(shù)據(jù)有效輸出腳。任一按鍵按下時(shí),此腳位會(huì)輸出高電位,按鍵釋放后此腳又會(huì)恢復(fù)為低電位。MM74C922對(duì)各按鍵的響應(yīng)如下表所示:圖2-3 MM74C922對(duì)各按鍵的響應(yīng)第三章 硬件設(shè)計(jì)3.1 硬件電路設(shè)計(jì)3.1.1 電路設(shè)計(jì)原理單片機(jī)采用AT89C51單片機(jī),它能夠滿足數(shù)據(jù)的采集、控制和數(shù)據(jù)處理的需求。結(jié)合時(shí)

13、鐘電路、復(fù)位電路、鍵盤輸入完成簡(jiǎn)易計(jì)算器總電路設(shè)計(jì)。單片機(jī)輸入模塊LCD顯示電源電路時(shí)鐘電路復(fù)位電路圖3-1 電路設(shè)計(jì)原理3.1.2 硬件電路設(shè)計(jì)圖3-2 總電路設(shè)計(jì)3.2 時(shí)鐘電路時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。在MCS51單片機(jī)片內(nèi)部有一個(gè)高增益的反相放大器,它的的輸入端為引腳XTAL1,輸出端為引腳XTAL2,由該放大器構(gòu)成的振蕩電路和時(shí)鐘電路一起構(gòu)成了單片機(jī)的時(shí)鐘方式,晶振頻率均為30pF。根據(jù)硬件電路的不同,單片機(jī)的時(shí)鐘連接方式可分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。我們采用內(nèi)部時(shí)鐘方式。在內(nèi)部方式時(shí)鐘電路中,必須在XTAL1和XTAL2引腳兩端跨

14、接石英晶體振蕩器和兩個(gè)微調(diào)電容構(gòu)成振蕩電路。圖3-3 時(shí)鐘電路連接圖3.3 復(fù)位電路單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。無(wú)論是單片機(jī)剛開始接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位。所以,必須弄清楚MCS-51單片機(jī)復(fù)位的條件、復(fù)位電路和復(fù)位后的狀態(tài)。復(fù)位信號(hào)從單片機(jī)的RST引腳輸入,高電平有效,其有效電平應(yīng)維持至少2個(gè)機(jī)器周期。復(fù)位操作有上電自動(dòng)復(fù)位與按鍵手動(dòng)復(fù)位兩種方式,為了方便系統(tǒng)的硬件初始化,我們采用按鍵手動(dòng)復(fù)位。圖3-4 復(fù)位電路連接圖3.4 輸入模塊:鍵盤接口電路計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方

15、式,在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的I/O口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條I/O 線作為行線,四條I/O線作為列線組成鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為4*4個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。計(jì)算器的鍵盤布局如圖3-5與圖3-6所示:一般有16個(gè)鍵組成,在單片機(jī)中正好可以用一個(gè)P口實(shí)現(xiàn)16個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也最常用。圖3-5 矩陣鍵盤布局圖圖3-6 矩陣鍵盤內(nèi)部電路圖如下圖3-7所示,在本設(shè)計(jì)中,計(jì)算器輸入鍵盤的4條行線、列線分別連接到MM74C922

16、的X1X4、Y1Y4引腳,MM74C922的數(shù)據(jù)輸出口與單片機(jī)的P2口相連,MM74C922的DA引腳經(jīng)過一個(gè)非門連接到單片機(jī)的/INT0腳,當(dāng)MM74C922檢測(cè)到鍵盤輸入時(shí),DA產(chǎn)生高電平,與之相連的/INT0檢測(cè)到低電平,給單片機(jī)一個(gè)中斷,單片機(jī)從P2口的低四位讀入鍵盤上按下的鍵的值。圖3-7 鍵盤接口電路圖第四章 軟件設(shè)計(jì)本設(shè)計(jì)主要包含主程序、外部中斷0程序。4.1 主程序設(shè)計(jì)開始允許中斷初始化鍵盤接口初始化LCD顯示初始化LCD初始化LCD輸入數(shù)據(jù)函數(shù)主程序函數(shù)表示:允許中斷;初始化鍵盤接口連接、LCD顯示、LCD、LCD輸入數(shù)據(jù)函數(shù)。圖4-1 主程序流程圖4.2 外部中斷0處理程序

17、有鍵按下時(shí),單片機(jī)響應(yīng)外部中斷0,轉(zhuǎn)入外部中斷0中斷處理函數(shù),在中斷處理函數(shù)中完成對(duì)按鍵的判斷,以進(jìn)行下一步的程序處理。其中調(diào)用鍵值轉(zhuǎn)化函數(shù)、算術(shù)運(yùn)算函數(shù)。鍵值轉(zhuǎn)化是否為數(shù)字鍵將當(dāng)前輸入值*10+輸入值當(dāng)前輸入值是否為第一個(gè)算術(shù)值y=當(dāng)前輸入值x=當(dāng)前輸入值當(dāng)前輸入值是否超出范圍規(guī)定LCD顯示當(dāng)前輸入值數(shù)值溢出是否為清除鍵數(shù)值清0是否為“=”是否為“+”是否為“-”是否為“*”是否為“/”調(diào)用運(yùn)算函數(shù)YNNYNYNNNNNYY圖4-2 外部中斷0函數(shù)流程圖4.2.1 鍵值轉(zhuǎn)化為鍵盤上按鍵值程序該程序函數(shù)的作用是將輸入的鍵值轉(zhuǎn)化為數(shù)值或符號(hào)。開始輸入鍵值讀取鍵碼轉(zhuǎn)化為數(shù)值或符號(hào)數(shù)值送顯示緩沖圖4

18、-3 鍵值轉(zhuǎn)化為鍵盤上按鍵值流程4.2.2 算術(shù)運(yùn)算程序在外部中斷函數(shù)對(duì)鍵值進(jìn)行判斷后,進(jìn)行加、減、乘、除運(yùn)算,運(yùn)算后的數(shù)值如果超出范圍規(guī)定,則數(shù)值溢出處理。運(yùn)算符號(hào)是否為“+”N開始YY進(jìn)行加號(hào)運(yùn)算運(yùn)算后數(shù)值是否超出范圍規(guī)定運(yùn)算符號(hào)是否為“-”進(jìn)行減號(hào)運(yùn)算運(yùn)算符號(hào)是否為“/”進(jìn)行乘號(hào)運(yùn)算運(yùn)算符號(hào)是否為“*”YN進(jìn)行除號(hào)運(yùn)算YLCD顯示數(shù)值N溢出NY圖4-4 算術(shù)運(yùn)算程序4.3 LCD顯示程序利用LCD靜態(tài)顯示,通過程序向LCD寫指令字或數(shù)據(jù)使LCD完成不同功能或顯示相應(yīng)數(shù)據(jù)。/*LCD初始化函數(shù)*/void init_LCM()write_com(0x30);write_com(0x30);

19、write_com(0x30);write_com(0x38);write_com(0x08);write_com(0x01);write_com(0x06);write_com(0x0e);/*LCD寫數(shù)據(jù)函數(shù)*/void write_data(char ddata)RS=1; /*寫指令*/R_W=0;EN=1; /*使能信號(hào)開*/P1=ddata; /*將數(shù)據(jù)送入p1口*/EN=0; /*使能信號(hào)關(guān)*/check_BF();/*LCD寫指令函數(shù)*/void write_com(char command)RS=0; /*寫指令*/R_W=0;EN=1; /*使能信號(hào)開*/P1=comman

20、d; /*將數(shù)據(jù)送入p1口*/EN=0; /*使能信號(hào)關(guān)*/check_BF();/*LCD檢查忙碌函數(shù)*/void check_BF()char i,x=0x80;P1=0xff;while(x&0x80)RS=0;R_W=1;EN=1;x=P1;EN=0;for (i=0;i<10;i+);EN=0; /*關(guān)閉使能信號(hào)*/*LCD清屏函數(shù)*/void clearLCD()write_com(0x01);/*LCD顯示函數(shù)*/void display(long a)long temp,b,c=-1;int lenth=1,i,j;clearLCD();if(a<0)a=a

21、*c;write_data('-'); temp=a;while(temp=temp/10)!=0)lenth+;for(i=lenth;i>0;i-)b=1;for(j=0;j<i-1;j+)b=b*10;write_data(0x30+a/b);a=a%b;第五章 開發(fā)體會(huì)5.1 Keil軟件調(diào)試1.首先在電腦上正確的下載keil軟件。2.在keil 集成開發(fā)環(huán)境中創(chuàng)建新項(xiàng)目(Project),擴(kuò)展文件名為.UV2,并為該項(xiàng)目選定合適的單片機(jī)CPU器件(本設(shè)計(jì)采用ATMEL公司下的AT89C51)。3.用keil的文本編輯器編寫源文件,可以是匯編語(yǔ)言,也可以為c

22、語(yǔ)言,完成后將該文件添加到項(xiàng)目中去。注意保存的時(shí)候如果是c語(yǔ)言編寫程序必須在后面加.C。4.通過keil 的相關(guān)選擇項(xiàng),配置編譯環(huán)境、連接定位器以及Debug調(diào)試器的功能。5.對(duì)項(xiàng)目中的源文件進(jìn)行編譯連接,生成絕對(duì)目標(biāo)代碼和可選的HEX文件,如果出現(xiàn)編譯連接錯(cuò)誤則返回到第2步,根據(jù)軟件中的錯(cuò)誤提示進(jìn)行修改源文件,切記不要浮躁,一步一步修改直到最后提示沒有差錯(cuò)最終生成hex文件。6.對(duì)沒有語(yǔ)法錯(cuò)誤的程序進(jìn)行仿真調(diào)試,調(diào)試成功后將HEX文件寫入到單片機(jī)應(yīng)用系統(tǒng)的ROM中。5.2 Protues軟件仿真1首先在電腦里下載正確的軟件,此軟件主要是對(duì)硬件部分進(jìn)行模擬。2進(jìn)入軟件后藍(lán)色框內(nèi)就是工作區(qū)域,可

23、以在里面隨意選擇元器件,移動(dòng)元器件。正確的進(jìn)行導(dǎo)線連接。3完成所有連接后,雙擊單片機(jī)把生成的HEX文件進(jìn)行導(dǎo)入。4最后如果程序和連圖都沒有問題就可以進(jìn)行仿真了。圖5-1 系統(tǒng)仿真總圖第六章 總結(jié)通過這次的畢業(yè)論文設(shè)計(jì)我學(xué)習(xí)到了很多知識(shí),平時(shí)在學(xué)校覺得自己好像對(duì)專業(yè)知識(shí)還是比較了解的??墒怯龅竭@次設(shè)計(jì)完全沒有思緒,找不到切入點(diǎn)。然后我就通過詢問老師與跑圖書館查資料、確定基本設(shè)計(jì)方案、對(duì)所用芯片功能進(jìn)行查找、調(diào)試、上機(jī)仿真等,經(jīng)歷了一次次的困難,卻積累了很多寶貴的經(jīng)驗(yàn)。在整個(gè)設(shè)計(jì)的過程中遇到的問題主要有以下三點(diǎn),第一:基礎(chǔ)知識(shí)掌握的不牢固,主要表現(xiàn)在一些常用的電路的形式和功能不清楚,對(duì)書本上的內(nèi)容

24、理解不夠透徹。第二:對(duì)一些常用的應(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í)間,還會(huì)適得其反。我覺得動(dòng)手之前,頭腦里必須清楚該怎么做,這一點(diǎn)是很重要的。在此次的畢業(yè)設(shè)計(jì)中我最大的體會(huì)就是進(jìn)一步認(rèn)識(shí)到了理論聯(lián)系實(shí)踐的重要性。一份耕耘,一份收獲。通過這段時(shí)間的設(shè)計(jì),讓我明白科學(xué)的思維方法和學(xué)習(xí)方法是多么重要,只有這樣才能夠有很高的效率,才能夠讓自

25、己的工作更完美??偠灾?,此次畢業(yè)設(shè)計(jì)讓我學(xué)到了好多平時(shí)在課堂上學(xué)不到的東西,增加了我的知識(shí)運(yùn)用能力,增強(qiáng)我的實(shí)際操作能力。謝謝老師給我們提供這么好的機(jī)會(huì),為我們之后走向社會(huì)奠定了一個(gè)好的基礎(chǔ)。參考文獻(xiàn)1 胡 輝.單片機(jī)原理與應(yīng)用.北京中國(guó)水利水電出版社.20072 何立.單片機(jī)高級(jí)教程.北京航空航天大學(xué)出版社.20063 趙克林.C語(yǔ)言實(shí)例教程.北京人民郵電出版社.20074 張義和,許宏昌,余春長(zhǎng).例說51單片機(jī).人民郵電出版社.20085 康維新.MCS-51 單片機(jī)原理與應(yīng)用.北京中國(guó)輕工業(yè)出版社.2009.16 陳立周,陳宇.單片機(jī)原理及其應(yīng)用(第2 版).北京機(jī)械工業(yè)出版社.200

26、8.57 徐愛鈞.單片機(jī)原理實(shí)用教程:基于Protues虛擬仿真.北京電子工業(yè)出版社.2009(1) 致 謝起初接觸畢業(yè)設(shè)計(jì)的時(shí)候,我對(duì)于這篇論文完全不知道該怎么著手,可是通過劉老師耐心的給我講解,同時(shí)查閱各類專業(yè)書籍,讓我對(duì)論文有了一個(gè)初步構(gòu)思,知道該怎么去一步步的完成它。在完成初稿時(shí)也遇到了很多問題,對(duì)于仿真軟件運(yùn)用的陌生,還有就是對(duì)于計(jì)算器的硬件選擇的錯(cuò)誤。最后都是在劉老師的幫助下我克服了這些問題,成功的把畢業(yè)設(shè)計(jì)做完了并完成了仿真。我要正式的向劉老師致謝,如果沒有劉老師的幫助我是不可能完成畢業(yè)設(shè)計(jì)的,這次畢業(yè)設(shè)計(jì)我所學(xué)到的不僅僅是書本上的知識(shí),還有堅(jiān)持一路向前堅(jiān)持的精神。這將為我以后的

27、人生道路做好指引,我將受益一生。附 錄#include<reg51.h>#include<math.h>#define uchar unsigned char#define uint unsigned intchar translate(int keycode);void arithmetic();void init_LCM();void write_data(char ddata);void write_com(char command);void check_BF();void clearLCD();void display(long a);void dealerr

28、or(); void dataoverflow();long x=0,y=0,num=0;int operators,input,iny=0;char key;char error5="error"char overflow8="overflow"sbit EN=P34;sbit R_W=P35;sbit RS=P36;main() EA=1;EX0=1;IT0=1; P2=0xff;display(0);init_LCM();write_data(0x30);while(1)/*鍵值轉(zhuǎn)化為鍵盤上按鍵值函數(shù)*/char translate(int key

29、code)switch(keycode)case 0:return '7'break;case 1:return '4'break;case 2:return '1'break;case 3:return 'c'break;case 4:return '8'break;case 5:return '5'break;case 6:return '2'break;case 7:return '0'break;case 8:return '9'break;c

30、ase 9:return '6'break;case 10:return '3'break;case 11:return '='break;case 12:return '/'break;case 13:return '*'break;case 14:return '-'break;case 15:return '+'break; /*外部中斷0處理函數(shù)*/void INT_0(void) interrupt 0 using 0key=translate(P2&0x0f);i

31、f(key<='9'&&key>='0') /判斷按下的鍵是否為數(shù)值num=num*10+(key-'0');if (operators>0)y=num;iny=1;elsex=num;if(num<134217728&&num>-134217728) /當(dāng)前數(shù)值是否超出限定范圍display(num);elsedataoverflow();elseswitch(key)case 'c':x=0;y=0;num=0;iny=0;operators=0;display(n

32、um);break;case '=':arithmetic();iny=0;operators=0;num=0;break;case '+': if (operators)arithmetic();operators=1;num=0;break;case '-': if (operators)arithmetic();operators=2;num=0;break;case '*': if (operators)arithmetic();operators=3;num=0;break;case '/':if (op

33、erators)arithmetic();operators=4;num=0;break;/*算術(shù)運(yùn)算函數(shù)*/void arithmetic()if (iny)switch(operators)case 1:x=x+y;num=x;if(num<134217728&&num>-134217728)display(num);elsedataoverflow();break;case 2:x=x-y;num=x;if(num<134217728&&num>-134217728)display(num);elsedataoverflow();break;case 3:x=x*y;num=x;if(num<134217728&&num>-134217728)display(num);elsedataoverflow();break; ca

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論