單片機簡易計算器課程設計_第1頁
單片機簡易計算器課程設計_第2頁
單片機簡易計算器課程設計_第3頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機簡易計算器課程設計課程設計題目名稱簡易計算器設計 課程名 稱單片機原理及應用 學生姓名 班級學號 2022 年 6 月 20 日名目一設計目的2 HYPERLINK l “_TOC_250004“ 二總體設計及功能介紹2 HYPERLINK l “_TOC_250003“ 三硬件仿真圖3 HYPERLINK l “_TOC_250002“ 四主程序流程圖4 HYPERLINK l “_TOC_250001“ 五程序源代碼5 HYPERLINK l “_TOC_250000“ 六課程設計體會28設計目的本設計是基于 51 系列單片機來進展的簡潔 數(shù)字計算器設計,可以完成計算器的鍵盤輸入,

2、進展加、減、乘、除六位整數(shù)數(shù)范圍內的根本四 則運算,并在 LED 上顯示相應的結果。軟件方面 使用 C 語言編程,并用 PROTUE 仿真。二總體設計及功能介紹依據(jù)功能和指標要求,本系統(tǒng)選用 MCS-51 系列單片機為主控機,實現(xiàn)對計算器的設計。具 體設計及功能如下:由于要設計的是簡潔的計算器,可以進展 四則運算,為了得到較好的顯示效果,承受 LED 顯示數(shù)據(jù)和結果;另外鍵盤包括數(shù)字鍵0 9、符號鍵+、 -、 x 、十、去除鍵和等號鍵,故只需要 16 個 按鍵即可, 設計中承受集成的計算鍵盤;執(zhí)行過程:開機顯示零,等待鍵入數(shù)值, 當鍵入數(shù)字,通過 LED 顯示出來,當鍵入+、-、 *、/運算符

3、,計算器在內部執(zhí)行數(shù)值轉換和存儲, 并等待再次鍵入數(shù)值,當再鍵入數(shù)值后將顯示鍵 入的數(shù)值,按等號就會在LED 上輸出運算結果。三硬件仿真圖硬件局部比較簡潔,當鍵盤按鍵按下時它 的那一行、那一列的端口為低電平。因此,只要 掃描行、列端口是否都為低電平就可以確定是哪 個鍵被按下。四主程序流程圖開頭初貽化考藪 -田濕丞_丿-有龍輸入、 k”w,v _ 一N二基否阿扌劍白數(shù)拿 cr址理爆存操作符熄滅數(shù)毎管顯示是否操作捋是岳號計埠結果并霊示|+-,選否 OVC 超/尊待蝕兀鍵攝下程序的主要思想是:將按鍵抽象為字符,然 后就是對字符的處理。將操作數(shù)分別轉化為字符 串存儲,操作符存儲為字符形式。然后調用 c

4、ompute。函數(shù)進展計算并返回結果。具體程序及看注釋還有流程圖五程序源代碼#inelude #inelude #ineludeisdigit函數(shù) */ #inelude atoi函數(shù) */#define uehar unsigned #define uint unsigned/*/*ehar intueharopera nd1 9, opera nd2操作數(shù) */ uchar operator ;9;/*/*操作符 */void delay(uint); uchar keysca n; void disp( void ); void buf(uint value);uint compute(

5、 uint va1,u int va2,uchar optor);ucharcodetable=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff;/*字符碼表*/ uchar dbuf 8 = 10,10,10,10,10,10,10,10;/*顯示緩存*/*延時函數(shù)*/void delay(uint z)uint x,y;for (x = z;x 0;x-)for (y = 110 ;y 0;y-);/*鍵盤掃描程序將按鍵轉化為字符并作為輸出”$”,”#”分別表示清零鍵和沒有鍵按下*/ uchar keysca

6、 nuchar skey;/*按鍵值標記變量*/ /*掃描鍵盤第 1 行*P1 = Oxfe;while (P1 & OxfO) !=有按鍵按下 */delay( 3);去抖動延時*/0 xf0)/*/*仍有鍵按下 */switch (P1)/*識別按鍵并賦值*/case Oxee : skey = ”7”; break ;case0 xde :skey=8;break;case0 xbe :skey=9;break;case0 x7e :skey=”/”;break;等待按鍵松開 */*掃描鍵盤第 2 行*P1 = Oxfd;while (P1 & OxfO) != 0 xf0)switch

7、 (P1)case 0 xed : skey =”4”;breakcase Oxdd : skey =”5”;breakcase 0 xbd :skey =”6”;breakcase 0 x7d : skey = J/*掃描鍵盤第 3 行*P1 = 0 xfb;while (P1 & OxfO) != 0 xf0)switch (P1)case 0 xeb : skey =”1”;breakcase 0 xdb : skey =”2”;breakcase 0 xbb :skey =breakcase 0 x7b : skey = J/*掃描鍵盤第 4 行*P1 = 0 xf7;while (P

8、1 & OxfO) != 0 xf0)switch (P1)case 0 xe7 : skey =”$”;breakcase 0 xd7 :skey =”O(jiān)”;breakcase 0 xb7 : skey =breakcase 0 x77 : skey =”+”;J Jreturn skey; void mainuint value1, value2, value;/* 數(shù)值 1,數(shù)值 2,結果 */uchar ckey, cut1 = 0, cut2 = 0;/*ckey 鍵盤輸入字符*/ uchar operator ;/*運算符*/uchar i, bool = 0;in it :/*g

9、oto 語句定位標簽 */buf( 0);/*初始化*/disp; value = 0;cut1 = cut2 = 0; bool = 0;for (i = 0;i 0:i-)dbufi = val% 10;val /= 10;for ( ; i 0; i-)dbufi = 10;/*顯示函數(shù)*/void disp( void )uchar bsel, n;bsel = 0 x01;for (n = 0;n 8;n + ) P2= bsel;PO=tabledbuf n; bsel =_crol_(bsel, 1);delay( 3); P0 = 0 xff;六課程設計體會接到這個課題以后,我

10、先是學習了 PROTEUS 軟件的使用,依據(jù)題目所要求來進展分析,設計, 連接電路圖,調試,最終完成計算器的仿真。接到題目后,我先是分析了題目中所涉及到 的學問以及器件,然后依據(jù)分析,到圖書館和互 聯(lián)網上搜尋了相關的內容,依據(jù)自己的設想和圖 書資料的提示,我初步設計了計算器的原理結 構,然后進展反復驗證明驗,完善了設計,然后 通過學習 PROTEU 軟件,讓我很輕松的就把握了 如何在軟件中建立原件,連線,并進展編程,調 試,仿真等工作。軟件的強大功能使得在連接電 路圖時很順當,程序編譯階段,通過提示的錯誤, 我也進展了修改,聽取同學的建議,最終無錯誤, 并對所設計的計算器電路進展了仿真。 最終順當 的實現(xiàn)了任務要求的全部功能,并且電路設計簡 單易讀,構造奇異,計算速度快。本次課程設計中,另我最難忘的是編程環(huán) 節(jié),真的是很難,開頭的時候感覺自己啥也不會, 然后打算重學習課本,但是編程不像課本習題 那樣簡潔的幾行來實現(xiàn)簡潔的功能,本次任務是 實現(xiàn)一個簡易功能的計算器,雖然只有加減乘除 四則運算,但是編程過程中卻用到了尋常所學的 全部學問,要考慮好學問之間的順接,功能之間 的聯(lián)系,還有就是編程整體的簡潔易讀,構造緊 密有序,做到以上這些,我最終體會到了教師上 課所說

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論