




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機實訓(xùn)報告 簡易計算器姓 名 * 學(xué) 號 * 專 業(yè) * 學(xué) 校 * 指導(dǎo)教師 * 實訓(xùn)時間 2014.06.23-2014.06.29 目錄中文摘要1關(guān)鍵詞 1 2.1 方案論證1 2.2 系統(tǒng)框圖23 控制軟件設(shè)計 2 3.1 程序時序總圖 2 3.2 液晶顯示軟件設(shè)計3 3.3 鍵盤輸入軟件設(shè)計 5 3.4 計算函數(shù)設(shè)置 74 軟件調(diào)試8個人小結(jié)8參考文獻9附錄9專心-專注-專業(yè)摘 要:計算器是人們的日常生活中是最常見的電子產(chǎn)品之一,它應(yīng)用極廣、發(fā)展迅猛,并且不斷出現(xiàn)著擁有更加強大功能的計算器。為了解和研究計算器,本次實訓(xùn)設(shè)計制作了一個簡易計算器,能夠在五位
2、的計算范圍內(nèi)進行“+”、“-”、“*”、“/”的基本運算,能進行負(fù)數(shù)的精確結(jié)果顯示。該計算器以AT89C51單片機芯片作為核心。采用LCD1602工業(yè)字符液晶進行顯示。完成的計算器經(jīng)過檢驗?zāi)軌蛲暾膶崿F(xiàn)預(yù)設(shè)功能,各種細(xì)節(jié)完善,具有很高的使用價值。關(guān)鍵詞:單片機;簡易計算器;AT89C51;LCD16021實訓(xùn)任務(wù)1.1 主要功能設(shè)計以AT89C51單片機芯片為核心來制作一個簡易計算器,外部由4*4矩陣鍵盤和一個LCD1602工業(yè)字符型液晶顯示屏構(gòu)成,內(nèi)部由一塊AT89C51單片機構(gòu)成,通過軟件編程可實現(xiàn)簡單加減乘除。1.2 任務(wù)目的通過本次實訓(xùn)提高我們的單片機硬件設(shè)計、軟件編程能力,自主學(xué)習(xí)到
3、更多的單片機應(yīng)用知識。2 整體設(shè)計方案2.1 方案論證計算器電路包括三個部分:顯示電路、4*4鍵掃描電路、單片機微控制電路。 具體如下:(1)LCD顯示電路LCD1602作為一個成熟的產(chǎn)品,使用簡單,模式固定,便于移植到各種類型的程序,但是初學(xué)者往往要注意結(jié)合LCD本身的時序圖來完善初始化程序。又以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,故采用LCD.(2)4*4鍵盤掃描電路對鍵盤上的某一行送低電平,其他行為高電平,然后讀取列值。若列值中有一位是低,則表明該行與低電平對應(yīng)列的鍵被按下;否則,掃描下一行。根據(jù)讀到的值組合就可以查表1 得到的鍵碼,因為編程的方式,本次實訓(xùn)采用逐行掃描來
4、讀取鍵值,方便程序編寫。(3)單片機微控制電路:微控制電路就是以AT89C51為核心的控制核心,主要注意晶振電路的接法和復(fù)位電路的接法。2.2 系統(tǒng)框圖51系列單片機系統(tǒng)4*4鍵盤LCD顯示 時鐘電路復(fù)位電路系統(tǒng)框圖3 控制軟件設(shè)計:實訓(xùn)中采用C語言對單片機進行編程,采用的是自下而上的設(shè)計方式,先設(shè)計出每一個模塊(子程序),然后再慢慢擴大,最后組成程序。3.1 程序總時序圖3.2 液晶顯示軟件設(shè)計(1)顯示流程液晶初始化調(diào)用顯示字序液晶顯示結(jié)束開始(2)1602液晶顯示時序圖,通過時序圖,所有編程問題都可以得以解決。(3)由時序圖可以寫出液晶的初始化函數(shù)、功能設(shè)置函數(shù)、清屏函數(shù)、寫指令函數(shù)、寫
5、數(shù)據(jù)函數(shù)。void delay1() /采用軟件實現(xiàn)延時,5個機器周期_nop_();_nop_();_nop_();void int1() /LCD初始化lcd_w_cmd(0x3c);lcd_w_cmd(0x0c);lcd_w_cmd(0x01);lcd_w_cmd(0x06);lcd_w_cmd(0x80);unsigned char lcd_r_start() /讀狀態(tài)字unsigned char s;RW=1;delay1();RS=0;delay1();E=1;delay1();s=P1;delay1();E=0;delay1();RW=0;delay1();return(s);v
6、oid lcd_w_cmd(unsigned char com) /寫命令字unsigned char g;dog=lcd_r_start();g=g&0x80;delay(2);while(g!=0);RW=0;delay1();RS=0;delay1();E=1;delay1();P1=com;delay1();E=0;delay1();RW=1;delay(255);void lcd_w_dat (unsigned char dat) /寫數(shù)據(jù)unsigned char g;dog=lcd_r_start();g=g&0x80;delay(2);while(g!=0);R
7、W=0;delay1();RS=1;delay1();E=1;delay1();P1=dat;delay1();E=0;delay1();RW=1;delay(255);3.3 鍵盤輸入軟件設(shè)計(1)鍵盤輸入程序運行時序圖(2)鍵盤掃描程序unsigned char scan_key()unsigned char i,temp,m,n,k;bit find=0;P0=0xff;k=0x01;for(i=0;i<4;i+)P2=k;temp=P0;temp=temp&0x0f;k<<=1;if(temp!=0x00)m=i;find=1;switch(temp)case
8、 0x01:n=0;break;case 0x02:n=1;break;case 0x04:n=2;break;case 0x08:n=3;break;default:break;if(find=0) return 0xff;else return(n*4+m);3.4 計算函數(shù)設(shè)置因為只有16個健,所以計算上只設(shè)計了加減乘除的功能,下面是幾個計算的程序unsigned int jian() /減法函數(shù)if(a>=b)q=0;return(a-b);if(a<b)q=1;return(b-a);if(a2i<10&&m=0) /第一個數(shù)a=a*10+a2i;i
9、f(a2i!=14&&a2i>9) /四則運算的判斷m=1; w=a2i;if(a2i<10&&m=1) /第二個數(shù)b=b*10+a2i;if(a2i=13|o=1) /清零o=0;lcd_w_cmd(0x01);lcd_w_cmd(0x80);a=0;b=0;wan=0;qian=0;bai=0;shi=0;ge=0;m=0;sum=0;if(a2i=14) /等號l+;p=jian(); /調(diào)用減法函數(shù)switch(w)case 10:sum=a/b;break; /除法case 11:sum=a*b;break; /乘法case 12:sum=
10、p;if(q=1)lcd_w_dat('-');break; /減法case 15:sum=a+b;break; /加法default:break;wan=sum/10000; /萬位qian=(sum-wan*10000)/1000; /千位bai=(sum-wan*10000-qian*1000)/100; /百位shi=(sum-wan*10000-qian*1000-bai*100)/10; /十位ge=sum%10; /個位if(wan!=0) /萬位顯示lcd_w_dat(a1wan);lcd_w_dat(a1qian);lcd_w_dat(a1bai);lcd_w
11、_dat(a1shi);lcd_w_dat(a1ge);if(wan=0&&qian!=0) /千位顯示lcd_w_dat(a1qian);lcd_w_dat(a1bai);lcd_w_dat(a1shi);lcd_w_dat(a1ge);if(wan=0&&qian=0&&bai!=0) /百位顯示lcd_w_dat(a1bai);lcd_w_dat(a1shi);lcd_w_dat(a1ge);if(wan=0&&qian=0&&bai=0&&shi!=0) /十位顯示lcd_w_dat(a1s
12、hi);lcd_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(0xc0);if(l%2=0) /換屏lcd_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é):第一天:剛開始不知道實訓(xùn)室的電腦不行,走很多彎路,弄了整整一天,只是把教材的程序搬了上去,僅此而已,可以說,毫無收獲。第二天:早上也是毫無收獲,下午才發(fā)現(xiàn)電腦的問題,一下子就搞好了鍵盤輸入??墒?/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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 主管在企業(yè)轉(zhuǎn)型中的角色定位計劃
- 提高財務(wù)規(guī)劃準(zhǔn)確性的策略計劃
- 生物學(xué)科德育滲透計劃
- 社區(qū)服務(wù)交流計劃
- 學(xué)校社團與社會的聯(lián)系計劃
- 2025年Γ-球蛋白三類項目建議書
- 2025年垃圾分類項目發(fā)展計劃
- 2025年青霉素類抗菌藥物項目建議書
- 關(guān)于提升工作效率的內(nèi)部培訓(xùn)通知
- 高中生數(shù)學(xué)思維訓(xùn)練故事解讀
- 2022年北京海淀區(qū)高三一模物理試題和答案
- 施工工法的編寫與申報(完整版)
- 歇后語大全500條
- 學(xué)前兒童表演游戲的組織與指導(dǎo)(學(xué)前兒童游戲課件)
- 中小學(xué)教師校園安全培訓(xùn)
- 2024年北京法院聘用制審判輔助人員招聘筆試參考題庫附帶答案詳解
- 建筑用真空陶瓷微珠絕熱系統(tǒng)應(yīng)用技術(shù)規(guī)程
- (高清版)DZT 0276.13-2015 巖石物理力學(xué)性質(zhì)試驗規(guī)程 第13部分:巖石比熱試驗
- (高清版)DZT 0214-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 銅、鉛、鋅、銀、鎳、鉬
- (高清版)DZT 0017-2023 工程地質(zhì)鉆探規(guī)程
- 華為狼性培訓(xùn)課件
評論
0/150
提交評論