單片機(jī)設(shè)計報告-基于51單片機(jī)簡易計算器設(shè)計_第1頁
單片機(jī)設(shè)計報告-基于51單片機(jī)簡易計算器設(shè)計_第2頁
單片機(jī)設(shè)計報告-基于51單片機(jī)簡易計算器設(shè)計_第3頁
單片機(jī)設(shè)計報告-基于51單片機(jī)簡易計算器設(shè)計_第4頁
單片機(jī)設(shè)計報告-基于51單片機(jī)簡易計算器設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電子課程設(shè)計報告基于51單片機(jī)的簡易計算器設(shè)計電子課程設(shè)計報告基于51單片機(jī)的簡易計算器設(shè)計姓 名: 朱啟超 專 業(yè): 電子信息科學(xué)與技術(shù) 班 級: 2011-1班 學(xué) 號: 201101050741 同 組 人: 指 導(dǎo) 教 師: 王桂海 信息科學(xué)與工程學(xué)院電子信息系2013 年 6 月 10 日摘要課程設(shè)計環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實(shí)踐所學(xué)專業(yè)知識而設(shè)置的,在本次課程設(shè)計中,以模擬電子技術(shù)基礎(chǔ)、數(shù)字電子技術(shù)基礎(chǔ)和單片微型計算機(jī)原理及應(yīng)用課程中所學(xué)知識為基礎(chǔ),設(shè)計了簡易計算器。本系統(tǒng)以MCS-51系列單片機(jī)為核心,能夠?qū)崿F(xiàn)兩位數(shù)的四則運(yùn)算。該系統(tǒng)通過檢測矩陣鍵盤掃描,判斷是否按鍵,經(jīng)數(shù)據(jù)

2、轉(zhuǎn)換把數(shù)值送入數(shù)碼管動態(tài)顯示。本系統(tǒng)的設(shè)計說明重點(diǎn)介紹了如下幾方面的內(nèi)容:1)基于單片機(jī)簡易計算器的基本功能,同時對矩陣鍵盤及數(shù)碼管動態(tài)顯示原理進(jìn)行了簡單的闡述;2)介紹了系統(tǒng)的總體設(shè)計、給出了系統(tǒng)的整體流程框圖,并對其進(jìn)行了功能模塊劃分及所采用的元器件進(jìn)行了詳細(xì)說明;3)對系統(tǒng)各功能模塊的軟、硬件實(shí)現(xiàn)進(jìn)行了詳細(xì)的設(shè)計說明。關(guān)鍵字:MCS-51單片機(jī);計算器;加減乘除目錄摘要2目錄3前言4課題簡介4設(shè)計目的4設(shè)計任務(wù)4第一章 計算器系統(tǒng)簡介511 單片機(jī)發(fā)展現(xiàn)狀512 計算器系統(tǒng)現(xiàn)狀613 簡易計算器系統(tǒng)簡介6第二章 MCS-51系列單片機(jī)簡介721 中央處理器(CPU)822 內(nèi)部數(shù)據(jù)存儲器

3、(RAM)923 程序存儲器(ROM)924 定時/計數(shù)器925 MCS-51單片機(jī)引腳說明1026 中斷系統(tǒng)10第三章 設(shè)計思路與步驟1231 系統(tǒng)框圖1232 硬件電路設(shè)計1333 程序設(shè)計1334 軟件仿真13第四章 電路焊接與試驗(yàn)14結(jié)論14參考文獻(xiàn)14附錄15附錄一15附錄二15前言課題簡介單片機(jī)由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中。單片機(jī)微型計算機(jī)是微型計算機(jī)的一個重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。本系統(tǒng)就是充分利用了MCS-51芯片的I/O引腳。系統(tǒng)采用MSC-51系列單

