課程設(shè)計(jì)——電子計(jì)算器設(shè)計(jì)1_第1頁
課程設(shè)計(jì)——電子計(jì)算器設(shè)計(jì)1_第2頁
課程設(shè)計(jì)——電子計(jì)算器設(shè)計(jì)1_第3頁
課程設(shè)計(jì)——電子計(jì)算器設(shè)計(jì)1_第4頁
課程設(shè)計(jì)——電子計(jì)算器設(shè)計(jì)1_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、××大學(xué)××學(xué)院××系××課程設(shè)計(jì)電子計(jì)算器設(shè)計(jì) 學(xué)生姓名學(xué) 號(hào)所 在 系專業(yè)名稱班 級(jí)指導(dǎo)教師成 績(jī) ××大學(xué)××學(xué)院二一二年七月摘要:智能儀器是計(jì)算機(jī)技術(shù)與測(cè)量技術(shù)以及儀器儀表技術(shù)相結(jié)合的產(chǎn)物。它具有傳統(tǒng)儀器無法比擬的優(yōu)點(diǎn)。在精度,可靠性方面都有了本質(zhì)性的改變。儀器硬件都趨于采用嵌入式系統(tǒng)、片上系統(tǒng)等結(jié)構(gòu)。電子計(jì)算器是能進(jìn)行數(shù)學(xué)運(yùn)算的手持機(jī)器,擁有集成電路芯片,采用 來實(shí)現(xiàn)電子計(jì)算器的各個(gè)功能。該電子計(jì)算器由按鍵輸入的數(shù)值顯示在7段數(shù)碼管上,但只限4位數(shù);按加、減、乘、除

2、鍵時(shí),第一次輸入的值被存放在緩沖區(qū)中,當(dāng)做被加、減、乘、除數(shù),且加、減、乘、除相對(duì)的運(yùn)算指示燈會(huì)亮;接著輸入一個(gè)數(shù),之后若是按下“=”鍵,則此加、減、乘、除數(shù)被存放于另一個(gè)緩沖區(qū)中,與剛才輸入的數(shù)做運(yùn)算,且相對(duì)應(yīng)的運(yùn)算指示燈熄滅;運(yùn)算結(jié)果顯示在7段數(shù)碼管上。關(guān)鍵字:智能儀器 片上系統(tǒng) 電子計(jì)算器 集成電路芯片 緩沖區(qū)Abstract: Intelligent instrument is the computer technology and measurement technology and instrumentation technology combined with the produ

3、ct. It has the incomparable advantage of traditional instruments. In the accuracy, reliability are all essential changes. Instrument hardware are tending to use embedded system, system on chip structure. An electronic calculator is able to perform mathematical operations on handheld machine, has int

4、egrated circuit chip, used to realize each function of the electronic calculator. The electronic calculator from the key input values displayed in the7digital tube, but only4 digits; according to plus or minus, multiplication, addition to the key, the first input value is stored in the buffer, as is

5、 plus or minus, multiplication, addition, subtraction, division, and, in addition to take relative operation indicator light; and then enter a number, then press" if = " button, the plus, minus, multiplication, the divisor is stored in a buffer, and just the number of inputs to do arithmet

6、ic, and the corresponding operation indication lamp is extinguished; calculation results in the7 digital tube on.Key words: Intelligent instrument system on chip electronic calculator integrated circuit chip buffer目 錄前言 11. 概述 1 1.1 應(yīng)用背景 1 1.2 課題設(shè)計(jì)目標(biāo) 1 1.3 課題設(shè)計(jì)任務(wù)與思路 12. 設(shè)計(jì)方案論述 2 2.1 系統(tǒng)總體方案設(shè)計(jì) 2 2.2 系

