![單片機(jī)課程設(shè)計(jì) 計(jì)算器課件_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f1.gif)
![單片機(jī)課程設(shè)計(jì) 計(jì)算器課件_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f2.gif)
![單片機(jī)課程設(shè)計(jì) 計(jì)算器課件_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f3.gif)
![單片機(jī)課程設(shè)計(jì) 計(jì)算器課件_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f4.gif)
![單片機(jī)課程設(shè)計(jì) 計(jì)算器課件_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f/e0c67fcf-6e1a-4dd3-942c-0540a71ce89f5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄第一章、概述11.1單片機(jī)及其特點(diǎn)概述11.2設(shè)計(jì)內(nèi)容1第二章、設(shè)計(jì)思路22.1 設(shè)計(jì)方案22.2 基本原理2第三章、硬件電路設(shè)計(jì)33.1.振蕩電路設(shè)計(jì)33.2.顯示電路設(shè)計(jì)43.3.按鍵顯示電路設(shè)計(jì)4第四章、軟件設(shè)計(jì)64.1總體概述64.2 主程序的設(shè)計(jì)64.3 液晶顯示模塊74.4 鍵盤(pán)掃描模塊8第五章、仿真10第六章、程序清單13第七章、整體電路圖35第八章、體會(huì)36第1章 、概述1.1單片機(jī)及其特點(diǎn)概述單片機(jī)是指將CPU,存儲(chǔ)器,定時(shí)器/計(jì)數(shù)器,輸入/輸出接口電路,中斷,串行通信接口等主要計(jì)算機(jī)部件集成在一塊大規(guī)模集成電路芯片上,組成單片微型計(jì)算機(jī)。它具有集成度高,功能強(qiáng),可靠性高
2、,體積小,功耗低,使用方便,價(jià)格低廉等特點(diǎn)。在實(shí)時(shí)控制系統(tǒng),智能儀器儀表,家用電器,網(wǎng)絡(luò)通信等領(lǐng)域應(yīng)用比較廣泛。 隨著單片機(jī)的問(wèn)世,更進(jìn)一步推動(dòng)了計(jì)算機(jī)的發(fā)展,標(biāo)志著計(jì)算機(jī)系統(tǒng)兩大分支的正式形成,即通用計(jì)算機(jī)系統(tǒng)和嵌入式計(jì)算機(jī)系統(tǒng),前者主要以發(fā)展海量,高速數(shù)值計(jì)算為趨勢(shì),后者主要實(shí)現(xiàn)面向?qū)ο蟮膶?shí)時(shí)控制。他是計(jì)算機(jī)技術(shù)的得到了更為廣泛的應(yīng)用。1.2設(shè)計(jì)內(nèi)容 利用單片機(jī),設(shè)計(jì)一個(gè)簡(jiǎn)易計(jì)算器,內(nèi)容包括:能夠?qū)崿F(xiàn)加、減、乘、除、平方根等基本功能;能夠在0-65535范圍之內(nèi)計(jì)算任意次方根、任意次冪;“=“號(hào)加任意數(shù)字鍵清除屏幕內(nèi)容。第二章、設(shè)計(jì)思路2.1 設(shè)計(jì)方案根據(jù)設(shè)計(jì)內(nèi)容逐個(gè)實(shí)現(xiàn)其功能。首先,計(jì)算
3、器的基本功能是加減乘除等運(yùn)算,需要確定兩個(gè)操作數(shù)和運(yùn)算符。其次就是顯示部分,本次設(shè)計(jì)使用1602液晶顯示器。本次設(shè)計(jì)將兩個(gè)操作數(shù)和運(yùn)算符顯示在1602液晶的第一行,將結(jié)果顯示在第二行。所以設(shè)計(jì)的思路便是:首先寫(xiě)入第一個(gè)操作數(shù)并保存該數(shù),其次寫(xiě)入運(yùn)算符并標(biāo)記該運(yùn)算符,再其次寫(xiě)入第二個(gè)操作數(shù)并保存,然后將結(jié)果顯示在1602液晶的第二行。2.2 基本原理 2.2.1液晶顯示用液晶顯示時(shí)間的方法就是將事件的各個(gè)位寫(xiě)入到液晶的控制器內(nèi)部帶有的80*8位的RAM緩沖區(qū)。每次時(shí)間改變之后都要重新寫(xiě)入。1602液晶顯示器的課件部分只有上下兩行,每行16個(gè)字節(jié)。第三章、硬件電路設(shè)計(jì)3.1.振蕩電路設(shè)計(jì) 在AT8
4、9C51單片機(jī)引腳XTAL1和XTAL2分別是反向放大器的輸入端和輸出端,通常,經(jīng)由片外晶體振蕩器或陶瓷諧振器與兩個(gè)相匹配的電容構(gòu)成一個(gè)自激振蕩電路,為單片機(jī)提供時(shí)鐘電源。 圖3-1 振蕩電路3.2.顯示電路設(shè)計(jì) 前面簡(jiǎn)單介紹了1602液晶顯示器的信息,現(xiàn)在介紹其工作原理。它是通過(guò)想液晶內(nèi)部自帶打RAM寫(xiě)數(shù)據(jù)來(lái)顯示時(shí)間的。在這之前我們要先對(duì)它內(nèi)部進(jìn)行一些設(shè)置。如開(kāi)關(guān),光標(biāo),是否移動(dòng),是否清頻,還有數(shù)據(jù)寫(xiě)在何處都要設(shè)置。圖3-2顯示電路 3.3.按鍵電路設(shè)計(jì) 鍵盤(pán)有兩種類(lèi)型,一種是獨(dú)立鍵盤(pán),一種是矩陣鍵盤(pán) 本次設(shè)計(jì)使用了一個(gè)矩陣鍵盤(pán)和四個(gè)是獨(dú)立鍵盤(pán),分別選用P3口和P2.2P2.5引腳作輸入引腳
5、,作為輸入。單鍵盤(pán)不按下時(shí),引腳為高電平,所以在讀取引腳電平是就判斷引腳為高電平還是低電平。若為低電平則表示按鍵按下。 圖3-3 按鍵電路第四章、軟件設(shè)計(jì)4.1總體概述依照系統(tǒng)程序劃分,將設(shè)計(jì)劃分為2個(gè)模塊,如圖4-1所示液晶顯示模塊鍵盤(pán)掃描模塊主程序模塊圖4-1設(shè)計(jì)方框圖4.2 主程序的設(shè)計(jì)主程序的內(nèi)容包括,單片機(jī)初始化,相關(guān)元器件的初始化和一些子程序的調(diào)用。定義三個(gè)個(gè)全局變量和一個(gè)標(biāo)示符,三個(gè)變量分別用于保存兩個(gè)操作數(shù)和計(jì)算結(jié)果,標(biāo)示符用于保存運(yùn)算符,調(diào)用計(jì)算函數(shù)計(jì)算結(jié)果并顯示。開(kāi)始初始化液晶1602初始化數(shù)據(jù)存儲(chǔ)單元 掃描鍵盤(pán)并保存數(shù)據(jù)子程序調(diào)用圖4-2 主程序流程圖4.3液晶顯示模塊4
6、.3.1設(shè)計(jì)思路該模塊是通過(guò)將變量寫(xiě)入液晶的內(nèi)部RAM中顯示出來(lái),單片機(jī)將操作數(shù)1,操作數(shù)2,計(jì)算結(jié)果從P1口輸出,P1口接液晶的輸入端,液晶將接受的數(shù)據(jù)進(jìn)行處理,并顯示出來(lái)。當(dāng)主程序再次調(diào)用該模塊時(shí),重新執(zhí)行該過(guò)程。4.3.2流程圖接收數(shù)據(jù)寫(xiě)指令 寫(xiě)數(shù)據(jù) 圖4-3 顯示模塊流程圖4.4鍵盤(pán)掃描模塊 4.4.1設(shè)計(jì)思路 通過(guò)判斷鍵盤(pán)是否按下,若按下,則對(duì)相關(guān)變量進(jìn)行處理。處理完后,當(dāng)程序再次調(diào)用該模塊時(shí),再重頭開(kāi)始。4.4.2流程圖判斷鍵盤(pán)是否按下 若沒(méi)按下 若按下 哪個(gè)鍵按下退出該模塊處理相關(guān)變量圖4-4 調(diào)時(shí)調(diào)鬧鐘流程圖 第五章、仿真編寫(xiě)好程序后,在PROTUES仿真軟件上進(jìn)行仿真和調(diào)試,
7、通過(guò)調(diào)試,解決程序上考慮的不足,通過(guò)仿真,我們可以檢驗(yàn)是否達(dá)到預(yù)期的結(jié)果。在調(diào)試中,主要出現(xiàn)以下幾個(gè)問(wèn)題。5.1錯(cuò)誤1:當(dāng)鍵盤(pán)上輸入7+2時(shí),按下等于鍵,結(jié)果沒(méi)有顯示在液晶第二行如圖5-1所示圖5-1液晶顯示問(wèn)題原因: 液晶在每次寫(xiě)入之前應(yīng)寫(xiě)入你所希望出現(xiàn)的位置的地址,若不寫(xiě)地址,則會(huì)出現(xiàn)圖5-1的情況。解決方案: 在寫(xiě)結(jié)果之前,先寫(xiě)入地址。解決后的顯示: 圖5-1-1 正確顯示5.2 錯(cuò)誤2: 在計(jì)算任意次冪的時(shí)候,當(dāng)輸入54時(shí),結(jié)果如圖5-2所 圖5-1任意次冪計(jì)算問(wèn)題原因:計(jì)算任意次冪時(shí),使用for循環(huán)out=1;for(b;b0;b-)out=out*10;其中out為計(jì)算結(jié)果,b為指
8、數(shù)。應(yīng)當(dāng)修改為out=1;for(b;b0;b-)out=out*a;其中out為計(jì)算結(jié)果,b為指數(shù),a為底。解決后的結(jié)果: 圖5-2-1 正確結(jié)果5.3 錯(cuò)誤3:案件在按下之后,數(shù)值并不是按預(yù)想的變化。原因分析:沒(méi)有消抖,只有加消抖函數(shù),才能使數(shù)據(jù)準(zhǔn)確變化。第六章、程序清單#include#include#define uint unsigned int#define uchar unsigned char#define ulong unsigned longsbit rs=P20;sbit en=P21;sbit ql=P22;sbit sqr=P23;/平方根sbit xy=P24;/x
9、的y次方sbit fg=P25;uchar flag,s,ws,ws1,xs,eq;/ws1,ws表示有幾位小數(shù),eq表示等于鍵是否按下double sum,aa;long double out,out1,k;signed long hh,ll;void delay(uint z)uint x,y;for(x=0;xz;x+)for(y=0;y0;ws1-)a=a/(double)10;for(ws;ws0;ws-)b=b/(double)10;if(flag=0)out=b;if(flag=1)out=a+b;else if(flag=2) out=a-b;if(out0;b-)out=ou
10、t*a;elseout=pow(a,b);/計(jì)算a的b次方else if(7=flag)out=pow(a,(double)1/b);hh=(signed long)out;temp=(double)hh;if(0=d)ll=(signed long)(out-hh)*10*10*10*10*10*10);else if(d!=0|flag=6)ll=(signed long)(out*10*10*10*10*10*10)%1000000;if(temp=out)ll=0;write_com(0x80+0x40+15);if(ll!=0)for(p=6;p0;p-)f=ll%10;if(0!=
11、f|1=bz)write_data(0x30+f); bz=1;ll=ll/10;write_data(0x20+0x0e);for(p=0;p10;p+)f=hh%10;write_data(0x30+f);hh=hh/10;if(hh=0)break;if(k0)write_data(-);write_com(0x06);void qingling()flag=0;s=0;sum=0;aa=0;out=0;out1=0;k=0;ws1=0;ws=0;eq=0;write_com(0x01);write_com(0x80);write_com(0x0f);void init()flag=0;
12、write_com(0x38);write_com(0x0f);write_com(0x06);write_com(0x01);write_com(0x80);void scan()uchar temp;P3=0xfe;temp=P3;temp=temp&0xfe;if(temp!=0xfe)delay(5);temp=P3;temp=temp&0xfe;if(temp!=0xfe)switch(temp)case 0xee:if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);
13、write_data( );write_com(0x06);s+;if(s8)write_data(0x30+1);sum=sum*10+1;if(1=xs)ws+;break;case 0xde:if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s+;if(s8)write_data(0x30+2);sum=sum*10+2;if(1=xs)ws+;break;case 0xbe:if(1=eq) qingling
14、();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s+;if(s8)write_data(0x30+3);sum=sum*10+3;if(1=xs)ws+;break;case 0x7e:if(1=eq) qingling();break;if(flag=0)aa=sum;sum=0;ws1=ws;ws=0;write_data(+);s=0;xs=0;flag=1;/加函數(shù) break; while(temp!=0xfe)temp=P3;P3=0x
15、fd;temp=P3;temp=temp&0xfd;if(temp!=0xfd)delay(5);temp=P3;temp=temp&0xfd;if(temp!=0xfd)switch(temp)case 0xed:if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s+;if(s8)write_data(0x30+4);sum=sum*10+4;if(1=xs)ws+;break;case 0xdd:if(1=eq)
16、 qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s+;if(s8)write_data(0x30+5);sum=sum*10+5;if(1=xs)ws+;break;case 0xbd:if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s+;if(s8)
17、write_data(0x30+6);sum=sum*10+6;if(1=xs)ws+;break;case 0x7d:if(1=eq) qingling();break;if(flag=0)aa=sum;sum=0;ws1=ws;ws=0;write_data(-);s=0;xs=0;flag=2;/減函數(shù)break; while(temp!=0xfd)temp=P3;P3=0xfb;temp=P3;temp=temp&0xfb;if(temp!=0xfb)delay(5);temp=P3;temp=temp&0xfb;if(temp!=0xfb)switch(temp)case 0xeb:
18、if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s+;if(s8)write_data(0x30+7);sum=sum*10+7;if(1=xs)ws+;break;case 0xdb:if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s
19、+;if(s8)write_data(0x30+8);sum=sum*10+8;if(1=xs)ws+;break;case 0xbb:if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_com(0x06);s+;if(s8)write_data(0x30+9);sum=sum*10+9;if(1=xs)ws+;break;case 0x7b:if(1=eq) qingling();break;if(flag=0)aa=sum;sum=0
20、;ws1=ws;ws=0;write_data(*);s=0;xs=0;flag=3;/乘函數(shù) break; while(temp!=0xfb)temp=P3;P3=0xf7;temp=P3;temp=temp&0xf7;if(temp!=0xf7)delay(5);temp=P3;temp=temp&0xf7;if(temp!=0xf7)switch(temp)case 0xe7:if(1=eq) qingling();break;if(xs=0)&(sum=0)&(s!=0)&(flag!=6)&(flag!=7)write_com(0x04);write_data( );write_co
21、m(0x06);s+;if(s8)write_data(0x30+0);sum=sum*10+0;if(1=xs)ws+;break;case 0xd7:if(1!=xs)if(1=eq) qingling();break;write_data(0x20+0x0e);xs=1;/小數(shù)點(diǎn)s=0;break;case 0xb7:if(1=eq) qingling();break;equalfun(aa,sum);/等于函數(shù) flag=0;xs=0;eq=1;break;case 0x77:if(1=eq) qingling();break;if(flag=0)aa=sum;sum=0;ws1=ws
22、;ws=0;write_data(/);s=0;xs=0;flag=4;/除函數(shù) break; while(temp!=0xf7)temp=P3;if(ql=0)delay(5);if(ql=0)qingling();while(!ql);if(sqr=0)delay(5);if(sqr=0)while(!sqr);if(1=eq)qingling();return;if(flag=0)flag=5;aa=sum;sum=0;ws1=ws;equalfun(aa,sum);flag=0;xs=0;eq=1;if(xy=0)delay(5);if(xy=0)while(!xy);if(1=eq)qingling();return;if(flag=0)write_data(0x5e);aa=sum;sum=0;ws1=ws;ws=0;flag=6;xs=0;if(fg=0)delay(5);if(fg=0)while(!fg);if(1=eq)qingling();return;if(flag=0)write_data(0x20);write_data
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人店面商鋪?zhàn)赓U合同常用版(2篇)
- 2025年五年級(jí)教師年度考核思想工作總結(jié)樣本(三篇)
- 2025年個(gè)人承包工地合同(2篇)
- 2025年乙方房屋租賃合同(三篇)
- 農(nóng)藥運(yùn)輸安全責(zé)任協(xié)議
- 教育科研大樓轉(zhuǎn)讓居間合同
- 咖啡廳裝修工人合同范本
- 住宅精裝修保修合同范本
- 住宅小區(qū)石材裝修協(xié)議
- 展會(huì)物流支持外包合同
- 金礦管理制度
- 橋梁樁基礎(chǔ)施工概述及施工控制要點(diǎn)
- 云南省普通初中學(xué)生成長(zhǎng)記錄模板-好ok
- SB/T 10415-2007雞粉調(diào)味料
- JB/T 20036-2016提取濃縮罐
- 考古繪圖基礎(chǔ)
- GB/T 3452.4-2020液壓氣動(dòng)用O形橡膠密封圈第4部分:抗擠壓環(huán)(擋環(huán))
- GB/T 32574-2016抽水蓄能電站檢修導(dǎo)則
- 《社會(huì)主義市場(chǎng)經(jīng)濟(jì)理論(第三版)》第十三章社會(huì)主義市場(chǎng)經(jīng)濟(jì)標(biāo)準(zhǔn)論
- 變更索賠案例分析
- 2022年4月自學(xué)考試06093《人力資源開(kāi)發(fā)與管理》歷年真題及答案
評(píng)論
0/150
提交評(píng)論