4、片機(jī)Intel8051為中心器件來設(shè)計計算器控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際輸入值顯示并存儲,計算程序則是參照教材。至于位數(shù)和功能,如果有需要可以設(shè)計擴(kuò)充原系統(tǒng)來實(shí)現(xiàn) 。設(shè)計目的通過本次課程設(shè)計,運(yùn)用數(shù)字電子技術(shù)基礎(chǔ)、單片微型計算機(jī)原理及應(yīng)用所學(xué)知識及查閱相關(guān)資料,完成簡易計算器的設(shè)計,達(dá)到理論知識與實(shí)踐更好結(jié)合、提高綜合運(yùn)用所學(xué)知識和設(shè)計能力的目的。通過本次設(shè)計訓(xùn)練,可以使我們在基本思路和基本方法上對基于MCS-51單片機(jī)的嵌入式系統(tǒng)設(shè)計有一個比較感性的認(rèn)識,并具備一定程度的設(shè)計能力。設(shè)計任務(wù)在本次工程實(shí)踐中,主要完成如下方面的設(shè)計任務(wù):1)簡要綜述單片機(jī)技術(shù)發(fā)展的國內(nèi)外現(xiàn)狀及數(shù)碼管動態(tài)顯示和矩陣鍵

5、盤基本原理;2)掌握MCS-51系列某種產(chǎn)品的最小電路及外圍擴(kuò)展電路的設(shè)計方法;3)了解單片機(jī)數(shù)據(jù)轉(zhuǎn)換功能及工作過程;4)完成主要功能模塊的硬件電路設(shè)計及必要的參數(shù)確定;5)用Protues軟件完成原理電路的繪制并實(shí)現(xiàn)與Keil uVision4軟件的連接仿真;6)完成系統(tǒng)實(shí)物設(shè)計。第一章 計算器系統(tǒng)簡介11 單片機(jī)發(fā)展現(xiàn)狀單片機(jī)的發(fā)展趨勢:低功耗CMOS化;微型單片化;主流與多品種共存;單片機(jī)從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供廣闊的天地。 縱觀單片機(jī)的發(fā)展過程,可以預(yù)示單片機(jī)的發(fā)展趨勢,大致有:1)

6、 低功耗CMOS化MCS-51系列的8051推出時的功耗達(dá)630mW,而現(xiàn)在的單片機(jī)普遍都在100mW左右,隨著對單片機(jī)功耗要求越來越低,現(xiàn)在的各個單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點(diǎn),這些特征,更適合于在要求低功耗象電池供電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機(jī)發(fā)展的主要途徑。 2) 微型單片化 現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)

7、存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機(jī)將LCD(液晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小。現(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。3) 主流與多品種共

8、存現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以80C51為核心的單片機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的Winbond系列單片機(jī)。所以C8051為核心的單片機(jī)占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集(RISC)也有著強(qiáng)勁的發(fā)展勢頭,中國臺灣的HOLTEK公司近年的單片機(jī)產(chǎn)量與日俱增,與其低價質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場分額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機(jī)。在一定的時期內(nèi),這種情形將得以延續(xù),將不存在某個單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ),相輔相成、共同發(fā)展的道路。12 計算器系統(tǒng)現(xiàn)狀計算器

9、一般由運(yùn)算器、控制器、存儲器、鍵盤、顯示器、電源和一些可選外圍設(shè)備及電子配件通過人工或機(jī)器設(shè)備組成。低檔計算器的運(yùn)算器、控制器由數(shù)字邏輯電路實(shí)現(xiàn)簡單的串行運(yùn)算,其隨機(jī)存儲器只有一、二個單元,供累加存儲用。高檔計算器由微處理器和只讀存儲器實(shí)現(xiàn)各種復(fù)雜的運(yùn)算程序,有較多的隨機(jī)存儲單元以存放輸入程序和數(shù)據(jù)。鍵盤是計算器的輸入部件,一般采用接觸式或傳感式。為減小計算器的尺寸,一鍵常常有多種功能。顯示器是計算器的輸出部件,有發(fā)光二極管顯示器或液晶顯示器等。除顯示計算結(jié)果外,還常有溢出指示、錯誤指示等。計算器電源采用交流轉(zhuǎn)換器或電池,電池可用交流轉(zhuǎn)換器或太陽能轉(zhuǎn)換器再充電。為節(jié)省電能,計算器都采用CMOS

