版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢畢業(yè)業(yè)設(shè)設(shè)計(jì)計(jì)說說明明書書基于基于AT89C51AT89C51的電子計(jì)算器設(shè)計(jì)的電子計(jì)算器設(shè)計(jì)專業(yè)專業(yè)電子信息工程學(xué)生姓名學(xué)生姓名*ping班級(jí)班級(jí)MZ 電子 101學(xué)號(hào)學(xué)號(hào)指導(dǎo)教師指導(dǎo)教師完成日期完成日期2014 年 5 月 30 日 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 基于基于AT89C51AT89C51的電子計(jì)算器設(shè)計(jì)的電子計(jì)算器設(shè)計(jì)摘 要:當(dāng)今時(shí)代,是一個(gè)高新科技研究層出不窮的新時(shí)代。以電子領(lǐng)域的應(yīng)用為例,尤其以電子領(lǐng)域的自動(dòng)化智能控制應(yīng)用領(lǐng)域作為觀察點(diǎn),單片機(jī)的智能化控制已是快速替代這傳統(tǒng)的數(shù)字邏輯電路或者是以分立元件構(gòu)成的控制系統(tǒng)。也可稱單片機(jī)為單片微控制器,它集成一個(gè)計(jì)
2、算機(jī)系統(tǒng)到一個(gè)芯片上,是計(jì)算機(jī)的最小系統(tǒng),較之于計(jì)算機(jī)它又缺少外圍設(shè)備??刂破?、運(yùn)算器以及各種寄存器相互配合是的單片機(jī)工作,它們是單片機(jī)必要的幾個(gè)組成成分。單片機(jī)集體積小、成本低、質(zhì)量輕、應(yīng)用廣泛等眾多優(yōu)點(diǎn)于一體,是學(xué)習(xí)與工業(yè)開發(fā)的最佳選擇。本設(shè)計(jì)是一個(gè)基于AT89C51單片機(jī)控制的十進(jìn)制電子計(jì)算器系統(tǒng)的設(shè)計(jì)??蓪?shí)現(xiàn)結(jié)果為九位數(shù)范圍內(nèi)的乘、除法運(yùn)算和加減數(shù)為九位,結(jié)果為十位數(shù)范圍內(nèi)的加、減法運(yùn)算。硬件設(shè)計(jì)方面,單片機(jī)選擇成本低、內(nèi)部存儲(chǔ)資源豐富的AT89C51單片機(jī),輸入數(shù)據(jù)時(shí)采用行列式按鍵中的4*4矩陣型按鍵作為輸入設(shè)備,并在LCD 1602上顯示出對(duì)應(yīng)的運(yùn)算結(jié)果。軟件方面選擇C語言來完成,
3、C語言兼?zhèn)渲呒?jí)語言特點(diǎn)與匯編語言的特點(diǎn),實(shí)為上選。并且最后采用proteus仿真。關(guān)鍵詞:AT89C51;矩陣鍵盤;LCD 1602;計(jì)算器 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) Design of electronic calculator based on AT89C51Abstract: In modern times, it is a new era when high and new technology is developing endlessly. From the electronic field of view, especially in the field of
4、 automated intelligent control, intelligent control system is rapidly replacing the control system composed of discrete components or digital logic circuit. The micro-controller chip as the micro controller, which integrates a computer system to a chip, is the smallest computer system. Compared with
5、 the computer, it lacks the peripheral equipment. Controller, logic unit, registers and the single chip computer work with each other, and they are necessary for components of single chip microcomputer. Single chip set has the advantages of small volume, low cost, light weight and wide application,
6、serving as the best choice for learning and the development of industry.In this paper, decimal electronic calculator system was designed based on 8051 single chip, which achieved the results of multiplication and division within the scope of nine digits, and addition and subtraction within the scope
7、 of ten digits. In terms of hardware design, AT89C51 of low cost and rich internal storage resources was adopted. During input data, key determinant of the 4 * 4 matrix type button was used as an input device, and the results were showed on LCD 1602. In terms of software, C language was used, with a
8、dvanced language and assembly language. Finally, Proteus simulation was used.Key words: AT89C51; Matrix keyboard; LCD 1602; Calculator 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 目目 錄錄1 概述 .11.1 課題的來源 .11.2 課題研究的背景 .11.3 課題研究的目的和意義 .22 方案的選擇和論證 .22.1 單片機(jī)型號(hào)的選擇.22.2 鍵盤的選擇 .22.3 顯示器的選擇 .33 數(shù)字計(jì)算器的設(shè)計(jì)原理和方法 .33.1 總體設(shè)計(jì)概述 .33.2 系
9、統(tǒng)總體設(shè)計(jì)框圖 .33.3 系統(tǒng)硬件電路設(shè)計(jì) .43.3.1 AT89C51 單片機(jī)簡(jiǎn)介.43.3.2 時(shí)鐘電路和復(fù)位電路的設(shè)計(jì) .123.3.3 單片機(jī)最小系統(tǒng)的設(shè)計(jì) .133.3.4 矩陣鍵盤接口模塊 .143.3.5 LCD1602 顯示模塊.153.4 軟件系統(tǒng)設(shè)計(jì) .183.4.1 匯編語言和 C 語言的特點(diǎn)及選擇 .183.4.2 主流程圖設(shè)計(jì) .183.4.2 鍵盤掃描程序設(shè)計(jì) .193.4.3 算術(shù)運(yùn)算程序設(shè)計(jì) .204 開發(fā)工具 PROTEUS 軟件 與 KEIL C51 .224.1 PROTEUS 軟件 .224.1.1 PROTEUS 簡(jiǎn)介.224.1.2 PROTEU
10、S 的 4 大功能模塊.234.1.3 ISIS 智能原理圖輸入系統(tǒng).234.1.4 PROTEUS 的簡(jiǎn)單應(yīng)用.234.2 KEIL C51 軟件.27 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 4.2.1 KEIL C51 軟件簡(jiǎn)介.284.2.2 KEIL 軟件調(diào)試功能 .285 仿真結(jié)果 .295.1 性能分析.295.2 仿真結(jié)果.296 結(jié)束語 .34參考文獻(xiàn) .35致 謝 .36附 錄 .37附錄 1 元件清單.38附錄 2 源程序.39附錄 3 電子計(jì)算器設(shè)計(jì)原理圖.47附錄 4 電子計(jì)算器設(shè)計(jì)仿真圖.48 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 0基于基于AT89C51AT
11、89C51的電子計(jì)算器設(shè)計(jì)的電子計(jì)算器設(shè)計(jì)1 概述 1.1 課題的來源 在生活中,做實(shí)驗(yàn)、買東西、記賬、看時(shí)間等活動(dòng)要計(jì)算,工廠統(tǒng)計(jì)產(chǎn)品、老師清點(diǎn)人數(shù)、學(xué)校記錄成績(jī)也要計(jì)算這么說來,在做任何事情的時(shí)候人們都必須應(yīng)心中有個(gè)數(shù)的概念,擴(kuò)大解釋,就是計(jì)算。于是計(jì)算這個(gè)概念非常重要。而隨著三次工業(yè)革命的發(fā)展,遠(yuǎn)古的計(jì)算方式完全不能夠適應(yīng)社會(huì)的發(fā)展。因此,計(jì)算機(jī)便是應(yīng)運(yùn)而生。伴隨著工作種類的激增,很大一部分人處于常年出差的狀態(tài),這種情況下,起先科學(xué)家們發(fā)明制造出來的大型計(jì)算器是沒辦法使用,并且造價(jià)也是非常之昂貴。綜上種種原因所述,便攜計(jì)算器的出世便是顯得很理所當(dāng)然,而且其受歡迎程度也是那么的理所當(dāng)然。1
12、.2 課題研究的背景最早的中國(guó)人絕大多數(shù)采用一種叫“籌策” 的計(jì)算工具來進(jìn)行各種數(shù)數(shù)和計(jì)算,又有人將之稱為算籌。算籌大多數(shù)是使用竹子、木頭等作為材料做成,一般地都是 270 枚作為 1 束。而當(dāng)今社會(huì),算籌幾乎絕跡,可與算籌同一時(shí)期的另一種計(jì)算工具“珠算盤”卻是一直在使用。隨著社會(huì)的發(fā)展,到了十七世紀(jì)初期,當(dāng)“算籌”和“珠算盤”都不能滿足學(xué)者們需求之時(shí),英國(guó)的著名數(shù)學(xué)家納皮爾以及牧師奧卻德分別發(fā)明了“納皮爾算籌”和“對(duì)數(shù)計(jì)算尺”來適應(yīng)社會(huì)需求。這些計(jì)算工具為現(xiàn)如今使用最為廣泛的便攜式計(jì)算器的發(fā)展打下了堅(jiān)實(shí)的基礎(chǔ)。在法國(guó)偉大的帕斯卡科學(xué)家的不斷試驗(yàn)中,世界上第一部機(jī)械式的計(jì)算器就在1642 年被
13、發(fā)明出來,這部機(jī)械式計(jì)算器也是引用了算盤的原理。據(jù)了解對(duì)于這部計(jì)算器的使用,人們可以向撥電話一樣的輸入數(shù)據(jù),而在另一個(gè)窗口中計(jì)算結(jié)果會(huì)自動(dòng)出現(xiàn)。很明顯對(duì)于之前的“算籌”和“珠算盤” ,這樣的機(jī)械式計(jì)算器已經(jīng)是非常的先進(jìn)。然而這部計(jì)算器的局限性在于它只能用于加減的計(jì)算。這對(duì)于普通人來說或許就是滿足需求的高科技,然而對(duì)于從事研究研發(fā)的知識(shí)分子而言還是遠(yuǎn)遠(yuǎn)不夠。在需求的膨脹下,繼帕斯卡之后,于 1694 年布萊尼茲在德國(guó)將之改進(jìn)成可以進(jìn)行加減、乘、除四則運(yùn)算的計(jì)算器。三次工業(yè)革命的推動(dòng)下,科學(xué)家們不斷的研究創(chuàng)新與不斷的發(fā)明與改進(jìn)中,終于到 1950 年末,電子計(jì)算器誕生了。電子計(jì)算器是在電子計(jì)算機(jī)的
14、基礎(chǔ)上發(fā)展而來的,起初的電子計(jì)算器體積很是龐大,操作很是復(fù)雜,并且所耗器材也是繁多。并不是每一個(gè)人都可以使用的。更加不能隨身攜帶。近年來,隨著微型計(jì)算機(jī)技術(shù)、電力電子技術(shù)、微電子技術(shù)、傳感器技術(shù)等各種技術(shù)的發(fā)展,電子計(jì)算器也是以新的面貌吸引大眾的眼球。當(dāng)今的電子計(jì)算器體積小可隨身攜帶、價(jià)格低、操作簡(jiǎn)單、計(jì)算準(zhǔn)確度高。要按照這種標(biāo) 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 1準(zhǔn)將電子計(jì)算器一直發(fā)展下去。對(duì)于算盤和計(jì)算器,人們更是傾向于后者。因?yàn)槿藗兛隙擞?jì)算器的操作方便與計(jì)算精確。計(jì)算器可以幫助人們從事各種很復(fù)雜的計(jì)算,極大的節(jié)約了時(shí)間,減少了錯(cuò)誤,給生產(chǎn)生活都帶來極大的便利。在一個(gè)面向現(xiàn)代化
15、的社會(huì)生存,速度與準(zhǔn)確度非常重要。因此,也是越來越受大眾的歡迎了。本課題就是設(shè)計(jì)一個(gè)AT89C51 單片機(jī)控制的電子計(jì)算器,以單片機(jī)為主控制器,擴(kuò)展必要的外部電路,設(shè)計(jì)制作一個(gè)電子計(jì)算器。研究和設(shè)計(jì)出基于 AT89C51 單片機(jī)控制的計(jì)算器有一定的可行性和實(shí)用價(jià)值,設(shè)計(jì)出滿足市場(chǎng)和社會(huì)需求相應(yīng)的裝置。1.3 課題研究的目的和意義計(jì)算器廣泛應(yīng)用于生產(chǎn)生活等各個(gè)方面,于生活的各個(gè)角落,都如影隨形。目前市場(chǎng)上的計(jì)算器已經(jīng)基本能夠滿足各種生活生產(chǎn)需求,但這還不夠,要在發(fā)展中進(jìn)步,于進(jìn)步中再發(fā)展,研究出操作更加簡(jiǎn)單,計(jì)算結(jié)果更加精確的新型計(jì)算器來適應(yīng)不斷發(fā)展的大社會(huì)。通過對(duì)本課題的研究,將四年中所學(xué)的知
16、識(shí)融會(huì)貫通,同時(shí)溫故而知新,能對(duì)電子計(jì)算器的設(shè)計(jì)有一個(gè)深刻的了解,在原來的基礎(chǔ)上不斷創(chuàng)新,增加擴(kuò)展功能,推動(dòng)對(duì)電子設(shè)計(jì)過程的熟悉,將電子方面的知識(shí)加以綜合,為能夠以后工作崗位上遇到的各種實(shí)際問題的處理打下扎實(shí)的基礎(chǔ)。這次研究和設(shè)計(jì)出基于 51 單片機(jī)控制的計(jì)算器,需要對(duì)單片機(jī)熟練的掌握,對(duì)單片機(jī)的原理、編程知識(shí)有一個(gè)深度掌握。通過設(shè)計(jì)加深對(duì)單片機(jī)的認(rèn)識(shí)和興趣的同時(shí),也初步掌握有關(guān)于計(jì)算器的硬軟件設(shè)計(jì)、編寫、調(diào)試和仿真,充分提高動(dòng)手能力和排除故障的能力,發(fā)揮自己的動(dòng)手和創(chuàng)新能力。2 方案的選擇和論證2.1 單片機(jī)型號(hào)的選擇近年來,集成技術(shù)發(fā)展的速度令人咋舌。品種繁多,且集成度高,不僅僅的,外部擴(kuò)
17、展功能也是越來越強(qiáng)悍的。以 MCS-51 系列的 8051 單片機(jī)為代表,集低價(jià)、量輕、功能強(qiáng)等眾多優(yōu)點(diǎn)于一身,本次的設(shè)計(jì)就選用 8051 單片機(jī)中的 AT89C51 單片機(jī)作為主控芯片,AT89C51 單片機(jī)是科研最常用的單片機(jī)之一,針對(duì)數(shù)字電子計(jì)算器的設(shè)計(jì),選擇此芯片最佳。2.2 鍵盤的選擇鍵盤是微型計(jì)算機(jī)最常用的輸入設(shè)備之一,也是現(xiàn)實(shí)中最主要的輸入設(shè)備。用戶可以通過鍵盤向各種設(shè)備中輸入指令、地址、數(shù)據(jù)。鍵盤的廣泛應(yīng)用和對(duì)健康生活的追求,人們對(duì)鍵盤的要求越來越高。攜帶是否方便、手感是否舒適,這些都是用戶選擇鍵盤首先考慮的內(nèi)容。鍵盤多種多樣、種數(shù)極多,就連分類方法也是很復(fù)雜。從編碼的角度來分
18、,通常熟悉的編碼鍵盤和非編碼鍵盤就是從能否編碼的監(jiān)督 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 2區(qū)分的,一個(gè)按鍵直接使用可稱為獨(dú)立式鍵盤,排成矩陣形式使用的情況下又被成為行列式鍵盤。一般在做基于單片機(jī)的電子產(chǎn)品設(shè)計(jì)中采用非編碼鍵盤的居多。非編碼鍵盤也是集結(jié)構(gòu)簡(jiǎn)單、使用靈活等眾優(yōu)點(diǎn)于一身的。設(shè)計(jì)中采用的 4*4 矩陣鍵盤就是非編碼鍵盤的一員,矩陣鍵盤擁有所有非編碼鍵盤的優(yōu)點(diǎn)。2.3 顯示器的選擇如果說鍵盤是最常用最普遍的輸入設(shè)備,那最常用的輸出設(shè)備就非顯示器莫屬了。生活中最常見的熒屏顯示主要就是 LED 和 LCD 兩種。LCD 后來才有的,性能各方面優(yōu)于 LED 這是毫無疑問的。為了更方便的顯
19、示運(yùn)行結(jié)果,本次設(shè)計(jì)中的顯示設(shè)備計(jì)劃選用 LCD1602,較 LED 而言,這種液晶顯示器不僅顯示清晰,而且反應(yīng)快,用于數(shù)字計(jì)算器的設(shè)計(jì)最為合適了。3 數(shù)字計(jì)算器的設(shè)計(jì)原理和方法3.1 總體設(shè)計(jì)概述為了實(shí)現(xiàn)對(duì)此數(shù)字計(jì)算器的設(shè)計(jì),本系統(tǒng)選用 8051 單片機(jī)為主控機(jī)。再在單片機(jī)的外圍添加各種外圍設(shè)備來幫助實(shí)現(xiàn)計(jì)算器的運(yùn)行。具體設(shè)計(jì)思路如下:a) 盡管是簡(jiǎn)單的計(jì)算器的設(shè)計(jì),但是為了讓顯示更加清晰,看起來更加舒服,采用 LCD1602 液晶比 LED 顯示數(shù)據(jù)和結(jié)果更加人性化。b) 鍵盤包除了 0-9 等數(shù)字鍵、還有有加(+)、減(-)、乘(*)、除(/)四個(gè)符號(hào)鍵、清除鍵(AC)和“=”鍵,故共需
20、要 16 個(gè)按鍵即可,設(shè)計(jì)中采用 4*4 矩陣鍵盤最是合適。c) 執(zhí)行程序:先把電源通電,通電成功是顯示器亮,但并不現(xiàn)實(shí)任何字符。等待鍵盤向單片機(jī)輸入數(shù)據(jù)、指令,當(dāng)輸入的是 09 數(shù)字時(shí),顯示器顯示所輸入的數(shù)字;當(dāng)輸入+、-、*、/運(yùn)算符時(shí),不僅顯示器 LCD 會(huì)顯示運(yùn)算符,在單片機(jī)內(nèi)部同時(shí)還會(huì)執(zhí)行數(shù)值的轉(zhuǎn)換和存儲(chǔ)工作,并等待再次輸入數(shù)值;按下“=”鍵后就能夠在顯示器 LCD 上讀出之前的運(yùn)算結(jié)果和等號(hào)。d) 錯(cuò)誤提示:當(dāng)輸入的數(shù)值位數(shù)或者計(jì)算完的結(jié)果的數(shù)值位數(shù)超出計(jì)算器的顯示范圍時(shí),在LCD 上就會(huì)提示溢出。顯示一串凌亂的數(shù)字,是錯(cuò)誤的結(jié)果;當(dāng)輸入的除數(shù)為 0 時(shí),在 LCD 顯示器上將會(huì)提
21、示錯(cuò)誤,顯示出等號(hào)和除號(hào);不輸入加數(shù)時(shí),按等號(hào)鍵時(shí)可以顯示被加數(shù);不輸入除數(shù)就直接按等號(hào)鍵時(shí),不能顯示被除數(shù),顯示亂碼;若是軟件設(shè)計(jì)部分也就是單片機(jī)的執(zhí)行程序出現(xiàn)問題,也是會(huì)在 LCD 上顯示相應(yīng)的提示。3.2 系統(tǒng)總體設(shè)計(jì)框圖 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 3如圖 3-1 所示,計(jì)算器的設(shè)計(jì)主要由控制器,輸入模塊,輸出模塊等組成。 圖 3-1 系統(tǒng)總體設(shè)計(jì)框圖3.3 系統(tǒng)硬件電路設(shè)計(jì)硬件系統(tǒng),顧名思義就是指構(gòu)成微機(jī)系統(tǒng)的實(shí)體和裝置,通常由運(yùn)算器、控制器、存儲(chǔ)器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機(jī)是最簡(jiǎn)單的計(jì)算機(jī),在實(shí)際應(yīng)用中,構(gòu)成一個(gè)真正的單片機(jī)應(yīng)用系
22、統(tǒng),必須要單片機(jī)輔助于各種外部擴(kuò)展設(shè)備和電路,因?yàn)閼{借一個(gè)單片機(jī)一般很難與被控對(duì)象直接進(jìn)行電氣連接。本設(shè)計(jì)計(jì)劃選用 MCS-51 系列中的 AT89C51 單片機(jī)作為電子計(jì)算器的主控單元。按鍵部分:采用 4*4 鍵盤。顯示部分:采用 LCD 液晶靜態(tài)顯示。電子計(jì)算器設(shè)計(jì)的硬件電路原理圖見附錄 3。3.3.13.3.1 AT89C51AT89C51 單片機(jī)簡(jiǎn)介單片機(jī)簡(jiǎn)介AT89C51 是 ATMEL 公司生產(chǎn)的一種單片機(jī)。采用了公司的高密度存儲(chǔ)技術(shù)生產(chǎn),具有低電壓、高性能與非易失性等優(yōu)點(diǎn)。片內(nèi)有只讀程序存儲(chǔ)器(ROM)以及隨機(jī)存取數(shù)據(jù)存儲(chǔ)器兩種。單片機(jī)內(nèi)部置有通用的中央處理器(CPU)(8 位)
23、和閃存Flash。AT89C51 單片機(jī)的功能非常強(qiáng)大,在許多場(chǎng)合都被采用,因?yàn)樗男詢r(jià)比很高,所以在各個(gè)控制領(lǐng)域都能見到,尤其可體現(xiàn)在電子研究領(lǐng)域。AT89C51 單片機(jī)價(jià)格低、性能高令之受到極大的歡迎。AT89C51 單片機(jī)采用 40 引腳雙列直插封裝(DIP)方式。AT89C51 芯片引腳圖如圖 3-2 所示。 晶振電路 復(fù)位電路 鍵盤模塊LCD1602 AT89C51 單片機(jī) 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 4圖 3-2 AT89C51 芯片引腳圖a) 主要性能參數(shù)AT89C51 為 MCS-51 一員,完全兼容 MCS-51 產(chǎn)品指令系統(tǒng);一個(gè) 8 位的 CPU;4K byt
24、es 可反復(fù)擦寫 ROM;Flash 閃速存儲(chǔ)器;0HZ-24MHZ 的全靜態(tài)操作;128*8 bytes 的內(nèi)部 RAM;32 個(gè)可編程輸入/輸出接口線(P0P3 共四個(gè) 8 位并行 I/O 端口);兩個(gè)定時(shí)/計(jì)數(shù)器 ,均是 16 位的;中斷源 6 個(gè);一個(gè)全雙工串行口;可編程串行 UART 通道;三級(jí)加密程序存儲(chǔ)器;低功耗 CMOS 空閑;特有的掉電模式。b) 功能特性概述 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 5AT89C51 提供的標(biāo)準(zhǔn)功能如下:4K 字節(jié)的 Flash 閃速存儲(chǔ)器;128 字節(jié)內(nèi)部RAM;兩個(gè) 16 位定時(shí)/計(jì)數(shù)器;32 個(gè) I/O 線;全雙工串行通信接口一個(gè);
25、片內(nèi)振蕩器;5 個(gè)中斷源之中含兩級(jí)嵌套的中斷結(jié)構(gòu);時(shí)鐘電路;包括 0HZ 及以上的靜態(tài)邏輯操作;兩種軟件可選其一工作的節(jié)電工作模式;空閑方式停止 CPU 工作;掉電方式保存 RAM 中的內(nèi)容。AT89C51 單片機(jī)的結(jié)構(gòu)框圖如圖 3-3 所示。圖 3-3 AT89C51 單片機(jī)結(jié)構(gòu)框圖c) 引腳定義及功能本設(shè)計(jì)選用 AT89C51 高性能單片機(jī),將會(huì)用到 P0 口、P1 口、部分 P2 口、XTAL1、XTAL2、RST 以及EA口,當(dāng)然還有電源接口。因?yàn)橐_數(shù)量少的緣故,所以會(huì)有不少的引腳有兩種使用功能。這些引腳接下來一一介紹。 主電源引腳 Vss 和 Vcc:Vss(20 腳):接地。Vc
26、c(40 腳):接+5V 的主電源。 輸入/輸出引腳 P0、P1、P2 和 P3:P0.0P0.7(3239 腳):P0 口一般地作為 8 位雙向的 I/O 端口使用,在其他情況下也可以作為數(shù)據(jù)/地址總線使用。在 CPU 訪問片外存儲(chǔ)器之時(shí),P0 口分時(shí)運(yùn)行,先作低 8 位地址總線,后作雙向數(shù)據(jù)總線,這時(shí)就不能再將 P0 口視為一般的 I/O端口了。P0 能驅(qū)動(dòng) 8 個(gè) LSTTL 輸入端。P1.0P1.7(18 腳):P1 口就作為一般的 8 位準(zhǔn)雙向 I/O 端口使用。在對(duì) EPROM 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 6編程時(shí),它輸入低八位地址。在驗(yàn)證程序時(shí)與在 EPROM 編程時(shí)
27、相同。P1 只能驅(qū)動(dòng) 3個(gè) LSTTL 輸入端。P2.0P2.7(2128 腳):不同于 P1 的地方是,它在對(duì) EPROM 編程與在驗(yàn)證程序時(shí),它是輸出高 8 位地址的,這與 P1 端口恰恰是完全相反的。而相同的是,P2 口的引腳也只能夠驅(qū)動(dòng) 3 個(gè) LSTTL 輸入端。P3.0P3.7(1017 腳):P3 口的 8 個(gè)引腳除了可以作為 I/O 端口使用外,這 8個(gè)引腳全都具備專門的第二功能,見表 3-1。表 3-1 P3 各口線的第二功能表口線第二功能P3.0RXD(串行口的輸入端)P3.1TXD(串行口的輸出端)P3.2INT0(外部中斷輸入口)P3.3INT1(外部中斷輸出口)P3.
28、4T0(可完成定時(shí)器 0 的外部輸入)P3.5T1(可完成定時(shí)器 1 的外部輸入)P3.6WR(片外數(shù)據(jù)存儲(chǔ)器的寫選通控制輸出)P3.7RD(片外數(shù)據(jù)存儲(chǔ)器的讀選通控制輸出)控制信號(hào)引腳 RST/VPD 和EA/VPPRST/Vpd(9 腳):此引腳為復(fù)位信號(hào)輸入引腳也可作備用電源輸入引腳使用。若是 RST 引腳通過 22uF 電容接到 Vcc 上并且同時(shí)通過 10k 下拉電阻接地,就可獲得上電自動(dòng)復(fù)位的結(jié)果。除此之外,該引薦還具有掉電保護(hù)功能,此時(shí)只要將 Vpd接+5V 備用電源,一旦芯片在使用 Vcc 中電壓突然下降或者斷電(成掉電或失電),能保護(hù)片內(nèi) RAM 中信息不回丟失,使得恢復(fù)電源
29、供電后能夠繼續(xù)正常的運(yùn)行。EA/VPP(31 腳):當(dāng)向EA端口輸入高電平時(shí),CPU 就執(zhí)行程序,在低 4 KB地址范圍內(nèi)是訪問片內(nèi)程序存儲(chǔ)器。但是當(dāng)訪問范圍超出 4 KB 地址時(shí),將會(huì)自動(dòng)跳轉(zhuǎn)去訪問片外程序存儲(chǔ)器。若是向EA輸入低電平的話,CPU 就僅訪問片外程序存儲(chǔ)器。由此可見 8031 的EA端應(yīng)接上低電平。此外,該引腳又是編程電壓輸入信號(hào)的引腳。 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 7時(shí)鐘電路引腳 XTAL1 和 XTAL2:XTAL1(19 腳):接外部晶體的一端。在采用外部時(shí)鐘時(shí),該引腳必須要與地相連接。XTAL2(18 腳):與外部晶體的另一端相連接。采用外部時(shí)鐘電路的情
30、況,該引腳則應(yīng)當(dāng)接外部時(shí)鐘的輸入端口。d) 數(shù)據(jù)傳送結(jié)構(gòu)在整個(gè)微機(jī)系統(tǒng)中,CPU 通過外部總線與存儲(chǔ)器和輸入/輸出接口電路交換信息,輸入輸出接口則通過各個(gè)端口與外圍設(shè)備。其數(shù)據(jù)傳送結(jié)構(gòu)如圖 3-4 所示,現(xiàn)在分別加以說明: 圖 3-4 8051 數(shù)據(jù)傳送結(jié)構(gòu)圖e) 中央處理器中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是計(jì)算機(jī)的控制指揮中心。與微型計(jì)算機(jī)類似,AT89C51 單片機(jī)內(nèi)部 CPU 由算術(shù)/邏輯運(yùn)算器(ALU)和控制器兩部分組成。算術(shù)運(yùn)算/邏輯運(yùn)算單元為核心的運(yùn)算器是由暫存器、累加器寄存器 B 以及程序狀態(tài)寄存器 PSW 等幾部分組成的。主要工作是完成包括算術(shù)運(yùn)算、邏輯運(yùn)算等各種運(yùn)
31、算和數(shù)據(jù)傳送等操作,操作結(jié)果就保存到 PSW 中即可。而控制器是由程序計(jì)數(shù)器、指令譯碼器、堆棧指針以及數(shù)據(jù)指針等控制電路組合而成,主要是用于指揮和協(xié)調(diào)單片機(jī)的工作。CPU 的操作過程如下:按程序計(jì)數(shù)器 PC 的內(nèi)容,將指定的存儲(chǔ)地址放在地址總線上;通過數(shù)據(jù)總線從存儲(chǔ)器中取出指令,并且對(duì)指令譯碼;按指令的地址碼,取出指令所需的操作數(shù);執(zhí)行指令所規(guī)定的操作數(shù);提供表示狀態(tài)的標(biāo)志信號(hào)、控制信號(hào)和定時(shí)信號(hào),以供微機(jī)系統(tǒng)使用;有實(shí)時(shí)中斷處理的能力。 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 8f) 程序存儲(chǔ)器(ROM)AT89C51 程序存儲(chǔ)器 ROM 主要用于存放程序、表格或者一些常數(shù)。8051 片內(nèi)有
32、 4KB 的掩膜 ROM,片外用 16 位地址線最多可以擴(kuò)展 64 KB ROM,片內(nèi)與片外的 ROM 是統(tǒng)一編址的。AT89C51 的EA引腳為選擇內(nèi)部或者外部 ROM 控制端,當(dāng)EA端接高電平,80C51 的程序計(jì)數(shù)器 PC 在 0000H0FFFH 地址范圍內(nèi)(前 4KB 地址)是執(zhí)行片內(nèi) ROM 中的程序。當(dāng) PC 值超過 0FFFH 時(shí),PC 將自動(dòng)跳轉(zhuǎn)去執(zhí)行片 1000HFFFFH 地址范圍ROM 中的程序。當(dāng)EA端保持低電平時(shí),8051 的所有取指令操作均在片外程序存儲(chǔ)器中進(jìn)行,這時(shí)片外存儲(chǔ)器可以從 0000H 開始編址。g) 數(shù)據(jù)存儲(chǔ)器(RAM)AT89C51 片內(nèi)有 256
33、字節(jié) RAM,片外最多可擴(kuò)充 64K 字節(jié) RAM,構(gòu)成兩個(gè)地址空間。就片外數(shù)據(jù)存儲(chǔ)器可采用的尋址方式是間接尋址方式,R0、R1 和 DPTR 都可以作為間址寄存器使用。前者是 8 位地址指針,尋址范圍僅為 256 個(gè)字節(jié),而 DPTR是 16 位地址指針,尋址范圍可達(dá) 64K 字節(jié)。片內(nèi)數(shù)據(jù)存儲(chǔ)器采用 8 位地址,最大可尋址 256 個(gè)單元。片內(nèi)低 128 字節(jié)的地址區(qū)域設(shè)置了片內(nèi) RAM,對(duì)其訪問可采用直接尋址和間接尋址方式。高 128 字節(jié)地址區(qū)域 RAM(即 80HFFH)為專用寄存器區(qū),只能采用寄存器間接尋址方式。需要注意的是,該區(qū)域的地址范圍與特殊功能寄存器區(qū)域相重疊,區(qū)別在于訪問
34、特殊功能寄存器區(qū)是采用直接尋址方式。如表 3-2 所示為工作寄存器地址表。表 3-2 工作寄存器地址表組0123RS1RS000011011R000H08H10H18HR101H09H11H19HR202H0AH12H1AHR303H0BH13H1BHR404H0CH14H1CHR505H0DH15H1DH 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 9續(xù)表 3-2R606H0EH16H1EHR707H0FH17H1FHh) 定時(shí)/計(jì)數(shù)器16 位的定時(shí)器/計(jì)數(shù)器簡(jiǎn)言之就是一個(gè)加一的加法計(jì)數(shù)器,既能夠做定時(shí)器用,又可以做計(jì)數(shù)器使用。當(dāng)定時(shí)/計(jì)數(shù)器設(shè)置為定時(shí)器使用時(shí),振蕩器每隔 12 分頻信號(hào)產(chǎn)生
35、時(shí)計(jì)數(shù)器便會(huì)自動(dòng)加上 1,也就是一個(gè)機(jī)器周期,就相當(dāng)于計(jì)數(shù)器可以自動(dòng)加 1,到計(jì)滿溢出才會(huì)停止加 1。由于機(jī)器周期是定值精度高,因此計(jì)數(shù)值乘機(jī)器周期就是定時(shí),如晶振為 12MHz,則計(jì)數(shù)值 100 相當(dāng)于定時(shí) 100us。當(dāng)定時(shí)器/計(jì)數(shù)器設(shè)置為計(jì)數(shù)的工作方式時(shí),加法計(jì)數(shù)器的初始值可以是由程序的確定而設(shè)定的,設(shè)置的初值不同,那么計(jì)數(shù)值或定時(shí)時(shí)間就不相同。AT89C51 單片機(jī)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)圖如圖 3-5 所示。圖 3-5 AT89C51 單片機(jī)定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)圖i) 并行輸入/輸出(I/O)口AT89C51 共有 4 組 8 位并行 I/O 雙向端口,稱為 P0、P1、P2 和 P3 口,
36、每個(gè)端口都各有 8 條 I/O 端口線,并且每條端口線都可以獨(dú)立的用作輸入或輸出。每個(gè)端口都包含一個(gè)鎖存器、一個(gè)輸出驅(qū)動(dòng)器和輸入緩沖器。P1 口至 P3 口的輸出極接有內(nèi)部上拉電阻,它們每一位都可驅(qū)動(dòng) 4 個(gè) TTL 門電路。并行輸入/輸出(I/O)雙向端口用于在外設(shè)之間傳輸數(shù)據(jù)的場(chǎng)合居多。j) 全雙工串行口 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 10全雙工串行通信口就是數(shù)據(jù)可以在發(fā)送的同時(shí)進(jìn)行接受的傳輸工作。該串行口首先可以用作異步通信的信號(hào)收發(fā)器(UART)進(jìn)行數(shù)據(jù)的串化、反串化和格式信息的插入、濾除,其次也可以當(dāng)同步移位器使用。作為同步移位器使用時(shí),一次性發(fā)送的數(shù)據(jù)量大。傳輸方向如圖
37、3-6 所示。圖 3-6 全雙工傳輸方向k) 中斷系統(tǒng)AT89C51 具備較為完善的中斷功能。中斷處理過程一般首先是中斷響應(yīng),即 CPU 對(duì)中斷源的中斷請(qǐng)求,而 CPU 并不是時(shí)刻都會(huì)響應(yīng)發(fā)來的中斷請(qǐng)求,而是滿足條件的才會(huì)響應(yīng)請(qǐng)求。其次是中斷處理,就是處理中斷源傳送過來的中斷請(qǐng)求,最后還有一個(gè)恢復(fù)現(xiàn)場(chǎng)的步驟。中斷服務(wù)是單片機(jī)自帶的服務(wù),可以說是單片機(jī)的一大特色,中斷簡(jiǎn)言之就是可以暫停目前的程序,返回或者跳躍到想到的程序處執(zhí)行,執(zhí)行完畢之后,再次回到剛剛暫停的程序處。中斷的特點(diǎn)是可以提高 CPU 的工作效率,實(shí)時(shí)處理各處變量,還能夠準(zhǔn)確及時(shí)的對(duì)故障程序進(jìn)行處理。整個(gè)中斷控制系統(tǒng)的結(jié)構(gòu)圖如圖 3-
38、7 所示。 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 11圖 3-7 中斷控制系統(tǒng)結(jié)構(gòu)圖3.3.23.3.2 時(shí)鐘電路和復(fù)位電路的設(shè)計(jì)時(shí)鐘電路和復(fù)位電路的設(shè)計(jì)a) 晶振電路MCS-51 系列中的 80C51 單片機(jī)的時(shí)鐘信號(hào)通常可以用兩種電路形式得到:內(nèi)部震蕩方式與外部震蕩方式。在引腳 XTAL1 和 XTAL2 外接晶體振蕩器,就構(gòu)成了內(nèi)部振蕩電路,如圖 3-8。圖中 C1、C2 起穩(wěn)定振蕩頻率、快速起振的作用,電容值為 33pF。晶振常選用頻率為 6MHZ、12MHZ 或 24MHZ 的,采用串口時(shí)常使用頻率為 11.0592MHZ 的晶振。內(nèi)部振蕩方式所得到的時(shí)鐘信號(hào)較外部所得更加穩(wěn)定
39、。圖 3-8 內(nèi)部振蕩方式b) 指令時(shí)序單片機(jī)執(zhí)行每一條指令,都是要按照嚴(yán)格的時(shí)序進(jìn)行的。下面畫出幾個(gè)典型的單機(jī)器周期和雙周期指令的時(shí)序圖,如圖 3-9 所示。 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 12 圖 3-9 指令執(zhí)行時(shí)序圖c) 復(fù)位電路AT89C51 單片機(jī)復(fù)位的目的在于使得 CPU 和系統(tǒng)中的其他各功能部件都處于當(dāng)前一個(gè)確定的初始狀態(tài)。并且要以這個(gè)狀態(tài)為起點(diǎn)開始工作,比如說復(fù)位后PC=000FH,使單片機(jī)從第十七個(gè)單元取指令。除了系統(tǒng)正常開機(jī)復(fù)位(上電復(fù)位)外,當(dāng)程序運(yùn)行過程中出錯(cuò),或者是因操作錯(cuò)誤導(dǎo)致系統(tǒng)處于死循環(huán)狀態(tài)的情況下,也是需要復(fù)位以使其恢復(fù)但正常工作的狀態(tài)。所謂復(fù)位電
40、路,是在需要單片機(jī)復(fù)位時(shí),能夠產(chǎn)生可靠復(fù)位脈沖的電路。最常見的復(fù)位電路大致有兩種:分別是上電自動(dòng)復(fù)位電路和按鍵手動(dòng)復(fù)位電路。上電自動(dòng)復(fù)位電路利用電容充電來實(shí)現(xiàn)的。接電時(shí),RST 端的電位保持與 VCC 相同,電流越少,電位越低,只要保證 RST 為高電平的時(shí)間超過 2 個(gè)機(jī)器周期,就能正常復(fù)位。本次設(shè)計(jì)就是采用上電自動(dòng)復(fù)位的方式,上電復(fù)位電路圖如圖 3-10 所示。圖 3-10 復(fù)位電路3.3.33.3.3 單片機(jī)最小系統(tǒng)的設(shè)計(jì)單片機(jī)最小系統(tǒng)的設(shè)計(jì)MCS-51 單片機(jī)是一種功能較強(qiáng)的微型計(jì)算機(jī),它集 CPU、EPROM、RAM、I/O 接 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 13口及中
41、斷系統(tǒng)于一體,利用單片機(jī)本身的資源,外加電源和晶振就可以構(gòu)建一個(gè)簡(jiǎn)單的控制系統(tǒng),實(shí)現(xiàn)對(duì)接收到的數(shù)字信號(hào)的簡(jiǎn)單處理和基本控制。AT89C51 與 8051 在結(jié)構(gòu)方面大同小異。在 AT89C51 單片機(jī)幾個(gè)控制端口上,連接上時(shí)鐘電路和復(fù)位電路即可實(shí)現(xiàn)最小系統(tǒng)。 使用 AT89C51 單片機(jī)實(shí)現(xiàn)的最小系統(tǒng)如圖 3-11 所示.圖 3-11 最小系統(tǒng)示意圖 3.3.43.3.4 矩陣鍵盤接口模塊矩陣鍵盤接口模塊鍵盤是微型計(jì)算機(jī)最常用的輸入設(shè)備之一,也是現(xiàn)實(shí)中最主要的輸入設(shè)備。用戶可以通過鍵盤向各種設(shè)備中輸入指令、地址、數(shù)據(jù)。鍵盤的廣泛應(yīng)用和對(duì)健康生活的追求,人們對(duì)鍵盤的要求越來越高。攜帶是否方便、手
42、感是否舒適,這些都是用戶選擇鍵盤首先考慮的內(nèi)容。鍵盤多種多樣、種數(shù)極多,就連分類方法也是很復(fù)雜。從編碼的角度來分,通常熟悉的編碼鍵盤和非編碼鍵盤就是從能否編碼的監(jiān)督區(qū)分的,一個(gè)按鍵直接使用可稱為獨(dú)立式鍵盤,排成矩陣形式使用的情況下又被成為行列式鍵盤。一般在做基于單片機(jī)的電子產(chǎn)品設(shè)計(jì)中采用非編碼鍵盤的居多。非編碼鍵盤也是集結(jié)構(gòu)簡(jiǎn)單、使用靈活等眾優(yōu)點(diǎn)于一身的。設(shè)計(jì)中采用的 4*4 矩陣鍵盤就是非編碼鍵盤的一員,矩陣鍵盤擁有所有非編碼鍵盤的優(yōu)點(diǎn)。如果按照按鍵的排列分布方式分類,那么又可以分為獨(dú)立方式和行列方式兩種。獨(dú)立式的是指將每個(gè)獨(dú)立按鍵按照一一對(duì)應(yīng)的方式直接與 I/O 輸入線相連接。當(dāng)讀鍵值時(shí)直
43、接讀 I/O 口,每一個(gè)鍵的狀態(tài)通過讀入鍵值的一位來反映。在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的 I/O 口資源,因此在很多情況下都不不提倡采用 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 14這樣的方式。 行列方式排列就是用 X 條 I/O 線組成行的輸入口,再用 Y 條 I/O 線組成列的輸出口,在行線與列線的每一個(gè)相交的交點(diǎn)之上,就設(shè)置一個(gè)按鍵。但要注意的是,這 X 條行線和 Y 條列線在交叉點(diǎn)處不直接連通,而是通過設(shè)置的這個(gè)按鍵加以連接。這樣,4*4=16 個(gè)按鍵集成在一個(gè)端口上,比直接將端口線接上按鍵多出了一倍,如此,端口線數(shù)越多,所產(chǎn)生的效果越是差異明顯。一般是采用掃描方式來取讀
44、鍵值。所以,在需要的鍵數(shù)比較多的設(shè)計(jì)中,采用矩陣法來分布按鍵較為合理。本次設(shè)計(jì)的電子計(jì)算器的鍵盤布局恰恰是采用矩陣式鍵盤,一般矩陣式鍵盤都由 16 個(gè)鍵組合而成,而在 AT89C51 單片機(jī)中正好采用 P1 端口可完全實(shí)現(xiàn) 16 個(gè)按鍵功能,矩陣式按鍵分布在在單片機(jī)系統(tǒng)設(shè)計(jì)中最常被使用。如圖 3-12 所示: 圖 3-12 4*4 矩陣鍵盤電路3.3.53.3.5 LCD1602LCD1602 顯示模塊顯示模塊本設(shè)計(jì)采用 LCD 液晶顯示器來顯示輸出數(shù)據(jù)。設(shè)計(jì)中選用 LCD1602 作為顯示器有以下幾點(diǎn)原因:a) 顯示質(zhì)量高。由于液晶顯示器的使用的每種液晶材料都有自己固定的清亮點(diǎn)TL 和結(jié)晶點(diǎn)
45、 TS,所以對(duì)在保存和使用的時(shí)候需要在 TSTL 之間的一定的范圍溫度,在正常使用中,溫度都是合格的,所以總會(huì)以一定的亮度和顏色呈現(xiàn),并不會(huì)改變,是恒定持久的。并不想 LED 那樣需要不斷的刷新亮點(diǎn),所以 LCD 顯示是清晰可靠。b) 數(shù)字式接口。所有的液晶顯示器都是數(shù)字式的,使用起來更加的簡(jiǎn)單方便。在做單片機(jī)設(shè)計(jì)時(shí)是上選。c) 體積小、重量輕。液晶顯示器在重量上比同等要求下的傳統(tǒng)顯示器件要輕很多。大多液晶顯示器都是袖珍式的。d) 功率消耗小。相比而言,液晶顯示器的耗能主要是體現(xiàn)在顯示器內(nèi)部的驅(qū)動(dòng) 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 15上,這比其他顯示器件遠(yuǎn)小的多。引腳功能說明見表
46、3-3。表 3-3 LCD1602 芯片引腳功能引腳號(hào)符號(hào)電平輸入/輸出功能1VSS電源地2VDD電源+5V3V0 對(duì)比度調(diào)整電壓。接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最強(qiáng),對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影” ,使用時(shí)可以通過一個(gè) 10K 的電位器調(diào)整對(duì)比度4RS0/1輸入寄存器選擇:1 代表數(shù)據(jù)寄存器;0 代表指令寄存器5 R/W0/1輸入讀、寫操作:1 代表讀;0 代表寫6E1,1 0輸入使能信號(hào):1 時(shí)讀取信息;1 0 下降沿時(shí)執(zhí)行命令7DB00/1輸入/輸出數(shù)據(jù)總線(LSB)8DB10/1輸入/輸出數(shù)據(jù)總線9DB20/1輸入/輸出數(shù)據(jù)總線10DB30/1輸入/輸出數(shù)據(jù)總線11DB40/1輸入/輸
47、出數(shù)據(jù)總線12DB50/1輸入/輸出數(shù)據(jù)總線13DB60/1輸入/輸出數(shù)據(jù)總線14DB70/1輸入/輸出數(shù)據(jù)總線(MSB)15LEDA+VCC輸入背光電源+極(接+5V)16LEDK接地輸入背光電源-極(接地)在端口中,RS、R/W、E 為液晶模塊的控制信號(hào)。 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 16真值表見表 3-4。表 3-4 控制信號(hào)真值表RSR/WE功能00下降沿寫指令01高電平讀忙標(biāo)志和 AC 值10下降沿寫數(shù)據(jù)11高電平讀數(shù)據(jù)LCD1602 顯示器液晶模塊對(duì)讀寫的操作需要通過指令編程來實(shí)現(xiàn)的。對(duì)屏幕和光標(biāo)的操作也同樣如此。讀寫操作時(shí)序圖入圖 3-13。圖 3-13 讀寫操作時(shí)序
48、圖 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 17本設(shè)計(jì)單片機(jī) P0 口通過 D0-D7 引腳向 LCD 顯示器中寫入指令字節(jié)或?qū)懗鰯?shù)據(jù),其接口電路如圖 3-14 所示:圖 3-14 LCD 引腳接口電路3.4 軟件系統(tǒng)設(shè)計(jì)3.4.13.4.1 匯編語言和匯編語言和 C C 語言的特點(diǎn)及選擇語言的特點(diǎn)及選擇本設(shè)計(jì)是硬件電路和軟件編程相結(jié)合的設(shè)計(jì)方案,使用何種編程語言是一個(gè)非尤為重要的決定。以往的一些在基于單片機(jī)的應(yīng)用系統(tǒng)設(shè)計(jì)時(shí),軟件部分最常用的是匯編語言和 C 語言這兩種。匯編語言是所有計(jì)算機(jī)語言中最接近機(jī)器編碼的一種語言。用文字助記符來表示指令的符號(hào),它的占用資源少,執(zhí)行起來迅速,但是匯編
49、語言編寫出來的程序可讀性和可移植性都比較差,不能重復(fù)使用。而 C 語言是一種高級(jí)語言。雖然 C 語言的執(zhí)行效率沒有匯編語言高,但好處在于語言簡(jiǎn)潔,用戶使用方便,靈活。各種各樣的邏輯運(yùn)算豐富,同樣的數(shù)據(jù)操作可表達(dá)的類型多樣化,有很好的可讀性,可移植性等特點(diǎn)。所以相比較而言,在本設(shè)計(jì)中采用 C 語言編寫軟件程序。主程序的設(shè)計(jì)詳見附錄 2。 3.4.23.4.2 主流程圖設(shè)計(jì)主流程圖設(shè)計(jì)主程序的運(yùn)行過程:a) 先初始化參數(shù),待LCD顯示之后判斷一下是否有鍵輸入,若是無按鍵輸入, 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 18那么繼續(xù)判斷,直到有按鍵輸入,就讀取按鍵。b) 分析剛剛讀取到的鍵值,是數(shù)字鍵
50、或者清零鍵,還是功能鍵。若是數(shù)字鍵或者是清零鍵,則在LCD上顯示數(shù)值。c) 讀取到功能鍵,那么進(jìn)行運(yùn)算,得到計(jì)算結(jié)果后保存下來,再次送入LCD中顯示出來。d) 主程序流程圖如圖3-15所示。 否 是 圖3-15 主程序流程圖從初始化參數(shù)LCD 顯示按鍵輸入?讀取按鍵分析鍵值數(shù)字鍵清零鍵功能鍵根據(jù)上次功能鍵和輸入的數(shù)據(jù)計(jì)算結(jié)果保存結(jié)果和功能鍵結(jié)果送顯示緩存等待數(shù)值輸入數(shù)值顯示中開始 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 193.4.23.4.2 鍵盤掃描程序設(shè)鍵盤掃描程序設(shè)計(jì)計(jì)鍵盤掃描程序的過程為:a) 開始時(shí),先判斷有沒有鍵處于閉合狀態(tài),若是無鍵閉合,那么再次進(jìn)行判斷,直到有鍵閉合再進(jìn)入
51、下一步流程。b) 有鍵閉合的情況下,接著先去抖動(dòng),接下來確定有鍵按下,若有鍵按下,那進(jìn)行下一流程,若無鍵按下,則返回再次判斷究竟有鍵閉合否。c) 確定有鍵按下之后,然后釋放,釋放不成功則返回接著釋放,直到釋放成功。d) 其流程圖如圖 3-16 所示。 圖 3-16 鍵掃程序流程圖 3.4.33.4.3 算術(shù)運(yùn)算程序設(shè)計(jì)算術(shù)運(yùn)算程序設(shè)計(jì)算術(shù)運(yùn)算程序的過程為:a) 先判斷剛剛輸入的運(yùn)算符是加、減、乘、除中的哪一個(gè)運(yùn)算符號(hào)。b) 若判斷是“+”號(hào)或“*”號(hào),則要接著判斷運(yùn)算結(jié)果是否溢出(超出運(yùn)算范YN開始有鍵閉合否?去抖動(dòng)確有鍵按下判斷鍵號(hào)釋放返回返回YNYN 基于 AT89C51 的電子計(jì)算器設(shè)計(jì)
52、 20圍)了。倘若有溢出則要將錯(cuò)誤信息送入顯示部分緩沖等待輸出,沒溢出就把運(yùn)算結(jié)果直接顯示。c) 若是“/”號(hào),先判斷除數(shù)為零否,不為零則可以直接顯示運(yùn)算結(jié)果,若是發(fā)現(xiàn)輸入的除數(shù)為零,則要緩沖準(zhǔn)備輸出錯(cuò)誤結(jié)果。d) 若判斷是“-”號(hào),則直接顯示運(yùn)算結(jié)果。e) 其流程圖如圖 3-17 所示。 圖 3-17 算術(shù)運(yùn)算程序設(shè)計(jì)流程圖3.4.43.4.4 顯示程序設(shè)計(jì)顯示程序設(shè)計(jì)顯示程序的過程為:開始運(yùn)算符是?加乘減除運(yùn)算結(jié)溢出?除數(shù)為0?錯(cuò)誤信息送顯示 緩沖數(shù)值送顯示緩沖YYNN 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 21a) 顯示開始時(shí),首先對(duì) LCD 進(jìn)行初始化。b) 初始化完成后判斷顯示
53、的是漢字、ACSII 碼或圖形,若都沒有顯示,則返回,若顯示的是漢字或 ACSII 碼,就先對(duì)顯示器進(jìn)行功能的設(shè)置,然后向顯示器中送進(jìn)地址再接著送進(jìn)數(shù)據(jù)。c) 再判斷是否全部顯示,顯示完全則返回,沒顯示完全則返回繼續(xù)送地址步驟。d) 若顯示的是圖形,也是先進(jìn)行相應(yīng)功能的設(shè)置,接著送行地址和列地址,然后才是送數(shù)據(jù)。e) 最后判斷是否全部顯示,若是完全顯示則返回,沒有顯示完全則返回去繼續(xù)進(jìn)行送行地址和列地址。f) 其流程圖如圖 3-18 所示。 NYN是否顯示完返回 LCD初始化顯示漢或ACSII 碼顯示開始顯示圖形相應(yīng)功能設(shè)置送地址送數(shù)據(jù)NN相應(yīng)功能設(shè)置送行地址和列地址送數(shù)據(jù)是否顯示完YY 基于
54、 AT89C51 的電子計(jì)算器設(shè)計(jì) 22 圖 3-18 顯示程序流程圖4 開發(fā)工具 Proteus 軟件 與 Keil C514.1 Proteus 軟件4.1.14.1.1 ProteusProteus 簡(jiǎn)介簡(jiǎn)介仿真軟件 Proteus 是英國(guó) LabCenter Electronics 公司研究開發(fā)的一款 EDA 工具軟件。能夠進(jìn)行電路分析與仿真軟件,功能很強(qiáng)大。Preteus 軟件主要由兩大部分組成:ISIS.EXE 和 ARES.EXE,其中,ISIS 的著重于電路原理圖的設(shè)計(jì)與電路原理圖的仿真活動(dòng),而 ARES 則是側(cè)重于印制電路板這一塊的設(shè)計(jì)。Proteus 不僅是數(shù)字模擬電路、混
55、合電路的設(shè)計(jì)加仿真,而且還是多種微控制器系統(tǒng)的設(shè)計(jì)與仿真平臺(tái)。令人稱贊的電路原理圖的仿真功能應(yīng)用廣泛,用于課堂教學(xué)時(shí)一款非常好的演示工具,而為設(shè)計(jì)研究開發(fā)帶來的便利,更是要贊不絕口。從 1989 年被研發(fā)到現(xiàn)在,20 多年的使用和改進(jìn),功能越來越是強(qiáng)大,性能也是越來越好。受到更多領(lǐng)域追捧。4.1.24.1.2 ProteusProteus 的的 4 4 大功能模塊大功能模塊a) 具有強(qiáng)大的 PCB 制作功能和原理圖的繪制功能。 b) 支持很多種類型的單片機(jī)系統(tǒng)設(shè)計(jì)開發(fā)的有關(guān)仿真的操作,例如有 MCS-51中的8051系列,還有 AVR 系列的單片機(jī),除此之外還有很多。c) 可以對(duì)鍵盤顯示器進(jìn)行
56、仿真運(yùn)行,還可以對(duì)空氣含量檢測(cè)進(jìn)行仿真檢測(cè)。該軟件中包含示波器、信號(hào)發(fā)生器等各種虛擬儀器。d) 提高軟件調(diào)試功能。在硬件仿真系統(tǒng)可以觀察到各個(gè)變量、寄存器等實(shí)時(shí)狀態(tài),具有全速、單步等幾種調(diào)試功能,因此在該軟件仿真系統(tǒng)中,也具備這些功能;同時(shí)可與 Keil u Vision 軟件聯(lián)調(diào)使用。總之,該軟件的仿真功能極其強(qiáng)大。應(yīng)用領(lǐng)域極為廣泛。4.1.34.1.3 ISISISIS 智能原理圖輸入系統(tǒng)智能原理圖輸入系統(tǒng)ISIS 是整個(gè) PROTEUS 仿真軟件的核心。它不僅有強(qiáng)大的設(shè)計(jì)環(huán)境,包含了原理圖繪制的方方面面。當(dāng)你對(duì)一個(gè)復(fù)雜的設(shè)計(jì)進(jìn)行仿真或者制版或需要用來發(fā)表的的圖表的話,ISIS 是一個(gè)非常
57、理想的工具。它的主要特點(diǎn)為: 可以自行更改原理圖中的線寬,填充類型,顏色,前端字體等;人性化的操作截面;使用鼠標(biāo)控制操作,可放置、移動(dòng)和刪除,方便并且加快設(shè)計(jì)速度;元件旋轉(zhuǎn)時(shí)走線自動(dòng)跟隨;完整的元件庫(kù);元件可以使用繪圖工具繪制添加;集成 PCB 封裝預(yù)覽;層次化電路設(shè)計(jì),子電路組成和屬性可以自己設(shè)置; 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 23支持子電路端口和元件總線繪制;元件屬性可以手動(dòng)編輯,按照需要修改;支持的網(wǎng)絡(luò)表格式:LABCENER SDF,SPICE,SPICE-AGE,tango, BoardMaker, EEDesigner, Futurenet, Racal, Vutr
58、ax 和 Valid 格式;完成繪圖后可進(jìn)行電氣規(guī)則自動(dòng)檢測(cè),并且能夠同步生成使用元件表;支持 WINDWOS 環(huán)境下打?。恢С州敵?BITMAP,METAFILE,DXF,EPS 等圖形格式。4.1.44.1.4 ProteusProteus 的簡(jiǎn)單應(yīng)用的簡(jiǎn)單應(yīng)用使用 Proteus 進(jìn)行設(shè)計(jì)仿真的基本操作如流程圖 4-1 所示。圖 4-1 Proteus 基本操作如流程圖新建設(shè)計(jì)文件,如圖4-2所示。 新建設(shè)計(jì)文件 選取元器件 放置元器件、電源和地 電路布線 電器檢查 設(shè)置元器件屬性 仿真 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 24圖4-2 新建設(shè)計(jì)文件界面選取元器件,如圖4-3所示。
59、圖4-3 選取元器件界面放置元器件,電源和地,如圖4-4所示。 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 25圖4-4 放置器件界面電路布線,如圖4-5所示。圖4-5 電路布線界面設(shè)置元器件屬性,如圖4-6所示。 基于 AT89C51 的電子計(jì)算器設(shè)計(jì) 26圖4-6 元器件屬性設(shè)置界面電氣檢查,如圖 4-7 所示。圖 4-7 電器規(guī)則檢查結(jié)果 仿真,如圖 4-8 所示。 鹽城工學(xué)院本科生畢業(yè)設(shè)計(jì)說明書(2014) 27圖 4-8 仿真界面4.2 Keil C51 軟件4.2.14.2.1 KeilKeil C51C51 軟件簡(jiǎn)介軟件簡(jiǎn)介Keil 軟件是目前為止在開發(fā) 8051 系列單片機(jī)之時(shí)
60、最常用的一款軟件,而 Keil C51 是目前為止世界上最強(qiáng)大,最優(yōu)秀的 51 系列單片機(jī)開發(fā)應(yīng)用平臺(tái)之一。Keil 提供了包括 C 編譯器,連接器以及仿真調(diào)試器等在內(nèi)的一系列完整的開發(fā)方案,通過一個(gè)集成開發(fā)應(yīng)用環(huán)境將這些部分全都組合在了一起。Keil C51 支持匯編語言、C 語言的程序編輯,具有友好的人機(jī)界面以及易學(xué)易懂的優(yōu)點(diǎn)。隨著單片機(jī)系列的發(fā)展,目前已是有越來越多的用戶從普遍使用匯編語言逐漸改用高級(jí)語言進(jìn)行系統(tǒng)開發(fā)。其中主要是以 C 語言為主的。Keil 非常適合用 C 語言開發(fā)技術(shù)。本次設(shè)計(jì)也是選擇這款軟件配合仿真。4.2.24.2.2 KeilKeil 軟件調(diào)試功能軟件調(diào)試功能Ke
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年1月普通高等學(xué)校招生全國(guó)統(tǒng)一考試適應(yīng)性測(cè)試(八省聯(lián)考)日語試題
- 2025版木枋行業(yè)合作開發(fā)與市場(chǎng)推廣合同4篇
- 二零二五年度子公司向母公司采購(gòu)原材料及貸款合同2篇
- 全球化對(duì)服務(wù)業(yè)現(xiàn)狀的全球影響考核試卷
- 2025版太陽(yáng)能光伏電站設(shè)計(jì)、施工與運(yùn)營(yíng)管理合同3篇
- 創(chuàng)意木制品設(shè)計(jì)與實(shí)踐考核試卷
- 2025年版專業(yè)演講錄音合同范本演講錄音制作授權(quán)協(xié)議4篇
- 二零二五年度工程建設(shè)項(xiàng)目拉森鋼板樁租賃合同3篇
- 2025版商場(chǎng)家居用品采購(gòu)配送與環(huán)保認(rèn)證服務(wù)合同3篇
- 二零二五版反擔(dān)保股權(quán)質(zhì)押合同2篇
- 河南省濮陽(yáng)市2024-2025學(xué)年高一上學(xué)期1月期末考試語文試題(含答案)
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長(zhǎng)競(jìng)聘演講稿(3篇)
- 2024年08月北京中信銀行北京分行社會(huì)招考(826)筆試歷年參考題庫(kù)附帶答案詳解
- 原發(fā)性腎病綜合征護(hù)理
- (一模)株洲市2025屆高三教學(xué)質(zhì)量統(tǒng)一檢測(cè) 英語試卷
- 基礎(chǔ)護(hù)理學(xué)導(dǎo)尿操作
- DB11∕T 1028-2021 民用建筑節(jié)能門窗工程技術(shù)標(biāo)準(zhǔn)
- (初級(jí))航空油料計(jì)量統(tǒng)計(jì)員技能鑒定理論考試題庫(kù)(含答案)
- 中國(guó)古代文學(xué)史 馬工程課件(中)24第六編 遼西夏金元文學(xué) 緒論
- 最新交管12123學(xué)法減分題庫(kù)含答案(通用版)
評(píng)論
0/150
提交評(píng)論