7、統(tǒng)設(shè)計(jì)框圖 23. 系統(tǒng)硬件設(shè)計(jì) 3 3.1 單片機(jī)最小系統(tǒng) 3 3.2 矩陣鍵盤 3 3.3 顯示部分 44. 程序設(shè)計(jì) 4 4,1 具體設(shè)計(jì)內(nèi)容 5 四則運(yùn)算 5 鍵盤5 執(zhí)行過程5 錯(cuò)誤提示54.2 主程序流程圖54.3 算數(shù)運(yùn)算程序設(shè)計(jì) 75 系統(tǒng)調(diào)試76. 設(shè)計(jì)總結(jié)87. 參考文獻(xiàn)9附錄 9前言智能儀器是一種先進(jìn)的技術(shù)產(chǎn)品,是計(jì)算機(jī)技術(shù)與測(cè)試技術(shù)相結(jié)合的產(chǎn)物,儀器內(nèi)部帶有處理能力很強(qiáng)的智能軟件。儀器儀表已不再是簡(jiǎn)單的硬件實(shí)體,而是硬件、軟件相結(jié)合。近年來,智能儀器已開始從較為成熟的數(shù)據(jù)處理向知識(shí)處理發(fā)展,使其功能向更高層次發(fā)展。 現(xiàn)在社會(huì)中,電子產(chǎn)品使用越來越廣泛!,本次課程設(shè)計(jì)就是

8、針對(duì)智能儀器所設(shè)計(jì)的電子計(jì)算器。智能儀器是計(jì)算機(jī)技術(shù)與測(cè)量技術(shù)以及儀器儀表技術(shù)相結(jié)合的產(chǎn)物。它具有傳統(tǒng)儀器無法比擬的優(yōu)點(diǎn),在精度,可靠性方面都有了本質(zhì)性的改變。智能儀器廣泛用于測(cè)量、控制、通信、醫(yī)學(xué)儀器以及科學(xué)研究等多個(gè)方面。近年來,隨著計(jì)算機(jī)技術(shù)與電子技術(shù)的不斷發(fā)展,智能儀器也發(fā)生了很大的變化,儀器硬件都趨于采用嵌入式系統(tǒng)、片上系統(tǒng)等結(jié)構(gòu)。電子計(jì)算器是能進(jìn)行數(shù)學(xué)運(yùn)算的手持機(jī)器,擁有集成電路芯片,但結(jié)構(gòu)簡(jiǎn)單,比現(xiàn)代電腦結(jié)構(gòu)簡(jiǎn)單得多,可以說是第一代的電子計(jì)算機(jī),且功能也較弱,但較為方便與廉價(jià),可廣泛運(yùn)用于商業(yè)交易中,是必備的辦公用品之一。該電子計(jì)算器包括矩陣鍵盤、LCD液晶顯示、AT89C51單

9、片機(jī)以及電源四個(gè)部分,可實(shí)現(xiàn)加、減、乘、除四種運(yùn)算,當(dāng)做加、減、乘、除時(shí)相對(duì)的運(yùn)算指示燈會(huì)亮,結(jié)果顯示在7段數(shù)碼管上。1概述1.1  應(yīng)用背景我們的經(jīng)濟(jì)活動(dòng)已經(jīng)到了已經(jīng)到了工業(yè)經(jīng)濟(jì)時(shí)代,并正在轉(zhuǎn)入高新技術(shù)產(chǎn)業(yè)迅猛發(fā)展時(shí)期。儀器是科學(xué)技術(shù)發(fā)展的重要“工具”。儀器儀表能改善、擴(kuò)展或補(bǔ)充人的官能。人們用感覺器官去視、聽、嘗、摸外部事物,而顯微鏡、望遠(yuǎn)鏡、聲級(jí)計(jì)、酸度計(jì)、高溫計(jì)等儀器儀表,可以改善和擴(kuò)展人的這些官能;另外,有些儀器儀表如磁強(qiáng)計(jì)、射線計(jì)數(shù)計(jì)等可感受和測(cè)量到人的感覺器官所不能感受到的物理量;還有些儀器儀表可以超過人的能力去記錄、計(jì)算和計(jì)數(shù),如高速照相機(jī)、計(jì)算器等。而隨著微電子技術(shù)