10、工藝制作的大規(guī)模集成電路(見互補(bǔ)金屬-氧化物-半導(dǎo)體集成電路),并在內(nèi)部裝有定時不操作自動斷電電路。計算器可選用的外圍設(shè)備有微型打印機(jī)、盒式磁帶機(jī)和磁卡機(jī)等。13 簡易計算器系統(tǒng)簡介本計算器是以MCS-51系列單片機(jī)為核心構(gòu)成的簡易計算器系統(tǒng)。該系統(tǒng)通過單片機(jī)控制,實(shí)現(xiàn)對45鍵盤掃描進(jìn)行實(shí)時的按鍵檢測,并把檢測數(shù)據(jù)存儲下來。整個計算器系統(tǒng)的工作過程為:首先存儲單元初始化,顯示初始值和鍵盤掃描,判斷按鍵位置,查表得出按鍵值,單片機(jī)則對數(shù)據(jù)進(jìn)行儲存與相應(yīng)處理轉(zhuǎn)換,之后送入數(shù)碼管動態(tài)顯示。整個系統(tǒng)可分為三個主要功能模塊:功能模塊一,實(shí)時鍵盤掃描;功能模塊二,數(shù)據(jù)轉(zhuǎn)換為了數(shù)碼管顯示;功能模塊三,數(shù)碼管

11、動態(tài)顯示。第二章 MCS-51系列單片機(jī)簡介MCS-51系列單片機(jī)雖已有10多種產(chǎn)品,但可分為兩大系列:MCS-51子系列與MCS-52子系列。MCS-51子系列中主要有8031、8051、8751三種類型。而MCS-52子系列也有3種類型8032、8052、8752。各子系列配置見表2-1所示。表2-1 MCS-51系列單片機(jī)配置一覽表系列內(nèi)存儲器(字節(jié))定時器/計數(shù)器并行I/O串行I/O中斷源制造工藝無ROM片內(nèi)ROM片內(nèi)EPROM片內(nèi)RAMMCS-51子系列803180514K8751128216位48位15HMOS80C3180C514K87C514K128316位48位15CHMOS

12、MCS-52子系列803280528K87528K256316位48位16HMOS80C23280C2528K87C2528K256316位48位17CHMOSMCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖如圖2-1所示。MCS-52系列單片機(jī)的內(nèi)部結(jié)構(gòu)包含一個8位中央處理器CPU、128個字節(jié)(MCS-52子系列為256字節(jié))的片內(nèi)數(shù)據(jù)存儲器RAM、4KB(MCS-52子系列為8KB)的片內(nèi)程序只讀存儲器ROM、18個(MCS-52子系列為21個)特殊功能寄存器SFR、4個8位并行輸入輸出I/O接口、一個串行I/O接口、2個(MCS-52子系列為3個)16位定時器/計數(shù)器和1個具有5個(MSC-52子

13、系列為6個或7個)中斷源,可編程為2個優(yōu)先級的中斷系統(tǒng)八大部分,現(xiàn)在我們就主要部分加以說明:圖2-1 MCS-51系列單片機(jī)內(nèi)部結(jié)構(gòu)圖21 中央處理器(CPU)中央處理器(CPU)是整個單片機(jī)的核心部件,它決定了單片機(jī)的主要功能特性。它由運(yùn)算部件和控制部件兩大部分組成 。1) 運(yùn)算部件運(yùn)算部件是以算術(shù)邏輯單元ALU為核心,加上累加器A、寄存器B、暫存器TMP1和TMP2、程序狀態(tài)存儲器PSW及專門用于位操作的布爾處理機(jī)組成的(見圖1-1),它能實(shí)現(xiàn)數(shù)據(jù)的算是邏輯運(yùn)算、位變量處理和數(shù)據(jù)傳送操作。2) 控制部件控制部件是單片機(jī)的神經(jīng)中樞,它包括定時和控制電路、指令寄存器、譯碼器以及信息傳送控制等部

