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

下載本文檔

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

文檔簡介

1、基于單片機的科學(xué)計算器設(shè)計摘要在現(xiàn)代科技迅猛發(fā)展的當(dāng)今,計算器依然是人們?nèi)粘I钪胁豢苫蛉钡碾娮赢a(chǎn)品之一。計算器始終在不斷發(fā)展與完善之中,功能必將更加強大?;谶@樣的理念,本設(shè)計采用AT89C51單片機作為主控芯片,使用C語言為系統(tǒng)進(jìn)行編程,采用4*4矩陣鍵盤作為輸入模塊,輸出模塊采用LCD1602液晶顯示,從而實現(xiàn)基于單片機的基本功能。本設(shè)計重點說明以下幾個方面容:1. 基于單片機的計算器所具備哪些基本功能,對矩陣鍵盤輸入原理與液晶顯示原理進(jìn)行簡單的闡述。2. 介紹系統(tǒng)的整體設(shè)計理念,展示系統(tǒng)設(shè)計的流程框圖,并對功能模塊的劃分,與所選用的元器件性能參數(shù)進(jìn)行詳細(xì)說明。3. 對系統(tǒng)的每個功能模塊

2、的軟硬件設(shè)計,進(jìn)行詳細(xì)說明。關(guān)鍵詞 單片機,AT89C52,LCD1602液晶,矩陣鍵盤,C語言35 / 38ABSTRACTIn the rapid development of modern science and technology today, the calculator is still one of the electronic products is an integral part of people's daily life. The calculator always among the continuous development and improvemen

3、t, the function will certainly be more powerful. Based on this concept, the design uses AT89C51 microcontroller as the master chip, using the C programming language for the system, with 4 * 4 matrix keyboard as an input module, output module LCD1602 LCD display, in order to achieve the basic functio

4、ns of the MCU.This design highlights the following aspects:1.microcontroller-based calculator with basic functions, the principle of a simple exposition of principle and LCD matrix keyboard input.2.describes the system's overall design concept, showing the flow diagram of the system design, the

5、and function module framing, and optional Component performance parameters described in detail.3.of each functional module of the system hardware and software design in detail.Keywords microcontroller AT89C52,LCD1602 LCD,matrix keyboard,C language目錄摘要IABSTRACTII1 緒論11.1課題的研究背景與意義11.2本課題研究的主要容22 設(shè)計任務(wù)

6、與方案32.1設(shè)計任務(wù)32.2設(shè)計方案33 系統(tǒng)硬件設(shè)計43.1單片機最小硬件系統(tǒng)43.1.1主控芯片AT89C52單片機簡介43.1.2復(fù)位電路93.1.3時鐘電路103.2鍵盤接口電路103.3液晶顯示電路114 系統(tǒng)軟件設(shè)計154.1鍵盤掃描部分程序設(shè)計154.2運算部分程序設(shè)計154.3顯示部分程序設(shè)計164.4主函數(shù)程序設(shè)計175仿真和調(diào)試195.1 keil系統(tǒng)概述195.2 Keil使用步驟195.3proteus 7.1 介紹205.4 Proteus 對于本設(shè)計的仿真步驟205.5仿真結(jié)果216 結(jié)論22參考文獻(xiàn)23附錄A:源程序24附錄B:系統(tǒng)總圖34致351 緒論1.1課

7、題的研究背景與意義計算器一般由運算器,存儲器,控制器,鍵盤,顯示器,電源和一些外圍設(shè)備與電子配件組成。低檔的計算器的運算器,控制器由數(shù)字邏輯電路實現(xiàn)簡單的串行運算。其隨機存儲器只有一到二個單元,供累加存儲用。高檔計算器由只讀存儲器和微處理器一同實現(xiàn)各種復(fù)雜的運算程序。且有較多的隨機存儲單元用來存放輸入程序和數(shù)據(jù)。鍵盤是計算器的輸入部件,采用接觸式或傳感式。顯示器是計算器的輸出部件,有發(fā)光二極管顯示器或液晶顯示器等。除顯示計算結(jié)果外,還常有溢出指示、錯誤指示等顯示。計算器電源采用電池或者交流轉(zhuǎn)換器池。為節(jié)省電能,計算器都采用CMOS工藝制作的大規(guī)模集成電路(見互補金屬-氧化物-半導(dǎo)體集成電路),

8、并在部裝有定時不操作自動斷電電路。計算器可選用的外圍設(shè)備有盒式磁帶機,微型打印機,磁卡機等等。計算器的基本類型:1. 算術(shù)型計算器:可進(jìn)行加、減、乘、除等簡單的四則運算,又稱簡單計算器。2. 科學(xué)型計算器:可進(jìn)行乘方、開方、指數(shù)、對數(shù)、三角函數(shù)、統(tǒng)計等方面的運算,又稱函數(shù)計算器。3. 程序計算器:可以編程序,把較復(fù)雜的運算步驟貯存起來,進(jìn)行多次重復(fù)的運算。當(dāng)今社會,隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進(jìn)了家家戶戶,無論是生活或?qū)W習(xí),還是娛樂和消遣幾乎樣樣都離不開電子產(chǎn)品,大型復(fù)雜的計算能力是人腦所不能勝任的,而且比較容易出錯。計算器作為一種快速通用的計算工具方便了用戶的使用。計算器這一程

