版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)實(shí)訓(xùn)報(bào)告 簡(jiǎn)易計(jì)算器姓名學(xué)號(hào)專業(yè)學(xué)校指導(dǎo)教師實(shí)訓(xùn)時(shí)間目錄TOC\o"1-5"\h\z中文摘要 1關(guān)鍵詞 12整體設(shè)計(jì)方案 1方案論證 1系統(tǒng)框圖 23控制軟件設(shè)計(jì)程序時(shí)序總圖...............................................2液晶顯示軟件設(shè)計(jì)............................................3鍵盤輸入軟件設(shè)計(jì)...........................................5計(jì)算函數(shù)設(shè)置...............................................74軟件調(diào)試........................................................8個(gè)人小結(jié)...........................................................8參考文獻(xiàn)...........................................................9附錄...............................................................9摘要:計(jì)算器是人們的日常生活中是最常見的電子產(chǎn)品之一,它應(yīng)用極廣、發(fā)展迅猛,并且不斷出現(xiàn)著擁有更加強(qiáng)大功能的計(jì)算器。為了解和研究計(jì)算器,本次實(shí)訓(xùn)設(shè)計(jì)制作了一個(gè)簡(jiǎn)易計(jì)算器,能夠在五位的計(jì)算范圍內(nèi)進(jìn)行“ +”、“-”、“*”、“/”的基本運(yùn)算,能進(jìn)行負(fù)數(shù)的精確結(jié)果顯示。該計(jì)算器以AT89C51單片機(jī)芯片作為核心。采用LCD1602工業(yè)字符液晶進(jìn)行顯示。完成的計(jì)算器經(jīng)過檢驗(yàn)?zāi)軌蛲暾膶?shí)現(xiàn)預(yù)設(shè)功能,各種細(xì)節(jié)完善,具有很高的使用價(jià)值。關(guān)鍵詞:?jiǎn)纹瑱C(jī);簡(jiǎn)易計(jì)算器;AT89C51;LCD16021實(shí)訓(xùn)任務(wù)主要功能設(shè)計(jì)以AT89C51單片機(jī)芯片為核心來制作一個(gè)簡(jiǎn)易計(jì)算器,外部由4*4矩陣鍵盤和一個(gè)LCD1602X業(yè)字符型液晶顯示屏構(gòu)成,內(nèi)部由一塊AT89C5仲片機(jī)構(gòu)成,通過軟件編程可實(shí)現(xiàn)簡(jiǎn)單加減乘除。任務(wù)目的通過本次實(shí)訓(xùn)提高我們的單片機(jī)硬件設(shè)計(jì)、軟件編程能力,自主學(xué)習(xí)到更多的單片機(jī)應(yīng)用知識(shí)。2整體設(shè)計(jì)方案2.1方案論證計(jì)算器電路包括三個(gè)部分:顯示電路、4*4鍵掃描電路、單片機(jī)微控制電路。具體如下:(1) LC[顯示電路LCD1602乍為一個(gè)成熟的產(chǎn)品,使用簡(jiǎn)單,模式固定,便于移植到各種類型的程序,但是初學(xué)者往往要注意結(jié)合LCD本身的時(shí)序圖來完善初始化程序。又以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),故采用LCD.(2) 4*4鍵盤掃描電路對(duì)鍵盤上的某一行送低電平,其他行為高電平,然后讀取列值。若列值中有一位是低,則表明該行與低電平對(duì)應(yīng)列的鍵被按下;否則,掃描下一行。根據(jù)讀到的值組合就可以查表1得到的鍵碼,因?yàn)榫幊痰姆绞?,本次?shí)訓(xùn)采用逐行掃描來讀取鍵值,方便程序編寫。(3) 單片機(jī)微控制電路:微控制電路就是以AT89C5偽核心的控制核心,主要注意晶振電路的接法和復(fù)位電路的接法。系統(tǒng)框圖系統(tǒng)框圖3控制軟件設(shè)計(jì):先設(shè)實(shí)訓(xùn)中采用C語言對(duì)單片機(jī)進(jìn)行編程,采用的是自下而上的設(shè)計(jì)方式,計(jì)出每一個(gè)模塊(子程序),然后再慢慢擴(kuò)大,最后組成程序。先設(shè)3.1程序總時(shí)序圖3.2液晶顯示軟件設(shè)計(jì)顯示流程調(diào)用顯示字序1602液晶顯示時(shí)序圖,通過時(shí)序圖,所有編程問題都可以得以解決。由時(shí)序圖可以寫出液晶的初始化函數(shù)、功能設(shè)置函數(shù)、清屏函數(shù)、寫指令函數(shù)、寫數(shù)據(jù)函數(shù)。voiddelay1() // 采用軟件實(shí)現(xiàn)延時(shí),5個(gè)機(jī)器周期{_nop_();_nop_();_nop_();}voidint1() //LCD 初始化{Icd_w_cmd(0x3c);lcd_w_cmd(0x0c);
lcd_w_cmd(0x01);lcd_w_cmd(0x06);lcd_w_cmd(0x80);讀狀態(tài)字}讀狀態(tài)字unsignedcharlcd_r_start() //{unsignedchars;RW=1;delay1();RS=0;delay1();E=1;delay1();s=P1;delay1();E=0;delay1();RW=0;delay1();delay1();return(s);寫命令字}寫命令字voidlcd_w_cmd(unsignedcharcom)//{unsignedcharg;do{g=lcd_r_start();g=g&0x80;delay(2);}while(g!=0);RW=0;delay1();RS=0;delay1();E=1;delay1();P1=com;E=0;delay1();RW=1;delay(255);}voidlcd_w_dat(unsignedchardat)//寫數(shù)據(jù){unsignedcharg;do{g=lcd_r_start();g=g&0x80;delay(2);}while(g!=0);RW=0;delay1();RS=1;delay1();E=1;delay1();P1=dat;delay1();E=0;delay1();RW=1;delay(255);}3.3鍵盤輸入軟件設(shè)計(jì)(1)鍵盤輸入程序運(yùn)行時(shí)序圖(2)鍵盤掃描程序unsignedcharscan_key(){unsignedchari,temp,m,n,k;bitfind=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){case0x01:n=0;break;case0x02:n=1;break;case0x04:n=2;break;case0x08:n=3;break;default:break;}if(find==0)return0xff;elsereturn(n*4+m);}3.4計(jì)算函數(shù)設(shè)置因?yàn)橹挥?6個(gè)健,所以計(jì)算上只設(shè)計(jì)了加減乘除的功能,下面是幾個(gè)計(jì)算的程序unsignedintjian()//減法函數(shù){if(a>=b){q=0;return(a-b);}if(a<b){q=1;return(b-a);}if(a2[i]<10&&m==0)/第一個(gè)數(shù){a=a*10+a2[i];
}if(a2[i]!=14&&a2[i]>9)//四則運(yùn)算的判斷{m=1;w=a2[i];}if(a2[i]<10&&m==1)//第二個(gè)數(shù){b=b*10+a2[i];}if(a2[i]==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(a2[i]==14)//等號(hào){l++;p=jian();//調(diào)用減法函數(shù)switch(w){case10:sum=a/b;break;//除法case11:sum=a*b;break;//乘法減法百位十位減法百位十位case12:sum=p;if(q==1)lcd_w_dat('-');break;//case15: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;//個(gè)位if(wan!=0)//萬位顯示{lcd_w_dat(a1[wan]);lcd_w_dat(a1[qian]);lcd_w_dat(a1[bai]);lcd_w_dat(a1[shi]);lcd_w_dat(a1[ge]);}if(wan==0&&qian!=0)//千位顯示{lcd_w_dat(a1[qian]);lcd_w_dat(a1[bai]);lcd_w_dat(a1[shi]);lcd_w_dat(a1[ge]);}if(wan==0&&qian==0&&bai!=0)//百位顯示{lcd_w_dat(a1[bai]);lcd_w_dat(a1[shi]);lcd_w_dat(a1[ge]);}十位顯示個(gè)位顯示if(wan==0&&qian==0&&bai==0&&shi!=0)//十位顯示個(gè)位顯示{lcd_w_dat(a1[shi]);lcd_w_dat(a1[ge]);}if(wan==0&&qian==0&&bai==0&&shi==0)//{lcd_w_dat(a1[ge]);}if(l%2!=0)//換行{lcd_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;// 運(yùn)算完一次全部清4軟件調(diào)試:(1)編程前先畫了流程圖,這樣思路清晰,能按部就班的完成。(2)子函數(shù)有顯示部分、鍵盤掃描部分和計(jì)算部分,編寫好后綜合在一起。(3)在將程序?qū)懺谝黄鸬倪^程中,使用ISIS進(jìn)行了仿真,仿真過程模擬了鍵盤的輸入,同時(shí)觀察各種情況時(shí)液晶的輸出情況。個(gè)人小結(jié):第一天:剛開始不知道實(shí)訓(xùn)室的電腦不行,走很多彎路,弄了整整一天,只是把教材的程序搬了上去,僅此而已,可以說,毫無收獲。第二天:早上也是毫無收獲,下午才發(fā)現(xiàn)電腦的問題,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報(bào)參考:金代民族交往交流交融的考古學(xué)觀察
- 課題申報(bào)參考:減稅降費(fèi)政策實(shí)施效果評(píng)估和策略優(yōu)化研究
- 二零二五版環(huán)保項(xiàng)目臨時(shí)工勞動(dòng)合同4篇
- 基于2025年度計(jì)劃的環(huán)保項(xiàng)目合作協(xié)議3篇
- 2025年智能水電表更換與數(shù)據(jù)采集服務(wù)合同4篇
- 2025年度個(gè)人退房協(xié)議書范本(適用于商業(yè)地產(chǎn))4篇
- 二零二五版建筑工程公司資質(zhì)借用與施工監(jiān)督服務(wù)協(xié)議3篇
- 二零二五年度商業(yè)綜合體場(chǎng)地租賃合同范本6篇
- 專利授權(quán)事務(wù)全權(quán)委托合同書版B版
- 2025年度排水溝施工安全協(xié)議書范本
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 商場(chǎng)電氣設(shè)備維護(hù)勞務(wù)合同
- 2023年國家公務(wù)員錄用考試《行測(cè)》真題(行政執(zhí)法)及答案解析
- 2024智慧醫(yī)療數(shù)據(jù)字典標(biāo)準(zhǔn)值域代碼
- 年產(chǎn)12萬噸裝配式智能鋼結(jié)構(gòu)項(xiàng)目可行性研究報(bào)告模板-立項(xiàng)備案
- 【獨(dú)家揭秘】2024年企業(yè)微信年費(fèi)全解析:9大行業(yè)收費(fèi)標(biāo)準(zhǔn)一覽
- 醫(yī)療器械經(jīng)銷商會(huì)議
- 《±1100kV特高壓直流換流變壓器使用技術(shù)條件》
- 1-1 擁抱夢(mèng)想:就這樣埋下一顆種子【2022中考作文最熱8主題押題24道 構(gòu)思點(diǎn)撥+范文點(diǎn)評(píng)】
- 《風(fēng)電場(chǎng)項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)規(guī)范》(NB-T 31085-2016)
評(píng)論
0/150
提交評(píng)論