




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢業(yè)論文基于單片機(jī)控制的簡(jiǎn)單計(jì)算器設(shè)計(jì)與仿真designandsimulationofasimplecalculatorbasedonsinglechipmicrocomputercontrol摘 要隨著社會(huì)的不斷發(fā)展,科技的不斷創(chuàng)新。計(jì)算器已在數(shù)十年間遍布千家萬(wàn)戶,對(duì)于計(jì)算器的百年歷史,1946年2月15日,在美國(guó)賓夕法尼亞大學(xué),世界上第一臺(tái)電子計(jì)算器eniac正式投入了運(yùn)行。在隆重的揭幕儀式上,eniac表演了它的“絕招”:在1秒鐘內(nèi)進(jìn)行5000次加法運(yùn)算;在1秒鐘內(nèi)進(jìn)行500次乘法運(yùn)算。這比當(dāng)時(shí)最快的電器計(jì)算器的運(yùn)算速度要抉1000多倍。全場(chǎng)起立歡呼,歡呼科學(xué)技術(shù)進(jìn)入了一個(gè)新的歷史發(fā)展時(shí)
2、期。 數(shù)學(xué)家把聰明給了電子計(jì)算器,電子計(jì)算器將使數(shù)學(xué)家變得更加明。而且電子計(jì)算器不僅是一種工具,它與其它的工具都不相同:電子計(jì)算器是人腦的一個(gè)側(cè)面的延伸。因?yàn)殡娮佑?jì)算器不僅具有非凡的計(jì)算能力,速度之快令人望塵莫及,而且還能夠仿真人的某些思維功能,按照一定的規(guī)則進(jìn)行邏輯判和邏輯推理,代替人的部分腦力勞動(dòng)。1976年,數(shù)學(xué)家憑借電子計(jì)算器去證明四色定理,“依靠機(jī)器完成了人沒(méi)有能夠完成的事情”,轟動(dòng)了整個(gè)國(guó)際數(shù)學(xué)界。計(jì)算器的未來(lái)是小型化和輕便化,現(xiàn)在市面上出現(xiàn)的使用太陽(yáng)能電池的計(jì)算器,使用asic設(shè)計(jì)的計(jì)算器,如使用純軟件實(shí)現(xiàn)的計(jì)算器等,未來(lái)的智能化計(jì)算器將是我們的發(fā)展方向,更希望成為應(yīng)用廣泛的計(jì)算
3、工具。國(guó)內(nèi)外研究現(xiàn)狀、發(fā)展動(dòng)態(tài) (1)研究現(xiàn)狀與發(fā)展動(dòng)態(tài)單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了scm、mcu、soc三大階段。單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向mcu階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了soc化趨勢(shì)。隨著微電子技術(shù)、ic設(shè)計(jì)、eda工具的發(fā)展,基于soc的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)有較大的發(fā)展。因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。 目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域 沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控
4、制和數(shù)據(jù)處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī),以及程控玩具等等,這些都離不開單片機(jī)。 單片機(jī)的技術(shù)進(jìn)步反映在內(nèi)部結(jié)構(gòu)、功率消耗、外部電壓等級(jí)以及制造工藝上。在這幾方面,較為典型地說(shuō)明了數(shù)字單片機(jī)的水平。在目前,用戶對(duì)單片機(jī)的需要越來(lái)越多,但是,要求也越來(lái)越高。在單片機(jī)應(yīng)用中,可靠性是首要因素為了擴(kuò)大單片機(jī)的應(yīng)用范圍和領(lǐng)域,提高單片機(jī)自身的可靠性是一種有效方法。近年來(lái),單片機(jī)的生產(chǎn)廠家在單片機(jī)設(shè)計(jì)上采用了各種提高可靠性的新技術(shù):eft(ellectrical fast transient)技術(shù),低噪聲布線技術(shù)及驅(qū)動(dòng)技術(shù),采用低頻時(shí)鐘。同時(shí)單片機(jī)在目前的發(fā)展形
5、勢(shì)下還表現(xiàn)出可靠性及應(yīng)用越來(lái)越水平高和互聯(lián)網(wǎng)連接,所集成的部件越來(lái)越多,功耗越來(lái)越低和模擬電路結(jié)合越來(lái)越多等發(fā)展趨勢(shì)。本設(shè)計(jì)采用80s52 芯片,實(shí)現(xiàn)了利用單片機(jī)進(jìn)行了一個(gè)簡(jiǎn)單計(jì)算器設(shè)計(jì)。允許對(duì)輸入數(shù)據(jù)進(jìn)行加減乘除運(yùn)算及l(fā)ed 顯示。如果設(shè)計(jì)對(duì)象是更為復(fù)雜的計(jì)算器系統(tǒng),其實(shí)際原理與方法與本設(shè)計(jì)基本相同。另外,實(shí)例所設(shè)計(jì)的計(jì)算器是用led 數(shù)碼管顯示的,當(dāng)然也可以用其他的器件顯示,如led 顯示屏,這樣就可以顯示出更多的字符,在此基礎(chǔ)上,還可以編寫更加完善的程序來(lái)實(shí)現(xiàn)更多的計(jì)算功能。設(shè)計(jì)的關(guān)鍵所在,必須非常熟悉單片機(jī)的原理與結(jié)構(gòu),同時(shí)還要對(duì)整個(gè)設(shè)計(jì)流程有很好的把握,將單片機(jī)和其他模塊完整的銜接。
6、- iii -abstract內(nèi)容應(yīng)與“中文摘要”對(duì)應(yīng)。使用第三人稱,最好采用現(xiàn)在時(shí)態(tài)編寫。書寫格式說(shuō)明:標(biāo)題“abstract”可設(shè)置成字體:times new roman,居中。字號(hào):小二,1.5倍行距。段后11磅,段前為0。abstract正文選用設(shè)置成每段落首行縮進(jìn)2字,字體:times new roman,字號(hào):小四,行距:多倍行距 1.3,間距:前段、后段均為0行。key words與abstract之間空一行。key words與中文“關(guān)鍵詞”一致。詞間用分號(hào)間隔,末尾不加標(biāo)點(diǎn),3-5個(gè),times new roman,小四,加粗。示例:decision support and
7、data warehouse systems is intended as a textbook for a one-semester course in decision support systems, with data warehousing playing the same starring role in the course as it does in todays decision support picture. with the addition of enrichment material in data warehousing, much of which can be
8、 found on the web, it also fits a quarter systems: the dss portion of the book fits one quarter, and the data warehousing portion can expanded to fill another.decision support and data warehouse systems is intended as a textbook for a one-semester course in decision support systems, with data wareho
9、using playing the same starring role in the course as it does in todays decision support picture. with the addition of enrichment material in data warehousing, much of which can be found on the web, it also fits a quarter systems: the dss portion of the book fits one quarter, and the data warehousin
10、g portion can expanded to fill another.key words:content;request;format- 31 -目 錄摘 要iabstractiii第1章 緒 論1第2章 設(shè)計(jì)方案22.1設(shè)計(jì)方案22.2模塊設(shè)計(jì)2第3章 at89c52單片機(jī)的簡(jiǎn)單介紹53.1 at89c52單片機(jī)的簡(jiǎn)單介紹53.2 mm94c22芯片介紹73.3 led介紹93.4鍵盤模塊介紹10第4章 總體電路圖介紹114.1 總體電路圖114.2各模塊的簡(jiǎn)單介紹11第5章 軟件介紹145.1 c51語(yǔ)言介紹145.2 keil開發(fā)環(huán)境145.3 protues軟件的簡(jiǎn)介155.4
11、 各模塊程序編程16結(jié) 論27參考文獻(xiàn)28附錄a29致 謝31第1章 緒 論單片機(jī)誕生于1971年,經(jīng)歷了scm、mcu、soc三大階段,早期的scm單片機(jī)都是8位或4位的。其中最成功的是intel的8051,此后在8051上發(fā)展出了mcs51系列mcu系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著intel i960系列特別是后來(lái)的arm系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場(chǎng)。而傳統(tǒng)的8位單片機(jī)
12、的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。高端的32位soc單片機(jī)主頻已經(jīng)超過(guò)300mhz,性能直追90年代中期的專用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的windows和linux操作系統(tǒng)。單片機(jī)作為計(jì)算機(jī)發(fā)展的一個(gè)重要分支領(lǐng)域,根據(jù)發(fā)展情況,從不同角度,單片機(jī)大致可以分為通用型/專用型、總線型/非總線型及工控型/家電型。通用型與專用型這是按單片機(jī)適用范圍來(lái)區(qū)分的。例如,80c51
13、是通用型單片機(jī),它不是為某種專門用途設(shè)計(jì)的;專用型單片機(jī)是針對(duì)一類產(chǎn)品甚至某一個(gè)產(chǎn)品設(shè)計(jì)生產(chǎn)的,例如為了滿足電子體溫計(jì)的要求,在片內(nèi)集成adc接口等功能的溫度測(cè)量控制電路線型這是按單片機(jī)是否提供并行總線來(lái)區(qū)分的??偩€型單片機(jī)普遍設(shè)置有并行地址總線、 數(shù)據(jù)總線、控制總線,這些引腳用以擴(kuò)展并行外圍器件都可通過(guò)串行口與單片機(jī)連接,另外,許多單片機(jī)已把所需要的外圍器件及外設(shè)接口集成一片內(nèi),因此在許多情況下可以不要并行擴(kuò)展總線,大大減省封裝成本和芯片體積,這類單片機(jī)稱為非總線型單片機(jī)。現(xiàn)代人類生活中所用的幾乎每件有電子器件的產(chǎn)品中都會(huì)集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)
14、等電子產(chǎn)品中都含有單片機(jī)。 汽車上一般配備40多片單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百片單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量遠(yuǎn)遠(yuǎn)超過(guò)pc機(jī)和其他計(jì)算機(jī)的總和。本設(shè)計(jì)采用80s52 芯片,實(shí)現(xiàn)了利用單片機(jī)進(jìn)行了一個(gè)簡(jiǎn)單計(jì)算器設(shè)計(jì)。允許對(duì)輸入數(shù)據(jù)進(jìn)行加減乘除運(yùn)算及l(fā)ed 顯示。第2章 設(shè)計(jì)方案2.1設(shè)計(jì)方案本系統(tǒng)選用at89c51單片機(jī)為主控機(jī)。通過(guò)擴(kuò)展必要的外圍接口電路,實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì),具體設(shè)計(jì)如下:(1)由于設(shè)計(jì)的計(jì)算器要進(jìn)行四則運(yùn)算,為了得到較好的顯示效果,經(jīng)綜合分析后,最后采用lcd 顯示數(shù)據(jù)和結(jié)果。(2)采用鍵盤輸入方式,鍵盤包括數(shù)字鍵(09)、符號(hào)鍵(+、-、)、清除鍵(onc)和
15、等號(hào)鍵(=),故只需要16 個(gè)按鍵即可,設(shè)計(jì)中采用集成的計(jì)算鍵盤。(3)在執(zhí)行過(guò)程中,開機(jī)顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過(guò)lcd顯示出來(lái),當(dāng)鍵入+、-、*、/運(yùn)算符,計(jì)算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲(chǔ),并等待再次鍵入數(shù)值,當(dāng)再鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號(hào)就會(huì)在lcd上輸出運(yùn)算結(jié)果。(4)錯(cuò)誤提示:當(dāng)計(jì)算器執(zhí)行過(guò)程中有錯(cuò)誤時(shí),會(huì)在lcd上顯示相應(yīng)的提示,如:當(dāng)輸入的數(shù)值或計(jì)算得到的結(jié)果大于計(jì)算器的表示范圍時(shí),計(jì)算器會(huì)在lcd上提示overflow;當(dāng)除數(shù)為0時(shí),計(jì)算器會(huì)在lcd上提示error。為了滿足計(jì)算器的基本要求,可以基本的運(yùn)算(加減乘除),數(shù)據(jù)歸零和出錯(cuò)警告提示,我們采用基于單片
16、機(jī)設(shè)計(jì)計(jì)算器,并用led 數(shù)碼管顯示數(shù)據(jù),4*4 的矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)輸入。設(shè)計(jì)仿真和調(diào)試要用到protues 、keil等軟件。 2.2模塊設(shè)計(jì)一、系統(tǒng)模塊圖2-1 系統(tǒng)模塊圖二、算數(shù)運(yùn)算流程圖2-2 算數(shù)運(yùn)算流程圖三、系統(tǒng)總流程圖2-3系統(tǒng)總流程圖第3章 at89c52單片機(jī)的簡(jiǎn)單介紹3.1 at89c52單片機(jī)的簡(jiǎn)單介紹at89c52 是美國(guó) atmel 公司生產(chǎn)的低電壓,高性能 cmos 8 位單片機(jī),片內(nèi)含 8k bytes 的可反復(fù)擦寫的只讀程序存 儲(chǔ)器(perom)和 256 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用 atmel 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn), 與
17、標(biāo)準(zhǔn) mcs-51 指令系統(tǒng)及 8052 產(chǎn)品引腳兼容,片內(nèi)置通用 8 位中央處理器(cpu)和 flash 存儲(chǔ)單元,功能強(qiáng)大 at89c52 單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。3-1 at89c52實(shí)物圖3-2 at89c52實(shí)物引腳圖主要性能參數(shù): 與 mcs-51 產(chǎn)品指令和引腳完全兼容 8k 字節(jié)可重擦寫 flash 閃速存儲(chǔ)器1000 次擦寫周期全靜態(tài)操作:0hz24mhz三級(jí)加密程序存儲(chǔ)器2568 字節(jié)內(nèi)部 ram32 個(gè)可編程 io 口線3 個(gè) 16 位定時(shí)計(jì)數(shù)器8 個(gè)中斷源可編程串行 uart 通道 低功耗空閑和掉電模式 功能特性概述: at89c52 提供以下標(biāo)準(zhǔn)功能:
18、8k 字節(jié) flash 閃速存儲(chǔ)器,256 字節(jié)內(nèi)部 ram,32 個(gè) io 口線,3 個(gè) 16 位定時(shí)計(jì)數(shù)器,一個(gè) 6 向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),at89c52 可降至 0hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 cpu 的工作,但允許 ram,定時(shí)計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 ram 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。 at89c51單片機(jī)引腳介紹:vcc: 供電電壓。 gnd:接地。 p0口:p0口為一個(gè)8位漏級(jí)開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p0口
19、的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部
20、上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為
21、at89c51的一些特殊功能口:p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時(shí)器0外部輸入) p3.5 t1(記時(shí)器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通) p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ale/prog:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端
22、以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無(wú)效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffff
23、h),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來(lái)自反向振蕩器的輸出。3.2 mm94c22芯片介紹mm94c22是一個(gè)16位的譯碼器,44的鍵盤,在單片機(jī)系統(tǒng)中,是很常見的。一般都是占用一個(gè)單片機(jī)的8位接口。 對(duì)于這種輸入設(shè)備,通常是由單片機(jī)來(lái)識(shí)別某行某列的按鍵是否按下,還需要延時(shí)消抖等等。為了節(jié)省單片機(jī)的io接口,也可以使用外接芯片來(lái)驅(qū)動(dòng)44的鍵盤。mm74c922,就是一塊較好
24、的44的鍵盤編碼芯片。它能夠自己獨(dú)立地進(jìn)行鍵盤檢測(cè)、消抖,以8421碼給出鍵值。它還能給出按鍵是否按下的標(biāo)志,其數(shù)據(jù)線還具有三態(tài)輸出的功能,便于進(jìn)行總線連接3-3 mm94c22硬件圖mm74c922引腳說(shuō)明:(1) y1y4(腳1腳4):4*4鍵盤第一列至第四。(2) x1x4(腳11、10、8、7):4*4鍵盤第一行至第四行。(3) doa dod(dataout ad,腳1417):按鍵之bcd碼輸出,其中doa為lsb,dod為msb。(4) vcc(腳18):電源腳,+3v+15v。ab126計(jì)算公式大全(5) gnd(腳9):接地管腳。新藝圖庫(kù)(6) osc(oscillator,
25、腳5):鍵盤掃描電路之頻率所需外加電容的連引腳。(7) kbm(keyboard mask,腳6):內(nèi)部消除開關(guān)彈跳電路所外加電容的引腳。(8) oe(output enable,腳13):芯片使能腳,接低電位可使芯片使能。(9) da(data available,腳12):數(shù)據(jù)有效輸出腳。任一按鍵按下時(shí),此腳位會(huì)輸出高電位,按鍵釋放后此腳又會(huì)恢復(fù)為低電位。mm74c922對(duì)各按鍵的響應(yīng)如下表所示:3.3 led介紹發(fā)光二極管led 是單片機(jī)應(yīng)用系統(tǒng)中的一宗簡(jiǎn)單而常用的輸出設(shè)備,其在系統(tǒng)中的主要作用是顯示單片機(jī)的輸出數(shù)據(jù)、狀態(tài)等。因而作為典型的外圍器件,led 顯示單元是反映系統(tǒng)輸出和操作輸
26、入的有效器件。led 具備數(shù)字接口可以方便的和大年紀(jì)系統(tǒng)連接;它的優(yōu)點(diǎn)是價(jià)格低,壽命長(zhǎng),對(duì)電壓電流的要求低及容易實(shí)現(xiàn)多路等,因而在單片機(jī)應(yīng)用系統(tǒng)中獲得了廣泛的應(yīng)用,所以在此設(shè)計(jì)中我首先選用了led為基礎(chǔ)的lcd作為顯示器件。3-4 lcd引腳圖下面是lcd的引腳功能介紹:第1腳:vss為地電源第2腳:vdd接5v正電源第3腳:v0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10k的電位器調(diào)整對(duì)比度第4腳:rs為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:r/w為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平
27、時(shí)進(jìn)行寫操作。當(dāng)rs和rw共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)rs為低電平rw為高電平時(shí)可以讀忙信號(hào),當(dāng)rs為高電平rw為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:e端為使能端,當(dāng)e端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:d0d7為8位雙向數(shù)據(jù)線。3.4鍵盤模塊介紹每個(gè)按鍵都有它的行值和列值,行值和列值的組合就是識(shí)別這個(gè)按鍵的編碼。矩陣的行線和列線分別通過(guò)兩并行接口和cpu通信。鍵盤的一端(列線)通過(guò)電阻接vcc,而接地是通過(guò)程序輸出數(shù)字“0”實(shí)現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無(wú)鍵按下,判斷哪一個(gè)鍵按下,鍵的功能是什么?還要消除按鍵在閉合或斷開時(shí)的抖動(dòng)。兩個(gè)并行口中,一個(gè)輸出掃描碼
28、,使按鍵逐行動(dòng)態(tài)接地;另一個(gè)并行口輸入按鍵狀態(tài),由行掃描值和回饋信號(hào)共同形成鍵編碼而識(shí)別按鍵,通過(guò)軟件查表,查出該鍵的功能。計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的i/o 口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條i/o 線作為行線,四條i/o 線作為列線組成鍵盤,在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為44個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中i/o 口的利用率。矩陣鍵盤的工作原理:計(jì)算器的鍵盤布局如圖1所示:一般有16個(gè)鍵組成,在單片機(jī)中正好可以用
29、一個(gè)p口實(shí)現(xiàn)16個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也最常用鍵盤電路:3-5鍵盤電路第4章 總體電路圖介紹4.1 總體電路圖根據(jù)設(shè)計(jì)方案要求以選擇的器件設(shè)計(jì)出下面的電路圖:4-1 單片機(jī)控制的簡(jiǎn)單計(jì)算器4.2各模塊的簡(jiǎn)單介紹一、手動(dòng)上電復(fù)位電路4-2手動(dòng)復(fù)位電路當(dāng)vcc上電時(shí),c充電,在10k電阻上出現(xiàn)電壓,使得單片機(jī)復(fù)位;幾個(gè)毫秒后,c充滿,10k電阻上電流降為0,電壓也為0,使得單片機(jī)進(jìn)入工作狀態(tài)。工作期間,按下s,c放電。s松手,c又充電,在10k電阻上出現(xiàn)電壓,使得單片機(jī)復(fù)位。幾個(gè)毫秒后,單片機(jī)進(jìn)入工作狀態(tài)。二、內(nèi)部時(shí)鐘模式電路:當(dāng)單片機(jī)工作于內(nèi)部時(shí)鐘模式的時(shí)候,只需在xtal1和xta
30、l2引腳連接一個(gè)晶體振蕩器或者陶瓷振蕩器,并接兩個(gè)電容后接地即可,在使用時(shí)對(duì)于電容的選擇有一定的要求:當(dāng)外接晶體振蕩器的時(shí)候,電容值一般選擇c1=c2=30+10pf或30-10pf;當(dāng)外接陶瓷振蕩器的時(shí)候,電容值一般選擇c1=c2=40+10pf或40-10pf;三、鍵盤接口電路在本設(shè)計(jì)中,計(jì)算器輸入鍵盤的4條行線、列線分別連接到mm74c922的x1-x4、y1-y4引腳,mm74c922的數(shù)據(jù)輸出口與單片機(jī)的p2口相連,mm74c922的da引腳經(jīng)過(guò)一個(gè)非門連接到單片機(jī)的/int0腳,當(dāng)mm74c922檢測(cè)到鍵盤輸入時(shí),da產(chǎn)生高電平,與之相連的/int0檢測(cè)到低電平,給單片機(jī)一個(gè)中斷,
31、單片機(jī)從p2口的低四位讀入鍵盤上按下的鍵的值。四、運(yùn)算模塊(單片機(jī)控制):mcs-51 單片機(jī)是在一塊芯片中集成了cpu、ram、rom、定時(shí)器/計(jì)數(shù)器和多功能i/o等一臺(tái)計(jì)算機(jī)所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(cpu)、數(shù)據(jù)存儲(chǔ)器(ram)、程序存儲(chǔ)器(rom/eprom)、并行i/o 口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器(sfr)。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,通過(guò)使用單片機(jī)編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機(jī)作為計(jì)算器的主要功能部件,可以很快
32、地實(shí)現(xiàn)運(yùn)算功能。第5章 軟件介紹5.1 c51語(yǔ)言介紹本次實(shí)習(xí)運(yùn)用c語(yǔ)言編程來(lái)對(duì)單片機(jī)進(jìn)行靜態(tài)顯示的控制、信號(hào)的傳輸轉(zhuǎn)換控制。c語(yǔ)言編程具有以下特點(diǎn):1)c語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。c語(yǔ)言程序比其他許多高級(jí)語(yǔ)言簡(jiǎn)練,源程序短,因此輸入程序時(shí)工作量少.2)運(yùn)算符豐富。共有34種。c把括號(hào)、賦值、逗號(hào)等都作為運(yùn)算符處理。從而使c的運(yùn)算類型極為豐富,可以實(shí)現(xiàn)其他高級(jí)語(yǔ)言難以實(shí)現(xiàn)的運(yùn)算。3)數(shù)據(jù)結(jié)構(gòu)類型豐富,c語(yǔ)言提供的數(shù)據(jù)類型有:整形、浮點(diǎn)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體等。4)具有結(jié)構(gòu)化的控制語(yǔ)句。5)語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。6)c語(yǔ)言允許直接訪問(wèn)物理地址,能進(jìn)
33、行位(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。因此有人把它稱為中級(jí)語(yǔ)言。7)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。8)與匯編語(yǔ)言相比,用c語(yǔ)言寫的程序可移植性好。5.2 keil開發(fā)環(huán)境keil c51是美國(guó)keil software公司出品的51系列兼容單片機(jī)c語(yǔ)言軟件開發(fā)系統(tǒng),與匯編相比,c語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。用過(guò)匯編語(yǔ)言后再使用c來(lái)開發(fā),體會(huì)更加深刻。一、keil c51 的概述keil c51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能
34、體會(huì)到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。下面詳細(xì)介紹keil c51開發(fā)系統(tǒng)各部分功能和使用。二、keil c51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)c51的工具包非常豐富,其中uvision與ishell分別是c51 for windows和for dos的集成開發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)l51連接
35、定位生成絕對(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)試,也可以直接寫入程序存貯器如eprom中。5.3 protues軟件的簡(jiǎn)介protues軟件是英國(guó)labcenter electronics公司出版的eda 工具軟件。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。proteus是世界上著名的eda工
36、具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到pcb設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。迄今為止是世界上唯一將電路仿真軟件、pcb設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即將增加cortex和dsp系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持iar、keil和matlab等多種編譯.功能特點(diǎn):proteus軟件具有其它eda工具軟件(例:multisim)的功能。這些功能是:1原理布圖2pcb自
37、動(dòng)或人工布線3spice電路仿真革命性的特點(diǎn)1互動(dòng)的電路仿真用戶甚至可以實(shí)時(shí)采用諸如ram,rom,鍵盤,馬達(dá),led,lcd,ad/da,部分spi器件,部分iic器件。2仿真處理器及其外圍電路可以仿真51系列、avr、pic、arm、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。器件庫(kù)超過(guò)27000種元器件,可方便地創(chuàng)建新元件;智能的器 件搜索:通過(guò)模糊搜索可以快速定位所需要的器件;智能化的連線功能:自動(dòng)連線功能使連接導(dǎo)線簡(jiǎn)單快捷,大大縮短繪圖時(shí)間;
38、支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計(jì)簡(jiǎn)明清晰;可輸出高質(zhì)量圖紙:通過(guò)個(gè)性化設(shè)置,可以生成印刷質(zhì)量的bmp圖紙,可以方便地供word、powerpoint等多種文檔使用。仿真功能prospice混合仿真:基于工業(yè)標(biāo)準(zhǔn)spice3f5,實(shí)現(xiàn)數(shù)字/模擬電路的混合仿真;超過(guò)27000個(gè)仿真器件:可以通過(guò)內(nèi)部原型或使用廠家的spice文件自行設(shè)計(jì)仿真器件,labcenter也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件; 多樣的激勵(lì)源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號(hào)、單頻fm、數(shù)字時(shí)鐘和碼流,還支持文件形式的信號(hào)輸入; 豐富的虛擬儀器:13種虛擬
39、儀器,面板操作逼真,如示波器、邏輯分析儀、信號(hào)發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計(jì)/計(jì)數(shù)器、邏輯探頭、虛擬終端、spi調(diào)試器、i2c調(diào)試器等; 生動(dòng)的仿真顯示:用色點(diǎn)顯示引腳的數(shù)字電平,導(dǎo)線以不同顏色表示其對(duì)地電壓大小,結(jié)合動(dòng)態(tài)器件(如電機(jī)、顯示器件、按鈕)的使用可以使仿真更加直觀、生動(dòng); 高級(jí)圖形仿真功能(asf):基于圖標(biāo)的分析可以精確分析電路的多項(xiàng)指標(biāo),包括工作點(diǎn)、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進(jìn)行一致性分析。5.4 各模塊程序編程各模塊程序編程:1、主函數(shù)設(shè)計(jì):/*函數(shù)聲明*/#include#include#defin
40、e uchar unsigned char#define uint unsigned intchar translate(int keycode);void arithmetic();void init_lcm();void write_data(char ddata);void write_com(char command);void check_bf();void clearlcd();void display(long a);void dealerror(); void dataoverflow();/*定義變量和數(shù)組*/long x=0,y=0,num=0;int operators,
41、input,iny=0;char key;char error5=error;char overflow8=overflow;sbit en=p34;sbit r_w=p35;sbit rs=p36;/*主函數(shù)*/main()ea=1;ex0=1;it0=1;p2=0xff;display(0);init_lcm();write_data(0x30);while(1)2、分塊程序設(shè)計(jì):(1)鍵盤輸入檢測(cè)程序設(shè)計(jì):有鍵按下時(shí),單片機(jī)響應(yīng)外部中斷0,轉(zhuǎn)入外部中斷0中斷處理函數(shù),在中斷處理函數(shù)中完成對(duì)按鍵的判斷,以進(jìn)行下一步的程序處理。/*鍵值轉(zhuǎn)化為鍵盤上按鍵值函數(shù)*/char translate(
42、int keycode)switch(keycode)case 0:return 7;break;case 1:return 4;break;case 2:return 1;break;case 3:return c;break;case 4:return 8;break;case 5:return 5;break;case 6:return 2;break;case 7:return 0;break;case 8:return 9;break;case 9:return 6;break;case 10:return 3;break;case 11:return =;break;case 12
43、:return /;break;case 13:return *;break;case 14:return -;break;case 15:return +;break; /*外部中斷0處理函數(shù)*/void int_0(void) interrupt 0 using 0key=translate(p2&0x0f);if(key=0) /判斷按下的鍵是否為數(shù)值num=num*10+(key-0);if (operators0)y=num;iny=1;elsex=num;if(num-134217728) /當(dāng)前數(shù)值是否超出限定范圍display(num);elsedataoverflow();e
44、lseswitch(key)case c:x=0;y=0;num=0;iny=0;operators=0;display(num);break;case =:arithmetic();iny=0;operators=0;num=0;break;case +: if (operators)arithmetic();operators=1;num=0;break;case -: if (operators)arithmetic();operators=2;num=0;break;case *: if (operators)arithmetic();operators=3;num=0;break;c
45、ase /:if (operators)arithmetic();operators=4;num=0;break;(2)算術(shù)運(yùn)算程序設(shè)計(jì):/*算術(shù)運(yùn)算函數(shù)*/void arithmetic()if (iny)switch(operators)case 1:x=x+y;num=x;if(num-134217728)display(num);elsedataoverflow();break;case 2:x=x-y;num=x;if(num-134217728)display(num);elsedataoverflow();break;case 3:x=x*y;num=x;if(num-13421
46、7728)display(num);elsedataoverflow();break;case 4:if (y=0)dealerror();elsex=x/y;num=x; if(num-134217728)display(num);elsedataoverflow();break;y=0;(3)lcd顯示程序設(shè)計(jì):利用lcd靜態(tài)顯示,通過(guò)程序向lcd寫指令字或數(shù)據(jù)使lcd完成不同功能或顯示相應(yīng)數(shù)據(jù)。/*lcd初始化函數(shù)*/void init_lcm()write_com(0x30);write_com(0x30);write_com(0x30);write_com(0x38);write_c
47、om(0x08);write_com(0x01);write_com(0x06);write_com(0x0e);/*lcd寫數(shù)據(jù)函數(shù)*/void write_data(char ddata)rs=1;/*寫指令*/r_w=0;en=1;/*使能信號(hào)開*/p1=ddata;/*將數(shù)據(jù)送入p1口*/en=0;/*使能信號(hào)關(guān)*/check_bf();/*lcd寫指令函數(shù)*/void write_com(char command)rs=0;/*寫指令*/r_w=0;en=1;/*使能信號(hào)開*/p1=command;/*將數(shù)據(jù)送入p1口*/en=0;/*使能信號(hào)關(guān)*/check_bf();/*lcd檢
48、查忙碌函數(shù)*/void check_bf()char i,x=0x80;p1=0xff;while(x&0x80)rs=0;r_w=1;en=1;x=p1;en=0;for (i=0;i10;i+);en=0;/*關(guān)閉使能信號(hào)*/*lcd清屏函數(shù)*/void clearlcd()write_com(0x01);/*lcd顯示函數(shù)*/void display(long a)long temp,b,c=-1;int lenth=1,i,j;clearlcd();if(a0;i-)b=1;for(j=0;ji-1;j+)b=b*10;write_data(0x30+a/b);a=a%b;(4)錯(cuò)誤處理及提示程序設(shè)計(jì):/*除數(shù)為處理函數(shù)*/void dealerror()int i=0;clearlcd();for(i=0;i5;i+)write_data(errori);/*數(shù)值溢出處理函數(shù)*/void dataoverflow()int i=0;clearlcd();for(i=0;i8;i+)write_data(overflowi);結(jié) 論本設(shè)計(jì)是基于51系列單片機(jī)來(lái)進(jìn)行的數(shù)字計(jì)算器系統(tǒng)設(shè)計(jì),完成計(jì)算器的鍵盤輸入,進(jìn)行加、減、乘、除基本四則運(yùn)算,并在lcd上顯示相應(yīng)的結(jié)果;設(shè)計(jì)電路采用at89c52單片機(jī)為主要控制電路,利用mm74c922作為計(jì)算器4*4鍵盤的掃描ic讀取鍵盤
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 液壓與液力技術(shù)在地質(zhì)勘探設(shè)備中的應(yīng)用考核試卷
- 派遣員工關(guān)系管理考核試卷
- 租賃設(shè)備選型與配置考核試卷
- 紡紗工藝對(duì)紗線柔軟性的調(diào)控考核試卷
- 上海高三語(yǔ)文各區(qū)作文題
- 毛皮制品的工傷保險(xiǎn)制度考核試卷
- 毛皮制品加工車間布局設(shè)計(jì)考核試卷
- 有機(jī)化學(xué)原料的綠色化學(xué)標(biāo)準(zhǔn)制定考核試卷
- 電視設(shè)備智能安全防范技術(shù)考核試卷
- 胰島素皮下注射團(tuán)體標(biāo)準(zhǔn)解讀
- 工程項(xiàng)目檔案歸檔方案
- 智慧教育下的小學(xué)生德育策略創(chuàng)新實(shí)踐案例分享
- 種植土施工方案
- 個(gè)人二手房買賣合同樣本與個(gè)人二手房買賣合同
- T-GDCKCJH 090-2024 微生物電化學(xué)法水質(zhì)生物毒性在線自動(dòng)監(jiān)測(cè)技術(shù)規(guī)范
- 皮膚T細(xì)胞淋巴瘤病因介紹
- 2024配電網(wǎng)行波故障測(cè)距功能規(guī)范
- 自然保護(hù)地分類分級(jí)-知識(shí)培訓(xùn)
- 管道支吊架調(diào)整施工方案
- 船舶運(yùn)輸安全生產(chǎn)應(yīng)急救援預(yù)案
- 植被恢復(fù)合同模板
評(píng)論
0/150
提交評(píng)論