版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的科學(xué)計(jì)算器設(shè)計(jì)摘要在現(xiàn)代科技迅猛發(fā)展的當(dāng)今,計(jì)算器依然是人們?nèi)粘I钪胁豢苫蛉钡碾娮赢a(chǎn)品之一。計(jì)算器始終在不斷發(fā)展與完善之中,功能必將更加強(qiáng)大?;谶@樣的理念,本設(shè)計(jì)采用AT89C51單片機(jī)作為主控芯片,使用C語(yǔ)言為系統(tǒng)進(jìn)行編程,采用4*4矩陣鍵盤(pán)作為輸入模塊,輸出模塊采用LCD1602液晶顯示,從而實(shí)現(xiàn)基于單片機(jī)的基本功能。本設(shè)計(jì)重點(diǎn)說(shuō)明以下幾個(gè)方面容:1. 基于單片機(jī)的計(jì)算器所具備哪些基本功能,對(duì)矩陣鍵盤(pán)輸入原理與液晶顯示原理進(jìn)行簡(jiǎn)單的闡述。2. 介紹系統(tǒng)的整體設(shè)計(jì)理念,展示系統(tǒng)設(shè)計(jì)的流程框圖,并對(duì)功能模塊的劃分,與所選用的元器件性能參數(shù)進(jìn)行詳細(xì)說(shuō)明。3. 對(duì)系統(tǒng)的每個(gè)功能模塊
2、的軟硬件設(shè)計(jì),進(jìn)行詳細(xì)說(shuō)明。關(guān)鍵詞 單片機(jī),AT89C52,LCD1602液晶,矩陣鍵盤(pán),C語(yǔ)言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è)計(jì)任務(wù)
6、與方案32.1設(shè)計(jì)任務(wù)32.2設(shè)計(jì)方案33 系統(tǒng)硬件設(shè)計(jì)43.1單片機(jī)最小硬件系統(tǒng)43.1.1主控芯片AT89C52單片機(jī)簡(jiǎn)介43.1.2復(fù)位電路93.1.3時(shí)鐘電路103.2鍵盤(pán)接口電路103.3液晶顯示電路114 系統(tǒng)軟件設(shè)計(jì)154.1鍵盤(pán)掃描部分程序設(shè)計(jì)154.2運(yùn)算部分程序設(shè)計(jì)154.3顯示部分程序設(shè)計(jì)164.4主函數(shù)程序設(shè)計(jì)175仿真和調(diào)試195.1 keil系統(tǒng)概述195.2 Keil使用步驟195.3proteus 7.1 介紹205.4 Proteus 對(duì)于本設(shè)計(jì)的仿真步驟205.5仿真結(jié)果216 結(jié)論22參考文獻(xiàn)23附錄A:源程序24附錄B:系統(tǒng)總圖34致351 緒論1.1課
7、題的研究背景與意義計(jì)算器一般由運(yùn)算器,存儲(chǔ)器,控制器,鍵盤(pán),顯示器,電源和一些外圍設(shè)備與電子配件組成。低檔的計(jì)算器的運(yùn)算器,控制器由數(shù)字邏輯電路實(shí)現(xiàn)簡(jiǎn)單的串行運(yùn)算。其隨機(jī)存儲(chǔ)器只有一到二個(gè)單元,供累加存儲(chǔ)用。高檔計(jì)算器由只讀存儲(chǔ)器和微處理器一同實(shí)現(xiàn)各種復(fù)雜的運(yùn)算程序。且有較多的隨機(jī)存儲(chǔ)單元用來(lái)存放輸入程序和數(shù)據(jù)。鍵盤(pán)是計(jì)算器的輸入部件,采用接觸式或傳感式。顯示器是計(jì)算器的輸出部件,有發(fā)光二極管顯示器或液晶顯示器等。除顯示計(jì)算結(jié)果外,還常有溢出指示、錯(cuò)誤指示等顯示。計(jì)算器電源采用電池或者交流轉(zhuǎn)換器池。為節(jié)省電能,計(jì)算器都采用CMOS工藝制作的大規(guī)模集成電路(見(jiàn)互補(bǔ)金屬-氧化物-半導(dǎo)體集成電路),
8、并在部裝有定時(shí)不操作自動(dòng)斷電電路。計(jì)算器可選用的外圍設(shè)備有盒式磁帶機(jī),微型打印機(jī),磁卡機(jī)等等。計(jì)算器的基本類(lèi)型:1. 算術(shù)型計(jì)算器:可進(jìn)行加、減、乘、除等簡(jiǎn)單的四則運(yùn)算,又稱(chēng)簡(jiǎn)單計(jì)算器。2. 科學(xué)型計(jì)算器:可進(jìn)行乘方、開(kāi)方、指數(shù)、對(duì)數(shù)、三角函數(shù)、統(tǒng)計(jì)等方面的運(yùn)算,又稱(chēng)函數(shù)計(jì)算器。3. 程序計(jì)算器:可以編程序,把較復(fù)雜的運(yùn)算步驟貯存起來(lái),進(jìn)行多次重復(fù)的運(yùn)算。當(dāng)今社會(huì),隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進(jìn)了家家戶(hù)戶(hù),無(wú)論是生活或?qū)W習(xí),還是娛樂(lè)和消遣幾乎樣樣都離不開(kāi)電子產(chǎn)品,大型復(fù)雜的計(jì)算能力是人腦所不能勝任的,而且比較容易出錯(cuò)。計(jì)算器作為一種快速通用的計(jì)算工具方便了用戶(hù)的使用。計(jì)算器這一程
9、序機(jī)器實(shí)際上是從計(jì)算機(jī)中割裂出來(lái)的衍生品,但因其方便快捷的操作模式,已經(jīng)被廣泛應(yīng)用于商業(yè)等日常生活中,極大的方便了人們對(duì)于數(shù)字的整合運(yùn)算。起源和發(fā)展最早的計(jì)算工具誕生在中國(guó)?;I策是中國(guó)古代最早采用的一種計(jì)算工具,又被稱(chēng)之為做算籌。這種算籌的制作材料多是竹子,木頭,或獸骨一束約二百七十枚,使用時(shí)可以放在布袋里面隨身攜帶。直到科技發(fā)達(dá)的今天,中國(guó)群眾任然有很多在使用珠算盤(pán),珠算盤(pán)是中國(guó)古代計(jì)算工具領(lǐng)域中的另一項(xiàng)發(fā)明,到明代時(shí)期。珠算盤(pán)的結(jié)構(gòu)已經(jīng)幾乎與現(xiàn)代的珠算盤(pán)一樣。在17世紀(jì)初期,計(jì)算工具在西方國(guó)家的有了非常大的發(fā)展,英國(guó)數(shù)學(xué)家-納皮爾發(fā)明了納皮爾算籌,英國(guó)牧師-奧卻德發(fā)明了圓柱型對(duì)數(shù)計(jì)算尺,這
10、種計(jì)算尺能夠?qū)崿F(xiàn)多種計(jì)算功能,不僅能夠?qū)崿F(xiàn)基本的四則運(yùn)算,也可以進(jìn)行乘方和開(kāi)方運(yùn)算。更為強(qiáng)大的是,這種計(jì)算尺還可以計(jì)算三角函數(shù),指數(shù)函數(shù)和對(duì)數(shù)函數(shù)。這些計(jì)算工具積極推動(dòng)了計(jì)算器的發(fā)展,為現(xiàn)代計(jì)算器的發(fā)展奠定了非常良好的基礎(chǔ),慢慢演變,成為現(xiàn)代社會(huì)中廣泛應(yīng)用的計(jì)算工具。在1642年, 19歲的法國(guó)科學(xué)家-帕斯卡引用了算盤(pán)的原理,發(fā)明了世界上第一部機(jī)械式計(jì)算器,他的計(jì)算器裝置中有一些齒輪互相聯(lián)鎖,當(dāng)其中此輪轉(zhuǎn)過(guò)十位之后,就會(huì)使與其相連接的另一個(gè)齒輪轉(zhuǎn)過(guò)一位,使用者可以像使用撥盤(pán)那樣,直接把數(shù)字撥進(jìn)去,此后計(jì)算結(jié)果就可以出現(xiàn)在另一個(gè)窗口中,但是只可以做加減計(jì)算,不能做乘除運(yùn)算。在1694年,德國(guó)的萊
11、布尼茲將機(jī)械式計(jì)算器進(jìn)行了改進(jìn),使其可以進(jìn)行乘除運(yùn)算。自此此后,一直等到20世紀(jì)50年代末,電子計(jì)算器才開(kāi)始出現(xiàn)。1.2本課題研究的主要容本設(shè)計(jì)主要研究的是,基于單片機(jī)的簡(jiǎn)易計(jì)算器,采用AT89C52單片機(jī)作為主控器件,矩陣鍵盤(pán)輸入,液晶顯示器講計(jì)算過(guò)程與結(jié)果顯示輸出,通過(guò)C語(yǔ)言編程,實(shí)現(xiàn)建議簡(jiǎn)易計(jì)算器的功能。2 設(shè)計(jì)任務(wù)與方案2.1設(shè)計(jì)任務(wù)1.對(duì)計(jì)算器硬件系統(tǒng)進(jìn)行設(shè)計(jì),利用AT89C52作為主控器件,組成一個(gè)能進(jìn)行簡(jiǎn)單四則運(yùn)算的計(jì)算器,能進(jìn)行數(shù)據(jù)歸零,按鍵提示。2.運(yùn)用keil進(jìn)行計(jì)算器軟件系統(tǒng)的設(shè)計(jì)。3.在protues仿真平臺(tái)上,對(duì)軟件進(jìn)行調(diào)試與仿真。2.2設(shè)計(jì)方案按照系統(tǒng)設(shè)計(jì)的功能的要
12、求,確定設(shè)計(jì)系統(tǒng)由主控模塊、顯示模塊、鍵盤(pán)掃描接口電路、按鍵提示電路4個(gè)模塊組成。系統(tǒng)構(gòu)成框圖如圖2.1所示:圖2.1系統(tǒng)構(gòu)成框圖3 系統(tǒng)硬件設(shè)計(jì)3.1單片機(jī)最小硬件系統(tǒng)單片機(jī)最小系統(tǒng)就是支持主芯片正常工作的最小電路部分,包括主控芯片、復(fù)位電路和時(shí)鐘電路。3.1.1主控芯片AT89C52單片機(jī)簡(jiǎn)介AT89C52引腳圖如圖3.1所示:圖3.1AT89C52引腳圖AT89C52是ATMEL公司生產(chǎn)的51系列單片機(jī),是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片含8k bytes的可以反復(fù)擦寫(xiě)的Flash 只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)。AT89C52的主要功能特性:
13、 兼容MCS51指令系統(tǒng) 8k可反復(fù)擦寫(xiě) Flash ROM32個(gè)雙向 I/O口 與 256x8bit 部RAM3個(gè)16位 可編程定時(shí)/計(jì)數(shù)器 中斷 時(shí)鐘頻率0-24MHz2個(gè) 串行 中斷 ,可編程 UART串行通道2個(gè) 外部 中斷源 , 共6個(gè) 中斷源2個(gè) 讀寫(xiě) 中斷口線 , 3級(jí) 加密位低功耗 空閑和掉電 模式 ,軟件設(shè)置睡眠與喚醒功能AT89C52的主要管腳有:XTAL1:振蕩器反相放大器的與部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。外接12MHz 晶振。VCC和VSS:為供電端口,分別接+5V電源的正負(fù)端。RST/Vpd:為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。P
14、0 口:8 位漏極開(kāi)路型雙向I/O 口, 地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位可以用吸收電流的方式來(lái)驅(qū)動(dòng)8 個(gè)TTL邏輯門(mén)電路,對(duì)端口P0 寫(xiě)“1”時(shí),可以作為高阻抗輸入端使用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或者程序存儲(chǔ)器的時(shí)候,分時(shí)轉(zhuǎn)換地址低8 位,和數(shù)據(jù)總線復(fù)用。在訪問(wèn)期間激活部的上拉電阻。P1 口:帶有部上拉電阻的8 位 雙向I/O 口, P1的輸出緩沖級(jí) 可以驅(qū)動(dòng)(吸收電流或輸出電流)的4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口寫(xiě)“1”時(shí),通過(guò)部的上拉電阻可以把端口拉到高電平,可作輸入口使用。當(dāng)作為作輸入口使用時(shí),因?yàn)椴看嬖谟猩侠娮?,因此某個(gè)引腳被外部信號(hào)拉低,會(huì)輸出一個(gè)電流(IIL)。與AT89
15、C51 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)。參見(jiàn)表1:表1:引腳功能特性P1.0T2 時(shí)鐘輸出P2.0T2EX (定時(shí)器/計(jì)數(shù)器2)P2 口:為帶有部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可以驅(qū)動(dòng)(吸收電流或輸出電流)4 個(gè)TTL邏輯門(mén)電路。當(dāng)對(duì)端口P2 寫(xiě)“1”時(shí),通過(guò)部的上拉電阻可以把端口拉到高電平去,此時(shí)可作輸入口使用,當(dāng)作輸入口使用時(shí),因?yàn)槠洳看嬖谟猩侠娮?,?dāng)某個(gè)引腳被外部信號(hào)拉低的時(shí)候會(huì)輸出一個(gè)電流(IIL)。P3 口:為帶有部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)
16、(吸收電流或輸出電流)4 個(gè)TTL邏輯門(mén)電路。當(dāng)對(duì)P3 口寫(xiě)入“1”時(shí),它們會(huì)被部上拉電阻拉高并且可以作為輸入端口。此時(shí),當(dāng)被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能P3 口還可以接收一些用于Flash 閃速存儲(chǔ)器編程與程序校驗(yàn)的控制信號(hào)。ALE/PROG:當(dāng)訪問(wèn)數(shù)據(jù)存儲(chǔ)器或者外部程序存儲(chǔ)器的時(shí)候,ALE(地址鎖存)允許輸出脈沖用在鎖存地址的低8 位字節(jié)。一般情況之下,ALE 仍然以時(shí)鐘振蕩頻率的六分之一來(lái) 輸出固定的脈沖信號(hào)。因此它可以用來(lái)為外部輸出時(shí)鐘或者用來(lái)作為定時(shí)目的。值得大家注意的是:每當(dāng)來(lái)訪問(wèn)外部的數(shù)據(jù)存儲(chǔ)器
17、時(shí),將會(huì)跳過(guò)一個(gè)ALE 脈沖。在對(duì)Flash 存儲(chǔ)器編程的期間,該引腳還可以用于輸入編程脈沖(PROG)。如果有必要,還可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)域中的8EH 單元的D0 位置位,可以禁止ALE 操作。在該位置位后,只有一條MOVX 和MOVC指令才可以將ALE 激活。此外,該引腳還會(huì)被微微拉高一些,當(dāng)單片機(jī)執(zhí)行外部程序時(shí),應(yīng)該設(shè)置ALE 禁止位無(wú)效。PSEN:程序存儲(chǔ)允許外部程序讀取存頻閃(PSEN)的方式,當(dāng)AT89C52取從外部程序存儲(chǔ)器讀取指令時(shí)(或數(shù)據(jù)),每個(gè)機(jī)器周期兩次有效PSEN。作為外部數(shù)據(jù)存儲(chǔ)器的訪問(wèn),并在同一時(shí)間傳遞信號(hào),跳過(guò)PSEN兩次。EA/VPP:允許外部訪問(wèn)
18、,意圖使CPU只訪問(wèn)外部程序的存儲(chǔ)器(地址圍為0000H-FFFFH),EA端必須保持低電平(接地)。注意:如果當(dāng)加密位LB1被編程時(shí),EA端狀態(tài)會(huì)在復(fù)位時(shí)被部鎖存。如果EA管腳接為高電平(連接Vcc端)時(shí),CPU執(zhí)行部程序存儲(chǔ)器的指令。 當(dāng)Flash存儲(chǔ)器編程時(shí),此引腳和+12 V的編程允許電源VPP,當(dāng)然,這必須是該設(shè)備使用12V編程電壓Vpp。特殊功能寄存器:在AT89C52的芯片的存儲(chǔ)器中,一共有128個(gè)單元的的80H-FFH的特殊功能寄存器(SFE)。不是所有的地址都能被定義,總共有128個(gè)字節(jié)從80H-FFH只有一部分會(huì)被定義,以與有相當(dāng)一部分還沒(méi)有被定義。針對(duì)該單位對(duì)沒(méi)有提供的定
19、義的部分讀寫(xiě)將是無(wú)效的,讀出的數(shù)值將是不確定的,而寫(xiě)的數(shù)據(jù)也將會(huì)丟失。不應(yīng)將數(shù)據(jù)“1”被寫(xiě)入沒(méi)有被定義的單位,因?yàn)榭赡軙?huì)在未來(lái)中的產(chǎn)品,在這些單元中的賦予了新的功能,這而在樣的情況下,復(fù)位后,這些單位在數(shù)值始終為“0”數(shù)據(jù)存儲(chǔ)器:AT89C52部RAM有256字節(jié)。 80H-FFH,高128字節(jié)特殊功能寄存器(SFR)地址重疊,也就是說(shuō),高128字節(jié)的RAM,與特殊功能寄存器有一樣的地址,它們是分開(kāi)的,在物理上來(lái)說(shuō)。當(dāng)一個(gè)指令訪問(wèn)的7FH部地址單元以上的部分,指令尋址模式是不同的,該決定尋址訪問(wèn)高位128字節(jié)的RAM或訪問(wèn)特殊功能寄存器。如果指令是直接尋址訪問(wèn),那么訪問(wèn)的是特殊功能寄存器。定時(shí)
20、器2:定時(shí)器2是一個(gè)16位的定時(shí)器/計(jì)數(shù)器。它無(wú)論是作為一個(gè)計(jì)時(shí)器,還是作為外部事件計(jì)數(shù)器,都是可行的。它的工作原理所選擇的特殊功能寄存器T2CONC/T2。定時(shí)器2的工作模式有三種:捕捉,自動(dòng)重裝模式(向上或向下計(jì)數(shù))和波特率發(fā)生器,工作T2CON控制位選擇。定時(shí)器2由兩個(gè)8位寄存器TH2和TL2定時(shí)器工作,在定時(shí)器的工作方式中,每個(gè)機(jī)器周期TL2寄存器的值加1,一個(gè)機(jī)器周期由12個(gè)振蕩器時(shí)鐘構(gòu)成,因此,計(jì)數(shù)率是振蕩頻率的1/12。在計(jì)數(shù)器工作的時(shí)候,當(dāng)T2引腳的外部輸入信號(hào)時(shí),1-0下降沿產(chǎn)生,寄存器的值加1,在這樣的工作之下,在每個(gè)機(jī)器周期5SP2期間,外部輸入進(jìn)行采樣。通過(guò)在第一個(gè)機(jī)器
21、周期所采樣到的值為1,下一個(gè)機(jī)器周期所采樣到的值是0,隨后的寄存器中,就在下一個(gè)周期的S3P1期間加1。確定1-0過(guò)渡占用兩個(gè)機(jī)器周期(24個(gè)振蕩周期),因此,最大計(jì)數(shù)率的振蕩頻率的1/24。是必需的,以確保正確的采樣的輸入電平的變化時(shí)刻之前保持至少一個(gè)完整的周期,以確保輸入信號(hào)被至少一次采樣。捕獲方式:在捕獲模式下,T2CON控制位EXEN2來(lái)選擇兩個(gè)不同的工作方式。當(dāng)EXEN2=0,定時(shí)器2就是是一個(gè)16位的定時(shí)器或者計(jì)數(shù)器。當(dāng)計(jì)數(shù)溢出的時(shí)候,溢出標(biāo)志TF2在 T2CON中設(shè)置,此時(shí)中斷在同一時(shí)間激活。如果EXEN2=1,定時(shí)器2做同樣的操作,T2EX引腳的外部輸入信號(hào)1-0負(fù)跳變發(fā)生時(shí),
22、TH2和TL2中的值被捕獲到RCAP2H和RCAP2L中。此外,T2EX引腳信號(hào)跳變使T2CON的EXF2置位,TF2的類(lèi)似,EXF2激活中斷。當(dāng)定時(shí)器處于自動(dòng)重裝模式,可以通過(guò)編程來(lái)向上或向下計(jì)數(shù),這個(gè)功能可以DCEN位特殊功能寄存器T2CON(允許自動(dòng)重裝(向上或向下計(jì)數(shù)器)倒計(jì)時(shí))選擇。復(fù)位的時(shí)候,DCEN位置“0”,默認(rèn)設(shè)置定時(shí)器計(jì)數(shù)。當(dāng)DCEN設(shè)置,定時(shí)器2可以向上計(jì)數(shù),取決于T2EX引腳的值,當(dāng)DCEN=0時(shí),定時(shí)器2會(huì)自動(dòng)設(shè)置為計(jì)數(shù)摸索,且向上,在此模式控制位EXEN2 T2CON中有兩個(gè)選項(xiàng),如果EXEN2 =0,定時(shí)器2計(jì)數(shù)到0FFFFH溢出集,TF2激活中斷,而16位計(jì)數(shù)寄
23、存器RCAP2H和RCAP2L的重裝RCAP2H和RCAP2L的值由軟件預(yù)置。如果EXEN2=1,定時(shí)器2的16-位重載溢出或外部輸入端子的T2EX觸發(fā)從1-0的的的下降沿。這個(gè)脈沖信號(hào)使EXF2設(shè)置的中斷被啟用時(shí),如果一個(gè)中斷被允許,同樣也會(huì)產(chǎn)生中斷。定時(shí)器2的中斷入口地址是:002BH - 0032H。當(dāng)DCEN= 1時(shí)的。并允許定時(shí)器2向上計(jì)數(shù)或者向下計(jì)數(shù),通過(guò)這種方式,用T2EX引腳來(lái)控制計(jì)數(shù)器的計(jì)數(shù)方向。該T2EX引腳到一個(gè)邏輯“1”時(shí),使得該定時(shí)器計(jì)數(shù)高達(dá)0FFFFH時(shí),產(chǎn)生溢出,置位TF2,同時(shí)把16-位的的計(jì)數(shù)的寄存器RCAP2H與RCAP2L重新-加載成TH2和TL2中。當(dāng)T
24、2EX引腳到邏輯“0”的時(shí)候,就將定時(shí)器2的向下計(jì)數(shù),當(dāng)TH2和TL2的值是等于到包含在RCAP2H和RCAP2L中的值的時(shí)候,計(jì)數(shù)溢出,把 TF2置位,與此同時(shí),在定時(shí)寄存器中,重新裝入0FFFFH。中斷:AT89C52共有6個(gè)中斷源:兩個(gè)外部中斷(INT0和INT1),三個(gè)定時(shí)中斷(定時(shí)器0,1,2)和串行端口中斷。通過(guò)設(shè)置特殊寄存器IE設(shè)置或清除控制每個(gè)中斷源的允許或禁止。 IE的總禁止位是EA,它用來(lái)控制所有中斷的允許或禁止。程序員不可以把1寫(xiě)入保留位,它們是用來(lái)在未來(lái)AT89系列產(chǎn)品中被用作為擴(kuò)展的。在定時(shí)器2中,受T2CON,TF2和EXF2的邏輯的影響來(lái)產(chǎn)生中斷,這些標(biāo)志不能被硬
25、件清除,服務(wù)程序被確定為T(mén)F2或EXF2產(chǎn)生中斷。并且是由軟件來(lái)清除所產(chǎn)生的中斷標(biāo)志。TF0和TF1定時(shí)器0和定時(shí)器1標(biāo)志S5P2機(jī)器周期定時(shí)器溢出狀態(tài)位設(shè)置,并在下一個(gè)機(jī)器周期的中斷標(biāo)志查詢(xún)之前查詢(xún)到該標(biāo)志。然而,定時(shí)器2標(biāo)志TF2 S2P2機(jī)器周期定時(shí)器溢出狀態(tài)位被設(shè)置,并在同一個(gè)機(jī)器周期查詢(xún)標(biāo)志。時(shí)鐘振蕩器:AT89C52有一個(gè)高增益的反相放大器,用于構(gòu)成部振蕩器。引腳XTAL2和引腳XTAL1是放大器的輸出端和輸入端。此放大器的反饋元件芯片石英晶體或瓷諧振器一起構(gòu)成一個(gè)自激振蕩器的振蕩電路,一個(gè)外部晶體(或瓷諧振器)和電容器C1,C2構(gòu)成并聯(lián)連接到放大器的反饋回路中的振蕩電路。外部電容
26、器C1,C2的選擇,雖然不是很?chē)?yán)格的要求,但電容的大小由電平的振蕩頻率受到輕微影響,振蕩器的工作的穩(wěn)定性,啟動(dòng)程序的難度和溫度穩(wěn)定性,并且如果我們使用石英晶體,那么電容選取30pF±10pF的圍比較合適,如果是選擇瓷諧振器來(lái)使用,那么建議選擇40PF±10F的圍比較合適。用戶(hù)也可以使用外部時(shí)鐘。在這種情況下,外部時(shí)鐘脈沖接到XTAL1端,也可稱(chēng)之為,部時(shí)鐘產(chǎn)生電路的輸入端,此時(shí),把XTAL2引腳懸空。外部時(shí)鐘信號(hào)通過(guò)2分頻路作為部時(shí)鐘信號(hào)的觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的占空比無(wú)特殊要求應(yīng)符合技術(shù)條件的要求低的最低高電平持續(xù)時(shí)間和最大持續(xù)時(shí)間??臻e節(jié)電模式:在空閑模式操作時(shí),此
27、時(shí)CPU處于睡眠狀態(tài),所有片上外設(shè)仍然活躍在軟件這種方式。在這種情況下,芯片上的RAM和特殊功能寄存器的容凍結(jié)??臻e模式可以終止任何啟用的中斷請(qǐng)求或硬件復(fù)位。由硬件復(fù)位終止空閑,只需要短短兩個(gè)機(jī)器周期有效復(fù)位信號(hào),在這種狀態(tài)下,片上硬件抑制訪問(wèn)部RAM,但訪問(wèn)的端口引腳,當(dāng)復(fù)位到終止空閑的端口,以避免可能產(chǎn)生無(wú)意的寫(xiě)指令的指令后,進(jìn)入空閑模式不應(yīng)該是單端口或外部存儲(chǔ)器寫(xiě)指令。掉電模式:在掉電模式下,振蕩器停止,而進(jìn)入掉電模式的指令是最后一條指令被執(zhí)行,片上RAM以與特殊功能寄存器的容將會(huì)在終止掉電模式前被凍結(jié)住。只有采取硬件復(fù)位的方式,才能退出掉電模式是。一個(gè)硬件復(fù)位之后,所有的特殊功能寄存器
28、將被重新定義,但RAM中的容不會(huì)被改變,在VCC的正常工作電平被恢復(fù)之前,應(yīng)為無(wú)效復(fù)位,并必須保持目標(biāo)時(shí)間,才能使振蕩器重新啟動(dòng)并穩(wěn)定工作。3.1.2復(fù)位電路復(fù)位電路如圖3.2圖3.2復(fù)位電路采用按鍵方式,電阻分別選取100和10K,電容選取0.1F。上電復(fù)位是復(fù)位電路的第一功能。通用的微機(jī)電路正常的的工作電源電壓為5V±5,即4.75V至5.2V。復(fù)位電路是用來(lái)讓微型計(jì)算機(jī)系統(tǒng)保持穩(wěn)定可靠的工作狀態(tài)的不能缺少的部分??偹苤?,微型計(jì)算機(jī)電路是有時(shí)序的數(shù)字電路,它需要一個(gè)穩(wěn)定的時(shí)鐘信號(hào),所以當(dāng)電源開(kāi)啟時(shí),只有當(dāng)VCC超過(guò)4.75V的時(shí)候或者VCC低于5.25V的時(shí)候,并且要晶體振蕩器
29、工作狀態(tài)持續(xù)穩(wěn)定,復(fù)位信號(hào)才可以被撤銷(xiāo),計(jì)算機(jī)電路才能開(kāi)始正常工作。上電復(fù)位原理:當(dāng)VCC上電時(shí),電容C充電,而在10K的電阻上出現(xiàn)電壓,使得單片機(jī)可以復(fù)位;幾個(gè)毫秒之后,電容C被充滿,10K的電阻上的電流被降為0,電壓此時(shí)也為0,從而使得單片機(jī)開(kāi)始進(jìn)入工作狀態(tài)。手動(dòng)復(fù)位原理:工作期間,按下按鍵S,電容C放電。按鍵S松手,電容C又充電,此時(shí)在10K電阻上出現(xiàn)電壓,從而使得單片機(jī)復(fù)位。幾個(gè)毫秒后,單片機(jī)開(kāi)始進(jìn)入工作狀態(tài)。3.1.3時(shí)鐘電路時(shí)鐘電路如圖3.3:圖3.3時(shí)鐘電路時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏就是通過(guò)復(fù)雜的時(shí)序電路完成不同的指令功能的。單片機(jī)工作時(shí),從取指令到譯碼再進(jìn)
30、行微操作,必須在時(shí)鐘信號(hào)控制下才能有序地進(jìn)行,時(shí)鐘電路就是為單片機(jī)工作提供基本時(shí)鐘的。單片機(jī)的時(shí)鐘信號(hào)通常有兩種產(chǎn)生方式:部時(shí)鐘方式和外部時(shí)鐘方式。部時(shí)鐘方式:部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳分別為此放大器的輸人端和輸出端, 在單片機(jī)XTAL1和XTAL2引腳上跨接上一個(gè)晶振和兩個(gè)穩(wěn)頻電容,可以與單片機(jī)片的電路構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。晶振的取值圍一般為024MHz,常用的晶振頻率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的單片機(jī)還可以選擇更高的頻率。外接電容的作用是對(duì)振蕩器進(jìn)行頻率微調(diào),使振蕩信號(hào)頻率與晶振頻率一致,同時(shí)起到穩(wěn)定頻率的作用,一般選
31、用2030pF的瓷片電容。外部時(shí)鐘方式:是在單片機(jī)XTAL1引腳上外接一個(gè)穩(wěn)定的時(shí)鐘信號(hào)源,它一般適用于多片單片機(jī)同時(shí)工作的情況,使用同一時(shí)鐘信號(hào)可以保證單片機(jī)的工作同步。3.2鍵盤(pán)接口電路鍵盤(pán)接口電路如圖3.4所示:圖3.4鍵盤(pán)接口電路4*4矩陣鍵盤(pán)工作原理:矩陣鍵盤(pán)又稱(chēng)為行列式鍵盤(pán),它由4條I/O線為行線,4條I/O線做列線組成,在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤(pán)中的按鍵數(shù)為4*4個(gè),所以稱(chēng)之為4*4矩陣鍵盤(pán),這種行列式的鍵盤(pán)結(jié)構(gòu)大大提高了I/O口的利用率。在本設(shè)計(jì)中:行線置高電平,接P1口的低四位P1.3- P1.0列線置低電平,接P1口的高四位P1.7- P1.4高四位為
32、輸入,低四位為輸出1.檢測(cè)當(dāng)前是否有鍵按下,采用逐行掃描法,檢測(cè)方法為先將P1.7-P1.4依次置0,檢測(cè)P1.3-P1.0狀態(tài),若全為1則無(wú)鍵閉合,否則有鍵閉合。2.取出鍵抖動(dòng),當(dāng)檢測(cè)到有鍵按下后,延時(shí)一段時(shí)間再做下一步判斷。3.若有鍵按下,應(yīng)判斷究竟是哪一鍵按下。方法是對(duì)鍵盤(pán)的行線進(jìn)行掃描 將P1.7-P1.4依次置0時(shí),P1.3-P1.0狀態(tài)表3.2:P1.31110P1.21101P1.11011P1.00111閉合狀態(tài)第一行閉合第二行閉合第三行閉合第四行閉合表3.2P10-P13狀態(tài)表3.3液晶顯示電路本設(shè)計(jì)液晶顯示部分采用LCD1206電路如圖3.5:圖3.5LCD1206電路液晶
33、顯示原理:線段的顯示:圖象形式的液晶顯示裝置有M×N個(gè)基本的顯示單元,假設(shè)LCD顯示64行,每行有128列,一字節(jié)的8位對(duì)應(yīng)每8位,即組成方式是由每行16字節(jié),共16×8=128個(gè)點(diǎn)而組成的,64×16顯示單元與RAM的顯示區(qū)對(duì)應(yīng)于1024個(gè)字節(jié),以對(duì)應(yīng)于每一個(gè)顯示位置上的每個(gè)字節(jié)的顯示的亮暗程度。例如,屏幕亮和暗的第一行的容由16個(gè)字節(jié)的RAM區(qū)容來(lái)決定,而當(dāng)000H - 00FH(000H)= FFH時(shí)顯示在屏幕左上角的短亮線,長(zhǎng)度是8個(gè)小點(diǎn),而當(dāng)(3FFH)= FFH,就在屏幕的右下角會(huì)顯示一個(gè)簡(jiǎn)短的亮線;(000H)= FFH(001H)=00H(002H
34、)=00H,. (00EH)=00H(00FH)= 00H,第8段亮線和8個(gè)暗線,在屏幕頂部顯示一條虛線。這是液晶顯示器(LCD)顯示的基本原理。字符的顯示:一個(gè)字符在液晶顯示中顯示是比較復(fù)雜的,因?yàn)橐粋€(gè)字符是由6×8或者8×8的點(diǎn)陣構(gòu)成的,不僅要找到和顯示在屏幕上的顯示RAM的8個(gè)字節(jié)的位置對(duì)應(yīng)的字節(jié),而且還要使每個(gè)字節(jié)不同的位是“1”,另一個(gè)是“0”,把“1”點(diǎn)亮,而“0”是不亮。用這樣的方法來(lái)組成一個(gè)字符。但是顯示字符對(duì)于帶有字符發(fā)生器的控制器,是比較簡(jiǎn)單的,可以允許控制器工作在文本模式中,根據(jù)液晶屏上開(kāi)始顯示的行和列的號(hào),和就可以找出RAM所對(duì)應(yīng)的地址,設(shè)置一個(gè)游標(biāo)
35、,發(fā)送這個(gè)字符所對(duì)應(yīng)的代碼就可以了。漢字的顯示:對(duì)于漢字的顯示一般是采用圖形的方式,將要顯示的中國(guó)漢字的點(diǎn)陣碼(字模提取軟件)從微機(jī)中提取,每個(gè)漢字占32B,分為左,右兩半,每半各16B,左邊是基數(shù)1,3,5右邊是偶數(shù)2,4,6.正確的顯示中文字符,根據(jù)在LCD上現(xiàn)實(shí)的行列號(hào),與行列數(shù)可以找出在RAM上所對(duì)應(yīng)的的地址,在光標(biāo)的位置上加1,發(fā)送的第二個(gè)字節(jié),先換行再按列對(duì)齊,給第三個(gè)字節(jié).直到32B完全被顯示,就可以在液晶顯示屏上得到一個(gè)完整的中文字符。LCD1206引腳如圖3.6所示:圖3.6LCD1206引腳圖LCD1602采用標(biāo)準(zhǔn)的16腳接口,但在proteus仿真中無(wú)字庫(kù),故為14腳第1
36、腳:VSS為電源接地第2腳:VCC接5V電源的正極第3腳:V0為液晶顯示器的對(duì)比度調(diào)整端,當(dāng)接正電源的時(shí)時(shí)候?qū)Ρ榷茸钊?,而接地電源時(shí)對(duì)比度最高(而當(dāng)對(duì)比度過(guò)高時(shí)會(huì) ,就會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)接一個(gè)10K的電位器來(lái)調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇腳,當(dāng)高電平1時(shí)就選擇數(shù)據(jù)寄存器,當(dāng)?shù)碗娖?時(shí)就選擇指令寄存器。第5腳:RW是讀寫(xiě)信號(hào)線,當(dāng)高電平時(shí)進(jìn)行讀操作,當(dāng)?shù)碗娖綍r(shí)進(jìn)行寫(xiě)操作。第6腳:E(或EN)端為使能端,當(dāng)高電平1時(shí)讀取信息,當(dāng)負(fù)跳變時(shí)執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。在單片機(jī)系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個(gè)優(yōu)點(diǎn):1.顯示質(zhì)量高:液晶顯示器的每一個(gè)點(diǎn)從一
37、收到信號(hào)那一刻后,就始終保持一樣的色彩和亮度,保持恒定發(fā)光,而陰極射線管顯示器(CRT)卻需要不斷刷新來(lái)亮點(diǎn)。因而液晶顯示器的顯示畫(huà)質(zhì)更加清晰穩(wěn)定。液晶顯示器都是數(shù)字式的,當(dāng)其和單片機(jī)系統(tǒng)連接時(shí),系統(tǒng)更加簡(jiǎn)單可靠,操作更加的方便。2.體積小、重量輕:液晶顯示器主要是通過(guò)改變顯示屏上的電極控制液晶分子的狀態(tài)來(lái)達(dá)到顯示的目的,因此在重量上比一樣顯示面積的傳統(tǒng)顯示器要輕很多。3.功耗低:液晶顯示器的功耗消耗最大的地方主要是在其部的電極和驅(qū)動(dòng)IC上,因此液晶顯示器的耗電量比其它的顯示器要少得多。LCD1602的指令碼如表2所示:指令碼功能令RSR/WD7D6D5D4D3D2D1D0清除顯示000000
38、0001將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H"地址歸位000000001X設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H",并且將游標(biāo)移到開(kāi)頭原點(diǎn)位置;這個(gè)指令不改變DDRAM 的內(nèi)容顯示狀態(tài)開(kāi)/關(guān)0000001DCBD=1: 整體顯示 ONC=1: 游標(biāo)ON B=1:游標(biāo)位置反白允許進(jìn)入點(diǎn)設(shè)定00000001I/DS指定在數(shù)據(jù)的讀取與寫(xiě)入時(shí),設(shè)定游標(biāo)的移動(dòng)方向與指定顯示的移位游標(biāo)或顯示移位控制000001S/CR/LXX設(shè)定游標(biāo)的移動(dòng)與顯示的移位控制位;這個(gè)指令不改變DDRAM 的內(nèi)容功能設(shè)定0
39、0001DLXREXXDL=0/1:4/8位數(shù)據(jù)RE=1: 擴(kuò)充指令操作RE=0: 基本指令操作設(shè)定CGRAM地址0001AC5AC4AC3AC2AC1AC0設(shè)定CGRAM 地址設(shè)定DDRAM地址0010AC5AC5AC3AC2AC1AC0設(shè)定DDRAM 地址(顯示位址)第一行:80H87H第二行:90H97H讀取忙標(biāo)志和地址01BFAC6AC5AC5AC3AC2AC1AC0讀取忙標(biāo)志(BF)可以確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)可以讀出地址計(jì)數(shù)器(AC)的值寫(xiě)數(shù)據(jù)到RAM10將數(shù)據(jù)D7D0寫(xiě)入到內(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è)計(jì)4.1鍵盤(pán)掃描部分程序設(shè)計(jì)鍵掃程序的過(guò)程為:開(kāi)始時(shí),先判斷是否有鍵閉合,無(wú)鍵閉合時(shí),返回繼續(xù)判斷,有鍵閉合時(shí),先去抖動(dòng),然后確定是否有鍵按下,若無(wú)鍵按下,則返回繼續(xù)判斷是否有鍵閉合,若有鍵按下,則判斷鍵號(hào),然后釋放,若釋放按鍵完畢,則返回,若沒(méi)有釋放按鍵,則返回繼續(xù)釋放。流程圖如圖4.1圖4.1-鍵盤(pán)掃描流程圖4.2運(yùn)算部分程序設(shè)計(jì)算術(shù)運(yùn)算程序的過(guò)程為:首先判斷當(dāng)前輸入的運(yùn)算符是以下運(yùn)算符中的哪一個(gè)+、-、*、/ ,如果是+或者是*,則要先判斷運(yùn)算結(jié)果是否會(huì)溢出,如果結(jié)果溢出則不顯示運(yùn)算結(jié)果,沒(méi)溢出就顯示運(yùn)
41、算結(jié)果,若是/,則要先判斷除數(shù)是否為零,為零就不顯示結(jié)果,不為零則顯示運(yùn)算結(jié)果,若是-,則直接顯示運(yùn)算結(jié)果。其流程圖如圖4.1所示:圖4.2-運(yùn)算流程圖4.3顯示部分程序設(shè)計(jì)顯示程序的過(guò)程為:顯示開(kāi)始時(shí),先進(jìn)行LCD的初始化,判斷是否顯示漢字或ACSII碼或圖形,若不顯示,則返回,若顯示的是漢字或ACSII碼,則進(jìn)行相應(yīng)功能的設(shè)置,然后送地址和數(shù)據(jù),再判斷是否顯示完,顯示完則返回,沒(méi)有顯示完則繼續(xù)送地址,若顯示的是圖形,則先進(jìn)行相應(yīng)功能的設(shè)置,再送行地址和列地址,然后送數(shù)據(jù),最后判斷是否顯示完,顯示完則返回,沒(méi)有顯示完則繼續(xù)送行地址和列地址。其流程圖如圖4.3所示:圖4.3-顯示流程圖4.4主
42、函數(shù)程序設(shè)計(jì)主函數(shù)流程圖如圖4.4所示圖4.4-主函數(shù)流程圖程序清單詳見(jiàn)附錄15仿真和調(diào)試5.1 keil系統(tǒng)概述Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開(kāi)發(fā),體會(huì)更加深刻。軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,其生成的匯編代碼結(jié)構(gòu)緊湊,讀者理解起來(lái)比較容易。在開(kāi)發(fā)大型軟件時(shí)由此更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)
43、。Keil C51工具包的整體結(jié)構(gòu)中,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開(kāi)發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51與A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如EPROM
44、中。5.2 Keil使用步驟1.在windows下運(yùn)行keil軟件,進(jìn)入keil開(kāi)發(fā)環(huán)境;2.在keil uVision 選擇 project/new project建立一個(gè)新工程項(xiàng)目3.給工程項(xiàng)目取名為calculator,然后保存在文件夾下;3.緊接著自動(dòng)彈出器件選擇框,選擇ATMEL公司的AT89C52;4.在keil uVision中選擇file/new,打開(kāi)程序編輯器,輸入程序檢查無(wú)誤后保存文件calculator.c在工程項(xiàng)目一樣的目錄中;5.保存好后把文件加入到工程項(xiàng)目中,在project workspace 窗口中,選擇source Group1條目并單擊右鍵在彈出的菜單選擇a
45、dd files to groupsource group1;6.接著編譯工程項(xiàng)目;7.接下來(lái)生成HEX文件,在project workspace 窗口中,選擇target1條目并單擊右鍵,在彈出的菜單中選擇option for target 1,準(zhǔn)備為target1配置編譯環(huán)境;8.在output頁(yè)為created HEX file 項(xiàng)打勾,已便于輸出單片機(jī)燒寫(xiě)用HEX格式文件;9.選項(xiàng)配置好后,在keil中選擇project-build target,再次編譯工程項(xiàng)目,編譯結(jié)果顯示在output windows,有錯(cuò)返回修改,無(wú)措就進(jìn)行軟件調(diào)試;10.在keil中選擇debugstart-
46、stop debug session進(jìn)入軟仿真調(diào)試。5.3proteus 7.1 介紹Proteus的ISIS是一款Labcenter出品的電路分析實(shí)物仿真系統(tǒng),可對(duì)各種電路和IC進(jìn)行仿真,能支持單片機(jī),其元件庫(kù)齊全,使用起來(lái)方便,是不可多得的優(yōu)秀的專(zhuān)業(yè)單片機(jī)軟件仿真系統(tǒng)。該軟件具有如下的特點(diǎn):1. 能滿足我們所提出的對(duì)單片機(jī)軟件仿真系統(tǒng)的所有標(biāo)準(zhǔn),并且在同類(lèi)產(chǎn)品中具有非常明顯的優(yōu)勢(shì)。2. 具有數(shù)字電路仿真、模擬電路仿真、單片機(jī)與其外圍電路組成的系統(tǒng)的仿真、RS一232動(dòng)態(tài)仿真、1 C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、如示波器、邏輯分析儀、信號(hào)發(fā)生器等
47、。目前支持的單片機(jī)類(lèi)型有: 8051系列、AVR系列、68000系列、PIC12系列、PIC18系列、Z80系列、PIC16系列、HC11系列以與各種外圍芯片。支持大量的存儲(chǔ)器和外圍芯片。該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大 ,可仿真51、AVR、PIC。5.4 Proteus 對(duì)于本設(shè)計(jì)的仿真步驟1.進(jìn)入proteus ISIS 集成環(huán)境,在工作前,在systerm菜單下設(shè)置界面的顏色、圖形界面大小等項(xiàng)目,我采用了系統(tǒng)默認(rèn)值。2.從庫(kù)中選擇元件命令,在pick devices窗口中選擇電路所需的元件,放置元件到編輯區(qū)并調(diào)整其相對(duì)位置,進(jìn)行元件參數(shù)設(shè)置。3.元器件
48、間連線,連線并加上需要的說(shuō)明,并完成仿真原理圖,加載程序,將編譯調(diào)試完成的簡(jiǎn)易計(jì)算器機(jī)器碼程序(hex文件)加載到AT89C51單片機(jī)中。4.單擊仿真工具欄中的仿真鍵,觀察仿真結(jié)果??梢园磿和?、繼續(xù)、單步、等按鈕,查看效果如圖5.1圖5.1proteus仿真圖5.5仿真結(jié)果 圖5.2仿真結(jié)果 6 結(jié)論隨著時(shí)代的發(fā)展,單片機(jī)控制的電子產(chǎn)品對(duì)人們的生產(chǎn)生活各個(gè)方面都有著重要的影響。本文設(shè)計(jì)的簡(jiǎn)易計(jì)算器,基于AT89C52單片機(jī),選用4*4矩陣鍵盤(pán)作為輸入模塊,LCD1602液晶顯示模塊能實(shí)現(xiàn)基本的四則運(yùn)算,通過(guò)這次設(shè)計(jì)的學(xué)習(xí),著重培養(yǎng)了我獨(dú)立思考、綜合運(yùn)用所學(xué)有關(guān)知識(shí)的能力,能更好的鞏固單片機(jī)、C
49、語(yǔ)言、模擬電路、數(shù)字電路學(xué)習(xí)的容。通過(guò)設(shè)計(jì),不僅完成了一個(gè)作品,更重要的是在實(shí)際設(shè)計(jì)和試驗(yàn)中形成了更加科學(xué)合理的認(rèn)識(shí),不斷形成更為合理和具有科學(xué)性的思想方式。在這次設(shè)計(jì)中接住了互聯(lián)網(wǎng)等途徑查詢(xún)相關(guān)信息,并在圖書(shū)館查閱了大量單片機(jī)資料。這不但擴(kuò)展了有關(guān)單片機(jī)領(lǐng)域的眼界,而且完善了以往的知識(shí)體系。提高了運(yùn)用知識(shí)的綜合能力。參考文獻(xiàn)1 邱關(guān)源.電路(第四版)M.:高等教育,2006.9.2 康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版)M.: 高等教育,2008.1.3 馬剛.用Proteus和Keil整合構(gòu)建單片機(jī)虛擬仿真平臺(tái)J,現(xiàn)代電子技術(shù),2006.24:129-1314 迎.單片微型計(jì)算機(jī)原理、應(yīng)用
50、與接口技術(shù)M.國(guó)防工業(yè).2007.15 戴佳.單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講M,電子工業(yè),2006.6 胡漢才. 單片機(jī)原理與接口技術(shù)M. 清華大學(xué)7 華成英. 模擬電子技術(shù)基礎(chǔ)M. 高等教育8 凌志浩.AT89C52單片機(jī)原理與接口技術(shù)M.高等教育,2011.39 閻石. 數(shù)字電子技術(shù)基礎(chǔ). 高等教育M10 徐愛(ài)鈞.智能化測(cè)量控制儀表原理與設(shè)計(jì)(第二版).航天航空大學(xué),2004.911 育才 等.MCS-51系列單片微型計(jì)算機(jī)與其應(yīng)用(第4版).東南大學(xué),2004.312 萍 等.智能儀器實(shí)驗(yàn)指導(dǎo)書(shū).交通大學(xué),2007.913 周立功.單片機(jī)實(shí)驗(yàn)與實(shí)踐.航天航空大學(xué),2004.314 龔運(yùn)
51、新單片機(jī)C語(yǔ)言開(kāi)發(fā)技術(shù).清華大學(xué),2006.1015 朱定華.單片機(jī)原理與接口技術(shù).電子工業(yè),2001.416 陪金.C語(yǔ)言程序設(shè)計(jì)案例教程.電子科技大學(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口接矩陣鍵盤(pán)#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; /讀寫(xiě)數(shù)據(jù)端sbit pinE= P22;/使能端/#include "LCD1602.h"void shortdelay(uchar i)/短延時(shí)for(;i>0;i-);/長(zhǎng)延時(shí)void longdelay(uint i)uint j;for(;i>0;i-)for(j=100;j>0;j-);/延時(shí)程序void delay(int i)int j;for(;i>0;i-)for(j=0;j<100;j+);/初試狀態(tài)void io_init()P1=0xff;/-鍵盤(pán)掃描部分-/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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025江西建筑安全員知識(shí)題庫(kù)及答案
- 2025年河北省安全員知識(shí)題庫(kù)及答案
- 廣州珠江職業(yè)技術(shù)學(xué)院《電視節(jié)目編輯》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025江西省建筑安全員C證考試(專(zhuān)職安全員)題庫(kù)附答案
- 廣州應(yīng)用科技學(xué)院《人居環(huán)境設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025湖南省建筑安全員C證考試(專(zhuān)職安全員)題庫(kù)及答案
- 施工合同條款修改版
- 2025江蘇省安全員B證考試題庫(kù)附答案
- 2025山東建筑安全員A證考試題庫(kù)
- 中醫(yī)養(yǎng)生之道(講座)
- 電網(wǎng)適用的法律法規(guī)標(biāo)準(zhǔn)規(guī)范清單
- 讀書(shū)分享-給教師的一百條建議
- 開(kāi)工復(fù)工第一課
- 安徽省淮南市鳳臺(tái)縣基層診所醫(yī)療機(jī)構(gòu)衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心村衛(wèi)生室地址信息
- 組織知識(shí)清單
- 《中華人民共和國(guó)職業(yè)分類(lèi)大典》電子版
- 教程adams壓縮包群文件msc event files
- 肺功能檢查指南
- 海商法術(shù)語(yǔ)中英對(duì)照
- 自動(dòng)酸洗生產(chǎn)線設(shè)計(jì)方案
- 【家庭自制】 南北香腸配方及28種制作方法
評(píng)論
0/150
提交評(píng)論