9、序機器實際上是從計算機中割裂出來的衍生品,但因其方便快捷的操作模式,已經(jīng)被廣泛應(yīng)用于商業(yè)等日常生活中,極大的方便了人們對于數(shù)字的整合運算。起源和發(fā)展最早的計算工具誕生在中國?;I策是中國古代最早采用的一種計算工具,又被稱之為做算籌。這種算籌的制作材料多是竹子,木頭,或獸骨一束約二百七十枚,使用時可以放在布袋里面隨身攜帶。直到科技發(fā)達(dá)的今天,中國群眾任然有很多在使用珠算盤,珠算盤是中國古代計算工具領(lǐng)域中的另一項發(fā)明,到明代時期。珠算盤的結(jié)構(gòu)已經(jīng)幾乎與現(xiàn)代的珠算盤一樣。在17世紀(jì)初期,計算工具在西方國家的有了非常大的發(fā)展,英國數(shù)學(xué)家-納皮爾發(fā)明了納皮爾算籌,英國牧師-奧卻德發(fā)明了圓柱型對數(shù)計算尺,這

10、種計算尺能夠?qū)崿F(xiàn)多種計算功能,不僅能夠?qū)崿F(xiàn)基本的四則運算,也可以進(jìn)行乘方和開方運算。更為強大的是,這種計算尺還可以計算三角函數(shù),指數(shù)函數(shù)和對數(shù)函數(shù)。這些計算工具積極推動了計算器的發(fā)展,為現(xiàn)代計算器的發(fā)展奠定了非常良好的基礎(chǔ),慢慢演變,成為現(xiàn)代社會中廣泛應(yīng)用的計算工具。在1642年, 19歲的法國科學(xué)家-帕斯卡引用了算盤的原理,發(fā)明了世界上第一部機械式計算器,他的計算器裝置中有一些齒輪互相聯(lián)鎖,當(dāng)其中此輪轉(zhuǎn)過十位之后,就會使與其相連接的另一個齒輪轉(zhuǎn)過一位,使用者可以像使用撥盤那樣,直接把數(shù)字撥進(jìn)去,此后計算結(jié)果就可以出現(xiàn)在另一個窗口中,但是只可以做加減計算,不能做乘除運算。在1694年,德國的萊

11、布尼茲將機械式計算器進(jìn)行了改進(jìn),使其可以進(jìn)行乘除運算。自此此后,一直等到20世紀(jì)50年代末,電子計算器才開始出現(xiàn)。1.2本課題研究的主要容本設(shè)計主要研究的是,基于單片機的簡易計算器,采用AT89C52單片機作為主控器件,矩陣鍵盤輸入,液晶顯示器講計算過程與結(jié)果顯示輸出,通過C語言編程,實現(xiàn)建議簡易計算器的功能。2 設(shè)計任務(wù)與方案2.1設(shè)計任務(wù)1.對計算器硬件系統(tǒng)進(jìn)行設(shè)計,利用AT89C52作為主控器件,組成一個能進(jìn)行簡單四則運算的計算器,能進(jìn)行數(shù)據(jù)歸零,按鍵提示。2.運用keil進(jìn)行計算器軟件系統(tǒng)的設(shè)計。3.在protues仿真平臺上,對軟件進(jìn)行調(diào)試與仿真。2.2設(shè)計方案按照系統(tǒng)設(shè)計的功能的要

12、求,確定設(shè)計系統(tǒng)由主控模塊、顯示模塊、鍵盤掃描接口電路、按鍵提示電路4個模塊組成。系統(tǒng)構(gòu)成框圖如圖2.1所示:圖2.1系統(tǒng)構(gòu)成框圖3 系統(tǒng)硬件設(shè)計3.1單片機最小硬件系統(tǒng)單片機最小系統(tǒng)就是支持主芯片正常工作的最小電路部分,包括主控芯片、復(fù)位電路和時鐘電路。3.1.1主控芯片AT89C52單片機簡介AT89C52引腳圖如圖3.1所示:圖3.1AT89C52引腳圖AT89C52是ATMEL公司生產(chǎn)的51系列單片機,是一個低電壓,高性能CMOS 8位單片機,片含8k bytes的可以反復(fù)擦寫的Flash 只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM)。AT89C52的主要功能特性:

13、 兼容MCS51指令系統(tǒng) 8k可反復(fù)擦寫 Flash ROM32個雙向 I/O口 與 256x8bit 部RAM3個16位 可編程定時/計數(shù)器 中斷 時鐘頻率0-24MHz2個 串行 中斷 ,可編程 UART串行通道2個 外部 中斷源 , 共6個 中斷源2個 讀寫 中斷口線 , 3級 加密位低功耗 空閑和掉電 模式 ,軟件設(shè)置睡眠與喚醒功能AT89C52的主要管腳有:XTAL1:振蕩器反相放大器的與部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。外接12MHz 晶振。VCC和VSS:為供電端口,分別接+5V電源的正負(fù)端。RST/Vpd:為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。P

14、0 口:8 位漏極開路型雙向I/O 口, 地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位可以用吸收電流的方式來驅(qū)動8 個TTL邏輯門電路,對端口P0 寫“1”時,可以作為高阻抗輸入端使用。在訪問外部數(shù)據(jù)存儲器或者程序存儲器的時候,分時轉(zhuǎn)換地址低8 位,和數(shù)據(jù)總線復(fù)用。在訪問期間激活部的上拉電阻。P1 口:帶有部上拉電阻的8 位 雙向I/O 口, P1的輸出緩沖級 可以驅(qū)動(吸收電流或輸出電流)的4 個TTL 邏輯門電路。對端口寫“1”時,通過部的上拉電阻可以把端口拉到高電平,可作輸入口使用。當(dāng)作為作輸入口使用時,因為部存在有上拉電阻,因此某個引腳被外部信號拉低,會輸出一個電流(IIL)。與AT89