14、件。它以主振頻率為基準(zhǔn)發(fā)出CPU的時序,對指令進(jìn)行編譯,然后發(fā)出各種控制信號,完成一系列定時控制的微操作,用來協(xié)調(diào)單片機(jī)內(nèi)部各功能部件之間的數(shù)據(jù)傳送、數(shù)據(jù)運(yùn)算等操作,并對外發(fā)出地址鎖存ALE、外部程序存儲器選通 PSEN以及通過P3.6和P3.7發(fā)出數(shù)據(jù)存儲器讀 RD、寫 WR等控制信號,并且接受處理外接的復(fù)位RST和外部程序存儲器訪問控制 EA信號。22 內(nèi)部數(shù)據(jù)存儲器(RAM)MCS-51系列單片機(jī)的內(nèi)部數(shù)據(jù)存儲器由讀寫存儲器RAM組成,用于存儲數(shù)據(jù)。它由RAM塊和特殊功能寄存器(SFR)塊組成。對于MCS-51子系列,RAM塊有128個字節(jié),其編址為00H7FH;SFR塊占128個字節(jié),

15、其編址為80HFFH,兩者連續(xù)但不重疊。對于MCS-52子系列,RAM塊有256個字節(jié),編址為00HFFH;SFR塊仍占128個字節(jié),編制為80HFFH。后者比前者多128個字節(jié)的編址是重疊的,由于訪問內(nèi)部數(shù)據(jù)存儲器各部分所用指令不同,并不會引起混亂。23 程序存儲器(ROM)計算機(jī)的工作是按照事先編制好的程序命令一條條循序執(zhí)行的,程序存儲器就是用來存放這些已編好的程序和表格常數(shù),它由只讀存儲器ROM或EPROM組成。計算機(jī)為了有序的工作設(shè)置了一個專用寄存器程序計數(shù)器PC,用以存放將要執(zhí)行的指令系統(tǒng)。每取出指令的1個字節(jié)后,其內(nèi)容自行加1,指向下一字節(jié)地址,依次使計算機(jī)從程序存儲器取指令執(zhí)行,

16、完成某種程序操作。由于MCS-51單片機(jī)的程序計數(shù)器為16位,因此,可尋址的地址空間為64KB。與此相對應(yīng)得程序存儲器編址從0000H開始,最大可至FFFFH。24 定時/計數(shù)器在實(shí)際的控制系統(tǒng)中常要求有外部實(shí)時時鐘,以實(shí)現(xiàn)定時或延時控制;還要求有外部計數(shù)器,以實(shí)現(xiàn)對外界事件進(jìn)行計數(shù)。比如,在單片機(jī)控制的電力系統(tǒng)中,控制的對象為電動機(jī),為了實(shí)現(xiàn)閉環(huán)控制,就需要定時地對轉(zhuǎn)速進(jìn)行采樣。若采用光電脈沖發(fā)生器作為檢測元件,則先應(yīng)對每個采樣周期中光電脈沖發(fā)生器發(fā)出的脈沖進(jìn)行計數(shù),然后再通過實(shí)時計算求的對應(yīng)的轉(zhuǎn)速。對于定時/計數(shù)器來說,不管是獨(dú)立的定時器芯片還是單片機(jī)內(nèi)的定時器,大都有以下特點(diǎn):1) 定時

17、/計數(shù)器有多種工作方式,可以是計數(shù)方式也可以是定時方式。2) 定時/計數(shù)器的計數(shù)值是可變的,當(dāng)然對計數(shù)的最大值有一定限制,這取決于計數(shù)器的位數(shù),計數(shù)的最大值也就限制了定時的最大值。3) 可以按照規(guī)定的定時或計數(shù)值,在定時時間到或者計數(shù)終止時,發(fā)出終端請求,以便實(shí)現(xiàn)定時控制。MCS-51單片機(jī)內(nèi)帶有兩個16位定時/計數(shù)器T0和T1,兩者均可作為定時器或計數(shù)器使用。25 MCS-51單片機(jī)引腳說明MCS-51系列單片機(jī)芯片均為40個引腳,HMOS工藝制造的芯片采用雙列直插(DIP)方式封裝,其引腳示意及功能分類如圖2-2所示。CMOS工藝制造的低功耗芯片也有采用方形封裝的,但為44個引腳,其中4個