10、的不斷發(fā)展,集成了CPU、存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、并行和串行接口、看門狗、前置放大器甚至AD、DA轉(zhuǎn)換器等電路在一塊芯片上的超大規(guī)模集成電路芯片(即單片機(jī))出現(xiàn)了。以單片機(jī)為主體,將計(jì)算機(jī)技術(shù)與丈量控制技術(shù)結(jié)合在一起,又組成了所謂的“智能化丈量控制系統(tǒng)”,也就是智能儀器。本次課題就是獲得對(duì)智能儀器儀表領(lǐng)域的初步認(rèn)識(shí),我們小組選擇電子計(jì)算器的設(shè)計(jì)來作為共同探討的內(nèi)容。1.2  課題設(shè)計(jì)目標(biāo)本次設(shè)計(jì)是用AT89S51單片機(jī)、LCD顯示器、控制按鍵為元件來設(shè)計(jì)的計(jì)算器。利用此設(shè)計(jì)熟悉單片機(jī)微控制器及C語言編程,對(duì)其片資源及各個(gè)I/O端口的功能和基本用途的了解。掌握keil應(yīng)用程序開發(fā)環(huán)境,

11、常用的LCD顯示器的使用方法和一般鍵盤的使用方法。1.3 課題設(shè)計(jì)任務(wù)與思路在進(jìn)行一個(gè)系統(tǒng)設(shè)計(jì)時(shí),首先要明確設(shè)計(jì)任務(wù),本次設(shè)計(jì)的電子計(jì)算器主要完成-999999999999數(shù)的加/減/乘/除運(yùn)算,使用1602LCD顯示器顯示數(shù)據(jù),具體如下:加法運(yùn)算能運(yùn)行-999999999999之間任何兩數(shù)值之間運(yùn)算;減法運(yùn)算結(jié)果可以實(shí)現(xiàn)計(jì)算結(jié)果的負(fù)數(shù)顯示;乘除法運(yùn)算結(jié)果為-999999999999,如有小數(shù),則保留兩位小數(shù);能對(duì)錯(cuò)誤進(jìn)行提示,比如被除數(shù)是0則顯示“error”;設(shè)有清零鍵;可連續(xù)運(yùn)算;按鍵排布:因?yàn)槭褂玫氖?*4鍵盤,所以要?jiǎng)h除部分不太重要的鍵,如小數(shù)點(diǎn)不使用,具體按鍵安排如下:012345

12、6789+-×÷=復(fù)位2. 設(shè)計(jì)方案論述根據(jù)本次課題設(shè)計(jì)任務(wù)與目標(biāo),我們小組選用AT89S51單片機(jī)、LCD顯示器、控制按鍵為元件來設(shè)計(jì)電子計(jì)算器。2.1 系統(tǒng)總體設(shè)計(jì)方案本設(shè)計(jì)以AT89C51型號(hào)單片機(jī)為控制核心進(jìn)行設(shè)計(jì)。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。結(jié)果顯示采用LCD1602液晶,也叫1602字符型液晶它是一種專

13、門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒茱@示圖形。液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來越廣泛的應(yīng)用。 軟件設(shè)計(jì)采用C語言編程實(shí)現(xiàn),使用Keil開發(fā)環(huán)境,Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),

14、體會(huì)更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。2.2 系統(tǒng)設(shè)計(jì)框圖為體現(xiàn)總體設(shè)計(jì)方案,我們繪制了如圖1的系統(tǒng)設(shè)計(jì)框圖,在設(shè)計(jì)中,單片機(jī)處理從鍵盤輸入的數(shù)字并進(jìn)行計(jì)算,計(jì)算結(jié)果顯示在LCD上。LCD1602液晶 AT89C51單片機(jī)電源矩陣鍵盤 圖1 系統(tǒng)設(shè)計(jì)框圖3. 系統(tǒng)硬件設(shè)計(jì)實(shí)現(xiàn)3.1單片機(jī)最小系統(tǒng) 本系統(tǒng)以AT89C51型號(hào)單片機(jī)為控制核心, 