15、C51 不同之處是,P1.0 和P1.1 還可分別作為定時/計數(shù)器2 的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)。參見表1:表1:引腳功能特性P1.0T2 時鐘輸出P2.0T2EX (定時器/計數(shù)器2)P2 口:為帶有部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可以驅(qū)動(吸收電流或輸出電流)4 個TTL邏輯門電路。當(dāng)對端口P2 寫“1”時,通過部的上拉電阻可以把端口拉到高電平去,此時可作輸入口使用,當(dāng)作輸入口使用時,因為其部存在有上拉電阻,當(dāng)某個引腳被外部信號拉低的時候會輸出一個電流(IIL)。P3 口:為帶有部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動

16、(吸收電流或輸出電流)4 個TTL邏輯門電路。當(dāng)對P3 口寫入“1”時,它們會被部上拉電阻拉高并且可以作為輸入端口。此時,當(dāng)被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能P3 口還可以接收一些用于Flash 閃速存儲器編程與程序校驗的控制信號。ALE/PROG:當(dāng)訪問數(shù)據(jù)存儲器或者外部程序存儲器的時候,ALE(地址鎖存)允許輸出脈沖用在鎖存地址的低8 位字節(jié)。一般情況之下,ALE 仍然以時鐘振蕩頻率的六分之一來 輸出固定的脈沖信號。因此它可以用來為外部輸出時鐘或者用來作為定時目的。值得大家注意的是:每當(dāng)來訪問外部的數(shù)據(jù)存儲器

17、時,將會跳過一個ALE 脈沖。在對Flash 存儲器編程的期間,該引腳還可以用于輸入編程脈沖(PROG)。如果有必要,還可通過對特殊功能寄存器(SFR)區(qū)域中的8EH 單元的D0 位置位,可以禁止ALE 操作。在該位置位后,只有一條MOVX 和MOVC指令才可以將ALE 激活。此外,該引腳還會被微微拉高一些,當(dāng)單片機執(zhí)行外部程序時,應(yīng)該設(shè)置ALE 禁止位無效。PSEN:程序存儲允許外部程序讀取存頻閃(PSEN)的方式,當(dāng)AT89C52取從外部程序存儲器讀取指令時(或數(shù)據(jù)),每個機器周期兩次有效PSEN。作為外部數(shù)據(jù)存儲器的訪問,并在同一時間傳遞信號,跳過PSEN兩次。EA/VPP:允許外部訪問

18、,意圖使CPU只訪問外部程序的存儲器(地址圍為0000H-FFFFH),EA端必須保持低電平(接地)。注意:如果當(dāng)加密位LB1被編程時,EA端狀態(tài)會在復(fù)位時被部鎖存。如果EA管腳接為高電平(連接Vcc端)時,CPU執(zhí)行部程序存儲器的指令。 當(dāng)Flash存儲器編程時,此引腳和+12 V的編程允許電源VPP,當(dāng)然,這必須是該設(shè)備使用12V編程電壓Vpp。特殊功能寄存器:在AT89C52的芯片的存儲器中,一共有128個單元的的80H-FFH的特殊功能寄存器(SFE)。不是所有的地址都能被定義,總共有128個字節(jié)從80H-FFH只有一部分會被定義,以與有相當(dāng)一部分還沒有被定義。針對該單位對沒有提供的定

19、義的部分讀寫將是無效的,讀出的數(shù)值將是不確定的,而寫的數(shù)據(jù)也將會丟失。不應(yīng)將數(shù)據(jù)“1”被寫入沒有被定義的單位,因為可能會在未來中的產(chǎn)品,在這些單元中的賦予了新的功能,這而在樣的情況下,復(fù)位后,這些單位在數(shù)值始終為“0”數(shù)據(jù)存儲器:AT89C52部RAM有256字節(jié)。 80H-FFH,高128字節(jié)特殊功能寄存器(SFR)地址重疊,也就是說,高128字節(jié)的RAM,與特殊功能寄存器有一樣的地址,它們是分開的,在物理上來說。當(dāng)一個指令訪問的7FH部地址單元以上的部分,指令尋址模式是不同的,該決定尋址訪問高位128字節(jié)的RAM或訪問特殊功能寄存器。如果指令是直接尋址訪問,那么訪問的是特殊功能寄存器。定時

20、器2:定時器2是一個16位的定時器/計數(shù)器。它無論是作為一個計時器,還是作為外部事件計數(shù)器,都是可行的。它的工作原理所選擇的特殊功能寄存器T2CONC/T2。定時器2的工作模式有三種:捕捉,自動重裝模式(向上或向下計數(shù))和波特率發(fā)生器,工作T2CON控制位選擇。定時器2由兩個8位寄存器TH2和TL2定時器工作,在定時器的工作方式中,每個機器周期TL2寄存器的值加1,一個機器周期由12個振蕩器時鐘構(gòu)成,因此,計數(shù)率是振蕩頻率的1/12。在計數(shù)器工作的時候,當(dāng)T2引腳的外部輸入信號時,1-0下降沿產(chǎn)生,寄存器的值加1,在這樣的工作之下,在每個機器周期5SP2期間,外部輸入進(jìn)行采樣。通過在第一個機器

