




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、自動控制系統(tǒng)課程設(shè)計任務(wù)書專業(yè): 自動化 班級: 姓名: 設(shè)計題目:基于單片機的簡易計算器設(shè)計與仿真 一、設(shè)計實驗條件:地 點:自動化系實驗室實驗設(shè)備:pc機( 裝有keil;protues;word ;visio )二、設(shè)計任務(wù):本系統(tǒng)選用at89c51單片機為主控機。通過擴展必要的外圍接口電路,實現(xiàn)對計算器的設(shè)計,具體設(shè)計如下:(1)由于設(shè)計的計算器要進行四則運算,為了得到較好的顯示效果,經(jīng)綜合分析后,最后采用lcd 顯示數(shù)據(jù)和結(jié)果。(2)采用鍵盤輸入方式,鍵盤包括數(shù)字鍵(09)、符號鍵(+、-、×、÷)、清除鍵(onc)和等號鍵(=),故只需要16 個按鍵即可,設(shè)計中
2、采用集成的計算鍵盤。(3)在執(zhí)行過程中,開機顯示零,等待鍵入數(shù)值,當(dāng)鍵入數(shù)字,通過lcd顯示出來,當(dāng)鍵入+、-、*、/運算符,計算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲,并等待再次鍵入數(shù)值,當(dāng)再鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號就會在lcd上輸出運算結(jié)果。(4)錯誤提示:當(dāng)計算器執(zhí)行過程中有錯誤時,會在lcd上顯示相應(yīng)的提示,如:當(dāng)輸入的數(shù)值或計算得到的結(jié)果大于計算器的表示范圍時,計算器會在lcd上提示overflow;當(dāng)除數(shù)為0時,計算器會在lcd上提示error。設(shè)計要求:分別對鍵盤輸入檢測模塊;lcd顯示模塊;算術(shù)運算模塊;錯誤處理及提示模塊進行設(shè)計,并用visio畫系統(tǒng)方框圖,keil與protu
3、es仿真分析其設(shè)計結(jié)果。三、設(shè)計時間與設(shè)計時間安排:1、設(shè)計時間:6月27日7月8日2、設(shè)計時間安排: 熟悉課題、收集資料: 3天(6月27日 6月29日) 具體設(shè)計(含上機實驗): 6天(6月30日 7月5日)編寫課程設(shè)計說明書: 2天(7月6日 7月7日)答辯: 1天(7月8日)四、設(shè)計說明書的內(nèi)容:1、前言:(自己寫,組員之間不能相同,寫完后將紅字刪除,排版時注意對齊)本設(shè)計是基于51系列單片機來進行的數(shù)字計算器系統(tǒng)設(shè)計,可以完成計算器的鍵盤輸入,進行加、減、乘、除基本四則運算,并在lcd上顯示相應(yīng)的結(jié)果;設(shè)計電路采用at89c51單片機為主要控制電路,利用mm74c922作為計算器4*
4、4鍵盤的掃描ic讀取鍵盤上的輸入;顯示采用字符lcd靜態(tài)顯示;軟件方面使用c語言編程,并用protues仿真。2、設(shè)計題目與設(shè)計任務(wù):現(xiàn)實生活中人們熟知的計算器,其功能主要如下:(1)鍵盤輸入;(2)數(shù)值顯示;(3)加、減、乘、除四則運算;(4)對錯誤的控制及提示。針對上述功能,計算器軟件程序要完成以下模塊的設(shè)計:(1)鍵盤輸入檢測模塊;(2)lcd顯示模塊;(3)算術(shù)運算模塊;(4)錯誤處理及提示模塊。3、主體設(shè)計部分:(1)、系統(tǒng)模塊圖:(2)、算術(shù)運算程序流程圖:(3)、系統(tǒng)總流程圖:(4)、硬件設(shè)計:(一)、總體硬件設(shè)計:本設(shè)計選用at89c51單片機為主控單元; 顯示部分:采用lcd
5、靜態(tài)顯示;按鍵部分:采用4*4鍵盤;用mm74c922為4*4鍵盤掃描ic,讀取輸入的鍵值??傮w設(shè)計效果如下圖:(二)、單片機接口電路說明:1、手動上電復(fù)位電路:當(dāng)vcc上電時,c充電,在10k電阻上出現(xiàn)電壓,使得單片機復(fù)位;幾個毫秒后,c充滿,10k電阻上電流降為0,電壓也為0,使得單片機進入工作狀態(tài)。工作期間,按下s,c放電。s松手,c又充電,在10k電阻上出現(xiàn)電壓,使得單片機復(fù)位。幾個毫秒后,單片機進入工作狀態(tài)。 2、內(nèi)部時鐘模式電路:當(dāng)單片機工作于內(nèi)部時鐘模式的時候,只需在xtal1和xtal2引腳連接一個晶體振蕩器或者陶瓷振蕩器,并接兩個電容后接地即可,在使用時對于電容的選擇有一定的
6、要求:當(dāng)外接晶體振蕩器的時候,電容值一般選擇c1=c2=30+10pf或30-10pf;當(dāng)外接陶瓷振蕩器的時候,電容值一般選擇c1=c2=40+10pf或40-10pf;3、at89c51單片機引腳介紹:vcc: 供電電壓。 gnd:接地。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p0口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖
7、器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸
8、出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口:p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲器寫選通
9、) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用
10、。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。 /ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的
11、輸出。4、單片機與復(fù)位、時鐘電路連接電路圖:(三)、鍵盤接口電路:計算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨立按鍵的方式,在這種情況下,編程會很簡單,但是會占用大量的i/o 口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條i/o 線作為行線,四條i/o 線作為列線組成鍵盤,在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為4×4個。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中i/o 口的利用率。矩陣鍵盤的工作原理:計算器的鍵盤布局如圖1所示:一般有16個鍵組成,在單片機中正好可以用一個p口實現(xiàn)16個按鍵功能,這種形式在單片機系
12、統(tǒng)中也最常用。圖 1 矩陣鍵盤布局圖矩陣鍵盤內(nèi)部電路圖如圖2所示:為了進一步節(jié)省單片機i/o口資源,我們在設(shè)計中使用了mm74c922芯片。mm74c922是一款4*4鍵盤掃描ic,它可檢測到與之相連的4*4鍵盤的按鍵輸入,并通過數(shù)據(jù)輸出口將按鍵相應(yīng)的編碼輸出。其引腳圖如圖3所示:圖3 mm94c22硬件圖mm74c922引腳說明:(1) y1y4(腳1腳4):4*4鍵盤第一列至第四。(2) x1x4(腳11、10、8、7):4*4鍵盤第一行至第四行。(3) doa dod(dataout ad,腳1417):按鍵之bcd碼輸出,其中doa為lsb,dod為msb。(4) vcc(腳18):電
13、源腳,+3v+15v。ab126計算公式大全(5) gnd(腳9):接地管腳。新藝圖庫(6) osc(oscillator,腳5):鍵盤掃描電路之頻率所需外加電容的連引腳。(7) kbm(keyboard mask,腳6):內(nèi)部消除開關(guān)彈跳電路所外加電容的引腳。(8) oe(output enable,腳13):芯片使能腳,接低電位可使芯片使能。(9) da(data available,腳12):數(shù)據(jù)有效輸出腳。任一按鍵按下時,此腳位會輸出高電位,按鍵釋放后此腳又會恢復(fù)為低電位。mm74c922對各按鍵的響應(yīng)如下表所示:如下圖4所示,在本設(shè)計中,計算器輸入鍵盤的4條行線、列線分別連接到mm7
14、4c922的x1-x4、y1-y4引腳,mm74c922的數(shù)據(jù)輸出口與單片機的p2口相連,mm74c922的da引腳經(jīng)過一個非門連接到單片機的/int0腳,當(dāng)mm74c922檢測到鍵盤輸入時,da產(chǎn)生高電平,與之相連的/int0檢測到低電平,給單片機一個中斷,單片機從p2口的低四位讀入鍵盤上按下的鍵的值。圖4 鍵盤接口電路圖 (四)、lcd顯示模塊:本設(shè)計采用lcd液晶顯示器來顯示輸出數(shù)據(jù)。通過d0-d7引腳向lcd寫指令字或?qū)憯?shù)據(jù)以使lcd實現(xiàn)不同的功能或顯示相應(yīng)數(shù)據(jù)。圖5 lcd 模塊(五)運算模塊(單片機控制):mcs-51 單片機是在一塊芯片中集成了cpu、ram、rom、定時器/計數(shù)
15、器和多功能i/o等一臺計算機所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(cpu)、數(shù)據(jù)存儲器(ram)、程序存儲器(rom/eprom)、并行i/o 口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器(sfr)。單片機是靠程序運行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨特的一些功能,通過使用單片機編寫的程序可以實現(xiàn)高智能,高效率,以及高可靠性!因此我們采用單片機作為計算器的主要功能部件,可以很快地實現(xiàn)運算功能。3.5、軟件編程:1、主函數(shù)設(shè)計:/*函數(shù)聲明*/#include<reg51.h>#include<math.h&
16、gt;#define uchar unsigned char#define uint unsigned intchar translate(int keycode);void arithmetic();void init_lcm();void write_data(char ddata);void write_com(char command);void check_bf();void clearlcd();void display(long a);void dealerror(); void dataoverflow();/*定義變量和數(shù)組*/long x=0,y=0,num=0;int o
17、perators,input,iny=0;char key;char error5="error"char overflow8="overflow"sbit en=p34;sbit r_w=p35;sbit rs=p36;/*主函數(shù)*/main()ea=1;ex0=1;it0=1;p2=0xff;display(0);init_lcm();write_data(0x30);while(1)2、分塊程序設(shè)計:(1)、鍵盤輸入檢測程序設(shè)計:有鍵按下時,單片機響應(yīng)外部中斷0,轉(zhuǎn)入外部中斷0中斷處理函數(shù),在中斷處理函數(shù)中完成對按鍵的判斷,以進行下一步的程序處理。
18、/*鍵值轉(zhuǎn)化為鍵盤上按鍵值函數(shù)*/char translate(int keycode)switch(keycode)case 0:return '7'break;case 1:return '4'break;case 2:return '1'break;case 3:return 'c'break;case 4:return '8'break;case 5:return '5'break;case 6:return '2'break;case 7:return '0'
19、;break;case 8:return '9'break;case 9:return '6'break;case 10:return '3'break;case 11:return '='break;case 12:return '/'break;case 13:return '*'break;case 14:return '-'break;case 15:return '+'break; /*外部中斷0處理函數(shù)*/void int_0(void) interrup
20、t 0 using 0key=translate(p2&0x0f);if(key<='9'&&key>='0') /判斷按下的鍵是否為數(shù)值num=num*10+(key-'0');if (operators>0)y=num;iny=1;elsex=num;if(num<134217728&&num>-134217728) /當(dāng)前數(shù)值是否超出限定范圍display(num);elsedataoverflow();elseswitch(key)case 'c':x=
21、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;num=0;break;case '*': if (operators)arithmetic();operator
22、s=3;num=0;break;case '/':if (operators)arithmetic();operators=4;num=0;break;(2)、算術(shù)運算程序設(shè)計:/*算術(shù)運算函數(shù)*/void arithmetic()if (iny)switch(operators)case 1:x=x+y;num=x;if(num<134217728&&num>-134217728)display(num);elsedataoverflow();break;case 2:x=x-y;num=x;if(num<134217728&&
23、;num>-134217728)display(num);elsedataoverflow();break;case 3:x=x*y;num=x;if(num<134217728&&num>-134217728)display(num);elsedataoverflow();break;case 4:if (y=0)dealerror();elsex=x/y;num=x; if(num<134217728&&num>-134217728)display(num);elsedataoverflow();break;y=0;(3)、lc
24、d顯示程序設(shè)計:利用lcd靜態(tài)顯示,通過程序向lcd寫指令字或數(shù)據(jù)使lcd完成不同功能或顯示相應(yīng)數(shù)據(jù)。/*lcd初始化函數(shù)*/void init_lcm()write_com(0x30);write_com(0x30);write_com(0x30);write_com(0x38);write_com(0x08);write_com(0x01);write_com(0x06);write_com(0x0e);/*lcd寫數(shù)據(jù)函數(shù)*/void write_data(char ddata)rs=1;/*寫指令*/r_w=0;en=1;/*使能信號開*/p1=ddata;/*將數(shù)據(jù)送入p1口*/en=0;/*使能信號關(guān)*/check_bf();/*lcd寫指令函數(shù)*/void write_com(char command)rs=0;/*寫指令*/r_w=0;en=1;/*使能信號開*/p1=command;/*將數(shù)據(jù)送入p1口*/en=0;/*使能信號關(guān)*/check_bf();/*lcd檢查忙碌函數(shù)*/void check_bf()char i,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;/*
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修理廠和供貨商合同范本
- 公寓開荒保潔合同范本
- 加裝電梯加盟合同范本
- canying勞動合同范本
- 剝離工程合同范本
- 保理 保證合同范本
- 養(yǎng)鵝訂單合同范本
- 中介居間服務(wù)合同范本
- 催收咨詢服務(wù)合同范例
- 加工制作維修合同范例
- 氧化還原反應(yīng)配平專項訓(xùn)練
- 2024年江蘇省中等職業(yè)學(xué)校學(xué)生學(xué)業(yè)水平考試機械CAD繪圖試卷(含5張圖)
- 2024年7天雙方無責(zé)任試崗期協(xié)議書模板
- 2025年中考復(fù)習(xí)必背外研版初中英語單詞詞匯(精校打?。?/a>
- 期末測試模擬卷(試題)-2023-2024學(xué)年五年級下冊數(shù)學(xué)人教版
- 全國教育科學(xué)規(guī)劃課題申報書:02.《鑄牢中華民族共同體意識的學(xué)校教育研究》
- 《船舶精通急救》全套教學(xué)課件
- 用藥安全課件教學(xué)課件
- 2024智能家居行業(yè)創(chuàng)新發(fā)展與前景展望研究報告
- (人教PEP2024版)英語一年級上冊Unit 5 教學(xué)課件(新教材)
- 腰椎術(shù)后失敗綜合征
評論
0/150
提交評論