版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 存檔(cn dng)編號 XX水利水電大學(xué)(dxu) 畢 業(yè) 設(shè) 計題目(tm) 簡易計算器的制作 學(xué) 院 信息工程學(xué)院 專 業(yè) 通信工程 姓 名 XX 學(xué) 號 2XXXX 指導(dǎo)教師 XX 完成時間 2014.5.14 教務(wù)處制獨立完成與誠信(chn xn)聲明本人鄭重聲明:所提交的畢業(yè)設(shè)計(論文)是本人在指導(dǎo)教師的指導(dǎo)下,獨立工作所取得的成果并撰寫完成的,鄭重確認沒有剽竊、抄襲等違反學(xué)術(shù)道德、學(xué)術(shù)規(guī)范的侵權(quán)行為。文中除已經(jīng)標注引用的內(nèi)容(nirng)外,不包含其他人或集體已經(jīng)發(fā)表或撰寫過的研究成果。對本文的研究做出重要貢獻的個人和集體,均已在文中作了明確的說明并表示了謝意。本人完全意識到本
2、聲明的法律后果由本人承擔。畢業(yè)設(shè)計(論文)作者(zuzh)簽名: 指導(dǎo)導(dǎo)師簽名: 簽字日期: 簽字日期:畢業(yè)設(shè)計(b y sh j)(論文)版權(quán)使用授權(quán)書本人完全了解華北水利水電大學(xué)有關(guān)保管、使用畢業(yè)設(shè)計(論文)的規(guī)定。特授權(quán)華北水利水電大學(xué)可以將畢業(yè)設(shè)計(論文)的全部或部分內(nèi)容公開和編入有關(guān)數(shù)據(jù)庫提供檢索,并采用影印、縮印或掃描等復(fù)制手段復(fù)制、保存、匯編以供查閱和借閱。同意(tngy)學(xué)校向國家有關(guān)部門或機構(gòu)送交畢業(yè)設(shè)計(論文)原件或復(fù)印件和電子文檔(涉密的成果在解密后應(yīng)遵守此規(guī)定)。畢業(yè)設(shè)計(b y sh j)(論文)作者簽名: 導(dǎo)師簽名:簽字日期: 簽字日期:目 錄 TOC h z t
3、樣式(yngsh)1,1,樣式2,2,樣式3,3 HYPERLINK l _Toc388354637 摘 要 基于(jy)AT89C51單片機的簡易計算器的設(shè)計摘 要計算器在人們(rn men)的日常生活(shnghu)中是較為常見的電子產(chǎn)品之一。初期的計算器僅僅能實現(xiàn)簡單的加減乘除運算,而現(xiàn)在人們所廣泛使用的科學(xué)計算器功能已不再停留于此,除了加減乘除運算外,它還能進行乘方,開方,指數(shù),對數(shù),三角函數(shù),反三角函數(shù)等的存儲和運算。而且計算器的種類和模式也在逐漸多樣化,如使用太陽能電池的計算器,使用ASIC制作的計算器,使用純軟件設(shè)計的計算器和被集成到手機、平板電腦等電子產(chǎn)品中的計算器??梢哉f計算
4、器還正在發(fā)展之中而且還將有很大的發(fā)展空間,未來必將出現(xiàn)功能更加強大的計算器?;谶@樣的理念,本設(shè)計以AT89C51單片機為核心,以軟硬件結(jié)合的方式設(shè)計了一個簡易計算器。該計算器以4*4矩陣鍵盤為輸入方式,可以進行4位帶符號數(shù)的加減乘除運算,并在LCD1602液晶顯示器上顯示操作過程。該論文詳細介紹了整個系統(tǒng)的硬件組成結(jié)構(gòu)、工作原理和軟件設(shè)計思想與流程。關(guān)鍵詞: 計算器 AT89C51 LCD1602 矩陣鍵盤Simple calculator designed based on AT89C51Abstract The calculator in Peoples Daily life is on
5、e of the most common electronic products. Early computing calculator can only implement simple addition, subtraction, multiplication, and division, but now the scientific calculator which widely used by peoples functions are no longer stay, operation besides addition, subtraction, multiplication, an
6、d division, it can also power, prescribe, index, logarithmic, trigonometric function, inverse trigonometric function such as storage and computation. And the types of the calculator and pattern has also been gradually diversified, such as using solar calculator, using ASIC production calculator, usi
7、ng pure software design of the calculator and be integrated into mobile phones, tablets, and other electronic products in the calculator. We can say that calculators are under development and will also have very big development space, the future will appear more powerful calculators. Based on this i
8、dea, I design a simple calculator which use AT89C51 single-chip microcomputer as the core, and use the way that combine the hardware and software. The calculator use 4 * 4 matrix keyboard as input mode, it can carry out four signed several operations of addition,subtraction, multiplication, and divi
9、sion, and it display operation process on the LCD1602 . The paper introduces in detail the system structure, working principle of the hardware and the software design idea and process.key words: calculator AT89C51 LCD1602 matrix keyboard華北水利水電大學(xué)畢業(yè)設(shè)計緒論(xln)1.1 開發(fā)(kif)背景計算器是日常生活中比較(bjio)常見的電子產(chǎn)品之一,它已在數(shù)
10、十年間遍布千家萬戶。計算器(calculator ;counter)一般是指“ HYPERLINK /view/907728.htm t _blank 電子計算器”,該名詞由日文傳入中國。它是能進行 HYPERLINK /view/1284.htm t _blank 數(shù)學(xué)運算的手持機器,擁有集成電路 HYPERLINK /view/26651.htm t _blank 芯片,但結(jié)構(gòu)簡單,比現(xiàn)代電腦結(jié)構(gòu)簡單得多,可以說是第一代的 HYPERLINK /view/6373.htm t _blank 電子計算機(電腦),且功能也較弱,但較為方便與廉價,可廣泛運用于商業(yè)交易中,是必備的 HYPERLI
11、NK /view/89398.htm t _blank 辦公用品之一。除顯示 HYPERLINK /view/280138.htm t _blank 計算結(jié)果外,還常有溢出指示、錯誤指示等。對于計算器的百年歷史,1946年2月15日,在美國賓夕法尼亞大學(xué),世界上第一臺電子計算器ENIAC正式投入了運行。在隆重的揭幕儀式上,ENIAC表演了它的“絕招”:在1秒鐘內(nèi)進行5000次加法運算;在1秒鐘內(nèi)進行500次乘法運算。這比當時最快的電器計算器的運算速度要快1000多倍。全場起立歡呼,歡呼科學(xué)技術(shù)進入了一個新的歷史發(fā)展時期。電子計算器不僅是一種工具,它與其它的工具都不相同:電子計算器是人腦的一個側(cè)
12、面的延伸。因為電子計算器不僅具有非凡的計算能力,速度之快令人望塵莫及,而且還能夠仿真人的某些思維功能,按照一定的規(guī)則進行邏輯判和邏輯推理,代替人的部分腦力勞動。1976年,數(shù)學(xué)家憑借電子計算器去證明四色定理,“依靠機器完成了人沒有能夠完成的事情”,轟動了整個國際數(shù)學(xué)界。隨著社會的發(fā)展和科學(xué)技術(shù)的進步,電子產(chǎn)品變得越來越先進,功能變得越來越強大,集成化程度也變得越來越高,其更新速度令人吃驚。對于計算器人們也在不斷地對它進行改進,然而技術(shù)的進步是無止境的,如何讓計算器技術(shù)更加的成熟,充分利用現(xiàn)有的軟件和硬件條件,制作出更加好用的計算器,讓我們更方便的使用它,讓它更好的為我們的生活服務(wù),始終是當今電
13、子領(lǐng)域的重要研究課題。而另一方面,近年來,單片機以其體積小、價格廉、面向控制等諸多優(yōu)點,在各種工業(yè)控制、儀器儀表、產(chǎn)品、設(shè)備的自動化、智能化方面獲得了極為廣泛的應(yīng)用。與此同時,單片機系統(tǒng)的可靠性成為人們越來越關(guān)注的重要課題。影響系統(tǒng)可靠性的因素是多方面的,如構(gòu)成系統(tǒng)的各種元器件本身的可靠性、系統(tǒng)本身各部分之間的相互耦合因素等。其中抗干擾性能是系統(tǒng)可靠性的重要指標。本設(shè)計采用AT89C51芯片和LCD1602液晶顯示器,實現(xiàn)了利用(lyng)單片機來設(shè)計一個簡易計算器的目的。該計算器允許對四位輸入數(shù)據(jù)進行帶符號加減乘除運算,用C語言編寫程序驅(qū)動整個系統(tǒng)的運行,便于移植和升級。如果所要設(shè)計的對象是
14、更為復(fù)雜的計算器系統(tǒng),其實際原理和實現(xiàn)方法與本設(shè)計基本相同。本設(shè)計關(guān)鍵在于必須非常(fichng)熟悉單片機的原理與結(jié)構(gòu),并能熟練的運用51C語言來編寫程序,同時還要對整個系統(tǒng)的設(shè)計流程有很好的把握,從而將單片機和其他模塊完整的銜接。在現(xiàn)今的日常生活中,計算器毫無疑問是人們的最重要工具之一,它的身影遍布在社會的各個角落,例如商店,學(xué)校等等。所以設(shè)計一款簡單但卻極其實用的計算器具有(jyu)很大的實際意義,而本文中利用單片機和LCD1602液晶結(jié)合設(shè)計的計算器充分利用了以上所講的單片機的諸多優(yōu)點,具有很好的實用價值。1.2 設(shè)計目的本設(shè)計旨在進一步掌握單片機理論知識,理解嵌入式單片機系統(tǒng)的硬軟件
15、設(shè)計,加強對實際應(yīng)用系統(tǒng)設(shè)計的能力。通過本設(shè)計的學(xué)習(xí),使我掌握單片機程序設(shè)計和微機接口應(yīng)用的基本方法,并能綜合運用本科階段所學(xué)軟、硬件知識分析實際問題,提高解決畢業(yè)設(shè)計實際問題的能力,為單片機應(yīng)用和開發(fā)打下良好的基礎(chǔ)。方案(fng n)論證與設(shè)計設(shè)計(shj)指標本次設(shè)計(shj)的簡易計算器的基本性能如下:能夠進行4位整數(shù)的加減乘除運算(yn sun)(除法的結(jié)果中可以有小數(shù))。能夠?qū)⒂嬎憬Y(jié)果輸出到LCD1602液晶顯示屏中以便于觀察。能夠?qū)崿F(xiàn)清除數(shù)據(jù)的功能。能夠進行錯誤提示(比如當輸入數(shù)據(jù)除數(shù)為0時會在LCD1602上顯示error)。方案論證與設(shè)計根據(jù)功能和以上對設(shè)計指標的描述,本系統(tǒng)采
16、用AT89C51單片機為控制芯片,LCD1602為顯示芯片,輔以其他電路所需基本器件,完成對簡易計算器的設(shè)計。具體的設(shè)計考慮如下:由于本次所要設(shè)計的是一個簡易計算器, 要求能夠進行4位整數(shù)的加減乘除運算,功能較為簡單,所編寫程序不會太長,故使用AT89C51單片機即可滿足需求。由于LCD1602液晶顯示器相比于8段數(shù)碼管而言,擁有更大的顯示量,更好的顯示效果,更全面的顯示字符類型,因此這里選用LCD1602液晶顯示器作為顯示模塊。根據(jù)計算器的功能要求,鍵盤包括數(shù)字鍵(0-9)、符號鍵(+、*、)、清除鍵(CE)和等號鍵,故需要16個按鍵(4*4鍵盤)。系統(tǒng)模塊圖如圖2.1所示:4*4矩陣鍵盤(
17、輸入模塊)LCD1602液晶顯示器(顯示模塊)AT89C51單片機運算模塊(編程實現(xiàn))圖2.1 系統(tǒng)(xtng)模塊圖為了更好的實現(xiàn)系統(tǒng)的功能,硬件電路(dinl)的設(shè)計應(yīng)該遵循以下原則:1、優(yōu)化硬件(yn jin)電路采用軟件設(shè)計與硬件設(shè)計相結(jié)合的方法;盡管采用軟件來實現(xiàn)硬件系統(tǒng)的功能時,也許響應(yīng)時間會比單純使用硬件時長,而且還要占用微處理器(MCU)的時間;但是,用軟件實現(xiàn)硬件的功能可以簡化硬件結(jié)構(gòu),提高電路的可靠性。所以,在設(shè)計本系統(tǒng)得時候,在滿足可靠性和實時性的前提下,盡可能的通過軟件來實現(xiàn)硬件功能。2、可靠性及抗干擾設(shè)計根據(jù)可靠性設(shè)計理論,系統(tǒng)所用芯片數(shù)量越少,系統(tǒng)的平均無故障時間越
18、長。而且,所用芯片數(shù)量越少,地址和數(shù)據(jù)總線在電路板上受干擾的可能性也就越小。因此,系統(tǒng)的設(shè)計思想是在滿足功能的情況下力爭使用較少數(shù)量的芯片。3、靈活的功能擴展功能擴展是否靈活是衡量一個系統(tǒng)優(yōu)劣的重要指標。一次設(shè)計往往不能完全考慮到系統(tǒng)的各個方面,系統(tǒng)需要不斷完善以及進行功能升級。進行功能擴展時,應(yīng)該在原有設(shè)計的基礎(chǔ)上,通過修改軟件程序和少量硬件完成。對于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴展。而在軟件方面根據(jù)設(shè)計需要我們可以采用自上而下的程序設(shè)計方法,這種方法先從主程序開始設(shè)計,之后再編制各從屬程序和子程序,層層細化逐步求精,最后完成一個復(fù)雜程序
19、的設(shè)計。這種設(shè)計方法比較符合人們的日常思維,但是缺點是一級的程序錯誤將會對整個程序產(chǎn)生影響。計算器的程序流程圖如圖2.2所示:結(jié)束(斷開電源)是否按下CE鍵輸入數(shù)據(jù)LCD顯示按下功能鍵計算結(jié)果LCD顯示是否結(jié)束按下功能鍵LCD顯示輸入數(shù)據(jù)LCD顯示初始值啟動計算器(接通電源)圖2.2 程序(chngx)流程圖硬件模塊(m kui)介紹 主控及運算(yn sun)模塊 AT89C51單片機是將微處理器(CPU),數(shù)據(jù)(shj)存儲器(RAM)、程序(chngx)存儲器(4KB Flash ROM)、并行I/O 口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)這些一臺計算機所需要的基
20、本功能部件集成在了一塊芯片上,它靠程序運行,并可以修改程序以通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,通過單片機及其程序可以實現(xiàn)高智能,高效率,以及高可靠性!所以設(shè)計采用單片機作為該計算器的主控及運算模塊,可以很好的實現(xiàn)控制和運算功能。AT89C51單片機引腳圖如圖3.1,其實際外觀圖如圖3.2:圖3.1 AT89C51單片機引腳圖圖3.2 AT89C51單片機實際(shj)外觀圖其各引腳功能(gngnng)如下:電源(dinyun)引腳Vcc: 正電源腳,接+5V電源。GND: 接地端。外接晶體引腳外接晶體引腳圖如圖3.3所示:圖3.3 外接晶體管引腳XTAL1:片內(nèi)振蕩器反
21、相放大器和時鐘發(fā)生器電路的輸入端。使用片內(nèi)振蕩器時,該引腳連接外部石英晶體和微調(diào)電容。XTAL2:片內(nèi)振蕩器反相放大器和時鐘發(fā)生器電路的輸出端,當使用片內(nèi)振蕩器時,該引腳連接外部石英晶體和微調(diào)電容。當采用外部時鐘源時,引腳XTAL1接收外部時鐘振蕩器的信號,XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,比如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇,而電容則取30PF左右。型號同樣是AT89C51的芯片,在其后面還會有頻率編號,有12,16,20,24MHz可選,在購買和選用時需注意。比如AT89C51 24PC就是最高振蕩頻率24MHz,40
22、P封裝的普通商用芯片??刂?kngzh)引腳RST復(fù)位信號輸入端,高電平有效。當單片機運行時,在此引腳加上持續(xù)時間大于2個機器周期(zhuq)(24個時鐘振蕩周期)的高電平時,就可以對單片機完成復(fù)位操作且只要這個腳保持高電平,51芯片便循環(huán)(xnhun)復(fù)位。在單片機復(fù)位后P0P3口均置1,引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當RST腳電平由高變低時,單片機開始從ROM的0000H處開始運行程序。在單片機正常工作時,此引腳應(yīng)為=data_b)data_c=data_a-data_b; /* - S=2 */減 elsedata_c=data_b-data_a;W_lcd
23、(5,1,-); /負數(shù)符號 break; case 3:data_c=(data_a*data_b);break; /* * S=3 */乘case4:if(data_b=0)LCD_Write_String(0,1,Error !);elsedata_c=(data_a*10000)/data_b;break; /* / S=4 */除/溢出時顯示錯誤case 0:break; 仿真(fn zhn)及調(diào)試在本設(shè)計中使用keil C軟件對程序進行編譯,然后再將其編譯連接后所生成(shn chn)的執(zhí)行文件放入已搭建好的proteus仿真圖中的AT89C51單片機上進行仿真。其仿真圖如圖5.1
24、所示:圖5.1 簡易(jiny)計算器仿真圖 首先輸入第一個數(shù)據(jù),然后再輸入功能鍵(+,-,*,/)和另一個數(shù)據(jù),最后按等號鍵就可以看到LCD顯示屏的第二行顯示出相應(yīng)的結(jié)果。如上圖中輸入“222/5=”,就在第二行顯示出結(jié)果“44.4000”,從這個結(jié)果可以看出,當計算結(jié)果為小數(shù)時,計算器能夠顯示小數(shù),小數(shù)位為四位。另外,在計算除法時,如果輸入除數(shù)為0,可以看到LCD的第二行顯示出“Error 0.0000”的字樣。結(jié)束語在硬件的制作過程中我走了好多的彎路,主要是在系統(tǒng)還沒有設(shè)計很有把握就開始動手制作了。后來發(fā)現(xiàn)與設(shè)計的要求還有偏差,反復(fù)的改過了幾次,浪費了大量的時間和體力。感受到設(shè)計人員要有
25、耐心,要認真的從要求開始研究。軟件的編寫過程中費了很大的力氣,因為軟件的編寫要求很高,要很細心,一不小心就會調(diào)用錯誤,很深刻的體會到作為軟件編程人員是絕不能粗心大意的。一個程序的完成的速度和質(zhì)量高低與細心與否有著很大聯(lián)系。編程時,我充分使用了結(jié)構(gòu)化的思想。這樣因為語句較少,程序調(diào)試比較方便,功能模塊可以(ky)逐一的調(diào)試,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢。當每個模塊都完成時,將其功能加到一起就完成了整體的設(shè)計。致 謝本次畢業(yè)設(shè)計得到導(dǎo)師張帆老師的熱心指導(dǎo),在這里對張帆老師表示最衷心的感謝。張帆老師平易近人,對學(xué)生的設(shè)計進度和學(xué)習(xí)很關(guān)心。在畢業(yè)設(shè)計的前期,首先給我們介紹了不少有用的資料和書籍;在硬件設(shè)
26、計等方面給予悉心(xxn)的指導(dǎo);在調(diào)試的過程中張帆老師給每個出現(xiàn)的問題給予及時的指導(dǎo)。在寫畢業(yè)設(shè)計論文的階段,張帆老師讓我們提前給他評審,不論內(nèi)容字體,還是格式上的問題都一一指出。待人平和、工作認真、治學(xué)嚴謹他的給我留下很深刻的印象。更重要的是,他善于與學(xué)生溝通,不僅在畢業(yè)設(shè)計上給我及時的指導(dǎo),更為我大學(xué)最后階段的學(xué)習(xí)提出了許多寶貴的意見。這一切都在潛移默化地影響著我,為我以后進入工作崗位樹立了良好的榜樣。最后向所有幫助(bngzh)和關(guān)心過我的人表示衷心感謝!參考文獻1 張毅剛 彭喜元. 單片機原理與應(yīng)用(yngyng)設(shè)計M. 北京:電子工業(yè)出版社2 張義和 王敏男 許宏昌等. 例說51
27、單片機(第3版)M. 北京(bi jn):人民郵電出版 3 恰汗合孜爾. C語言程序設(shè)計(第三版)M. 北京(bi jn):中國鐵道出版社,2010年第三版4 陳雷. C51單片機應(yīng)用實訓(xùn)M. 北京:中國電力出版社,2011年第一版5 張欣 孫宏昌 尹霞. 單片機原理與C51程序設(shè)計基礎(chǔ)教程M. 北京:清華大學(xué)出版社,2010年第一版6 王巧芝 鄭鋒 劉瑞國等. 51單片機開發(fā)應(yīng)用從入門到精通M. 北京:中國鐵道出版社7 張靖武 周靈杉.單片機系統(tǒng)的PROTEUS設(shè)計與仿真M.北京:北京電子工業(yè)出版社8 靳達 求是科技.單片機應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航M.:人民郵電出版社,20069 劉守義. 單片
28、機應(yīng)用技術(shù)M.:西安電子科技大學(xué)出版社,200110 林志琦.基于PROTEUS的單片機可視化軟硬件仿真M.北京:北京航空航天大學(xué)出版社,200611 胡漢才.單片機原理及接口技術(shù).清華大學(xué)出版社,199612 徐江海.單片機實用教程M.北京:機械工業(yè)出版社,2007.13 肖洪兵. 跟我學(xué)用單片機. 北京:北京航空航天大學(xué)出版社,2002.814 夏繼強. 單片機實驗與實踐教程. 北京:北京航空航天大學(xué)出版社, 200115 譚浩強. C語言程序設(shè)計M.北京:清華大學(xué)出版社,2000.16 劉?;? C語言程序設(shè)計與實訓(xùn)教程M.北京:科學(xué)出版社,2004.17 張磊. C語言程序設(shè)計M.北京
29、:高等教育出版社,2005.18 嚴桂蘭. C語言程序設(shè)計M.廈門:廈門大學(xué)出版社,2006附錄一:硬件實物圖(圖6.1和圖6.2):圖6.1 正面圖圖6.2 背面(bimin)圖附錄二:系統(tǒng)(xtng)程序#include#define uint unsigned int#define uchar unsigned charsbit rs=P27; /指令(zhlng)or數(shù)據(jù)sbit wela=P26; /讀or寫sbit lcden=P25; /使能信號(xnho)uchar code table= ;long int data_a,data_b; /第一個數(shù)和第二個數(shù)long int
30、data_c;/計算結(jié)果uchar dispaly10; /顯示(xinsh)緩沖/*/ 延時t us函數(shù)/*/void LCD_Delay_us(unsigned int t)while(t-); /t=0,退出/*/ 延時t ms函數(shù)/*/void LCD_Delay_ms(unsigned int t)unsigned int i,j;for(i=0;it;i+) /執(zhí)行(zhxng)t次循環(huán)for(j=0;j999)write_date(0+dispaly3); /顯示千位if(data_a99)write_date(0+dispaly2); /顯示百位if(data_a9)write
31、_date(0+dispaly1); /顯示十位 write_date(0+dispaly0); /顯示個位void display_b() /顯示數(shù)據(jù)bwrite_com(0 x80+7); /第一行dispaly3=data_b%10000/1000; /千dispaly2=data_b%1000/100; /百dispaly1=data_b%100/10; /十dispaly0=data_b%10; /個 if(data_b999)write_date(0+dispaly3); /顯示千位 if(data_b99) write_date(0+dispaly2); /顯示百位 if(dat
32、a_b9) write_date(0+dispaly1); /顯示十位 write_date(0+dispaly0); /顯示(xinsh)個位/計算結(jié)果void display_c(x)if(data_c-1)/溢出時顯示(xinsh)錯誤dispaly8=data_c%1000000000/100000000; /萬萬(wnwn)dispaly7=data_c%100000000/10000000; /千萬(qinwn)dispaly6=data_c%10000000/1000000; /百萬dispaly5=data_c%1000000/100000; /十萬dispaly4=data_
33、c%100000/10000; /萬dispaly3=data_c%10000/1000; /千dispaly2=data_c%1000/100; /百dispaly1=data_c%100/10; /十dispaly0=data_c%10; /個 write_com(0 x80+6+0 x40); /第一行if(x=4) if(data_c99999999)write_date(0+dispaly8); /顯示萬萬if(data_c9999999)write_date(0+dispaly7); /千萬if(data_c999999)write_date(0+dispaly6); /百萬if(
34、data_c99999)write_date(0+dispaly5); /十萬write_date(0+dispaly4); /萬write_date(.);write_date(0+dispaly3); /千write_date(0+dispaly2); /百write_date(0+dispaly1); /十write_date(0+dispaly0); /個 elseif(data_c99999999)write_date(0+dispaly8); /顯示(xinsh)萬萬if(data_c9999999)write_date(0+dispaly7); /千萬(qinwn)if(data
35、_c999999)write_date(0+dispaly6); /百萬(bi wn)if(data_c99999)write_date(0+dispaly5); /十萬if(data_c9999)write_date(0+dispaly4); /萬if(data_c999)write_date(0+dispaly3); /千if(data_c99)write_date(0+dispaly2); /百if(data_c9)write_date(0+dispaly1); /十write_date(0+dispaly0); /個 else /溢出時顯示錯誤write_com(0 x80+11+0
36、x40); /第一行write_date(E); /顯示(xinsh) E write_date(r); /顯示(xinsh)Rwrite_date(r); /顯示(xinsh)Rwrite_date(o); /顯示Owrite_date(r); /顯示Evoid eql(uchar x)/加減乘除運算switch(x)/*功能鍵選擇(xunz)*/ case 1:data_c=data_a+data_b;break; /加 /* + S=1 */ /* 數(shù)值轉(zhuǎn)換(zhunhun)函數(shù) */case 2:if(data_a=data_b)data_c=data_a-data_b; /* - S
37、=2 */減 elsedata_c=data_b-data_a;W_lcd(5,1,-); /負數(shù)(fsh)符號 break; case 3:data_c=(data_a*data_b);break; /* * S=3 */乘case4:if(data_b=0)LCD_Write_String(0,1,Error !);elsedata_c=(data_a*10000)/data_b;break; /* / S=4 */除/溢出時顯示錯誤case 0:break; void main()uchar key=0 xff; /鍵值初始化uchar n=0; /第1個數(shù)可以按1-4次uchar m=
38、5; /第2個數(shù)可以按1-4次uchar x=0; data_a=0; /前一個(y )數(shù)data_b=0; /后一個(y )數(shù)data_c=0; /結(jié)果(ji gu)init_lcd(); /1602液晶(yjng)初始化display_a(); while(1) key=keycheckdown();/*動態(tài)掃描鍵盤(jinpn),返回按鍵對應(yīng)值,賦給j key=0到f */if(0 xff!=key)/*若返回值有效,進入(jnr)內(nèi)部處理程序*/ if(key10) if(n4)data_a=data_a*10+key;m=5;display_a();n+; /首先輸入第一個數(shù) if(
39、m4)data_b=data_b*10+key;n=5;display_b();m+; /必須按了+-*/才能輸入第二個數(shù) else switch(key)/*功能鍵選擇*/case 0 xa:n=5;m=0;x=1;W_lcd(5,0,+);break; /加 /* + S=1 */ /* 數(shù)值轉(zhuǎn)換函數(shù) */case 0 xb:n=5;m=0;x=2;W_lcd(5,0,-);break; /* - S=2 */減case 0 xc:n=5;m=0;x=3;W_lcd(5,0,*);break; /* * S=3 */乘case 0 xd:n=5;m=0;x=4;W_lcd(5,0,/);b
40、reak; /* / S=4 */除case 0 xe:n=5;m=5;eql(x);W_lcd(12,0,=);display_c(x);break; /* = */case 0 xf:n=0;x=0;m=5; data_a=0;data_b=0;data_c=0;LCD_Write_String(0,0,table);LCD_Write_String(0,1,table);W_lcd(0,0,0);break; /* C*/ doP1=0 xf0;while(P1!=0 xf0);/*等待按鍵(n jin)松開*/ 附錄(fl)三:任務(wù)書畢業(yè)設(shè)計(b y sh j)(論文)任務(wù)書簡易(ji
41、ny)計算器的制作一、畢業(yè)設(shè)計(論文(lnwn))目的1、讓學(xué)生更深入的認識和理解89C51單片機的結(jié)構(gòu)和工作原理,并讓其掌握單片機的一些簡單開發(fā)方法。為以后可能從事的單片機工作打下鋪墊。2、讓學(xué)生對LCD1602液晶顯示器有一個初步的認識并對其工作原理和各引腳功能加以理解,達到用LCD1602這個顯示模塊來設(shè)計自己想做的東西的目的。3、對C語言有個更深入的理解,尤其是結(jié)合實際的理解,而不再單單是知道它的語法而已。這無論是對以后可能進行的軟件開發(fā)還是硬件開發(fā)都有好處。4、讓學(xué)生對實際進行一個設(shè)計的步驟和注意事項有個認識,從而促使他們學(xué)以致用。二、主要內(nèi)容以AT89C51單片機為核心,LCD16
42、02液晶顯示器為顯示模塊,4*4矩陣鍵盤為輸入模塊來制作一個簡易計算器。能實現(xiàn)基本的加減乘除運算,并能將運算結(jié)果顯示在LCD1602液晶顯示器上。三、重點研究問題1、如何用軟件來實現(xiàn)按鍵的掃描。2、如何用軟件來驅(qū)動LCD1602液晶顯示器的數(shù)據(jù)顯示。3、如何實現(xiàn)輸入數(shù)據(jù)的加減乘除運算。4、如何識別輸入錯誤并進行錯誤提示。主要技術(shù)指標或主要參數(shù)1、能夠進行4位整數(shù)的加減乘除運算(除法的結(jié)果中可以有小數(shù))。2、能夠?qū)⒂嬎憬Y(jié)果輸出到LCD1602液晶顯示屏中以便于觀察。3、能夠?qū)崿F(xiàn)清除數(shù)據(jù)的功能。4、能夠進行錯誤提示(比如當輸入數(shù)據(jù)除數(shù)為0時會在LCD1602上顯示error)。五、基本(jbn)要
43、求1、設(shè)計需制作出實物(shw),而不是只停留在設(shè)計方案或者prote仿真圖階段。2、設(shè)計需由學(xué)生獨立完成,不得抄襲他人(trn)成果(包括簡易計算器的制作和其論文撰寫。3、需對設(shè)計中出現(xiàn)的問題不斷反思,直至完全弄清原因為止。4、對于不懂的地方要耐心查詢相關(guān)資料,或者虛心請教他人。六、其它(包括選題來源)選題由指導(dǎo)老師提供。附錄四:開題報告華北(Hubi)水利水電大學(xué)(dxu)本科生畢業(yè)設(shè)計(論文(lnwn))開題報告 2014年 4 月 1日學(xué)生姓名黃炎學(xué)號201014026專業(yè)通信工程題目名稱基于單片機的簡易計算器設(shè)計課題來源自選主要內(nèi)容課題意義本次設(shè)計是以51單片機為核心應(yīng)用單片機應(yīng)用基
44、礎(chǔ)等所學(xué)相關(guān)知識及查閱資料,完成簡易計算器的設(shè)計,以達到理論與實踐更好的結(jié)合、進一步提高綜合運用所學(xué)知識和設(shè)計的能力的目的。通過本次設(shè)計的訓(xùn)練,可以使我在基本思路和基本方法上對基于MCS-51單片機的系統(tǒng)設(shè)計有一個更加深入的認識,并具備一定程度的設(shè)計能力。相關(guān)背景隨著社會的不斷發(fā)展,科技的不斷創(chuàng)新。計算器已在數(shù)十年間遍布千家萬戶,數(shù)學(xué)家把聰明給了電子計算器,電子計算器將使數(shù)學(xué)家變得更加明。而且電子計算器不僅是一種工具,它與其它的工具都不相同:電子計算器是人腦的一個側(cè)面的延伸。因為電子計算器不僅具有非凡的計算能力,速度之快令人望塵莫及,而且還能夠仿真人的某些思維功能,按照一定的規(guī)則進行邏輯判和邏
45、輯推理,代替人的部分腦力勞動。計算器的未來是小型化和輕便化,現(xiàn)在市面上出現(xiàn)的使用太陽能電池的計算器,使用ASIC設(shè)計的計算器,如使用純軟件實現(xiàn)的計算器等,未來的智能化計算器將是我們的發(fā)展方向,更希望成為應(yīng)用廣泛的計算工具。而這次我要做的是用51單片機設(shè)計一個簡易計算器。這次設(shè)計的價值和核心就在于倡導(dǎo)自己把所學(xué)知識運用到現(xiàn)實生活,為現(xiàn)實生活服務(wù),把自己的知識轉(zhuǎn)化為實物哪怕是很簡單的物件,很簡單的功能,但真真切切的讓自己感受到創(chuàng)造的快樂,為自己今后的工作做好鋪墊,往后通過更多的學(xué)習(xí),更多的嘗試,把知識的作用真正發(fā)揮出來,改變大家的生活??尚行苑治?1單片機可以進行加減乘除等運算,并且可以與鍵盤和L
46、CD1602液晶顯示器連接,以供輸入數(shù)據(jù)以及將計算結(jié)果直觀的顯示到LCD1602液晶顯示器上,這符合簡易計算器的基本特性,因此用51單片機與鍵盤和LCD1602液晶顯示器等配合來設(shè)計簡易計算器是可行的。目標任務(wù)分析本次設(shè)計的簡易計算器的基本性能如下:能夠進行4位整數(shù)的加減乘除運算(除法的結(jié)果中可以有小數(shù))。能夠?qū)⒂嬎憬Y(jié)果輸出到LCD1602液晶顯示屏中以便于觀察。能夠?qū)崿F(xiàn)清除數(shù)據(jù)的功能。能夠進行錯誤提示(比如當輸入數(shù)據(jù)除數(shù)為0時會在LCD1602上顯示error)。本設(shè)計需要利用Proteus軟件實現(xiàn)電路的仿真,完成簡易計算器的仿真實現(xiàn),測試其是否能夠完成各種功能然后用硬件電路做出實物。采取的
47、主要技術(shù)路線或方法本簡易計算器的設(shè)計主要有以下模塊:鍵盤掃描識別模塊計算器輸入數(shù)字以及其他功能按鍵要用到很多按鍵,假如采用獨立按鍵的方式,編程當然會很簡單,但是問題是鍵盤會占用大量的I/O 口資源,所以這里不采用這種方式,而采用矩陣鍵盤的方案。矩陣鍵盤使用四條I/O 線作為行線,四條I/O 線作為列線,在行線和列線的每一個交叉點上設(shè)置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為44共16個。 計算器的鍵盤布局如圖7.1所示:一般有16個鍵組成,在單片機中恰好可用一個P口實現(xiàn)16個按鍵功能。圖7.1 鍵盤布局圖矩陣式鍵盤的按鍵識別方法有掃描法和線反轉(zhuǎn)法兩種,由于線反轉(zhuǎn)法更加簡單實用所以這里采用線反轉(zhuǎn)法來識
48、別按鍵。單片機在忙于各種工作任務(wù)時,如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。而鍵盤的工作方式有三種:編程掃描,定時掃描和中斷掃描,由于在這個設(shè)計中使用編程掃描比較方便,所以這里采用編程掃描的方式。LCD1602液晶顯示器模塊:LCD1602顯示器如圖7.2所示:圖7.2 LCD1602液晶顯示器對LCD1602的編程分為初始化部分和數(shù)據(jù)顯示部分,具體編寫時處理,這里不再敘述。計算模塊主要由編程實現(xiàn),不牽扯硬件電路,這里不加敘述。原理圖如圖7.3所示:4*4矩陣鍵盤(輸入模塊)LCD1602液晶顯示器(顯示模塊)AT89C51單片機運算模塊(編程實現(xiàn))圖7.3 簡易計算器模塊設(shè)計圖時間安排35
49、周:查找資料69周:方案的設(shè)計(主要是程序的編寫)以及proteus仿真調(diào)試10周-11周 :購買元器件制作硬件電路并調(diào)試 12周:根據(jù)自己前期的設(shè)計制作和調(diào)試撰寫論文13周:準備畢業(yè)答辯指導(dǎo)教師意見簽 名:年 月 日備注無附錄(fl)五:外文原文與外文譯文singlechip temperature system1.MCUA microcontroller (or MCU) is a computer-on-a-chip. It is a type of microprocessor emphasizing self-sufficiency and cost-effectiveness, i
50、n contrast to a general-purpose microprocessor (the kind used in a PC). The majority of computer systems in use today are embedded in other machinery, such as telephones, clocks, appliances, vehicles, and infrastructure. An embedded system usually has minimal requirements for memory and program leng
51、th and may require simple but unusual input/output systems. For example, most embedded systems lack keyboards, screens, disks, printers, or other recognizable I/O devices of a personal computer. They may control electric motors, relays or voltages, and read switches, variable resistors or other elec
52、tronic devices. Often, the only I/O device readable by a human is a single light-emitting diode, and severe cost or power constraints can even eliminate that. In contrast to general-purpose CPUs, microcontrollers do not have an address bus or a data bus, because they integrate all the RAM and non-vo
53、latile memory on the same chip as the CPU. Because they need fewer pins, the chip can be placed in a much smaller, cheaper package. Integrating the memory and other peripherals on a single chip and testing them as a unit increases the cost of that chip, but often results in decreased net cost of the
54、 embedded system as a whole. (Even if the cost of a CPU that has integrated peripherals is slightly more than the cost of a CPU + external peripherals, having fewer chips typically allows a smaller and cheaper circuit board, and reduces the labor required to assemble and test the circuit board). Thi
55、s trend leads to design. A microcontroller is a single integrated circuit, commonly with the following features: central processing unit - ranging from small and simple 4-bit processors to sophisticated 32- or 64-bit processors input/output interfaces such as serial ports (UARTs) other serial commun
56、ications interfaces like IC, Serial Peripheral Interface and Controller Area Network for system interconnect peripherals such as timers and watchdog RAM for data storage ROM, EPROM, EEPROM or Flash memory for program storage clock generator - often an oscillator for a quartz timing crystal, resonato
57、r or RC circuit many include analog-to-digital converters .This integration drastically reduces the number of chips and the amount of wiring and PCB space that would be needed to produce equivalent systems using separate chips and have proved to be highly popular in embedded systems since their intr
58、oduction in the 1970s. Some microcontrollers can afford to use a Harvard architecture: separate memory buses for instructions and data, allowing accesses to take place concurrently. The decision of which peripheral to integrate is often difficult. The Microcontroller vendors often trade operating fr
59、equencies and system design flexibility against time-to-market requirements from their customers and overall lower system cost. Manufacturers have to balance the need to minimize the chip size against additional functionality. Microcontroller architectures are available from many different vendors i
60、n so many varieties that each instruction set architecture could rightly belong to a category of their own. Chief among these are the 8051, Z80 and ARM derivatives.citation needed A microcontroller (also MCU or C) is a functional computer system-on-a-chip. It contains a processor core, memory, and p
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026內(nèi)蒙古鄂爾多斯鄂托克旗文旅產(chǎn)業(yè)投資有限責(zé)任公司招聘2人備考題庫附答案詳解
- 2026安徽蚌埠市固鎮(zhèn)縣楊廟鎮(zhèn)面向全縣選聘村黨組織書記后備力量4人備考題庫及參考答案詳解
- 2026江西新余市綜合檢驗檢測中心招聘見習(xí)生5人備考題庫及答案詳解1套
- 2025安徽城市管理職業(yè)學(xué)院引進高層次人才10人備考題庫及參考答案詳解
- 2026江蘇揚州市興業(yè)勞務(wù)派遣有限公司招聘3人備考題庫及1套參考答案詳解
- 2026國家電投集團重慶公司招聘3人備考題庫附答案詳解
- 2025年南昌市高中體育與健康體能測試標準試卷及答案
- 助聽器技術(shù)操作能力考核要點試題及答案
- 北師大版2025年小學(xué)科學(xué)天文觀測記錄試題及答案
- 船舶自動駕駛系統(tǒng)工程師考試試題及答案
- GB/T 2988-2023高鋁磚
- 東風(fēng)7電路圖解析
- 數(shù)字填圖系統(tǒng)新版(RgMap2.0)操作手冊
- YY/T 1778.1-2021醫(yī)療應(yīng)用中呼吸氣體通路生物相容性評價第1部分:風(fēng)險管理過程中的評價與試驗
- FZ/T 73009-2021山羊絨針織品
- JJF 1069-2012 法定計量檢定機構(gòu)考核規(guī)范(培訓(xùn)講稿)
- GB∕T 5900.2-2022 機床 主軸端部與卡盤連接尺寸 第2部分:凸輪鎖緊型
- 2011-2015廣汽豐田凱美瑞維修手冊wdl
- DFMEA編制作業(yè)指導(dǎo)書新版
- DB35∕T 1844-2019 高速公路邊坡工程監(jiān)測技術(shù)規(guī)程
- 城市管理綜合執(zhí)法局城管執(zhí)法與執(zhí)法程序PPT模板
評論
0/150
提交評論