18、引腳是不使用的。圖2-2 MCS-51系列單片機(jī)引腳及總線結(jié)構(gòu)(a) 管腳圖;(b)引腳功能分類MCS-51系列單片機(jī)的40個引腳中有2個專用于主電源的引腳,2個外接晶體的引腳,4個控制或與其他電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。26 中斷系統(tǒng)MCS-51系列單片機(jī)的中斷系統(tǒng)屬于8位單片機(jī)中功能較強(qiáng)的1種中斷系統(tǒng),它可以提供5個中斷源,每個中斷源有兩個優(yōu)先級別可供選擇,可實(shí)現(xiàn)兩級中斷服務(wù)程序嵌套。此外,所有中斷均可有軟件設(shè)定為允許中斷或禁止中斷,也就是說,用戶可以用關(guān)中斷指令(或復(fù)位)來屏蔽所有的中斷請求,也可以中斷指令使CPU接受中斷請求。MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)示意圖如圖

19、2-3所示。圖2-3 MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)示意圖第三章 設(shè)計思路與步驟31 系統(tǒng)框圖1)系統(tǒng)模塊圖2) 系統(tǒng)運(yùn)算流程圖32 硬件電路設(shè)計AT89C52單片機(jī)一片,74HC573兩片,45鍵盤一個,8位共陰極的七段數(shù)碼管一個,連線和電阻和開關(guān)若干。AT89C52單片機(jī)的P1.0P1.4為鍵盤掃描輸出線,P2.0P2.2和P2.4為鍵盤掃描輸入線。74HC573用于對單片機(jī)進(jìn)行拓展。鍵盤由45共20個按鍵組成,10個數(shù)字鍵(由0-9組成)5個運(yùn)算符號(加減乘除等于)組成,1個清除鍵(作用相當(dāng)于整體復(fù)位),1個小數(shù)點(diǎn),1個開方運(yùn)算,1個求倒數(shù)運(yùn)算和一個負(fù)號(正號)。數(shù)碼管采用動態(tài)顯示方式

20、,通過74HC573接到單片機(jī)的P0口。電路設(shè)計圖見附錄。33 程序設(shè)計見附錄。34 軟件仿真使用Keil uVision4與Protues連接仿真:例如:2+5=7其他驗(yàn)證不再一一列舉。第四章 電路焊接與試驗(yàn)(略)結(jié)論課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機(jī)的開發(fā)技術(shù)是十分重要的。設(shè)計達(dá)到了預(yù)期的效果,但是由于單片機(jī)中只有單精度數(shù)據(jù),以至于計算數(shù)據(jù)出現(xiàn)了六位數(shù)

21、據(jù)以上時,后面的數(shù)據(jù)就會默認(rèn)零,如果不默認(rèn)為零,出現(xiàn)的就是亂碼?;仡櫰鸫舜握n程設(shè)計,從選題到定稿,從理論到實(shí)踐,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西。通過這次課程設(shè)計使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。通過這次課程設(shè)計使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我們在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好

22、的基礎(chǔ)。參考文獻(xiàn)1 張毅坤、陳善久、裘雪紅.單片微型計算機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版社. 1998.2 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第五版).高等教育出版社.2005.3 童詩白、華成英.模擬電子技術(shù)基礎(chǔ)(第四版).高等教育出版社.2006.附錄附錄一電路設(shè)計圖:附錄二程序清單:#include#include#include#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code led8=

