




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、河南河南#學(xué)校學(xué)校 畢畢業(yè)業(yè)設(shè)設(shè)計(jì)計(jì)(論論文文)基于基于 5151 單片機(jī)的簡(jiǎn)易計(jì)算器單片機(jī)的簡(jiǎn)易計(jì)算器系系 部部: : 自動(dòng)控制系自動(dòng)控制系 專(zhuān)專(zhuān) 業(yè)業(yè): : 電氣自動(dòng)化電氣自動(dòng)化 班班 級(jí)級(jí): : 自自 083083 姓姓 名名: : 崔崔 # # # # 學(xué)學(xué) 號(hào)號(hào): : 091415302091415302 指導(dǎo)老師指導(dǎo)老師: : 許許 # # 二零一二年五月八日二零一二年五月八日基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器I摘要摘要工程實(shí)踐教學(xué)環(huán)節(jié)是為了學(xué)生能夠更好地鞏固和實(shí)踐所學(xué)專(zhuān)業(yè)知識(shí)而設(shè)置的,在本次工程實(shí)踐中,我以智能化測(cè)量控制儀表原理與設(shè)計(jì) 、 MCS-51 系列單片微型計(jì)算機(jī)及其應(yīng)用課程
2、中所學(xué)知識(shí)為基礎(chǔ),設(shè)計(jì)了簡(jiǎn)易計(jì)算器。本系統(tǒng)以MCS-51 系列中的 8051 單片機(jī)為核心,能夠?qū)崿F(xiàn)多位數(shù)的四則運(yùn)算。該系統(tǒng)通過(guò)檢測(cè)矩陣鍵盤(pán)掃描,判斷是否按鍵,經(jīng)數(shù)據(jù)轉(zhuǎn)換把數(shù)值送入數(shù)碼管動(dòng)態(tài)顯示。本系統(tǒng)的設(shè)計(jì)說(shuō)明重點(diǎn)介紹了如下幾方面的內(nèi)容:基于單片機(jī)簡(jiǎn)易計(jì)算器的基本功能,同時(shí)對(duì)矩陣鍵盤(pán)及數(shù)碼管動(dòng)態(tài)顯示原理進(jìn)行了簡(jiǎn)單的闡述;介紹了系統(tǒng)的總體設(shè)計(jì)、給出了系統(tǒng)的整體流程框圖,并對(duì)其進(jìn)行了功能模塊劃分及所采用的元器件進(jìn)行了詳細(xì)說(shuō)明;對(duì)系統(tǒng)各功能模塊的軟、硬件實(shí)現(xiàn)進(jìn)行了詳細(xì)的設(shè)計(jì)說(shuō)明。關(guān)鍵詞關(guān)鍵詞:MCS-51; 8051 單片機(jī);計(jì)算器;加減乘除Based on the simple calculat
3、or 51 SCMIIAbstractThe engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design , the MCS-51 series single chip computer and its ap
4、plication course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical
5、into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the
6、design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions.Key words: MCS-51; 8051 sin
7、gle chip microcomputer; Calculator; Add, subtract, multiply and divide:目錄III目錄目錄第 1 章 緒論1 1.1 課題簡(jiǎn)介11.2 設(shè)計(jì)目的11.3 設(shè)計(jì)任務(wù)11.4 章節(jié)安排說(shuō)明1第 2 章 計(jì)算器系統(tǒng)簡(jiǎn)介22.1 單片機(jī)發(fā)展現(xiàn)狀22.2 計(jì)算機(jī)系統(tǒng)現(xiàn)狀22.3 簡(jiǎn)易計(jì)算器系統(tǒng)簡(jiǎn)介3第 3 章 計(jì)算機(jī)硬件系統(tǒng)簡(jiǎn)介43.1 計(jì)算機(jī)硬件需IV求43.2 MCS-51 系列單片機(jī)簡(jiǎn)介43.3 外圍電路設(shè)計(jì) 83.3.1 振蕩電路設(shè)計(jì)83.3.2 復(fù)位電路設(shè)計(jì)93.3.3 鍵盤(pán)電路設(shè)計(jì)93.3.4 數(shù)碼管顯示電路設(shè)計(jì)10 3.
8、4 硬件原理圖11第 4 章 計(jì)算器軟件系統(tǒng)設(shè)計(jì)124.1 系統(tǒng)模塊圖124.2 系統(tǒng)流程圖124.3 計(jì)算器主程序設(shè)計(jì)目錄V124.3.1 計(jì)算器主程序設(shè)計(jì)124.3.2 存儲(chǔ)單元分配134.4 計(jì)算器子程序設(shè)計(jì)144.4.1 輸入程序設(shè)計(jì)144.4.2 運(yùn)算程序設(shè)計(jì)154.4.3 顯示程序設(shè)計(jì)16第 5 章 結(jié)論與展望185.1 結(jié)論185.2 不足與展望18參考文獻(xiàn)19附錄 程序源代VI碼20基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器1第第 1 1 章章 緒論緒論1.1 課題簡(jiǎn)介課題簡(jiǎn)介單片機(jī)由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中。單片機(jī)微型計(jì)算機(jī)是微型計(jì)
9、算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),特別適用于控制領(lǐng)域,故又稱(chēng)為微控制器。本系統(tǒng)就是充分利用了 8051 芯片的 I/O 引腳。系統(tǒng)統(tǒng)采用 MSC-51 系列單片機(jī) Intel8051 為中心器件來(lái)設(shè)計(jì)計(jì)算器控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際輸入值顯示并存儲(chǔ),計(jì)算程序則是參照教材。至于位數(shù)和功能,如果有需要可以設(shè)計(jì)擴(kuò)充原系統(tǒng)來(lái)實(shí)現(xiàn) 。1.2 設(shè)計(jì)目的設(shè)計(jì)目的通過(guò)本次工程實(shí)踐,運(yùn)用智能化測(cè)量控制儀表原理與設(shè)計(jì) 、 MCS-51 系列單片微型計(jì)算機(jī)及其應(yīng)用所學(xué)知識(shí)及查閱相關(guān)資料,完成簡(jiǎn)易計(jì)算器的設(shè)計(jì),達(dá)到理論知識(shí)與實(shí)踐更好結(jié)合、提高綜合運(yùn)用所學(xué)知識(shí)和設(shè)計(jì)能力的目的。通過(guò)本次
10、設(shè)計(jì)訓(xùn)練,可以使我們?cè)诨舅悸泛突痉椒ㄉ蠈?duì)基于 MCS-51 單片機(jī)的嵌入式系統(tǒng)設(shè)計(jì)有一個(gè)比較感性的認(rèn)識(shí),并具備一定程度的設(shè)計(jì)能力。1.3 設(shè)計(jì)設(shè)計(jì)任務(wù)任務(wù)在本次工程實(shí)踐中,主要完成如下方面的設(shè)計(jì)任務(wù):(1) 簡(jiǎn)要綜述單片機(jī)技術(shù)發(fā)展的國(guó)內(nèi)外現(xiàn)狀及數(shù)碼管動(dòng)態(tài)顯示和矩陣鍵盤(pán)基本原理;(2) 掌握 MCS-51 系列某種產(chǎn)品(例如 8051)的最小電路及外圍擴(kuò)展電路的設(shè)計(jì)方法;(3) 了解單片機(jī)數(shù)據(jù)轉(zhuǎn)換功能及工作過(guò)程;(4) 完成主要功能模塊的硬件電路設(shè)計(jì)及必要的參數(shù)確定;(5)用 protues 軟件完成原理電路的繪制;(6) 完成系統(tǒng)設(shè)計(jì)說(shuō)明書(shū)。1.4 章節(jié)安排說(shuō)明章節(jié)安排說(shuō)明整個(gè)設(shè)計(jì)總共分為
11、四個(gè)章節(jié),第一章是前言部分,主要介紹了設(shè)計(jì)基于單片機(jī)簡(jiǎn)易計(jì)算器的意義、目的及主要內(nèi)容;第二章簡(jiǎn)要介紹了單片機(jī)發(fā)展的國(guó)內(nèi)外現(xiàn)狀及鍵盤(pán)掃描,數(shù)據(jù)轉(zhuǎn)換,和動(dòng)態(tài)顯示原理進(jìn)行了簡(jiǎn)要的說(shuō)明。第三章是器件簡(jiǎn)介,這一部分主要介紹了系統(tǒng)的所用主要器件的選擇。第四章是系統(tǒng)詳細(xì)設(shè)計(jì)河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文2階段,分為硬件設(shè)計(jì)和程序設(shè)計(jì)。按照程序設(shè)計(jì)的各部分實(shí)現(xiàn)的功能不同,將整個(gè)軟件系統(tǒng)分成了三個(gè)塊,并對(duì)每一個(gè)功能塊所采用的元器件進(jìn)行了詳細(xì)介紹。此外還編寫(xiě)了主要功能模塊的基本程序,詳盡闡述了各模塊的工作過(guò)程。還有總流程圖,源代碼,硬器件鋪線圖?;?51 單片機(jī)的簡(jiǎn)易計(jì)算器3第第 2 2 章章 計(jì)算器系統(tǒng)簡(jiǎn)介計(jì)算
12、器系統(tǒng)簡(jiǎn)介2.1 單片機(jī)發(fā)展現(xiàn)狀單片機(jī)發(fā)展現(xiàn)狀單片機(jī)的發(fā)展趨勢(shì):低功耗 CMOS 化;微型單片化;主流與多品種共存;單片機(jī)從 8 位、16 位到 32 位,數(shù)不勝數(shù),應(yīng)有盡有,有與主流 C51 系列兼容的,也有不兼容的,但它們各具特色,互成互補(bǔ),為單片機(jī)的應(yīng)用提供廣闊的天地。 縱觀單片機(jī)的發(fā)展過(guò)程,可以預(yù)示單片機(jī)的發(fā)展趨勢(shì),大致有:( (1) ) 低功耗低功耗 CMOSCMOS 化化 MCS-51 系列的 8051 推出時(shí)的功耗達(dá) 630mW,而現(xiàn)在的單片機(jī)普遍都在 100mW左右,隨著對(duì)單片機(jī)功耗要求越來(lái)越低,現(xiàn)在的各個(gè)單片機(jī)制造商基本都采用了CMOS(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。象 80C
13、51 就采用了 HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和 CHMOS(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。CMOS 雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而 CHMOS 則具備了高速和低功耗的特點(diǎn),這些特征,更適合于在要求低功耗象電池供電的應(yīng)用場(chǎng)合。所以這種工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑。 ( (2)微型單片化)微型單片化現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(CPU)、隨機(jī)存取數(shù)據(jù)存儲(chǔ)(RAM)、只讀程序存儲(chǔ)器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時(shí)電路、時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如 A/D 轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門(mén)狗
14、)、有些單片機(jī)將 LCD(液晶)驅(qū)動(dòng)電路都集成在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單片機(jī)廠商還可以根據(jù)用戶(hù)的要求量身定做,制造出具有自己特色的單片機(jī)芯片。 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功耗低外,還要求其體積要小。現(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中SMD(表面封裝)越來(lái)越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。( (3) ) 主流與多品種共存主流與多品種共存 現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以 80C51 為核心的單片機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有 PHILIPS 公司的產(chǎn)品,ATMEL 公司的產(chǎn)品和
15、中國(guó)臺(tái)灣的 Winbond 系列單片機(jī)。所以 C8051 為核心的單片機(jī)占據(jù)了半壁江山。而Microchip 公司的 PIC 精簡(jiǎn)指令集(RISC)也有著強(qiáng)勁的發(fā)展勢(shì)頭,中國(guó)臺(tái)灣的HOLTEK 公司近年的單片機(jī)產(chǎn)量與日俱增,與其低價(jià)質(zhì)優(yōu)的優(yōu)勢(shì),占據(jù)一定的市場(chǎng)分額。此外還有 MOTOROLA 公司的產(chǎn)品,日本幾大公司的專(zhuān)用單片機(jī)。在一定的河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文4時(shí) 期內(nèi),這種情形將得以延續(xù),將不存在某個(gè)單片機(jī)一統(tǒng)天下的壟斷局面,走的是依存互補(bǔ),相輔相成、共同發(fā)展的道路。2.2 計(jì)算器系統(tǒng)現(xiàn)狀計(jì)算器系統(tǒng)現(xiàn)狀計(jì)算器一般由運(yùn)算器、控制器、存儲(chǔ)器、鍵盤(pán)、顯示器、電源和一些可選外圍設(shè)備及電子配件通過(guò)
16、人工或機(jī)器設(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ǔ)單元以存放輸入程序和數(shù)據(jù)。鍵盤(pán)是計(jì)算器的輸入部件,一般采用接觸式或傳感式。為減小計(jì)算器的尺寸,一鍵常常有多種功能。顯示器是計(jì)算器的輸出部件,有發(fā)光二極管顯示器或液晶顯示器等。除顯示計(jì)算結(jié)果外,還常有溢出指示、錯(cuò)誤指示等。計(jì)算器電源采用交流轉(zhuǎn)換器或電池,電池可用交流轉(zhuǎn)換器或太陽(yáng)能轉(zhuǎn)換器再充電。為節(jié)省電能,計(jì)算器都采用CMOS 工藝制作的大規(guī)模集成電路(見(jiàn)互補(bǔ)金屬 -氧化物-半導(dǎo)體集成電路),并在內(nèi)部裝有
17、定時(shí)不操作自動(dòng)斷電電路。計(jì)算器可選用的外圍設(shè)備有微型打印機(jī)、盒式磁帶機(jī)和磁卡機(jī)等。2.3 簡(jiǎn)易計(jì)算器系統(tǒng)簡(jiǎn)介簡(jiǎn)易計(jì)算器系統(tǒng)簡(jiǎn)介本計(jì)算器是以 MCS-51 系列 8051 單片機(jī)為核心構(gòu)成的簡(jiǎn)易計(jì)算器系統(tǒng)。該系統(tǒng)通過(guò)單片機(jī)控制,實(shí)現(xiàn)對(duì) 4*4 鍵盤(pán)掃描進(jìn)行實(shí)時(shí)的按鍵檢測(cè),并把檢測(cè)數(shù)據(jù)存儲(chǔ)下來(lái)。整個(gè)計(jì)算器系統(tǒng)的工作過(guò)程為:首先存儲(chǔ)單元初始化,顯示初始值和鍵盤(pán)掃描,判斷按鍵位置,查表得出按鍵值,單片機(jī)則對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存與相應(yīng)處理轉(zhuǎn)換,之后送入數(shù)碼管動(dòng)態(tài)顯示。整個(gè)系統(tǒng)可分為三個(gè)主要功能模塊:功能模塊一,實(shí)時(shí)鍵盤(pán)掃描;功能模塊二,數(shù)據(jù)轉(zhuǎn)換為了數(shù)碼管顯示;功能模塊三,數(shù)碼管動(dòng)態(tài)顯示?;?51 單片機(jī)的簡(jiǎn)易
18、計(jì)算器5第第 3 三章三章 計(jì)算機(jī)主要硬件簡(jiǎn)介計(jì)算機(jī)主要硬件簡(jiǎn)介3.1 計(jì)算器硬件計(jì)算器硬件需求需求89C51 單片機(jī)一片,按鈕 17 個(gè), 1K 電阻 17 個(gè),22pF 電容兩個(gè),22uF 一個(gè),微型振蕩器一個(gè),3 個(gè) 74HC595,4 位共陽(yáng)極的七段數(shù)碼管 3 個(gè),組成 12 位顯示屏,4 個(gè) 9012 三極管控制 3 個(gè)數(shù)碼管模塊的第 1、2、3、4 位的顯示,另外有連線和電阻若干,220V5V 電源適配器一個(gè)。89C51 單片機(jī)的 P1 口和 P3 口作鍵盤(pán)口,16 個(gè)端口分別接 16 個(gè)按鈕,順序是數(shù)字 0-9,小數(shù)點(diǎn),等號(hào), “+-x/”四個(gè)運(yùn)算符號(hào), 1 個(gè)復(fù)位鍵接在單片機(jī)復(fù)
19、位端,按下時(shí)給單片機(jī)復(fù)位信號(hào),中斷全部運(yùn)算清楚全部?jī)?nèi)存和寄存器,回到單片機(jī)啟動(dòng)初始狀態(tài)。12 位數(shù)碼管用于顯示當(dāng)前數(shù)值的 10 億位到個(gè)位,運(yùn)算中的最大值不能超過(guò) 2 的 32 次方,這是因?yàn)槌绦蛑械倪\(yùn)算中間值采用 long 類(lèi)型保存的緣故,3.2 MCS-51 系列單片機(jī)簡(jiǎn)介系列單片機(jī)簡(jiǎn)介 8051 是 MCS-51 系列單片機(jī)的典型產(chǎn)品,以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。8051 單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說(shuō)明: 1.中央處理器中央處理器中央
20、處理器(CPU)是整個(gè)單片機(jī)的核心部件,是 8 位數(shù)據(jù)寬度的處理器,能處理 8 位二進(jìn)制數(shù)據(jù)或代碼,CPU 負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。 2. 數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器( (RAM) )8051 內(nèi)部有 128 個(gè) 8 位用戶(hù)數(shù)據(jù)存儲(chǔ)單元和 128 個(gè)專(zhuān)用寄存器單元,它們是統(tǒng)一編址的,專(zhuān)用寄存器只能用于存放控制指令數(shù)據(jù),用戶(hù)只能訪問(wèn),而不能用于存放用戶(hù)數(shù)據(jù),所以,用戶(hù)能使用的 RAM 只有 128 個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶(hù)定義的字型表。 3.程序存儲(chǔ)器程序存儲(chǔ)器( (ROM)8051 共有 4096 個(gè) 8 位掩膜 ROM,用于存
21、放用戶(hù)程序,原始數(shù)據(jù)或表格。 4.定時(shí)定時(shí)/ /計(jì)數(shù)器計(jì)數(shù)器( (ROM) ):8051 有兩個(gè) 16 位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文6 8051 內(nèi)部結(jié)構(gòu)圖 3-1 5. 并行輸入輸出并行輸入輸出(I/O)(I/O)口口8051 共有 4 組 8 位 I/O 口(P0、 P1、P2 或 P3),用于對(duì)外部數(shù)據(jù)的傳輸。 6. 全雙工串行口全雙工串行口8051 內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。 7. 中斷系統(tǒng)中斷系統(tǒng)8051 具備較完善的中斷功能,有兩
22、個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有 2 級(jí)的優(yōu)先級(jí)別選擇。 8. 時(shí)鐘電路時(shí)鐘電路8051 內(nèi)置最高頻率達(dá) 12MHz 的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但 8051 單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類(lèi)型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)(如下頁(yè)圖 3-2) 。INTEL 的MCS-51 系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品 16 位的 MCS-96 系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。MC
23、S-51 的引腳說(shuō)明(如下頁(yè)圖 3-3)MCS-51 系列單片機(jī)中的 8031、8051 及 8751 均采用 40Pin 封裝的雙列直接DIP 結(jié)構(gòu),右圖是它們的引腳配置,40 個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4 組 8 位共 32 個(gè) I/O 口,中斷口線與 P3 口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明。Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng) 8051 通電,時(shí)鐘電路開(kāi)始工作,在RESET 引腳上出現(xiàn) 24 個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器 PC 指向 0000H,P0-P3 輸出口全部為高電平,堆棧指針寫(xiě)入 07H,其它基于
24、 51 單片機(jī)的簡(jiǎn)易計(jì)算器7專(zhuān)用寄下圖是 MCS-51 系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖 3-2。 MCS-51 結(jié)構(gòu)圖 3-2下圖是 8951 單片機(jī)引腳示意圖 3-3 雙列直插式封裝引腳圖 3-3存器被清“0” 。RESET 由高電平下降為低電平后,系統(tǒng)即從 0000H 地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變 RAM(包括工作寄存器 R0-R7)的狀態(tài),8051的初始態(tài)。8051 的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部 RAM 的數(shù)據(jù)不丟失。見(jiàn)下圖 3-4 為兩種復(fù)位方式和兩種時(shí)鐘方式: 河南機(jī)電高等
25、專(zhuān)科學(xué)校畢業(yè)論文8Pin30:ALE/當(dāng)訪問(wèn)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ALE 端將有一個(gè) 1/6 時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問(wèn)外部程序存儲(chǔ)器,ALE 會(huì)跳過(guò)一個(gè)脈沖。如果單片機(jī)是 EPROM,在編程其間,將用于輸入編程脈沖。 圖 3-4Pin29:當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC 的 16位地址數(shù)據(jù)將出現(xiàn)在 P0 和 P2 口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到 P0 口上,由 CPU 讀入并執(zhí)行。Pin31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部
26、選通線,8051 和 8751 單片機(jī),內(nèi)置有4kB 的程序存儲(chǔ)器,當(dāng) EA 為高電平并且程序地址小于 4kB 時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過(guò) 4kB 地址則讀取外部指令數(shù)據(jù)。如 EA 為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存儲(chǔ)器的 8031,EA端必須接地。在編程時(shí),EA/Vpp腳還需加上 21V 的編程電壓。3.3 外圍電路設(shè)計(jì)外圍電路設(shè)計(jì)本設(shè)計(jì)外圍電路大致可分為四部分:1振蕩電路。2復(fù)位電路。3鍵盤(pán)電路。4顯示電路。3.3.1 振蕩電路設(shè)計(jì)振蕩電路設(shè)計(jì)振蕩電路如圖 3-5 所示.圖中 X1、X2 分別接單片機(jī)的 19 和 18 號(hào)腳。時(shí)鐘有內(nèi)部電
27、路產(chǎn)生,定時(shí)器件為石英晶體和電容組成的并聯(lián)諧振回路,電容 C1、C2 的取之為 30p,Y1 的取值為 12MHz?;?51 單片機(jī)的簡(jiǎn)易計(jì)算器9振蕩電路圖 3-53.3.2 復(fù)位電路設(shè)計(jì)復(fù)位電路設(shè)計(jì)復(fù)位電路如圖 3-6 所示.復(fù)位電路圖 3-6圖中的 RST 接單片機(jī)的 9 號(hào)腳,當(dāng)按鍵 ac 按下時(shí)單片機(jī)復(fù)位。其中電阻 R2為 1K,電容 C3 為電解性電容取值為 16V/22UF。Vcc 接 5V 電壓。3.3.3 鍵盤(pán)電路設(shè)計(jì)鍵盤(pán)電路設(shè)計(jì)鍵盤(pán)電路如圖 3-7 所示.矩陣鍵盤(pán)工作原理是。在矩陣式鍵盤(pán)中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如
28、P1 口)就可以構(gòu)成4*4=16 個(gè)按鍵。確定矩陣式鍵盤(pán)上何鍵被按下,用“行掃描法” 。 行掃描法又稱(chēng)為逐行(或列)掃描查詢(xún)法,是一種最常用的按鍵識(shí)別方法.判斷鍵盤(pán)中有無(wú)鍵按下: 將全部行線置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤(pán)中有鍵被按下,而且閉合的鍵位于低電平線與 4 根行線相交*的 4 個(gè)按河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文10鍵之中。若鍵盤(pán)電路圖 3-7所有列線均為高電平,則鍵盤(pán)中無(wú)鍵按下。判斷閉合鍵所在的位置: 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐
29、行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交*處的按鍵就是閉合的按鍵。把每個(gè)鍵都分成水平和垂直的兩端接入,比如說(shuō)掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個(gè)位,而讀入掃描碼的則是水平,掃描的動(dòng)作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過(guò)比對(duì)之后就可知道是哪個(gè)鍵被按下。 3.3.4 數(shù)碼管顯示電路設(shè)計(jì)數(shù)碼管顯示電路設(shè)計(jì)如圖 3-8 三個(gè)四位數(shù)碼管所示.三個(gè)四位數(shù)碼管圖 3-8數(shù)碼顯示驅(qū)動(dòng)電路 該設(shè)計(jì)采用 74HC595 芯片作為驅(qū)動(dòng),以保證數(shù)碼管顯示的亮度。在本任務(wù)中用 4 位數(shù)碼管顯示當(dāng)前數(shù)值的千,百,十,個(gè),由于數(shù)碼管個(gè)數(shù)多,如采用靜態(tài)顯示方式,則占用單片機(jī)的
30、I/O 口線太多,如果用定時(shí)器/計(jì)數(shù)器的串行移位寄存器工作方式及外接串入并出移位寄存器 74LS164 的方式,則電路復(fù)雜。所以,在數(shù)碼管個(gè)數(shù)較多時(shí),常采用動(dòng)態(tài)顯示方式。 如圖所示為基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器11單片機(jī)應(yīng)用系統(tǒng)中的一種數(shù)碼管動(dòng)態(tài)顯示電路圖,4 位數(shù)碼管的相同段并聯(lián)在一起,由一個(gè) 8 位 I/O(P1 口)輸出字形碼控制顯示某一字形,每個(gè)數(shù)碼管的公共端由另外一個(gè) I/O 口(P0 口)輸出的字位碼控制,即數(shù)碼管顯示的字形是由單片機(jī) I/O 口輸出的字形碼確定,而哪個(gè)數(shù)碼管點(diǎn)亮是由單片機(jī) I/O 口輸出的字位碼確定的 8 個(gè)數(shù)碼管分時(shí)輪流循環(huán)點(diǎn)亮,在同一時(shí)刻只有 1 個(gè)數(shù)碼管點(diǎn)
31、亮,但由于數(shù)碼管具有余輝特性及人眼具有視覺(jué)暫留特性,所以適當(dāng)?shù)剡x取循環(huán)掃描頻率,看上去所有數(shù)碼管是同時(shí)點(diǎn)亮的,察覺(jué)不出閃爍現(xiàn)象。動(dòng)態(tài)顯示方式所接數(shù)碼管不能太多,否則會(huì)因每個(gè)數(shù)碼管所分配的實(shí)際導(dǎo)通時(shí)間太少,使得數(shù)碼管的亮度不足。在本任務(wù)中,為了簡(jiǎn)便,字形碼和字位元碼都沒(méi)由加驅(qū)動(dòng)電路,在實(shí)際應(yīng)用中應(yīng)加驅(qū)動(dòng)電路。數(shù)碼管有共陰極和共陽(yáng)極兩種,對(duì)于共陽(yáng)數(shù)碼管,字形驅(qū)動(dòng)輸出 0 有效,字位驅(qū)動(dòng)輸出 1 有效;而對(duì)于共陰數(shù)碼管則相反,即:字形驅(qū)動(dòng)輸出 1 有效,字位驅(qū)動(dòng)輸出 0 有效。3.4 硬件原理圖硬件原理圖硬件原理圖如圖 3-9 所示.單片機(jī)的 p0.0 口接 74HC595 芯片的串行輸入端 DS
32、端,74HC595 的并行輸出端接數(shù)碼管的公共端。P2.0-p2.3 接三極管控制數(shù)碼管段選。P1 接矩陣鍵盤(pán)。硬件原理圖 3-9河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文12第第 4 4 章章 計(jì)算器軟件系統(tǒng)設(shè)計(jì)計(jì)算器軟件系統(tǒng)設(shè)計(jì) 4.1 系統(tǒng)模塊圖系統(tǒng)模塊圖本系統(tǒng)有四個(gè)模塊構(gòu)成:顯示模塊、輸入模塊、電源模塊、運(yùn)算模塊。如下圖 4-1 所示.系統(tǒng)模塊圖 4-14.2 系統(tǒng)流程圖系統(tǒng)流程圖本任務(wù)由 P1 口輸出字形碼,P0 口輸出字位碼。先將存放于 30H 單元的數(shù)值個(gè)位七段碼由 P1 口輸出,同時(shí) P0 口輸出使數(shù)值個(gè)位顯示數(shù)碼管點(diǎn)亮的字位碼。由于采用的是共陽(yáng)數(shù)碼管,所以只有該位數(shù)碼管對(duì)應(yīng)的 P0.0 為
33、 1,其他位 P0.1-P0.3 位 0,點(diǎn)亮延時(shí) 10MS。如下頁(yè)系統(tǒng)流程圖 4-2 所示。4.3 計(jì)算器主程序設(shè)計(jì)計(jì)算器主程序設(shè)計(jì)4.3.1 計(jì)算器主程序設(shè)計(jì)計(jì)算器主程序設(shè)計(jì)主程序調(diào)用按鍵子程序,檢查哪個(gè)鍵按下,用 switch 結(jié)構(gòu)分?jǐn)?shù)步來(lái)組成一個(gè)運(yùn)算式,比如頭一個(gè)按下數(shù)字,存入 f1 變量,如果按負(fù)號(hào)就存入 fh1,否則 fh1 是正一,下面如果繼續(xù)按數(shù)字,就按照 F1=fh1xf1x10+數(shù)字,更新 f1 變量,然后如果按加減乘除符號(hào),就存入 yunsuan 變量,可以繼續(xù)按運(yùn)算符號(hào),就存入 yunsuan1變量,之所以這樣是因?yàn)榘礈p號(hào)既可能確實(shí)是在按減號(hào)也可能是想按后面數(shù)字的負(fù)號(hào),
34、直到按下數(shù)字,才肯定是想輸入第二個(gè)數(shù)字,其符號(hào)存入 fh2,這個(gè)數(shù)字存入 f2,繼續(xù)按數(shù)字,就按照 f2=f2x10+數(shù)字來(lái)更新 f2。等到按等號(hào)或者運(yùn)算符號(hào)時(shí),就按 y=fh1*f1(+-x/)fh2*f2 來(lái)計(jì)算最后的值。無(wú)論輸入什么數(shù)字都要存進(jìn)一個(gè)緩沖區(qū),主程序最后有一些專(zhuān)門(mén)代碼把這個(gè)緩沖區(qū)的內(nèi)容翻譯成將要輸往 74HC595 的數(shù)據(jù)放在顯示緩沖區(qū)中,最后的運(yùn)算值也有一個(gè)子程序翻譯成將要輸往 74HC595 的數(shù)據(jù)放在顯示緩沖區(qū)中。在程序開(kāi)始時(shí),初始化程序設(shè)定了 T1 中斷開(kāi)始執(zhí)行,每 0.5 毫秒中斷程序執(zhí)基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器13行一次,中斷程序的內(nèi)容就是把顯示緩沖區(qū)的內(nèi)容送
35、到第一個(gè) 74HC595 的 SER端子,同時(shí)發(fā)送脈沖到每一個(gè) 74HC595 的 SCK 端子,用上面提到的串入并出的方法 把內(nèi)容顯示出來(lái)。 系統(tǒng)流程圖 4-24.3.2 存儲(chǔ)單元分配存儲(chǔ)單元分配 數(shù)碼管采用動(dòng)態(tài)顯示方式,P2 口的 0,1,2.3 端口接 4 個(gè)三級(jí)管按從高到低的順河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文14序分別讓數(shù)碼管單元的 4 位分別導(dǎo)通,比如第一次三個(gè)數(shù)碼管模塊的第 4 位導(dǎo)通,第二次關(guān)第 4 位讓第 3 位導(dǎo)通,第三次關(guān)第 3 位,讓第 2 位導(dǎo)通,最后一次關(guān)第2 位讓第 1 位導(dǎo)通,然后循環(huán)往復(fù),掃描周期 1 毫秒。那么每次就有三個(gè)字亮,比如三個(gè)數(shù)碼管模塊的第四位亮,這三個(gè)
36、數(shù)碼管各有內(nèi)容顯示,怎么決定這個(gè)顯示值呢,是這樣:每個(gè)數(shù)碼管的內(nèi)容由一個(gè)字節(jié)決定,三個(gè)數(shù)碼管由三個(gè)字節(jié)決定,數(shù)碼管單元是接在 74HC595 移位寄存器上的,三個(gè)數(shù)碼管單元接三個(gè) 74HC595,第一個(gè) 74HC595 的 SER 端子接 P0 第一個(gè)端口,然后第一個(gè) 74HC595 的 H端子接第 2 個(gè) 74HC595 的 SER 端子,第 2 個(gè)74HC595 的 H端子接第 3 個(gè) 74HC595 的 SER 端子,每個(gè) 74HC595 的脈沖端口SCK 都接在 P0 的第 2 個(gè)端口,這個(gè)端口不停的發(fā)出移位脈沖,第一批 8 個(gè)脈沖會(huì)把第一個(gè) 74HC595 的 SER 的數(shù)據(jù)移動(dòng)到第
37、一個(gè) 74HC595 的緩沖區(qū),第 2 批 8個(gè)脈沖把第二批新數(shù)據(jù)移動(dòng)到第一個(gè) 74HC595 的緩沖區(qū),同時(shí)把第一個(gè)74HC595 的緩沖區(qū)數(shù)據(jù)移動(dòng)到第二個(gè) 74HC595 的緩沖區(qū),第三批 8 個(gè)脈沖把SER 新數(shù)據(jù)移動(dòng)到第一個(gè) 74HC595 的緩沖區(qū),同時(shí)把第一個(gè) 74HC595 緩沖區(qū)的數(shù)據(jù)移動(dòng)到第二個(gè) 74HC595 的緩沖區(qū),而第二個(gè) 74HC595 緩沖區(qū)的數(shù)據(jù)被移動(dòng)到了第三個(gè) 74HC595 緩沖區(qū)。這樣不停循環(huán),需要顯示的數(shù)據(jù)由單片機(jī)送往第一個(gè) 74HC595 的 SER 端子,每 24 個(gè)脈沖后這個(gè)要顯示的數(shù)據(jù)出現(xiàn)在 74HC595 的緩沖區(qū),然后 24 個(gè)數(shù)據(jù)從三個(gè) 7
38、4HC595 同時(shí)輸出到數(shù)碼管,這樣串行輸入并行輸出來(lái)完成數(shù)字顯示。4.4 計(jì)算器子程序設(shè)計(jì)計(jì)算器子程序設(shè)計(jì)4.4.1 輸入程序設(shè)計(jì)輸入程序設(shè)計(jì)該模塊利用 17 的小按鍵,提供 0-9, +、-、*、/、 =、小數(shù)點(diǎn)、清零鍵。再利用數(shù)碼管,對(duì)于即時(shí)按下的鍵和結(jié)果進(jìn)行顯示。向列掃描碼逐列輸出低電平,然后從行碼地址讀回。如果有鍵按下,則相應(yīng)的行值應(yīng)為低,如果無(wú)鍵按下,由于上拉電阻的作用,行碼為高。這樣可以通過(guò)輸出的列碼和讀取的行碼判斷按下的是什么鍵,在判斷有鍵按下后,要有一定的延時(shí),防止鍵盤(pán)抖動(dòng)矩陣按鍵掃描程序是一種節(jié)省 IO 口的方法,按鍵數(shù)目越多節(jié)省 IO 口就越可觀,思路:先判斷某一列(行)
39、是否有按鍵按下,再判斷該行(列)是那一只鍵按下。但是,在程序的寫(xiě)法上,采用了最簡(jiǎn)單的方法,使得程序效率最高。本程序中,如果檢測(cè)到某鍵按下了,就不再檢測(cè)其它的按鍵,這完全能滿足絕大多數(shù)需要,又能節(jié)省大量的 CPU 時(shí)間。本鍵盤(pán)掃描程序的優(yōu)點(diǎn)在于:不用專(zhuān)門(mén)的按鍵延時(shí)程序,提高了 CPU 效率,基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器15也不用中斷來(lái)掃描鍵盤(pán),節(jié)省了硬件資源。另外,本鍵盤(pán)掃描程序,每次掃描占用 CPU 時(shí)最短,不論有鍵按下或者無(wú)鍵按下都可以在很短的時(shí)間完成一次掃描。本鍵盤(pán)掃描子程序名叫 key,每次要掃描時(shí)用 lcall key 調(diào)用即可。流程圖如圖 4-3 所示.鍵盤(pán)識(shí)別程序流程圖 4-3
40、4.4.2 運(yùn)算程序設(shè)計(jì)運(yùn)算程序設(shè)計(jì)AT89c 單片機(jī)是一塊芯片中集成了 CPU、RAM、ROM、定時(shí)器、計(jì)數(shù)器、和多功能 I/O 等一臺(tái)計(jì)算器所需要的基本功能部分。如果按功能劃分,它由如下功能部分組成,即微處理器(CPU) 、數(shù)據(jù)處理器(RAM) 、程序處理器(ROM/CPROM) 、并行 I/O 口、串行口、定時(shí)器、計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR) 。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊一些功能,通過(guò)使用單片機(jī)編寫(xiě)的程序可以凸顯高智能、河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文16高效率以及高可靠性!因此我們采用單片機(jī)作為計(jì)算器的主要功能部件,可以很快實(shí)
41、現(xiàn)運(yùn)算功能。計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用到很多的 I/O 資源,因此在很多情況下都不采用這種方式(如圖 4-4) 。但因?yàn)閷?shí)體資源有限不得已而為之,但不會(huì)影響其功能。運(yùn)算程序圖 4-44.4.3 顯示程序設(shè)計(jì)顯示程序設(shè)計(jì)利用數(shù)碼管動(dòng)態(tài)顯示的方法,設(shè)置顯示循環(huán)次數(shù),讓 3 個(gè)四位數(shù)碼管從左到右依次顯示,之間要調(diào)用延時(shí)子程序,但延時(shí)時(shí)間小于人的視覺(jué)暫留。顯示程序流程圖如下頁(yè)圖 4-5 如示 .1. 數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序 由于數(shù)值單元存放的是二進(jìn)制數(shù),而用戶(hù)熟悉的是十進(jìn)制數(shù),所以應(yīng)將數(shù)值單元中的
42、二進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù),即 BCD 碼。要通過(guò)數(shù)碼管顯示出當(dāng)前數(shù)值,還必須將 BCD 碼進(jìn)一步轉(zhuǎn)換為七段碼,轉(zhuǎn)換的最終結(jié)果數(shù)據(jù)存放于顯示緩沖區(qū)30H-33H 單元中,其中 30H 單元存放數(shù)值的個(gè)位七段碼,31H 單元存放數(shù)值的十位七基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器17段碼,32H 單元存放數(shù)值的百位七段碼,33H 單元存放數(shù)值的千位七段碼。2. 數(shù)碼管動(dòng)態(tài)顯示子程序數(shù)碼管動(dòng)態(tài)顯示子程序本任務(wù)由 P1 口輸出字形碼,P0 口輸出字位碼。先將存放于 30H 單元的數(shù)值個(gè)位七段碼由 P1 口輸出,同時(shí) P0 口輸出使數(shù)值個(gè)位顯示數(shù)碼管點(diǎn)亮的字位碼。由于采用的是共陽(yáng)數(shù)碼管,所以只有該位數(shù)碼管對(duì)應(yīng)的 P0
43、.0 為 1,其他位 P0.1-P0.3 位 0,點(diǎn)亮延時(shí) 10MS。顯示程序流程圖 4-5河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文18基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器19第第 5 5 章章 結(jié)論與展望結(jié)論與展望5.1 結(jié)語(yǔ)結(jié)語(yǔ)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握單片機(jī)的開(kāi)發(fā)技術(shù)是十分重要的。回顧起此次單片機(jī)課程設(shè)計(jì),我仍感慨頗多,的確,從選題到定稿,從理論到實(shí)踐,可以說(shuō)得是苦
44、多于甜,但是可以學(xué)到很多很多的的東西。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。通過(guò)這次課程設(shè)計(jì)使我得到了一次用專(zhuān)業(yè)知識(shí)、專(zhuān)業(yè)技能分析和解決問(wèn)題全面系統(tǒng)的鍛煉。使我們?cè)趩纹瑱C(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程,以及在常用編程設(shè)計(jì)思路技巧(特別是匯編語(yǔ)言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。5.2 不足與展望不足與展望 通過(guò)此次畢業(yè)設(shè)計(jì)我想學(xué)到了很多在課堂中無(wú)法學(xué)到的應(yīng)用類(lèi)知識(shí),使我深刻的認(rèn)識(shí)到自己知識(shí)范
45、圍的狹窄和匱乏也真正讓我認(rèn)識(shí)到實(shí)際操作的重要性。本次畢業(yè)設(shè)計(jì)在完成過(guò)程中我請(qǐng)教了輔導(dǎo)老師和很多在單片機(jī)方面優(yōu)秀的同學(xué),我領(lǐng)會(huì)了我們之間存在的差距以及我在單片機(jī)方面的欠缺。同時(shí),在翻閱輔導(dǎo)資料的過(guò)程中我驚嘆于作者思維的嚴(yán)密性和知識(shí)的廣泛性,令我在感慨過(guò)程中也讓我堅(jiān)定了學(xué)好這門(mén)學(xué)科的決心,校正了正確的方向。在以后的工作學(xué)習(xí)中定要向前輩和同事多學(xué)習(xí)、多發(fā)問(wèn),我相信經(jīng)過(guò)長(zhǎng)期的努力和學(xué)習(xí)我也定能成為電氣方面的佼佼者。河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文20參考文獻(xiàn)參考文獻(xiàn)1 徐愛(ài)鈞 智能化測(cè)量控制儀表原理與設(shè)計(jì)(第二版) 北京航天航空大學(xué)出版社,2004.9 2 孫育才等MCS-51 系列單片微型計(jì)算機(jī)及其應(yīng)用
46、(第 4 版) 東南大學(xué)出版社,2004,33 李萍 等智能儀器實(shí)驗(yàn)指導(dǎo)書(shū)大連交通大學(xué),2007.9基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器21 附錄附錄程序源代碼程序源代碼#include #include #include #include float ptwei=10.0;/小數(shù)位計(jì)算:1/10,1/100,1/1000uint8 pt=0;/有沒(méi)有輸入小數(shù)int8 fh1=1;/第一個(gè)數(shù)的符號(hào)int8 fh2=1;/第二個(gè)數(shù)的符號(hào)float f1=0,f2=0,y1=0;uint8 yunsuan=0,yunsuan1=0;/運(yùn)算:0-null,1-+,2-,3-*,4-/uint8 key=N
47、;/按鍵輸入,N表示沒(méi)有輸入,其他可能是+-*/0-9.=uint8 i=0,j=0,k=0;uint8 zongweishu=0;/輸入的數(shù)字的位數(shù)uint8 step=1;uint8 tmpSmg13=12,12,11,10,12,12,12,12,12,12,12,12;/這是顯示緩沖,要顯示的內(nèi)容,0-9表示0-9,10表示小數(shù)點(diǎn)/11表示負(fù)號(hào),12表示不要顯示,k是index,13-Euint8 daozhuan13=12,12,12,12,12,12,12,12,12,12,12,12;/uint8 tmpSmg13=0,1,2,3,4,5,6,7,8,9,10,11,12;uin
48、t8 Smg43;/顯示區(qū),顯示內(nèi)容編碼在此,直接送往74hc595.i,j是indexuint8 error=0;/0,1,2,3,4,5,6,7,8,9,buyao xiaoshudian=10,-=11,no display=12,E=13code uint8 shumazi14=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0,0 xBF,0 xFF,0 x86;/共陽(yáng)極數(shù)碼管/在這個(gè)計(jì)算器,有以下數(shù)碼管12個(gè),四個(gè)一組,共三組,我用四個(gè)三極管控制每個(gè)數(shù)碼管的1234位/每個(gè)數(shù)字的內(nèi)碼是一個(gè)字節(jié),每個(gè)位對(duì)應(yīng)一個(gè)發(fā)
49、光二極管,7-0位分別是h-a,移位時(shí)從高位開(kāi)始移動(dòng),就是從h開(kāi)始河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文22/一個(gè)脈沖移動(dòng)移位,8個(gè)脈沖把h-a移動(dòng)到595的底層8個(gè)D觸發(fā)器,然后等待一個(gè)中斷等電壓穩(wěn)定,再打開(kāi)595/上層D觸發(fā)器,數(shù)據(jù)并行輸出/*/void intT0(void) interrupt 1static unsigned int t1=0;static unsigned char hang=0,lie=0,tmp=0;static unsigned char maichongshu=0;static unsigned char xianshiwei=0;/static unsigned c
50、har waitabit=10;ET1=0;t1+;if(t1=1)/0.5mst1=0;if(SCK & (maichongshu=0 & lie=0) | (maichongshu=8 & lie=1)| (maichongshu=16 & lie=2)tmp=Smghanglie;lie+;if(maichongshu=23)SCK=SCK;/脈沖在所有數(shù)字移到595芯片第一排D觸發(fā)器輸出腳時(shí),要停止一下,以便/正確輸出到第二排D觸發(fā)器,就是說(shuō)maichongshu大于7時(shí)基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器23暫停一下if(!SCK & maichon
51、gshu2 & maichongshu=25)maichongshu=0;lie=0;hang+;if(xianshiwei=0)P2_0=1;P2_1=1;P2_2=1;P2_3=0;if(xianshiwei=1)P2_0=1;P2_1=1;P2_2=0;P2_3=1;if(xianshiwei=2)P2_0=1;P2_1=0;P2_2=1;P2_3=1;if(xianshiwei=3)P2_0=0;P2_1=1;P2_2=1;P2_3=1;河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文24xianshiwei+;if(xianshiwei=4)xianshiwei=0;if(hang=4)hang
52、=0;RCK=1;ET1=1;main()uint8 displayt=0,displayp=0,displayq=0,displaypot=0,daozhuanI=0;/最后面要顯示的字符內(nèi)碼送緩沖區(qū)用InitShuma();while(1)if(error=0)key=funckey();switch(step)case 1:if(key=-)fh1=-1;zongweishu+;if(zongweishu=13)cuowuxianshi();error=1;tmpSmgk=11;k+;step=2;if(key=+)fh1=1;if(key=1 | key=2 | key=3 | key
53、=4 | key=5 | key=6 | key=7 | key=8 | key=9)f1=key-48;基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器25zongweishu+;tmpSmgk=key-48;k+;if(zongweishu=13 | k12)cuowuxianshi();error=1;step=2;if(key=.)pt=1;tmpSmg0=10;tmpSmg1=0;k=2;step=2;break;case 2:if(pt=0)if(key=1 | key=2 | key=3 | key=4 | key=5 | key=6 | key=7 | key=8 | key=9 | key=0
54、)f1=f1*10+key-48;zongweishu+;k+; if(key=.) pt=1;k+;if(zongweishu=13 | k12)cuowuxianshi();error=1;break;if(key=48 & key=48 & key=57)tmpSmg0=key-48;if(key=.)tmpSmg0=10;elseif(ptwei=48 & key=13 | k12)cuowuxianshi();error=1;break;shuziqianyi(k);tmpSmg0=key-48;if(key=+ | key=- | key=* | key=/
55、)pt=0;k=0;zongweishu=0;ptwei=10.0;if(key=+)yunsuan=1;if(key=-)yunsuan=2;if(key=*)yunsuan=3;if(key=/)yunsuan=4;f1=fh1*f1;step=4;break;case 3:if(key=1 | key=2 | key=3 | key=4 | key=5 | key=6 | key=7 | key=8 | key=9)tmpSmg0=tmpSmg1=tmpSmg2=tmpSmg3=tmpSmg4=tmpSmg5=tmpSmg6=tmpSmg7=tmpSmg8=tmpSmg9=tmpSmg1
56、0=tmpSmg11=tmpSmg12=12;f1=key-48;zongweishu+;基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器27tmpSmgk=key-48;k+;if(zongweishu=13 | k12)cuowuxianshi();error=1;break;step=2;if(key=.)pt=1;tmpSmg0=10;tmpSmg1=0;k=2;step=2;if(key=+ | key=- | key=* | key=/)pt=0;k=0;zongweishu=0;ptwei=10.0;if(key=+)yunsuan=1;if(key=-)yunsuan=2;if(key=*)yu
57、nsuan=3;if(key=/)yunsuan=4;step=4;break;case 4:if(key=1 | key=2 | key=3 | key=4 | key=5 | key=6 | key=7 | key=8 | key=9)tmpSmg0=tmpSmg1=tmpSmg2=tmpSmg3=tmpSmg4=tmpSmg5=tmpSmg6=tmpSmg7=tmpSmg8=tmpSmg9=tmpSmg10=tmpSmg11=tmpSmg12=12;f2=key-48;zongweishu+;tmpSmgk=key-48;k+;if(zongweishu=13 | k12)cuowuxi
58、anshi();error=1;step=6;if(key=.)tmpSmg0=tmpSmg1=tmpSmg2=tmpSmg3=tmpSmg4=tmpSmg5=tmpSm河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)論文28g6=tmpSmg7=tmpSmg8=tmpSmg9=tmpSmg10=tmpSmg11=tmpSmg12=12;pt=1;tmpSmg0=10;tmpSmg1=0;k=2;step=6;if(key=+ | key=- | key=* | key=/)pt=0;k=0;zongweishu=0;ptwei=10.0;if(key=+)yunsuan1=1;if(key=-)yunsuan1=2
59、;if(key=*)yunsuan1=3;if(key=/)yunsuan1=4;step=5;break;case 5:if(key=+ | key=- | key=* | key=/)yunsuan=yunsuan1;if(key=+)yunsuan1=1;if(key=-)yunsuan1=2;if(key=*)yunsuan1=3;if(key=/)yunsuan1=4;if(key=1 | key=2 | key=3 | key=4 | key=5 | key=6 | key=7 | key=8 | key=9)tmpSmg0=tmpSmg1=tmpSmg2=tmpSmg3=tmpS
60、mg4=tmpSmg5=tmpSmg6=tmpSmg7=tmpSmg8=tmpSmg9=tmpSmg10=tmpSmg11=tmpSmg12=12;f2=key-48;zongweishu+;tmpSmgk=key-48;k+;if(zongweishu=13 | k12)cuowuxianshi();error=1;step=6;基于 51 單片機(jī)的簡(jiǎn)易計(jì)算器29if(key=.)tmpSmg0=tmpSmg1=tmpSmg2=tmpSmg3=tmpSmg4=tmpSmg5=tmpSmg6=tmpSmg7=tmpSmg8=tmpSmg9=tmpSmg10=tmpSmg11=tmpSmg12=12;pt=1;tmpSmg0=10;tmpSmg1=0;k=2;step=6;break;case 6:if(pt=0)if(key=1 | key=2 | key=3 | key=4 | key=5 | key=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 腫瘤患者飲食營(yíng)養(yǎng)科學(xué)指南
- 幼兒心理健康發(fā)展指導(dǎo)
- 華文老師面試題及答案
- 卓越青年領(lǐng)袖培訓(xùn)班
- 2025年高精度數(shù)字測(cè)溫儀表項(xiàng)目申請(qǐng)報(bào)告模板
- 同望java面試題及答案
- 嬰兒認(rèn)生測(cè)試題及答案
- 軟件測(cè)java面試題及答案
- 綠色消費(fèi)理念傳播與消費(fèi)者行為引導(dǎo)在綠色紡織行業(yè)的應(yīng)用報(bào)告
- 科技創(chuàng)新創(chuàng)業(yè)大賽獎(jiǎng)金申請(qǐng)項(xiàng)目評(píng)估與優(yōu)化報(bào)告
- 小學(xué)生匯報(bào)講課件
- 2025浙江嘉興市海寧市嘉睿人力招聘5人筆試參考題庫(kù)附帶答案詳解析版
- 2025年安徽蚌埠市龍子湖區(qū)東方人力資源有限公司招聘筆試參考題庫(kù)含答案解析
- 黨課課件含講稿:《關(guān)于加強(qiáng)黨的作風(fēng)建設(shè)論述摘編》輔導(dǎo)報(bào)告
- GB/T 19023-2025質(zhì)量管理體系成文信息指南
- 2025中考?xì)v史高頻點(diǎn)速記大全
- 2025年特種設(shè)備作業(yè)人員氣瓶充裝P證考試題庫(kù)
- 《智能駕駛輔助系統(tǒng)ADAS》課件
- 2024年自然資源部所屬單位招聘筆試真題
- 多余物管理制度
- 2024北京朝陽(yáng)區(qū)三年級(jí)(下)期末語(yǔ)文試題及答案
評(píng)論
0/150
提交評(píng)論