點擊鏈接獲取Keil源碼與Project Backups仿真圖:
https://download.csdn.net/download/qq_64505944/87715642?spm=1001.2014.3001.5503
源碼獲取
主要內(nèi)容:
本設(shè)計是以單片機AT89C51為核心的簡易計算器設(shè)計,要通過芯片AT89C51實現(xiàn)計算器程序運行來完成加、減、乘和除的簡單計算功能。
基本要求:
1、采用軟件設(shè)計與硬件設(shè)計相結(jié)合的方法。
2、熟悉掌握單片機相關(guān)操作原理。
3、完成對應(yīng)的系統(tǒng)設(shè)計,硬件設(shè)計,仿真調(diào)試。
主要參考資料:
[1] 裴巖、劉利民單片機系統(tǒng)綜合設(shè)計與實踐[J].內(nèi)蒙古大學(xué)出版.2003.1
[2] 楊國林.C語言程序設(shè)計[J].內(nèi)蒙古大學(xué)出版社.2001.9
[3] 郭天祥.新概念51單片機C語言程序[J].電子工業(yè)出版社.2009.1
完 成 期 限
指 導(dǎo) 教師簽名
課程負(fù)責(zé)人簽名
目錄
引言 1
第一章 設(shè)計原理及要求 2
1.1 設(shè)計方案的確定 2
1.2 系統(tǒng)的設(shè)計方案 2
1.3 系統(tǒng)的設(shè)計要求 2
第二章 硬件模塊設(shè)計 4
2.1 單片機AT89C51 4
2.2矩陣鍵盤的工作原理 4
2.3 鍵盤電路主要器件介紹 5
2.4 顯示電路 6
第三章 軟件設(shè)計 7
3.1 功能介紹 7
3.2系統(tǒng)流程圖 7
第四章 系統(tǒng)調(diào)試 9
4.1軟件介紹 9
4.1.1 Keil uVision4仿真軟件簡介 9
4.1.2 protues簡介 9
4.2 軟件調(diào)試 11
4.2.1 軟件分析及常見故障 11
4.2.2 仿真結(jié)果演示 12
總結(jié) 13
參考文獻(xiàn) 14
引言
計算工具最早誕生于中國,中國古代最早采用的一種計算工具叫籌策,也被叫做算籌。這種算籌多用竹子制成,也有用木頭,獸骨充當(dāng)材料的,約二百七十枚一束,放在布袋里可隨身攜帶。另外直到今天仍在使用的珠算盤,是中國古代計算工具領(lǐng)域中的另一項發(fā)明,明代時的珠算盤已經(jīng)與現(xiàn)代的珠算盤幾乎相同。
近幾年單片機技術(shù)的發(fā)展很快,其中電子產(chǎn)品的更新速度迅猛。計算器是日常生活中比較的常見的電子產(chǎn)品之一。如何才能使計算器技術(shù)更加的成熟,充分利用已有的軟件和硬件條件,設(shè)計出更出色的計算器呢。
17世紀(jì)初,西方國家的計算工具有了較大的發(fā)展,英國數(shù)學(xué)家納皮爾發(fā)明的“納皮爾算籌”,英國牧師奧卻德發(fā)明了圓柱型對數(shù)計算尺,這種計算尺不僅能做加、減、乘、除、乘方和開方運算,甚至可以計算三角函數(shù)、指數(shù)函數(shù)和對數(shù)函數(shù)。這些計算工具不僅帶動了計算器的發(fā)展,也為現(xiàn)代計算器發(fā)展奠定了良好的基礎(chǔ),成為現(xiàn)代社會應(yīng)用廣泛的計算工具。1642年,年僅19歲的法國偉大科學(xué)家帕斯卡引用算盤的原理,發(fā)明了第一部機械式計算器,在他的計算器中有一些互相聯(lián)鎖的齒輪,一個轉(zhuǎn)過十位的齒輪會使另一個齒輪轉(zhuǎn)過一位,人們可以像撥電話號碼盤那樣,把數(shù)字撥進(jìn)去,計算結(jié)果就會出現(xiàn)在另一個窗口中,但是它只能做加減運算。1694年,萊布尼茲在德國將其改進(jìn)成可以進(jìn)行乘除的計算。此后,一直到20世紀(jì)50年代末才有電子計算器的出現(xiàn)。
第一章 設(shè)計原理及要求
1.1 設(shè)計方案的確定
本設(shè)計是以單片機AT89C51為核心的簡易計算器設(shè)計,要通過芯片AT89C51實現(xiàn)計算器程序運行來完成加、減、乘和除的簡單計算功能。
本設(shè)計運算模塊由AT89C51實現(xiàn),數(shù)據(jù)輸入模塊由4*4矩陣鍵盤電路實現(xiàn),輸出數(shù)據(jù)模塊由LCD顯示電路實現(xiàn),再外加一個時鐘電路和一個復(fù)位電路完成整個簡易計算器的設(shè)計。
1.2 系統(tǒng)的設(shè)計方案
本設(shè)計由以下幾部分組成:AT89C51單片機系統(tǒng)(運算模塊)、鍵盤電路、顯示電路、時鐘電路和復(fù)位電路構(gòu)成,計算器系統(tǒng)框圖如圖1-1所示。
圖1-1 計算器系統(tǒng)框圖
1.3 系統(tǒng)的設(shè)計要求
為了更好地實現(xiàn)系統(tǒng)的功能,硬件電路的設(shè)計應(yīng)該遵循以下原則:
1、優(yōu)化硬件電路
采用軟件設(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)的平均無故障時間越長。而且,所用芯片數(shù)量越少,地址和數(shù)據(jù)總線在電路板上受干擾的可能性也就越小。因此,系統(tǒng)的設(shè)計思想是在滿足功能的情況下爭取較少數(shù)量的芯片。
3、靈活的功能擴展
功能擴展是否靈活是衡量一個系統(tǒng)優(yōu)劣的重要指標(biāo)之一。一次設(shè)計往往不能完全考慮到系統(tǒng)的各個方面,系統(tǒng)需要不斷完善以及進(jìn)行功能升級。進(jìn)行功能擴展時,應(yīng)該在原有設(shè)計的基礎(chǔ)上,通過修改軟件程序和少量硬件完成。對于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴展。
根據(jù)提出的系統(tǒng)設(shè)計方案,結(jié)合以上三條原則,確定了系統(tǒng)硬件的設(shè)計。計算器主要由以下一些功能模塊組成:非編碼鍵盤模塊、運算模塊(單片機內(nèi)部)和LCD液晶顯示模塊等。
該系統(tǒng)的硬件設(shè)計采用了模塊化的設(shè)計方法。AT89C51單片機、LCD液晶顯示屏顯示電路和鍵盤電路是整個電路的核心,它們能實現(xiàn)系統(tǒng)的功能要求。
簡易計算器主要包括:鍵盤電路、運算電路和輸出顯示電路。
第二章 硬件模塊設(shè)計
在本設(shè)計中主要用到的硬件:單片機AT89C51、液晶顯示屏LCD1602 、4*4矩陣鍵盤。
單片機AT89C51的硬件資源分配:
(1)P3口:作為輸入口,與鍵盤連接,實現(xiàn)數(shù)據(jù)的輸入;
(2)P0、P2口:作為輸出口(P2口為高位,P0口為低位),控制LCD液晶顯示屏顯示數(shù)據(jù)的結(jié)果;
(3)P1口和部分P3口:作為液晶顯示屏LCD1602顯示輸出。
2.1 單片機AT89C51
本設(shè)計所用單片機采用AT89C51單片機,它兼容于MCS-51系列單片機,而且具有1000次可擦寫的FLASHMEMORY,方便于系統(tǒng)的開發(fā)以及參數(shù)的修改。盡管它是8位機,但它的處理精度完全滿足系統(tǒng)的設(shè)計要求。該種單片機的最高頻率可達(dá)到24MHz。在12MHz時,其處理速度完全達(dá)到設(shè)計要求,AT89C51的實物圖及引腳圖如圖2-1所示。
2.2矩陣鍵盤的工作原理
鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個以上)和專用驅(qū)動芯片的組合;當(dāng)按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。
通用計算機使用的鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口HD7279均可以組成編碼鍵盤,同時還可以兼顧數(shù)碼管的顯示驅(qū)動,其相關(guān)的接口電路和接口軟件均可在芯片資料中得到。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時,采用編碼鍵盤可以簡化軟件設(shè)計。
而非編碼鍵盤成本低廉。從簡易和成本角度出發(fā),本設(shè)計選用的是非編碼鍵盤。如圖2-2所示。一般由16個鍵組成,在單片機中正好可以用一個P口實現(xiàn)16個按鍵功能,這種形式在單片機系統(tǒng)中也最常用。其矩陣圖所對應(yīng)的仿真圖如圖2-1所示。
圖2-1 矩陣鍵盤內(nèi)部電路圖
2.3 鍵盤電路主要器件介紹
為了進(jìn)一步節(jié)省單片機I/O口資源,我們在設(shè)計中使用了MM74C922芯片。MM74C922是一款44鍵盤掃描IC,它可檢測到與之相連的44鍵盤的按鍵輸入,并通過數(shù)據(jù)輸出口將按鍵相應(yīng)的編碼輸出。其引腳圖如圖2-4所示。
圖2-2 MM74C922芯片引腳圖
2.4 顯示電路
當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時,采用LCD液晶顯示屏進(jìn)行顯示是一種經(jīng)濟實用的方法。P1口作為液晶顯示的數(shù)據(jù)端口,P3.4-P3.6口作為其控制端口,控制LCD液晶顯示屏顯示輸出數(shù)據(jù)。
顯示電路圖如圖2-3所示。
圖2-3 LCD液晶顯示電路
第三章 軟件設(shè)計
3.1 功能介紹
實際運用中人們熟悉的計算器,其功能主要如下:
1、鍵盤輸入;
2、顯示數(shù)值;
3、加、減、乘、除四則運算;
4、對錯誤輸入和輸出的控制及提示。
3.2系統(tǒng)流程圖
在軟件設(shè)計中程序分別要完成鍵盤輸入檢測、LCD初始化及顯示、算術(shù)運算和錯誤處理及輸出等功能。對主程序進(jìn)行初始化,其他的程序選擇模塊式的方式。首先對每個模塊進(jìn)行調(diào)試,當(dāng)模塊調(diào)試成功后,逐一地加入主程序中,最后完成整個軟件部分的設(shè)計。系統(tǒng)流程圖如圖3-1所示。
圖3-1 系統(tǒng)流程圖
第四章 系統(tǒng)調(diào)試
4.1軟件介紹
4.1.1 Keil uVision4仿真軟件簡介
Keil uVision4是德國Keil公司開發(fā)的基于Windows平臺的單片機集成開發(fā)環(huán)境,它包含一個高效的編譯器、一個項目管理器和一個MAKE工具。其中Keil C51是一種專門為單片機設(shè)計的高效率C語言編譯器,符合ANSI標(biāo)準(zhǔn),生成的程序代碼運行速度極高,所需要的存儲器空間極小,完全可以與匯編語言媲美。Keil uVision5的界面如圖4-1所示,Keil uVision4允許同時打開、瀏覽多個源文件。
圖4-1 Keil uVision的界面
4.1.2 protues簡介
protues軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。它是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年已經(jīng)增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器,界面圖如圖4-2所示。
圖4-2 protues界面圖
4.2 軟件調(diào)試
4.2.1 軟件分析及常見故障
在此次設(shè)計中使用Keil uVision4和Proteus軟件仿真,其中使用Keil uVision4軟件編譯源程序,使用Proteus軟件對硬件電路進(jìn)行模擬。正確連接電路圖,使其能按照題目要求及設(shè)計初衷正常工作。
通過編譯,連接程序。使其生成.hex文件,并連入連好的Proteus圖中。測試該計算器是否能正常工作。若不能,首先要檢查有沒有漏掉元器件,元器件是否都連接好。其次,要看元件各引腳是否都連接正確,有無接反的。最后要看元件的參考值是否選擇合理,電源電壓是否能帶動元器件正常工作。
系統(tǒng)仿真圖如圖4-3所示。
圖4-3 系統(tǒng)仿真圖
4.2.2 仿真結(jié)果演示
下面以加、減、乘和除分別做仿真演示:
(1)加法:以2和8作為加數(shù)和被加數(shù)運算,結(jié)果為10。加法仿真結(jié)果圖如圖4-4所示。
圖4-4 加法仿真結(jié)果圖
(2)減法:以2和1作為被減數(shù)和減數(shù)運算,結(jié)果為1。減法仿真結(jié)果圖如圖4-5所示。
圖4-5 減法仿真結(jié)果圖
(3)乘法:以2和8作為乘數(shù)和被乘數(shù)運算,結(jié)果為16。乘法結(jié)果仿真圖如圖4-6所示。
圖4-6 乘法結(jié)果仿真圖
(4)除法:以2和1作為被除數(shù)和除數(shù)運算,結(jié)果為2。除法結(jié)果仿真圖如圖4-7所示。
圖4-7 除法結(jié)果仿真圖
由以上四種運算結(jié)果可知軟件仿真均正確,沒有顯示錯誤。文章來源:http://www.zghlxwxcb.cn/news/detail-472632.html
總結(jié)
通過這次簡易計算器的設(shè)計,很大程度的提高了我的理解力和動手能力,也拓寬了知識面。在圖書館和網(wǎng)上查閱資料使我了解了更多的資料,也方便了我們以后的使用。在查詢的資料中讓我對單片機有了更深入的了解,能把學(xué)到的知識用活,而不只局限于理論方面。
在硬件的制作過程中我走了好多的彎路,主要是在系統(tǒng)還沒有設(shè)計很有把握就開始動手制作了。后來發(fā)現(xiàn)與設(shè)計的要求還有偏差,反復(fù)的改過了幾次,浪費了大量的時間和體力。感受到設(shè)計人員要有耐心,要認(rèn)真的從要求開始研究。軟件的編寫過程中費了很大的力氣,因為軟件的編寫要求很高,要很細(xì)心,一不小心就會調(diào)用錯誤,很深刻的體會到作為軟件編程人員是絕不能粗心大意的。一個程序的完成的速度和質(zhì)量高低與細(xì)心與否有著很大聯(lián)系。
編程時,充分使用了結(jié)構(gòu)化的思想。這樣一來,因為語句較少,程序調(diào)試也比較方便,功能模塊可以逐一地調(diào)試,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢。當(dāng)每個模塊都完成時,將其功能互相整合就完成了整體的設(shè)計。經(jīng)歷了從最初的不了解設(shè)計內(nèi)容到最后做出仿真結(jié)果的過程使我從根本上提高了對專業(yè)的認(rèn)識及興趣,對于我們工科學(xué)生來說,學(xué)習(xí)了這些對我們以后工作有重大的影響。很感謝學(xué)校和老師給我們提供了這樣的平臺,能使我們的動手能力增強。感謝老師對我們提供的幫助。
參考文獻(xiàn)
[1] 裴巖、劉利民單片機系統(tǒng)綜合設(shè)計與實踐[J].內(nèi)蒙古大學(xué)出版.2003.1
[2] 楊國林.C語言程序設(shè)計[J].內(nèi)蒙古大學(xué)出版社.2001.9
[3] 郭天祥.新概念51單片機C語言程序[J].電子工業(yè)出版社.2009.1
[4] 基于單片機的簡易計算器設(shè)計.http://www.doc88.com/p-14265767228.html
[5] 計算器模擬系統(tǒng)設(shè)計. http://www.doc88.com/p-90657023744.html
[9] 基于單片機的計算器. http://www.doc88.com/p-48737185877.html
[10] AT89C51單片機簡介http://www.hbfydz.com/xxyd/103.htm文章來源地址http://www.zghlxwxcb.cn/news/detail-472632.html
到了這里,關(guān)于基于AT89C51單片機的簡易計算機設(shè)計的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!