




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要當(dāng)今社會(huì),隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進(jìn)了家家戶戶,無論是生活或?qū)W習(xí),還是娛樂和消遣幾乎樣樣都離不開電子產(chǎn)品,大型復(fù)雜的計(jì)算能力是人腦所不能勝任的,而且比較容易出錯(cuò)。計(jì)算器作為一種快速通用的計(jì)算工具方便了用戶的使用。計(jì)算器可謂是我們最親密的電子伙伴之一。本設(shè)計(jì)著重在于分析計(jì)算器軟件和開發(fā)過程中的環(huán)節(jié)和步驟,并從實(shí)踐經(jīng)驗(yàn)出發(fā)對(duì)計(jì)算器設(shè)計(jì)做了詳細(xì)的分析和研究。單片機(jī)由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中。單片微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。本系統(tǒng)
2、采用AT89C52設(shè)計(jì)計(jì)算器控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際輸入值顯示,簡(jiǎn)單運(yùn)算的功能。關(guān)鍵詞:電子;微控制器;AT89C52單片機(jī);四則運(yùn)算器;正文一、設(shè)計(jì)目的和要求課程設(shè)計(jì)是單片機(jī)課程教學(xué)的最后一個(gè)環(huán)節(jié),是對(duì)學(xué)生進(jìn)行全面的系統(tǒng)的訓(xùn)練。進(jìn)行課程設(shè)計(jì)可以讓學(xué)生把學(xué)過的比較零碎的知識(shí)系統(tǒng)化,真正的能夠把學(xué)過的知識(shí)落到實(shí)處,能夠開發(fā)簡(jiǎn)單的系統(tǒng),也進(jìn)一步激發(fā)了學(xué)生再深一步學(xué)習(xí)的熱情,因此課程設(shè)計(jì)是必不少的,是非常必要的。本次課程設(shè)計(jì)是設(shè)計(jì)一個(gè)簡(jiǎn)易的四則運(yùn)算計(jì)算器,四則運(yùn)算器設(shè)計(jì)要求:用AT89C51單片機(jī)設(shè)計(jì)一個(gè)簡(jiǎn)易的一位四則運(yùn)算器,擴(kuò)展4×4個(gè)鍵,分別表示為09、+、-、×、÷
3、;、RESULT、CLEAR,并連接兩個(gè)數(shù)碼管。具體要求如下:(1)按CLEAR,數(shù)碼管顯示“0”,表示系統(tǒng)清零;(2)分別按數(shù)字鍵、運(yùn)算符鍵、數(shù)字鍵、RESULT鍵后,在數(shù)碼管上顯示其運(yùn)算結(jié)果。二、系統(tǒng)總體設(shè)計(jì)方案本次設(shè)計(jì)的簡(jiǎn)易的四則運(yùn)算器,其只限于兩位數(shù)的數(shù)值運(yùn)算,并在數(shù)碼管上實(shí)現(xiàn)了顯示,可以顯示兩次輸入的數(shù)值,輸入計(jì)算符則數(shù)碼管清除,無法顯示小數(shù),無法顯示負(fù)數(shù)值。圖1.單片機(jī)功能示意圖三、單片機(jī)的概述:系統(tǒng)采用AT89C51單片機(jī),該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,所以是
4、一種高效微控制器。 主要有以下特性:1、與MCS-51 兼容,2、4K字節(jié)可編程FLASH存儲(chǔ)器,3、全靜態(tài)工作:0Hz-24MHz,4、128×8位內(nèi)部RAM, 5、32可編程I/O線, 6、兩個(gè)16位定時(shí)器/計(jì)數(shù)器, 7、5個(gè)中斷源, 8、片內(nèi)振蕩器和時(shí)鐘電路。 各管腳說明如下:VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)
5、P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位
6、。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程
7、脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器
8、(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。管腳示意圖電源電路部分在各種電子設(shè)備中,直流穩(wěn)壓電源是必不可少的組成部分,它是電子設(shè)備唯一能量來源,它的設(shè)計(jì)思路是根據(jù)我們以前學(xué)過的模電電子技術(shù),要想得到我們所要的+6V輸出電壓,就需將交流220V的電壓經(jīng)過變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)部分。按鍵模塊計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,為此,我們引入了矩陣4&
9、#215;4鍵盤的應(yīng)用,采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為4×4個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。當(dāng)無按鍵閉合時(shí),P10P13與P14P17之間開路。當(dāng)有鍵閉合時(shí),與閉合鍵相連的兩條I/O口線之間短路。判斷有無按鍵按下的方法是:第一步,置列線P14P17為輸入狀態(tài),從行線P10P13輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P14P17讀入數(shù)據(jù),若有某一列為低電平,則對(duì)應(yīng)行線上有鍵按下。綜合一二兩步的結(jié)果,可確定
10、按鍵編號(hào)。但是鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會(huì)連續(xù)多次進(jìn)行同樣的鍵操作。鍵盤電路示意圖顯示模塊數(shù)碼管是顯示屏其中一類, 通過對(duì)其不同的管腳輸入相對(duì)的電流,會(huì)使其發(fā)亮,從而顯示出數(shù)字,由于它的價(jià)格便宜,使用簡(jiǎn)單所以本次設(shè)計(jì)采用數(shù)碼管來進(jìn)行顯示。數(shù)字09的共陽極字形代碼如下表:五、軟件流程圖數(shù)碼管顯示求值結(jié)果結(jié)果賦值給key數(shù)碼管清理顯示0判斷鍵值add=sub=mul=div=0;延時(shí)消抖鍵盤按下開始Key1=key;數(shù)字賦值給key,并在數(shù)碼管上顯示YY判斷是否重復(fù)數(shù)字鍵按下加法時(shí):add=1;減法時(shí):sub=1;乘法時(shí):mul=
11、1;乘法時(shí):div=1;數(shù)字賦值給key,并在數(shù)碼管上顯示N運(yùn)算符 數(shù)字鍵判斷add,sub, mul,div的值是否等于1清零鍵add=1時(shí),作加法運(yùn)算;sub=1時(shí),作減法運(yùn)算;mul=1時(shí),作乘法運(yùn)算;div=1時(shí),作除法運(yùn)算;求值符號(hào)6、 源程序#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /數(shù)碼管共陽極段碼int
12、 flag,add=0,sub=0,mul=0,div=0,clean=0;float key1;sbit P23=P23;sbit P22=P22;uchar key,kcode; /初始化/延時(shí)函數(shù)void delay() uchar i; for(i=0;i<255;i+);/鍵盤掃描void key_saomiao()P1=0xfe;if(P1&0xf0)!=0xf0)delay(); if(P1&0xf0)!=0xf0) kcode=P1; switch(kcode)case 0xee:key=7;flag=0;break;case 0xde:key=8;fla
13、g=0;break;case 0xbe:key=9;flag=0;break; /如果是數(shù)字鍵,flag標(biāo)記為0case 0x7e:flag=1;break; /如果是計(jì)算功能鍵,flag標(biāo)記為其他/掃描第一行P1=0xfd;if(P1&0xf0)!=0xf0)delay();if(P1&0xf0)!=0xf0) kcode=P1; switch(kcode)case 0xed:key=4;flag=0;break;case 0xdd:key=5;flag=0;break;case 0xbd:key=6;flag=0;break;case 0x7d:flag=2;break;
14、/掃描第二行 P1=0xfb; if(P1&0xf0)!=0xf0)delay(); if(P1&0xf0)!=0xf0) kcode=P1; switch(kcode)case 0xeb:key=1;flag=0;break;case 0xdb:key=2;flag=0;break;case 0xbb:key=3;flag=0;break;case 0x7b:flag=3;break; /掃描第三行P1=0xf7; if(P1&0xf0)!=0xf0)delay(); if(P1&0xf0)!=0xf0) kcode=P1; switch(kcode)case
15、 0xe7:flag=4;break;case 0xd7:key=0;flag=0;break;case 0xb7:flag=5;break;case 0x77:flag=6;break; /掃描第四行 void seg_xs(uchar keyno)int num1,num2;/while(!clean)num1=keyno/10;num2=keyno%10;P23=0; P0=segnum2;delay();P23=P23;P22=0; P0=segnum1;delay();P22=P22;delay();/數(shù)碼管顯示函數(shù)void resultt()if(key<100)if(add
16、) /加法key=key1+key; if(sub)/減法key=key1-key; if(mul)/乘法key=key1*key;if(div) /除法key=key1/key;seg_xs(key); /數(shù)碼管顯示數(shù)值add=sub=mul=div=clean=0;elseP0=0x00;/數(shù)碼管置零void main()/主函數(shù)while(1)key_saomiao(); switch(flag)case 0:seg_xs(key);break;case 1:add=1;key1=key;break;case 2:sub=1;key1=key;break; case 3:mul=1;key1=key;break; case 4:clean=1;key=0;seg_xs(key);break;case 5:resultt();break;case 6:div=1;key1=key;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 嵌入式設(shè)計(jì)課題報(bào)告范文
- 個(gè)人分包旅游線路策劃與推廣合作協(xié)議(2025年)
- 2025年度股份轉(zhuǎn)讓與綠色金融支持合作框架協(xié)議
- 二零二五年度互聯(lián)網(wǎng)行業(yè)個(gè)人工資股權(quán)激勵(lì)合同
- 2025年度旅游區(qū)經(jīng)營(yíng)權(quán)全面承包合同實(shí)施細(xì)則
- 景區(qū)項(xiàng)目合作協(xié)議書(2025年度)文化體驗(yàn)活動(dòng)組織
- 2025年度汽車租賃經(jīng)銷商授權(quán)與服務(wù)規(guī)范合同
- 2025年度花店企業(yè)花卉市場(chǎng)調(diào)研與營(yíng)銷策劃合同
- 2025年度水井維修保養(yǎng)承包服務(wù)合同
- 二零二五年度養(yǎng)老服務(wù)業(yè)墊資協(xié)議
- GB/T 24803.4-2013電梯安全要求第4部分:評(píng)價(jià)要求
- GB/T 13814-1992鎳及鎳合金焊條
- GB/T 1348-1988球墨鑄鐵件
- 獻(xiàn)給媽媽的愛doc資料
- Unit 4 History and Traditions Reading and thinking 課件- 高中英語人教版(2019)必修第二冊(cè)
- 世界文明與世界宗教課件
- JCI醫(yī)院評(píng)審標(biāo)準(zhǔn)-
- 北師大版二年級(jí)數(shù)學(xué)下冊(cè)導(dǎo)學(xué)案全冊(cè)
- 線性代數(shù)電子教案(全套)課件
- 小學(xué)六年級(jí)綜合實(shí)踐有趣的魔方世界課件
- (新版)國(guó)網(wǎng)網(wǎng)絡(luò)安全攻防學(xué)習(xí)考試題庫(含答案)
評(píng)論
0/150
提交評(píng)論