15、AT89C51是一種可編程可擦除的低電壓,高性能8位微處理器,由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,AT89C51是一種高效微控制器,其最小系統(tǒng)電路如圖2所示。圖2單片機(jī)最小系統(tǒng)3.2矩陣鍵盤 在按鍵輸入方面,我們采用4*4的矩陣鍵盤來實(shí)現(xiàn),具體連接電路如圖3所示。通過基于狀態(tài)機(jī)的按鍵掃描程序設(shè)計(jì)可實(shí)現(xiàn)4*4矩陣鍵盤的按鍵監(jiān)控。圖3 LCD1602連接圖3.3顯示部分在顯示計(jì)算結(jié)果上,我們采用字符型液晶LCD1602來顯示結(jié)果,LCD1602能夠同時(shí)顯示16x2即32個(gè)字符(16列2行),LCD1602的使用很普遍了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理

16、是完全相同的,因此HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分字符型液晶。字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)地線GND(16腳),其控制原理與14腳的LCD完全一樣。其連接電路如圖4所示。圖4 LCD1602連接圖4.程序設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)采用C語言編寫,對(duì)單片機(jī)進(jìn)行編程實(shí)現(xiàn)各功能。程序是在Wnidows 環(huán)境下采用Keil uVision4編寫的,軟件的設(shè)計(jì)主要完成以下的功能: 矩陣鍵盤輸入檢測(cè)模塊; LCD顯示模塊;算術(shù)運(yùn)算模塊;錯(cuò)誤處理及提示模塊。4.1 具體設(shè)計(jì)內(nèi)容 四則運(yùn)算: 由于要設(shè)計(jì)的是簡(jiǎn)單的計(jì)算器,可以進(jìn)

17、行四則運(yùn)算,為了得到較好的顯示效果,采用LCD 顯示數(shù)據(jù)和結(jié)果。 矩陣鍵盤: 另外鍵盤包括數(shù)字鍵(09)、符號(hào)鍵(+、-、×、÷)、復(fù)位鍵和等號(hào)鍵,故只需要16 個(gè)按鍵即可,設(shè)計(jì)中采用集成的計(jì)算鍵盤。 執(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)算結(jié)果。 錯(cuò)誤提示: 當(dāng)計(jì)算器執(zhí)行過程中有錯(cuò)誤時(shí),會(huì)在LCD上顯示相應(yīng)的提示,如:當(dāng)輸入的數(shù)值或計(jì)算得到的結(jié)果大于計(jì)算器的表示范圍時(shí),計(jì)算器會(huì)在LCD上提示溢出;當(dāng)除數(shù)為

18、0時(shí),計(jì)算器會(huì)在LCD上提示錯(cuò)誤。4.2主程序流程圖 開始初始化參數(shù)數(shù)據(jù)送顯示緩沖LCD顯示等待數(shù)據(jù)輸入結(jié)果送顯示等待數(shù)據(jù)輸入等待數(shù)據(jù)輸入結(jié)果送顯示結(jié)果送顯示本次按鍵根據(jù)上次功能鍵和輸入數(shù)據(jù)計(jì)算結(jié)果狀態(tài)清零輸入數(shù)值功能鍵復(fù)位鍵讀取鍵碼數(shù)字鍵有鍵輸入初始化LCD顯示圖5主程序流程圖 如圖5所示為主程序流程:當(dāng)電源打開的時(shí)候,CPU進(jìn)行復(fù)位,寄存器清零,接著LCD顯示清零,這時(shí)候我們可以輸入數(shù)值、功能鍵,數(shù)據(jù)送到CPU進(jìn)行運(yùn)算,再轉(zhuǎn)換成BCD碼送到顯示部分。這時(shí)候程序循環(huán)檢測(cè)是否有按鍵信號(hào),如果矩陣鍵盤中有任意鍵按下,再將數(shù)據(jù)傳送至CPU運(yùn)算,再將結(jié)果送至LCD顯示,如此循環(huán)下去。4.3算數(shù)運(yùn)算程