23、0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar xx8;sbit dula=P26;sbit wela=P27;void displaypro(double h)uchar point=8,m;bit symbol;char i;double proh;symbol=0;if(h=0&h=10&h=100&h=1000&h=10000&h=100000&h=1000000&h=10000000&h100000000)point=8;proh=h;if(h=0;i-)m=proh/pow(10,i);xx7-i=tablem;proh=proh-(m*

24、pow(10,i);if(proh=1)/由于keil 中單精度和雙精度是一樣的,只能表示六位數(shù),如不把后面兩位清零,將會出現(xiàn)亂碼。xx6=0x3f;xx7=0x3f;else xx7=0x3f;xxpoint-1+=128;/顯示小數(shù)點(diǎn)else /超過八位數(shù)時,計算器報錯顯示Efor(i=6;i=0;i-)xxi=0x00;xx7=0x79;while(xx7=0x3f)/去除0.0000000 顯示的問題,即把0.0000000 顯示成0.for(i=7;i0;i-)xxi=xxi-1;xx0=0x00;if(symbol=1)/若為負(fù)數(shù)時,將數(shù)組中的數(shù)據(jù)后移for(i=6;i=0;i-)

25、if(xxi=0x00)xxi=0x40;break;void delay(unsigned char x)unsigned char i,j;for(i=0;ix;i+)for(j=0;jx;j+);unsigned char keyscan()/key 為按鍵返回值uchar temp,row=0,col=0,key;uint add;P2&=0xe8;P1|=0x1f;temp=P1;temp|=0xe0;if(temp!=0xff)delay(15);temp=P1;temp|=0xe0;if(temp!=0xff)row=P1;P2|=0x17;P1&=0xe0;col=P2;col

26、|=0xe8;add=row*256+col;switch(add)case 0xfefe: key=0;break;case 0xfdfe: key=1;break;case 0xfbfe: key=2;break;case 0xf7fe: key=3;break;case 0xeffe: key=10;break;case 0xfefd: key=4;break;case 0xfdfd: key=5;break;case 0xfbfd: key=6;break;case 0xf7fd: key=7;break;case 0xeffd: key=11;break;case 0xfefb: k

27、ey=8;break;case 0xfdfb: key=9;break;case 0xfbfb: key=15;break;case 0xf7fb: key=14;break;case 0xeffb: key=12;break;case 0xfeef: key=16;break;case 0xfdef: key=17;break;case 0xfbef: key=18;break;case 0xf7ef: key=19;break;case 0xefef: key=13;break;default: key=20;break;return key;else return 20;else ret

28、urn 20;void main()uchar k,i,hand,h2;bit xsd=0;char data e;double data temp,h1=0,h3=0,h4=0;displaypro(0);while(1)k=keyscan();if(k=20)hand=0;for(i=0;i=0)h1=h1*10+k;else h1=h1*10-k;if(xsd=1)e-;temp=pow(10,e);if(h1=0)h1=h1+k*temp;else h1=h1-k*temp;displaypro(h1);elseif(xsd=0)if(h3=0)h3=h3*10+k;else h3=h

29、3*10-k;if(xsd=1)e-;temp=pow(10,e);if(h3=0)h3=h3+k*temp;else h3=h3-k*temp;displaypro(h3);hand+;break;case 10:if(hand=0)/加號if(h4!=0)h1=h4;h4=0;switch(h2)case 0: h2=1;break;case 1: h1=h1+h3;h2=1;h3=0;displaypro(h1);break;case 2: h1=h1-h3;h2=1;h3=0;displaypro(h1);break;case 3: h1=h1*h3;h2=1;h3=0;display

30、pro(h1);break;case 4: h1=h1/h3;h2=1;h3=0;displaypro(h1);break;xsd=0;e=0;hand+;break;case 11:if(hand=0)/減號if(h4!=0)h1=h4;h4=0;switch(h2)case 0: h2=2;break;case 1: h1=h1+h3;h2=2;h3=0;displaypro(h1);break;case 2: h1=h1-h3;h2=2;h3=0;displaypro(h1);break;case 3: h1=h1*h3;h2=2;h3=0;displaypro(h1);break;ca

31、se 4: h1=h1/h3;h2=2;h3=0;displaypro(h1);break;xsd=0;e=0;hand+;break;case 12:if(hand=0)/乘號if(h4!=0)h1=h4;h4=0;switch(h2)case 0: h2=3;break;case 1: h1=h1+h3;h2=3;h3=0;displaypro(h1);break;case 2: h1=h1-h3;h2=3;h3=0;displaypro(h1);break;case 3: h1=h1*h3;h2=3;h3=0;displaypro(h1);break;case 4: h1=h1/h3;h2=3;h3=0;displaypro(h1);break;xsd=0;e=0;hand+;break;case 13:if(hand=0)/除號if(h4!=0)h1=h4;h4=0;switch(h2)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

提交評論