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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、單片機實訓報告簡易計算器指導教師實訓時間目錄中文摘要1關(guān)鍵詞 11 實訓任務11.1主要功能設計11.2任務目的12整體設計方案12.1 方案論證13控制軟件設計 23.1 程序時序總圖 23.2 液晶顯示軟件設計 33.3 鍵盤輸入軟件設計 53.4計算函數(shù)設置74軟件調(diào)試8個人小結(jié)8參考文獻9附錄9摘 要:計算器是人們的日常生活中是最常見的電子產(chǎn)品之一,它應用極廣、發(fā)展迅猛,并且不斷出現(xiàn)著擁有更加強大功能的計算器。為了解和研究計算器,本 次實訓設計制作了一個簡易計算器,能夠在五位的計算范圍內(nèi)進行“+ ”、“-”、“ "、“/”的基本運算,能進行負數(shù)的精確結(jié)果顯示。該計算器以AT8

2、9C51單片機芯片作為核心。采用 LCD1602工業(yè)字符液晶進行顯示。完成的計算器經(jīng)過 檢驗能夠完整的實現(xiàn)預設功能,各種細節(jié)完善,具有很高的使用價值。關(guān)鍵詞:單片機 簡易計算器;AT89C51; LCD16021實訓任務1.1主要功能設計以AT89C51單片機芯片為核心來制作一個簡易計算器,外部由 4*4矩陣鍵 盤和一個LCD1602工業(yè)字符型液晶顯示屏構(gòu)成,內(nèi)部由一塊 AT89C51單片機構(gòu) 成,通過軟件編程可實現(xiàn)簡單加減乘除。1.2任務目的通過本次實訓提高我們的單片機硬件設計、軟件編程能力,自主學習到更多的單片機應用知識。2整體設計方案2.1方案論證計算器電路包括三個部分:顯示電路、4*4

3、鍵掃描電路、單片機微控制電路具體如下:(1)LCD顯示電路LCD1602作為一個成熟的產(chǎn)品,使用簡單,模式固定,便于移植到各種類型 的程序,但是初學者往往要注意結(jié)合 LCD本身的時序圖來完善初始化程序。又 以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,故采用 LCD.(2)4*4鍵盤掃描電路對鍵盤上的某一行送低電平,其他行為高電平,然后讀取列值。若列值中有 一位是低,則表明該行與低電平對應列的鍵被按下;否則,掃描下一行。根據(jù)讀到的值組合就可以查表 1得到的鍵碼,因為編程的方式,本次實訓 采用逐行掃描來讀取鍵值,方便程序編寫。(3)單片機微控制電路:微控制電路就是以AT89C51為核心的

4、控制核心,主要注意晶振電路的接法 和復位電路的接法。2.2系統(tǒng)框圖系統(tǒng)框圖3控制軟件設計:實訓中采用C語言對單片機進行編程,采用的是自下而上的設計方式,先 設計出每一個模塊(子程序),然后再慢慢擴大,最后組成程序。3.1程序總時序圖3.2液晶顯示軟件設計(1) 顯示流程(2) 1602液晶顯示時序圖,通過時序圖,所有編程問題都可以得以解決。(3) 由時序圖可以寫出液晶的初始化函數(shù)、功能設置函數(shù)、清屏函數(shù)、寫 指令函數(shù)、寫數(shù)據(jù)函數(shù)。void delay1()/采用軟件實現(xiàn)延時,5個機器周期_nop_();_nop_();_nop_();void int1()/LCD 初始化Icd_w_cmd(0

5、x3c);lcd_w_cmd(0x0c);lcd_w_cmd(OxO1);lcd_w_cmd(0x06);lcd_w_cmd(0x80);/讀狀態(tài)字un sig ned char lcd_r_start()un sig ned char s;RW=1;delay1();RS=0;delay1();E=1;delay1();s=P1;delay1();E=0;delay1();RW=0;delay1();return(s);/寫命令字void lcd_w_cmd( un sig ned char com)un sig ned char g;dog=lcd_r_start();g=g&0x