21、周期所采樣到的值為1,下一個機器周期所采樣到的值是0,隨后的寄存器中,就在下一個周期的S3P1期間加1。確定1-0過渡占用兩個機器周期(24個振蕩周期),因此,最大計數(shù)率的振蕩頻率的1/24。是必需的,以確保正確的采樣的輸入電平的變化時刻之前保持至少一個完整的周期,以確保輸入信號被至少一次采樣。捕獲方式:在捕獲模式下,T2CON控制位EXEN2來選擇兩個不同的工作方式。當(dāng)EXEN2=0,定時器2就是是一個16位的定時器或者計數(shù)器。當(dāng)計數(shù)溢出的時候,溢出標(biāo)志TF2在 T2CON中設(shè)置,此時中斷在同一時間激活。如果EXEN2=1,定時器2做同樣的操作,T2EX引腳的外部輸入信號1-0負(fù)跳變發(fā)生時,

22、TH2和TL2中的值被捕獲到RCAP2H和RCAP2L中。此外,T2EX引腳信號跳變使T2CON的EXF2置位,TF2的類似,EXF2激活中斷。當(dāng)定時器處于自動重裝模式,可以通過編程來向上或向下計數(shù),這個功能可以DCEN位特殊功能寄存器T2CON(允許自動重裝(向上或向下計數(shù)器)倒計時)選擇。復(fù)位的時候,DCEN位置“0”,默認(rèn)設(shè)置定時器計數(shù)。當(dāng)DCEN設(shè)置,定時器2可以向上計數(shù),取決于T2EX引腳的值,當(dāng)DCEN=0時,定時器2會自動設(shè)置為計數(shù)摸索,且向上,在此模式控制位EXEN2 T2CON中有兩個選項,如果EXEN2 =0,定時器2計數(shù)到0FFFFH溢出集,TF2激活中斷,而16位計數(shù)寄

23、存器RCAP2H和RCAP2L的重裝RCAP2H和RCAP2L的值由軟件預(yù)置。如果EXEN2=1,定時器2的16-位重載溢出或外部輸入端子的T2EX觸發(fā)從1-0的的的下降沿。這個脈沖信號使EXF2設(shè)置的中斷被啟用時,如果一個中斷被允許,同樣也會產(chǎn)生中斷。定時器2的中斷入口地址是:002BH - 0032H。當(dāng)DCEN= 1時的。并允許定時器2向上計數(shù)或者向下計數(shù),通過這種方式,用T2EX引腳來控制計數(shù)器的計數(shù)方向。該T2EX引腳到一個邏輯“1”時,使得該定時器計數(shù)高達(dá)0FFFFH時,產(chǎn)生溢出,置位TF2,同時把16-位的的計數(shù)的寄存器RCAP2H與RCAP2L重新-加載成TH2和TL2中。當(dāng)T

24、2EX引腳到邏輯“0”的時候,就將定時器2的向下計數(shù),當(dāng)TH2和TL2的值是等于到包含在RCAP2H和RCAP2L中的值的時候,計數(shù)溢出,把 TF2置位,與此同時,在定時寄存器中,重新裝入0FFFFH。中斷:AT89C52共有6個中斷源:兩個外部中斷(INT0和INT1),三個定時中斷(定時器0,1,2)和串行端口中斷。通過設(shè)置特殊寄存器IE設(shè)置或清除控制每個中斷源的允許或禁止。 IE的總禁止位是EA,它用來控制所有中斷的允許或禁止。程序員不可以把1寫入保留位,它們是用來在未來AT89系列產(chǎn)品中被用作為擴展的。在定時器2中,受T2CON,TF2和EXF2的邏輯的影響來產(chǎn)生中斷,這些標(biāo)志不能被硬

25、件清除,服務(wù)程序被確定為TF2或EXF2產(chǎn)生中斷。并且是由軟件來清除所產(chǎn)生的中斷標(biāo)志。TF0和TF1定時器0和定時器1標(biāo)志S5P2機器周期定時器溢出狀態(tài)位設(shè)置,并在下一個機器周期的中斷標(biāo)志查詢之前查詢到該標(biāo)志。然而,定時器2標(biāo)志TF2 S2P2機器周期定時器溢出狀態(tài)位被設(shè)置,并在同一個機器周期查詢標(biāo)志。時鐘振蕩器:AT89C52有一個高增益的反相放大器,用于構(gòu)成部振蕩器。引腳XTAL2和引腳XTAL1是放大器的輸出端和輸入端。此放大器的反饋元件芯片石英晶體或瓷諧振器一起構(gòu)成一個自激振蕩器的振蕩電路,一個外部晶體(或瓷諧振器)和電容器C1,C2構(gòu)成并聯(lián)連接到放大器的反饋回路中的振蕩電路。外部電容

26、器C1,C2的選擇,雖然不是很嚴(yán)格的要求,但電容的大小由電平的振蕩頻率受到輕微影響,振蕩器的工作的穩(wěn)定性,啟動程序的難度和溫度穩(wěn)定性,并且如果我們使用石英晶體,那么電容選取30pF±10pF的圍比較合適,如果是選擇瓷諧振器來使用,那么建議選擇40PF±10F的圍比較合適。用戶也可以使用外部時鐘。在這種情況下,外部時鐘脈沖接到XTAL1端,也可稱之為,部時鐘產(chǎn)生電路的輸入端,此時,把XTAL2引腳懸空。外部時鐘信號通過2分頻路作為部時鐘信號的觸發(fā)器,因此對外部時鐘信號的占空比無特殊要求應(yīng)符合技術(shù)條件的要求低的最低高電平持續(xù)時間和最大持續(xù)時間??臻e節(jié)電模式:在空閑模式操作時,此