19、序設(shè)計(jì)開始 LCD顯示結(jié)果減加除乘運(yùn)算符是?錯(cuò)誤信息送顯示緩沖除數(shù)為0?運(yùn)算結(jié)果溢出? Y Y N N圖6 算數(shù)運(yùn)算流程圖5 系統(tǒng)調(diào)試 設(shè)計(jì)時(shí),在仿真環(huán)境中對(duì)系統(tǒng)進(jìn)行了仿真實(shí)驗(yàn),Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。如圖7所示是Proteus仿真的電路截圖,我們根據(jù)設(shè)計(jì)方案在仿真環(huán)境中搭建了具體電路,并在Keil軟件開發(fā)集成環(huán)境中編寫了系統(tǒng)程序,通過Keil與Proteus的聯(lián)調(diào)實(shí)現(xiàn)了對(duì)系統(tǒng)的仿真。圖7系統(tǒng)仿真截圖 當(dāng)開機(jī)啟動(dòng)系統(tǒng)后,

20、按鍵輸入數(shù)值,進(jìn)行計(jì)算,如圖8所示。圖8 LCD顯示 在開發(fā)板上聯(lián)機(jī)調(diào)試的過程中,先檢查各個(gè)管腳連接無誤,點(diǎn)都連接上了,LCD顯示正確,確認(rèn)硬件圖檢查無誤后;檢查程序運(yùn)行,查看各個(gè)子程序是否都輸入,各個(gè)程序聲明都存在,最后由程序?qū)雙roteus圖,成功下載程序后, LCD顯示正確,一切運(yùn)行成功。6. 設(shè)計(jì)總結(jié) 在大家不斷努力下,我們終于圓滿完成了這次設(shè)計(jì)!每一次的課程那個(gè)設(shè)計(jì)都是在讓我不斷的提升自己親自動(dòng)手解決問題的能力,充分運(yùn)用理論和實(shí)踐相結(jié)合的鍛煉.隨著科學(xué)技術(shù)發(fā)展的日新日異,片上系統(tǒng)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握智能

21、儀器的開發(fā)技術(shù)是十分重要的。這一次的課程設(shè)計(jì),無論是選題還是寫稿,從理論到實(shí)踐,學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。在剛接觸無從下手到后來逐步完善,時(shí)刻在每道工序上的不放棄,要求做到自己最好,這一些都得到了回報(bào)。一個(gè)人能力與精力是有限的,但是團(tuán)隊(duì)則不一樣,我們小組齊心協(xié)力也讓我們更輕松來做,培養(yǎng)我們的團(tuán)隊(duì)合作意識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,不僅要掌握理論知識(shí),而且要把理論和實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能學(xué)好這技能,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中難免會(huì)遇到過各種各樣的問

22、題,同時(shí)在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,以后一定會(huì)努力學(xué)習(xí)。 本課題的重點(diǎn)、難點(diǎn)是: (1) 對(duì)電子計(jì)算器的原理、結(jié)構(gòu)、應(yīng)用等各方面從頭開始琢磨;(2) 以單片機(jī)為控制核心,采用矩陣鍵盤輸入數(shù)據(jù),LCD顯示結(jié)果;(3)軟件仿真做實(shí)驗(yàn) ;這次系統(tǒng)的開發(fā)可能該系統(tǒng)還存在著許多不盡如人意的地方,尤其是對(duì)于以前學(xué)過得知識(shí)遺忘了很多,在綜合應(yīng)用上面也缺乏練習(xí),有待進(jìn)一步改善。7.參考文獻(xiàn)1 李群芳,張士軍,黃建(編著).單片微型計(jì)算機(jī)與接口技術(shù),北京:電子工業(yè)出版社,20082 例說51單片機(jī)(C語言版) 張義和、王敏男等 人民郵電出版社 2003.43 單片機(jī)原理