6、80;delay(2);while(g!=0);RW=0;delay1();RS=0;delay1();E=1;delay1();P仁com;delay1();E=0;RW=1;delay(255);/寫數(shù)據(jù)void lcd_w_dat (un sig ned char dat)un sig ned char g;dog=lcd_r_start();g=g&0x80;delay(2);while(g!=0);RW=0;delay1();RS=1;delay1();E=1;delay1();P仁dat;E=0;delay1();RW=1; delay(255);3.3鍵盤輸入軟件設計(1

7、) 鍵盤輸入程序運行時序圖(2) 鍵盤掃描程序un sig ned char sea n_key()un sig ned char i,temp, m,n,k;bit fin d=0;P0=0xff;k=0x01;for(i=0;i<4;i+)P2=k;temp=P0;temp=temp&0 xOf; k<<=1;if(temp!=0x00)m=i;fin d=1;switch(temp)case 0x01: n=0;break; case 0x02:n=1;break; case 0x0 4:n=2;break;case 0x08 :n=3;break; defau

8、lt:break;if(fin d=0) retur n 0xff;else return( n*4+m);3.4計算函數(shù)設置因為只有16個健,所以計算上只設計了加減乘除的功能, 序F面是幾個計算的程un sig ned int jia n() if(a>=b)q=o;return(a-b);if(a<b)q=1;return(b-a);if(a2i<10&&m=0)a=a*10+a2i;if(a2i!=14&&a2i>9)m=1; w=a2i;/減法函數(shù)/第一個數(shù)/四則運算的判斷b=b*10+a2i;if(a2i=13|o=1)/清零o

9、=0;lcd_w_cmd(0x01);lcd_w_cmd(0x80);a=0;b=0;wa n=0 ;qia n=0;bai=0;shi=0;ge=0;m=0;sum=0;if(a2i=14)/等號l+;P=jia n();/調(diào)用減法函數(shù)switch(w)case 10:sum=a/b;break;/除法case 11:sum=a*b;break;/乘法case 12:sum=p;if(q=1)lcd_w_dat('-');break;/ 減法case 15:sum=a+b;break;/加法default:break;qia n=(sum-wa n*10000)/1000;/

10、千位bai=(sum-wa n*10000-qia n*1000)/100;shi=(sum-wa n*10000-qia n*1000-bai*100)/10;ge=sum%10;/ 個位if(wan !=0)/萬位顯示Icd_w_dat(a1wa n);Icd_w_dat(a1qia n);Icd_w_dat(a1bai);Icd_w_dat(a1shi);Icd_w_dat(a1ge);if(wan=0&&qian!=0)/ 千位顯示Icd_w_dat(a1qia n);Icd_w_dat(a1bai);Icd_w_dat(a1shi);Icd_w_dat(a1ge);i

11、f(wa n=0&&qia n=0&&bai!=0)/Icd_w_dat(a1bai);Icd_w_dat(a1shi);Icd_w_dat(a1ge);/百位/十位百位顯示/十位顯示if(wa n=0&&qia n=0&&bai=0&&shi!=0) Icd_w_dat(a1shi);Icd_w_dat(a1ge);if(wan=0&&qian=0&&bai=0&&shi=0)/ 個位顯示lcd_w_dat(a1ge);if(l%2!=0)/ 換行l(wèi)cd_w_cmd

12、(0xc0);if(l%2=0)/ 換屏Icd_w_cmd(0x80);o=1;a=0;b=0;wan=0;qian=0;bai=0;shi=0;ge=0;m=0;sum=0; /運算完一次全部清零4軟件調(diào)試:(1) 編程前先畫了流程圖,這樣思路清晰,能按部就班的完成。(2) 子函數(shù)有顯示部分、鍵盤掃描部分和計算部分,編寫好后綜合在一起。(3) 在將程序?qū)懺谝黄鸬倪^程中,使用ISIS進行了仿真,仿真過程模擬了鍵盤的輸入,同時觀察各種情況時液晶的輸出情況。個人小結(jié):第一天:剛開始不知道實訓室的電腦不行,走很多彎路,弄了整整一天,只是把教材的程序搬了上去,僅此而已,可以說,毫無收獲 第二天:早上也是毫無收獲,下午才發(fā)現(xiàn)電腦的問題,一下子就搞好了鍵盤輸入。 可是新的問題又出現(xiàn)

溫馨提示

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

評論

0/150

提交評論