27、時CPU處于睡眠狀態(tài),所有片上外設(shè)仍然活躍在軟件這種方式。在這種情況下,芯片上的RAM和特殊功能寄存器的容凍結(jié)??臻e模式可以終止任何啟用的中斷請求或硬件復(fù)位。由硬件復(fù)位終止空閑,只需要短短兩個機器周期有效復(fù)位信號,在這種狀態(tài)下,片上硬件抑制訪問部RAM,但訪問的端口引腳,當(dāng)復(fù)位到終止空閑的端口,以避免可能產(chǎn)生無意的寫指令的指令后,進(jìn)入空閑模式不應(yīng)該是單端口或外部存儲器寫指令。掉電模式:在掉電模式下,振蕩器停止,而進(jìn)入掉電模式的指令是最后一條指令被執(zhí)行,片上RAM以與特殊功能寄存器的容將會在終止掉電模式前被凍結(jié)住。只有采取硬件復(fù)位的方式,才能退出掉電模式是。一個硬件復(fù)位之后,所有的特殊功能寄存器

28、將被重新定義,但RAM中的容不會被改變,在VCC的正常工作電平被恢復(fù)之前,應(yīng)為無效復(fù)位,并必須保持目標(biāo)時間,才能使振蕩器重新啟動并穩(wěn)定工作。3.1.2復(fù)位電路復(fù)位電路如圖3.2圖3.2復(fù)位電路采用按鍵方式,電阻分別選取100和10K,電容選取0.1F。上電復(fù)位是復(fù)位電路的第一功能。通用的微機電路正常的的工作電源電壓為5V±5,即4.75V至5.2V。復(fù)位電路是用來讓微型計算機系統(tǒng)保持穩(wěn)定可靠的工作狀態(tài)的不能缺少的部分??偹苤?,微型計算機電路是有時序的數(shù)字電路,它需要一個穩(wěn)定的時鐘信號,所以當(dāng)電源開啟時,只有當(dāng)VCC超過4.75V的時候或者VCC低于5.25V的時候,并且要晶體振蕩器

29、工作狀態(tài)持續(xù)穩(wěn)定,復(fù)位信號才可以被撤銷,計算機電路才能開始正常工作。上電復(fù)位原理:當(dāng)VCC上電時,電容C充電,而在10K的電阻上出現(xiàn)電壓,使得單片機可以復(fù)位;幾個毫秒之后,電容C被充滿,10K的電阻上的電流被降為0,電壓此時也為0,從而使得單片機開始進(jìn)入工作狀態(tài)。手動復(fù)位原理:工作期間,按下按鍵S,電容C放電。按鍵S松手,電容C又充電,此時在10K電阻上出現(xiàn)電壓,從而使得單片機復(fù)位。幾個毫秒后,單片機開始進(jìn)入工作狀態(tài)。3.1.3時鐘電路時鐘電路如圖3.3:圖3.3時鐘電路時鐘電路是計算機的心臟,它控制著計算機的工作節(jié)奏就是通過復(fù)雜的時序電路完成不同的指令功能的。單片機工作時,從取指令到譯碼再進(jìn)

30、行微操作,必須在時鐘信號控制下才能有序地進(jìn)行,時鐘電路就是為單片機工作提供基本時鐘的。單片機的時鐘信號通常有兩種產(chǎn)生方式:部時鐘方式和外部時鐘方式。部時鐘方式:部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳分別為此放大器的輸人端和輸出端, 在單片機XTAL1和XTAL2引腳上跨接上一個晶振和兩個穩(wěn)頻電容,可以與單片機片的電路構(gòu)成一個穩(wěn)定的自激振蕩器。晶振的取值圍一般為024MHz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的單片機還可以選擇更高的頻率。外接電容的作用是對振蕩器進(jìn)行頻率微調(diào),使振蕩信號頻率與晶振頻率一致,同時起到穩(wěn)定頻率的作用,一般選

31、用2030pF的瓷片電容。外部時鐘方式:是在單片機XTAL1引腳上外接一個穩(wěn)定的時鐘信號源,它一般適用于多片單片機同時工作的情況,使用同一時鐘信號可以保證單片機的工作同步。3.2鍵盤接口電路鍵盤接口電路如圖3.4所示:圖3.4鍵盤接口電路4*4矩陣鍵盤工作原理:矩陣鍵盤又稱為行列式鍵盤,它由4條I/O線為行線,4條I/O線做列線組成,在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤中的按鍵數(shù)為4*4個,所以稱之為4*4矩陣鍵盤,這種行列式的鍵盤結(jié)構(gòu)大大提高了I/O口的利用率。在本設(shè)計中:行線置高電平,接P1口的低四位P1.3- P1.0列線置低電平,接P1口的高四位P1.7- P1.4高四位為

32、輸入,低四位為輸出1.檢測當(dāng)前是否有鍵按下,采用逐行掃描法,檢測方法為先將P1.7-P1.4依次置0,檢測P1.3-P1.0狀態(tài),若全為1則無鍵閉合,否則有鍵閉合。2.取出鍵抖動,當(dāng)檢測到有鍵按下后,延時一段時間再做下一步判斷。3.若有鍵按下,應(yīng)判斷究竟是哪一鍵按下。方法是對鍵盤的行線進(jìn)行掃描 將P1.7-P1.4依次置0時,P1.3-P1.0狀態(tài)表3.2:P1.31110P1.21101P1.11011P1.00111閉合狀態(tài)第一行閉合第二行閉合第三行閉合第四行閉合表3.2P10-P13狀態(tài)表3.3液晶顯示電路本設(shè)計液晶顯示部分采用LCD1206電路如圖3.5:圖3.5LCD1206電路液晶

