版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、AT89C51單片機(jī)簡易計(jì)算器的設(shè)計(jì)一、總體設(shè)計(jì)根據(jù)功能和指標(biāo)要求,本系統(tǒng)選用MCS-5保列單片機(jī)為主控機(jī)。通過擴(kuò)展必要的外圍接口電路,實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì)。具體設(shè)計(jì)如下:(1)由于要設(shè)計(jì)的是簡單的計(jì)算器,可以進(jìn)行四則運(yùn)算,為了得到較好的顯示效果,采用LCD顯示數(shù)據(jù)和結(jié)果。(2)另外鍵盤包括數(shù)字鍵(09)、符號(hào)鍵(+、-、X、+)、清除鍵和等號(hào)鍵,故只需要16個(gè)按鍵即可,設(shè)計(jì)中采用集成的計(jì)算鍵盤。(3)執(zhí)行過程:開機(jī)顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過LC也示出來,當(dāng)鍵入+、-、*、/運(yùn)算符,計(jì)算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲(chǔ),并等待再次鍵入數(shù)值,當(dāng)再鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號(hào)就會(huì)在LCD
2、t輸出運(yùn)算結(jié)果。(4)錯(cuò)誤提示:當(dāng)計(jì)算器執(zhí)行過程中有錯(cuò)誤時(shí),會(huì)在LCDt顯示相應(yīng)的提示,如:當(dāng)輸入的數(shù)值或計(jì)算得到的結(jié)果大于計(jì)算器的表示范圍時(shí),計(jì)算器會(huì)在LCDt提示溢出;當(dāng)除數(shù)為0時(shí),計(jì)算器會(huì)在LCD上提示錯(cuò)誤。系統(tǒng)模塊圖:單片機(jī)輸入模塊圖1系統(tǒng)方案圖二、硬件設(shè)計(jì)(一)、總體硬件設(shè)計(jì)本設(shè)計(jì)選用AT89C51單片機(jī)為主控單元。顯示部分:采用LCD靜態(tài)顯示。按鍵部分:采用4*4鍵盤;利用MM74C9224*4的鍵盤掃描IC,讀取輸入的鍵值??傮w設(shè)計(jì)效果如下圖:9CTM2RSTPfl用IMI PD.ZZ<E 國如3 FOHl蜀5 用配鬼K Pi) T 的F2 M用R gFi.JJAiOPi.
3、,!AII*LE2 閩NT目Fi.-SJAiSPi.fl.'AJ4*z.spinpi jP5 liTiDPIN力.3:lUPI i戶文IEPI 4P 4-TlPL?P- VPPI0空白®KPI 7ra.?.ra5盧修賓|HX。目口圖U3,fi74HCM(二)、鍵盤接口電路計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡單,但是會(huì)占用大量的I/O口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤,在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就
4、為4X4個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。矩陣鍵盤的工作原理:計(jì)算器的鍵盤布局如圖2所示:一般有16個(gè)鍵組成,在單片機(jī)中正好可以用一個(gè)P口實(shí)現(xiàn)16個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也最常用。圖2矩陣鍵盤布局圖矩陣鍵盤內(nèi)部電路圖如圖3所示:為了進(jìn)一步節(jié)省單片機(jī)I/O口資源,我們?cè)谠O(shè)計(jì)中使用了MM74C92芯片。MM74C92是一款4*4鍵盤掃描IC,它可檢測到與之相連的4*4鍵盤的按鍵輸入,并通過數(shù)據(jù)輸出口將按鍵相應(yīng)的編碼輸出。其引腳圖如圖4所示:圖4MM94C22硬件圖MM74C922卿說明:Y1Y4(腳1腳4):44鍵盤第一列至第四。X1X4(腳11、10、8、
5、7):44鍵盤第一行至第四行。DOADOD(DataoutAD,腳1417):按鍵之BC網(wǎng)輸出,其中DOMLSRDO西MSBVCC(腳18):電源腳,+3V+15Vab126計(jì)算公式大全GND(腳9):接地管腳。新藝圖庫(6)OSC(Oscillator,腳5):鍵盤掃描電路之頻率所需外加電容的連引腳。KBM(KeyboardMask,腳6):內(nèi)部消除開關(guān)彈跳電路所外加電容的引腳。OE(OutputEnable,腳13):芯片致能腳,接低電位可使芯片致能。(9)DA(DataAvailable,腳12):數(shù)據(jù)有效輸出腳。任一按鍵按下時(shí),此腳位會(huì)輸出高電位,按鍵釋放后此腳又會(huì)恢復(fù)為低電位。MM7
6、4C92對(duì)各按鍵的響應(yīng)如下表所示:TruthTables(Pins0through11)SwitchPosition0Y1,X11n,x22Y1,X33Y1,X44Y2PX1S¥2,總6Y2rX37Y2.X4sY3,X19¥3rX210V3,X311Y3,X4DAA010101010101T600I100110011AC00fl111100DQ0D0000a0001111UE(Note1)T00D0D0O00000Pins12through19)SwitchPosition12Y4PX11314¥4,X315Y4,X416¥6(Note1)rX117Y6
7、(Note1),X218Y5|Nate1),X319reiNte1),X4AA0101Q1a1T00D1I001IAC111I00000D11110000UE(Note1)D00I11ITNate"IM川飾J如下圖5所示,在本設(shè)計(jì)中,計(jì)算器輸入鍵盤的4條行線、列線分別連接到MM74C92的X1-X4、Y1-Y4弓|腳,MM74C92的數(shù)據(jù)輸出口與單片機(jī)的P2口相連,MM74C92的DA引腳經(jīng)過一個(gè)非門連接到單片機(jī)的/INT0腳,當(dāng)MM74C92蹌測到鍵盤輸入時(shí),DA產(chǎn)生高電平,與之相連的/INTO檢測到低電平,給單片機(jī)一個(gè)中斷,單片機(jī)從P2口的低四位讀入鍵盤上按下的鍵的值。r - -
8、flniu1nii"""圖5鍵盤接口電路圖(三)、LCD顯示模塊本設(shè)計(jì)采用LCD夜晶顯示器來顯示輸出數(shù)據(jù)。通過D0-D7引腳向LCg指令字或?qū)憯?shù)據(jù)以使LC陵現(xiàn)不同的功能或顯示相應(yīng)數(shù)據(jù)。LCO1:回科: ''TEKT>'"圖6LCD模塊(四)運(yùn)算模塊(單片機(jī)控制)MCS-51單片機(jī)是在一塊芯片中集成了CPURAMROM定時(shí)器/計(jì)數(shù)器和多功能I/O等一臺(tái)計(jì)算機(jī)所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU、數(shù)據(jù)存儲(chǔ)器(RAM、程序存儲(chǔ)器(ROM/EPROM并行I/O口、串行口、定時(shí)器/計(jì)數(shù)器、中斷
9、系統(tǒng)及特殊功能寄存器(SFR。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,通過使用單片機(jī)編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機(jī)作為計(jì)算器的主要功能部件,可以很快地實(shí)現(xiàn)運(yùn)算功能。三、軟件設(shè)計(jì)現(xiàn)實(shí)生活中人們熟知的計(jì)算器,其功能主要如下:1、鍵盤輸入;2、數(shù)值顯示;3、力口、減、乘、除四則運(yùn)算;4、對(duì)錯(cuò)誤的控制及提示;針對(duì)上述功能,計(jì)算器軟件程序要完成以下模塊的設(shè)計(jì):1、 鍵盤輸入檢測模塊2、 LCLfi示模塊;3、 算術(shù)運(yùn)算模塊4、 錯(cuò)誤處理及提示模塊。系統(tǒng)總流程圖分塊程序設(shè)計(jì)1、 鍵盤輸入檢測程序設(shè)計(jì)有鍵按下時(shí),單片機(jī)
10、響應(yīng)外部中斷0,轉(zhuǎn)入外部中斷0中斷處理函數(shù),在中斷處理函數(shù)中完成對(duì)按鍵的判斷,以進(jìn)行下一步的程序處理。/*外部中斷0處理函數(shù)*/voidINT_0(void)interrupt0using0key=translate(P2&0x0f);if(key<='9'&&key>"')/判斷按下的鍵是否為數(shù)值num=num*10+(key-'0');if(operators。)y=num;iny=1;elsex=num;if(num<134217728&&num>-134217728)/當(dāng)前
11、數(shù)值是否超出限定范圍display(num);elsedataoverflow();elseswitch(key)case'c':x=0;y=0;num=0;iny=0;operators=0;display(num);break;case'=':arithmetic。;iny=0;operators=0;num=0;break;case'+':if(operators)arithmetic。;operators=1;num=0;break;case'-'if(operators)arithmetic。;operators=2;n
12、um=0;break;caseif(operators)arithmetic。;operators=3;num=0;break;case'/'if(operators)arithmetic。;operators=4;num=0;break;2、 LCD顯示程序設(shè)計(jì)利用LC麗態(tài)顯示,通過程序向LCDlf指令字或數(shù)據(jù)使LC晾成不同功能或顯示相應(yīng)數(shù)據(jù)。/*LCD初始化函數(shù)*/voidinit_LCM()write_com(0x30);write_com(0x30);write_com(0x30);write_com(0x38);write_com(0x08);write_com(0x
13、01);write_com(0x06);write_com(0x0e);/*LCD寫數(shù)據(jù)函數(shù)*/voidwrite_data(charddata)RS=1;/*寫指令*/R_W=0;EN=1;/*使能信號(hào)開*/P1=ddata;/*將數(shù)據(jù)送入pl口*/EN=0;/*使能信號(hào)關(guān)*/check_BF();/*LCD寫指令函數(shù)*/voidwrite_com(charcommand)RS=0;/*寫指令*/R_W=0;EN=1;/*使能信號(hào)開*/P1=command/*將數(shù)據(jù)送入p1口*/EN=0;/*使能信號(hào)關(guān)*/check_BF();/*LCD檢查忙碌函數(shù)*/voidcheck_BF()chari
14、,x=0x80;P1=0xff;while(x&0x80)RS=0;R_W=1;EN=1;x=P1;EN=0;for(i=0;i<10;i+);EN=0;/*關(guān)閉使能信號(hào)*/*LCD清屏函數(shù)*/voidclearLCD()write_com(0x01);/*LCD顯示函數(shù)*/voiddisplay(longa)longtemp,b,c=-1;intlenth=1,i,j;clearLCD();if(a<0)a=a*c;write_data('-');temp=a;while(temp=temp/10)!=0)lenth+;for(i=lenth;i>0;i-)b=1;for(j=0;j<i-1;j+)b=b*10;write_data(0x30+a/b);a=a%b;3、 算術(shù)運(yùn)算程序設(shè)計(jì)4、錯(cuò)誤處理及提示程序設(shè)計(jì)/*除數(shù)為處理函數(shù)*/voiddealerror()inti=0;clearLCD();for(i=0;i<5;i+)write_data(errori);/*數(shù)值溢出處理函
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年隴南客運(yùn)從業(yè)資格證考試網(wǎng)
- 2024年寧德客運(yùn)上崗證模擬考試題
- (05)第四單元-2021-2022學(xué)年下學(xué)期八年級(jí)語文下冊(cè)作文點(diǎn)評(píng)
- 2024年常州考客運(yùn)資格證
- 人教部編版六年級(jí)語文上冊(cè)第1課《草原》精美課件
- 質(zhì)量管理經(jīng)理招聘筆試題與參考答案(某世界500強(qiáng)集團(tuán))2025年
- 教師資格考試初中面試美術(shù)試題及解答參考
- 門診工作管理制度
- 青年論壇發(fā)言稿
- 教師資格考試高中學(xué)科知識(shí)與教學(xué)能力體育與健康試卷與參考答案
- YY∕T 1782-2021 骨科外固定支架力學(xué)性能測試方法(高清最新版)
- 西亞教學(xué)設(shè)計(jì)與反思
- 乙酸乙酯的反應(yīng)器設(shè)計(jì)流程圖
- EM277的DP通訊使用詳解
- 耐壓絕緣測試報(bào)告
- 野獸派 beast 花店 調(diào)研 設(shè)計(jì)-文檔資料
- 水泵房每日巡視檢查表
- 杭州市區(qū)汽車客運(yùn)站臨時(shí)加班管理規(guī)定
- 墊片沖壓模具設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 冷庫工程特點(diǎn)施工難點(diǎn)分析及對(duì)策
- Python-Django開發(fā)實(shí)戰(zhàn)
評(píng)論
0/150
提交評(píng)論