23、與接口技術(shù)(第3版) 李朝青編著 北京航空航天大學(xué)出版社 2007.64 MCS-51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 系統(tǒng)配置與接口技術(shù) 何利民 北京航空航天大學(xué)出版社 5 MCS-51 系列單片機(jī)接口電路與應(yīng)用程序?qū)嵗?沈德金 北京航空航天大學(xué)出版社 1999.86 C語言程序設(shè)計(jì) 黃明 大連理工大學(xué)出版社1997:201-2117 王選民.智能儀器原理及設(shè)計(jì)北京:清華大學(xué)出版社,2008附錄:程序代碼:#include "LCD1602.h"/*全局變量*/bit bFlag=0; /用于控制是否掃描按鍵unsigned char chKeystatu=0; /用于記錄按鍵掃

24、描狀態(tài)機(jī)當(dāng)前狀態(tài)unsigned char A=0; /記錄寫入LCD的字符或數(shù)字對(duì)應(yīng)的地址unsigned char chN=0; /記錄按鍵鍵值unsigned char chOp=0; /記錄當(dāng)前運(yùn)算符unsigned char chOp1=0; /記錄上一次運(yùn)算符float iNum1=0; /記錄當(dāng)前操作數(shù)float iNum2=0; /記錄前一次操作數(shù)int iNum=0; /記錄運(yùn)算結(jié)果int iNum0=0;bit bK=0; /用于控制計(jì)算的連續(xù)性/LCD1602第一行地址unsignedcharcode rgchAddr16=0x80,0x81,0x82,0x83,0x84

25、,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F; /LCD1602第二行地址 unsignedcharcode rgchAddr216=0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xcA,0xcB,0xcC,0xcD,0xcE,0xcF; /*函數(shù)聲明*/void Keyscan(void); /按鍵掃描void Timer0_Init(void); /定時(shí)器初始化/*主函數(shù)*/ void main()LCD1602_Ini(); /液晶初始化Timer0_Init();

26、while(1)int i=15; /字符寫入地址循環(huán)計(jì)數(shù)變量if(bFlag) /中斷按鍵掃描bFlag=0;Keyscan();/按鍵識(shí)別/第一次取運(yùn)算符和操作if(chOp!=0)&&(chOp!='=')&&(chOp1=0) chOp1=chOp; /取運(yùn)算符 if(bK=0)iNum2=iNum1; /取操作數(shù)iNum1=0; /準(zhǔn)備取第二次操作數(shù)/保證輸出一次計(jì)算結(jié)果后計(jì)算器能繼續(xù)計(jì)算 else if (bK=1) iNum2=iNum2;chOp=0; /準(zhǔn)備取第二次操作符/第二次及以上取運(yùn)算符else if(chOp!=0)&a

27、mp;&(chOp!='=')&&(chOp1!=0) switch(chOp1) /執(zhí)行上一次操作符 case '+': iNum2=iNum2+iNum1; break; case '-': iNum2=iNum2-iNum1; break; case '*': iNum2=iNum2*iNum1; break;case '/': iNum2=iNum2/iNum1; break; default: break; chOp1=chOp; /取本次操作符iNum1=0; /準(zhǔn)備取下次操作數(shù)

28、chOp=0; /準(zhǔn)備取下次操作符if(chOp='=') /輸出計(jì)算結(jié)果 EA=0; /關(guān)中斷以保證LCD寫時(shí)序 switch(chOp1) /執(zhí)行最后一次操作符case '+': iNum2=iNum2+iNum1; break;case '-': iNum2=iNum2-iNum1; break;case '*': iNum2=iNum2*iNum1; break;case '/': iNum2=iNum2/iNum1; break;default: break; if(iNum2-(int)(iNum2)=0) /計(jì)算結(jié)果為整數(shù)iNum=(int)(iNum2); /存

溫馨提示

  • 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)論