33、顯示原理:線段的顯示:圖象形式的液晶顯示裝置有M×N個基本的顯示單元,假設(shè)LCD顯示64行,每行有128列,一字節(jié)的8位對應(yīng)每8位,即組成方式是由每行16字節(jié),共16×8=128個點而組成的,64×16顯示單元與RAM的顯示區(qū)對應(yīng)于1024個字節(jié),以對應(yīng)于每一個顯示位置上的每個字節(jié)的顯示的亮暗程度。例如,屏幕亮和暗的第一行的容由16個字節(jié)的RAM區(qū)容來決定,而當(dāng)000H - 00FH(000H)= FFH時顯示在屏幕左上角的短亮線,長度是8個小點,而當(dāng)(3FFH)= FFH,就在屏幕的右下角會顯示一個簡短的亮線;(000H)= FFH(001H)=00H(002H

34、)=00H,. (00EH)=00H(00FH)= 00H,第8段亮線和8個暗線,在屏幕頂部顯示一條虛線。這是液晶顯示器(LCD)顯示的基本原理。字符的顯示:一個字符在液晶顯示中顯示是比較復(fù)雜的,因為一個字符是由6×8或者8×8的點陣構(gòu)成的,不僅要找到和顯示在屏幕上的顯示RAM的8個字節(jié)的位置對應(yīng)的字節(jié),而且還要使每個字節(jié)不同的位是“1”,另一個是“0”,把“1”點亮,而“0”是不亮。用這樣的方法來組成一個字符。但是顯示字符對于帶有字符發(fā)生器的控制器,是比較簡單的,可以允許控制器工作在文本模式中,根據(jù)液晶屏上開始顯示的行和列的號,和就可以找出RAM所對應(yīng)的地址,設(shè)置一個游標(biāo)

35、,發(fā)送這個字符所對應(yīng)的代碼就可以了。漢字的顯示:對于漢字的顯示一般是采用圖形的方式,將要顯示的中國漢字的點陣碼(字模提取軟件)從微機中提取,每個漢字占32B,分為左,右兩半,每半各16B,左邊是基數(shù)1,3,5右邊是偶數(shù)2,4,6.正確的顯示中文字符,根據(jù)在LCD上現(xiàn)實的行列號,與行列數(shù)可以找出在RAM上所對應(yīng)的的地址,在光標(biāo)的位置上加1,發(fā)送的第二個字節(jié),先換行再按列對齊,給第三個字節(jié).直到32B完全被顯示,就可以在液晶顯示屏上得到一個完整的中文字符。LCD1206引腳如圖3.6所示:圖3.6LCD1206引腳圖LCD1602采用標(biāo)準(zhǔn)的16腳接口,但在proteus仿真中無字庫,故為14腳第1

36、腳:VSS為電源接地第2腳:VCC接5V電源的正極第3腳:V0為液晶顯示器的對比度調(diào)整端,當(dāng)接正電源的時時候?qū)Ρ榷茸钊?,而接地電源時對比度最高(而當(dāng)對比度過高時會 ,就會產(chǎn)生“鬼影”,使用時可以通過接一個10K的電位器來調(diào)整對比度)。第4腳:RS為寄存器選擇腳,當(dāng)高電平1時就選擇數(shù)據(jù)寄存器,當(dāng)?shù)碗娖?時就選擇指令寄存器。第5腳:RW是讀寫信號線,當(dāng)高電平時進(jìn)行讀操作,當(dāng)?shù)碗娖綍r進(jìn)行寫操作。第6腳:E(或EN)端為使能端,當(dāng)高電平1時讀取信息,當(dāng)負(fù)跳變時執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。在單片機系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個優(yōu)點:1.顯示質(zhì)量高:液晶顯示器的每一個點從一

37、收到信號那一刻后,就始終保持一樣的色彩和亮度,保持恒定發(fā)光,而陰極射線管顯示器(CRT)卻需要不斷刷新來亮點。因而液晶顯示器的顯示畫質(zhì)更加清晰穩(wěn)定。液晶顯示器都是數(shù)字式的,當(dāng)其和單片機系統(tǒng)連接時,系統(tǒng)更加簡單可靠,操作更加的方便。2.體積小、重量輕:液晶顯示器主要是通過改變顯示屏上的電極控制液晶分子的狀態(tài)來達(dá)到顯示的目的,因此在重量上比一樣顯示面積的傳統(tǒng)顯示器要輕很多。3.功耗低:液晶顯示器的功耗消耗最大的地方主要是在其部的電極和驅(qū)動IC上,因此液晶顯示器的耗電量比其它的顯示器要少得多。LCD1602的指令碼如表2所示:指令碼功能令RSR/WD7D6D5D4D3D2D1D0清除顯示000000

38、0001將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計數(shù)器(AC)到"00H"地址歸位000000001X設(shè)定DDRAM的地址計數(shù)器(AC)到"00H",并且將游標(biāo)移到開頭原點位置;這個指令不改變DDRAM 的內(nèi)容顯示狀態(tài)開/關(guān)0000001DCBD=1: 整體顯示 ONC=1: 游標(biāo)ON B=1:游標(biāo)位置反白允許進(jìn)入點設(shè)定00000001I/DS指定在數(shù)據(jù)的讀取與寫入時,設(shè)定游標(biāo)的移動方向與指定顯示的移位游標(biāo)或顯示移位控制000001S/CR/LXX設(shè)定游標(biāo)的移動與顯示的移位控制位;這個指令不改變DDRAM 的內(nèi)容功能設(shè)定0

39、0001DLXREXXDL=0/1:4/8位數(shù)據(jù)RE=1: 擴充指令操作RE=0: 基本指令操作設(shè)定CGRAM地址0001AC5AC4AC3AC2AC1AC0設(shè)定CGRAM 地址設(shè)定DDRAM地址0010AC5AC5AC3AC2AC1AC0設(shè)定DDRAM 地址(顯示位址)第一行:80H87H第二行:90H97H讀取忙標(biāo)志和地址01BFAC6AC5AC5AC3AC2AC1AC0讀取忙標(biāo)志(BF)可以確認(rèn)內(nèi)部動作是否完成,同時可以讀出地址計數(shù)器(AC)的值寫數(shù)據(jù)到RAM10將數(shù)據(jù)D7D0寫入到內(nèi)部的RAM (DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值11從內(nèi)部RAM讀取數(shù)據(jù)D7D0

40、(DDRAM/CGRAM/IRAM/GRAM)表2LCD1602的指令碼4 系統(tǒng)軟件設(shè)計4.1鍵盤掃描部分程序設(shè)計鍵掃程序的過程為:開始時,先判斷是否有鍵閉合,無鍵閉合時,返回繼續(xù)判斷,有鍵閉合時,先去抖動,然后確定是否有鍵按下,若無鍵按下,則返回繼續(xù)判斷是否有鍵閉合,若有鍵按下,則判斷鍵號,然后釋放,若釋放按鍵完畢,則返回,若沒有釋放按鍵,則返回繼續(xù)釋放。流程圖如圖4.1圖4.1-鍵盤掃描流程圖4.2運算部分程序設(shè)計算術(shù)運算程序的過程為:首先判斷當(dāng)前輸入的運算符是以下運算符中的哪一個+、-、*、/ ,如果是+或者是*,則要先判斷運算結(jié)果是否會溢出,如果結(jié)果溢出則不顯示運算結(jié)果,沒溢出就顯示運

41、算結(jié)果,若是/,則要先判斷除數(shù)是否為零,為零就不顯示結(jié)果,不為零則顯示運算結(jié)果,若是-,則直接顯示運算結(jié)果。其流程圖如圖4.1所示:圖4.2-運算流程圖4.3顯示部分程序設(shè)計顯示程序的過程為:顯示開始時,先進(jìn)行LCD的初始化,判斷是否顯示漢字或ACSII碼或圖形,若不顯示,則返回,若顯示的是漢字或ACSII碼,則進(jìn)行相應(yīng)功能的設(shè)置,然后送地址和數(shù)據(jù),再判斷是否顯示完,顯示完則返回,沒有顯示完則繼續(xù)送地址,若顯示的是圖形,則先進(jìn)行相應(yīng)功能的設(shè)置,再送行地址和列地址,然后送數(shù)據(jù),最后判斷是否顯示完,顯示完則返回,沒有顯示完則繼續(xù)送行地址和列地址。其流程圖如圖4.3所示:圖4.3-顯示流程圖4.4主

42、函數(shù)程序設(shè)計主函數(shù)流程圖如圖4.4所示圖4.4-主函數(shù)流程圖程序清單詳見附錄15仿真和調(diào)試5.1 keil系統(tǒng)概述Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,其生成的匯編代碼結(jié)構(gòu)緊湊,讀者理解起來比較容易。在開發(fā)大型軟件時由此更能體現(xiàn)高級語言的優(yōu)勢

43、。Keil C51工具包的整體結(jié)構(gòu)中,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51與A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM

44、中。5.2 Keil使用步驟1.在windows下運行keil軟件,進(jìn)入keil開發(fā)環(huán)境;2.在keil uVision 選擇 project/new project建立一個新工程項目3.給工程項目取名為calculator,然后保存在文件夾下;3.緊接著自動彈出器件選擇框,選擇ATMEL公司的AT89C52;4.在keil uVision中選擇file/new,打開程序編輯器,輸入程序檢查無誤后保存文件calculator.c在工程項目一樣的目錄中;5.保存好后把文件加入到工程項目中,在project workspace 窗口中,選擇source Group1條目并單擊右鍵在彈出的菜單選擇a

45、dd files to groupsource group1;6.接著編譯工程項目;7.接下來生成HEX文件,在project workspace 窗口中,選擇target1條目并單擊右鍵,在彈出的菜單中選擇option for target 1,準(zhǔn)備為target1配置編譯環(huán)境;8.在output頁為created HEX file 項打勾,已便于輸出單片機燒寫用HEX格式文件;9.選項配置好后,在keil中選擇project-build target,再次編譯工程項目,編譯結(jié)果顯示在output windows,有錯返回修改,無措就進(jìn)行軟件調(diào)試;10.在keil中選擇debugstart-

46、stop debug session進(jìn)入軟仿真調(diào)試。5.3proteus 7.1 介紹Proteus的ISIS是一款Labcenter出品的電路分析實物仿真系統(tǒng),可對各種電路和IC進(jìn)行仿真,能支持單片機,其元件庫齊全,使用起來方便,是不可多得的優(yōu)秀的專業(yè)單片機軟件仿真系統(tǒng)。該軟件具有如下的特點:1. 能滿足我們所提出的對單片機軟件仿真系統(tǒng)的所有標(biāo)準(zhǔn),并且在同類產(chǎn)品中具有非常明顯的優(yōu)勢。2. 具有數(shù)字電路仿真、模擬電路仿真、單片機與其外圍電路組成的系統(tǒng)的仿真、RS一232動態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、如示波器、邏輯分析儀、信號發(fā)生器等

47、。目前支持的單片機類型有: 8051系列、AVR系列、68000系列、PIC12系列、PIC18系列、Z80系列、PIC16系列、HC11系列以與各種外圍芯片。支持大量的存儲器和外圍芯片。該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大 ,可仿真51、AVR、PIC。5.4 Proteus 對于本設(shè)計的仿真步驟1.進(jìn)入proteus ISIS 集成環(huán)境,在工作前,在systerm菜單下設(shè)置界面的顏色、圖形界面大小等項目,我采用了系統(tǒng)默認(rèn)值。2.從庫中選擇元件命令,在pick devices窗口中選擇電路所需的元件,放置元件到編輯區(qū)并調(diào)整其相對位置,進(jìn)行元件參數(shù)設(shè)置。3.元器件

48、間連線,連線并加上需要的說明,并完成仿真原理圖,加載程序,將編譯調(diào)試完成的簡易計算器機器碼程序(hex文件)加載到AT89C51單片機中。4.單擊仿真工具欄中的仿真鍵,觀察仿真結(jié)果??梢园磿和!⒗^續(xù)、單步、等按鈕,查看效果如圖5.1圖5.1proteus仿真圖5.5仿真結(jié)果 圖5.2仿真結(jié)果 6 結(jié)論隨著時代的發(fā)展,單片機控制的電子產(chǎn)品對人們的生產(chǎn)生活各個方面都有著重要的影響。本文設(shè)計的簡易計算器,基于AT89C52單片機,選用4*4矩陣鍵盤作為輸入模塊,LCD1602液晶顯示模塊能實現(xiàn)基本的四則運算,通過這次設(shè)計的學(xué)習(xí),著重培養(yǎng)了我獨立思考、綜合運用所學(xué)有關(guān)知識的能力,能更好的鞏固單片機、C

49、語言、模擬電路、數(shù)字電路學(xué)習(xí)的容。通過設(shè)計,不僅完成了一個作品,更重要的是在實際設(shè)計和試驗中形成了更加科學(xué)合理的認(rèn)識,不斷形成更為合理和具有科學(xué)性的思想方式。在這次設(shè)計中接住了互聯(lián)網(wǎng)等途徑查詢相關(guān)信息,并在圖書館查閱了大量單片機資料。這不但擴展了有關(guān)單片機領(lǐng)域的眼界,而且完善了以往的知識體系。提高了運用知識的綜合能力。參考文獻(xiàn)1 邱關(guān)源.電路(第四版)M.:高等教育,2006.9.2 康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版)M.: 高等教育,2008.1.3 馬剛.用Proteus和Keil整合構(gòu)建單片機虛擬仿真平臺J,現(xiàn)代電子技術(shù),2006.24:129-1314 迎.單片微型計算機原理、應(yīng)用

50、與接口技術(shù)M.國防工業(yè).2007.15 戴佳.單片機C語言應(yīng)用程序設(shè)計實例精講M,電子工業(yè),2006.6 胡漢才. 單片機原理與接口技術(shù)M. 清華大學(xué)7 華成英. 模擬電子技術(shù)基礎(chǔ)M. 高等教育8 凌志浩.AT89C52單片機原理與接口技術(shù)M.高等教育,2011.39 閻石. 數(shù)字電子技術(shù)基礎(chǔ). 高等教育M10 徐愛鈞.智能化測量控制儀表原理與設(shè)計(第二版).航天航空大學(xué),2004.911 育才 等.MCS-51系列單片微型計算機與其應(yīng)用(第4版).東南大學(xué),2004.312 萍 等.智能儀器實驗指導(dǎo)書.交通大學(xué),2007.913 周立功.單片機實驗與實踐.航天航空大學(xué),2004.314 龔運

51、新單片機C語言開發(fā)技術(shù).清華大學(xué),2006.1015 朱定華.單片機原理與接口技術(shù).電子工業(yè),2001.416 陪金.C語言程序設(shè)計案例教程.電子科技大學(xué),2008.117 Hanna.E,The role of Antarctic sea ice in global climate changeJ,Oceanographic Literature Review,1997.18 Dallas semiconductctor data bookM.Dallas Semiconductor Corporation,1995.19 Chen,C,S.Network based temperature

52、 measurement systemJ.Proceedings of the 51st International Instrumentation Symposium,2005.附錄A: 源程序/p1口接矩陣鍵盤#include <reg51.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#define uchar unsigned char#define uint unsigned intsbit pinRS= P20; /數(shù)據(jù)

53、命令選擇端sbit pinRW= P21; /讀寫數(shù)據(jù)端sbit pinE= P22;/使能端/#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+);/初試狀態(tài)void io_init()P1=0xff;/-鍵盤掃描部分-/unsigned

54、 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: key=0x14;flag=1;break;if(flag)goto exit;elseP1=0xfd;delay(1);if(P1&0xfd)!=0xfd)switch(P1)c

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論