




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄摘要01 總體任務(wù)11.1設(shè)計(jì)目的11.2設(shè)計(jì)內(nèi)容和要求11.3 設(shè)計(jì)思路12 設(shè)計(jì)原理分析22.1 計(jì)算器的工作原理2計(jì)算器的工作流程2編程實(shí)現(xiàn)控制22.1.3 功能拓展22.2 單片機(jī)計(jì)算器的基本構(gòu)成及原理23硬件電路的設(shè)計(jì)43.1系統(tǒng)硬件總電路構(gòu)成及原理43.2硬件電路的部分組成元器件的簡(jiǎn)介4單片機(jī)43.2.2 八段LED數(shù)碼管43.2.3 矩陣鍵盤63.3 元器件清單73.4 電路原理圖74 系統(tǒng)程序的簡(jiǎn)單設(shè)計(jì)84.1 程序方框圖84.2 計(jì)算器程序85 系統(tǒng)的仿真調(diào)試156 課程設(shè)計(jì)總結(jié)16參考文獻(xiàn)17摘要 本文論述了單片機(jī)4位數(shù)加法計(jì)算器的設(shè)計(jì),從對(duì)設(shè)計(jì)任務(wù)的分析到畫電原理圖到
2、編程和最后的仿真調(diào)試,都進(jìn)行了一個(gè)簡(jiǎn)單的描述。在設(shè)計(jì)過(guò)程中,采用Keil軟件編寫源程序,用Protues 7 professional的ISIS 7 professional軟件畫電原理圖并且仿真,通過(guò)對(duì)編程時(shí)的編譯和對(duì)仿真結(jié)果現(xiàn)象的觀察,不斷地對(duì)源程序以及電原理圖的修改,最后成功設(shè)計(jì)出了一個(gè)能夠進(jìn)行4位數(shù)加法運(yùn)算的計(jì)算器。該計(jì)算器通過(guò)4×4的矩陣鍵盤輸入數(shù)字及運(yùn)算符,若運(yùn)算結(jié)果超過(guò)4位十進(jìn)制數(shù),則顯示為E;另外,也能進(jìn)行減法、乘法以及除法的運(yùn)算,在進(jìn)行減法運(yùn)算時(shí),若運(yùn)算結(jié)果小于零,則顯示其絕對(duì)值;進(jìn)行除法運(yùn)算時(shí),若除數(shù)等于零,則顯示E。關(guān)鍵詞:計(jì)算器;單片機(jī);數(shù)碼管;矩陣鍵盤1 總
3、體任務(wù)1.1設(shè)計(jì)目的 1.通過(guò)單片機(jī)課程設(shè)計(jì),熟練掌握c語(yǔ)言的編程方法,將理論聯(lián)系到實(shí)踐中去,提高我們的動(dòng)腦和動(dòng)手的能力。 2.通過(guò)4位數(shù)加法計(jì)算器的設(shè)計(jì),掌握c語(yǔ)言編程的基本語(yǔ)法,和簡(jiǎn)單程序的編寫,最終提高我們的邏輯抽象能力。1.2設(shè)計(jì)內(nèi)容和要求 內(nèi)容:設(shè)計(jì)一個(gè)4位數(shù)加法計(jì)算器要求:該計(jì)算器通過(guò)4×4的矩陣鍵盤輸入數(shù)字和運(yùn)算符,能進(jìn)行4位十進(jìn)制以內(nèi)的正數(shù)的加、減、乘、除的運(yùn)算,如果運(yùn)算結(jié)果超過(guò)4位十進(jìn)制數(shù),4位數(shù)碼管全部顯示為E。1.3 設(shè)計(jì)思路 1.先熟悉實(shí)驗(yàn)原理,了解計(jì)算器的工作過(guò)程及其顯示,了解計(jì)算器電原理圖的組成元器件。2.了解各元器件的工作原理。3.在keil軟件里編寫程
4、序,用Protues 7 professional的ISIS 7 professional軟件繪制電原理圖,并進(jìn)行仿真,通過(guò)對(duì)仿真現(xiàn)象的觀察,修改原理圖或程序,直到滿足設(shè)計(jì)要求為止。2 設(shè)計(jì)原理分析2.1 計(jì)算器的工作原理2.1.1 計(jì)算器的工作流程 計(jì)算器是對(duì)鍵盤輸入的數(shù)字及運(yùn)算符等信號(hào)進(jìn)行分析和處理,最后通過(guò)數(shù)碼管顯示出結(jié)果的計(jì)算工具。當(dāng)然,在輸入數(shù)字的同時(shí),數(shù)碼管也是會(huì)顯示出輸入的數(shù)字的,其整個(gè)工作流程圖如圖2.1所示。外界輸入數(shù)字或運(yùn)算符 微處理器處理并運(yùn)算 顯示器顯示結(jié)果 圖2.1 計(jì)算器的工作流程圖2.1.2 編程實(shí)現(xiàn)控制 通過(guò)編寫程序,實(shí)現(xiàn)對(duì)輸入信號(hào)的識(shí)別、輸入數(shù)字的顯示以及運(yùn)算
5、結(jié)果的顯示。2.1.3 功能拓展 在進(jìn)行減法運(yùn)算時(shí),若運(yùn)算結(jié)果小于0,數(shù)碼管顯示其絕對(duì)值;在進(jìn)行除法運(yùn)算時(shí),若除數(shù)等于0,數(shù)碼管顯示EEEE。2.2 單片機(jī)計(jì)算器的基本構(gòu)成及原理 AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。它能進(jìn)行簡(jiǎn)單的運(yùn)算,通過(guò)編寫程序,可以讓它完成對(duì)輸入信號(hào)的識(shí)別、處理以及顯示等功能。它完全能滿足4位加法計(jì)算器的要求,能夠完成對(duì)鍵盤輸入信號(hào)的識(shí)別、處理等功能。 據(jù)此,本設(shè)計(jì)系統(tǒng)以單片機(jī)位核心,連接成
6、最小系統(tǒng),由鍵盤輸入模塊和4位數(shù)碼管輸出模塊等組成,系統(tǒng)放入總體方框圖如圖2.2所示。 鍵盤輸入最小系統(tǒng)外圍接口電路 單片機(jī) 數(shù)碼管顯示 圖2.2系統(tǒng)的總體方框圖 鍵盤作為整個(gè)系統(tǒng)的輸入端口,單片機(jī)是整個(gè)系統(tǒng)的核心,兼有識(shí)別信號(hào)和處理等功能,而數(shù)碼管是整個(gè)系統(tǒng)的輸出部分,用于顯示輸入的數(shù)字和運(yùn)算后的結(jié)果。3硬件電路的設(shè)計(jì)3.1系統(tǒng)硬件總電路構(gòu)成及原理 實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以選用AT89C51單片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),4×4的矩陣鍵盤和4位共陽(yáng)極的數(shù)碼管組成。其中4×4的矩陣鍵盤是用來(lái)輸入信號(hào)的,而4位共陽(yáng)極的數(shù)碼管是用來(lái)顯示輸入的數(shù)字及運(yùn)算結(jié)果的。3.2硬件
7、電路的部分組成元器件的簡(jiǎn)介AT89C51單片機(jī) AT89C51單片機(jī)是80C51類型中的一種,其基本型包含CPU系統(tǒng)、存儲(chǔ)器系統(tǒng)和I/O口及其他功能單元。單片機(jī)的最小控制系統(tǒng)如圖3.1所示。圖3.1 單片機(jī)及其最小控制系統(tǒng)3.2.2 八段LED數(shù)碼管LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長(zhǎng)、維護(hù)簡(jiǎn)便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡(jiǎn)單,分為七段和八段兩種形式,也有共陽(yáng)極和共陰極之分。以八段共陽(yáng)管為例,它有8個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來(lái)顯示sP,即點(diǎn)),每個(gè)發(fā)光二極管的陽(yáng)極連在一起。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的
8、高低電平來(lái)加以控制。為方便起見(jiàn),本文主要討論共陽(yáng)極八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。圖3.2即為八段數(shù)碼管,下面的引腳從左至右一次為a,b,c,d,e,f,g,dp和位選引腳。圖3.2 LED數(shù)碼管 數(shù)碼管的顯示原理:通過(guò)同名管腳上所加電平的高低來(lái)控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如a,b,c,d,e,f,g全亮是顯示為8,其中共陽(yáng)極連接的數(shù)碼管的驅(qū)動(dòng)代碼如表3.1所示。表3.1 共陽(yáng)極數(shù)碼管驅(qū)動(dòng)代碼顯示數(shù)值dp g f e d c b a驅(qū)動(dòng)代碼(16進(jìn)制)01 1 0 0 0 0 0 0 C011 1 1 1 1 0 0 1F921 0 1 0 0 0 1 0A431
9、0 1 0 0 0 0 B041 0 0 1 1 0 0 19951 0 0 1 0 0 1 09261 0 0 0 0 0 1 0 8271 1 1 1 1 0 0 0 F881 0 0 0 0 0 0 08091 0 0 1 0 0 0 0 90 4位八段數(shù)碼顯示管是由4個(gè)數(shù)碼管組成,如圖3.3所示,其左側(cè)的a,b,c,d,e,f,g,dp為數(shù)碼管的驅(qū)動(dòng)引腳,右側(cè)的1,2,3,4為數(shù)碼管的位選引腳。圖3.3 4位數(shù)碼顯示管 4位數(shù)碼管顯示計(jì)算數(shù)據(jù)的過(guò)程:如輸入數(shù)字4136,當(dāng)從鍵盤上輸入4時(shí),4位數(shù)碼管第4位顯示4,其他三位不亮;再次輸入1時(shí),數(shù)碼管第3位顯示4,同時(shí)第4位顯示1,其他兩位
10、不亮;再次輸入3時(shí),數(shù)碼管第2位顯示4,同時(shí)第3位顯示1,第2位顯示3,第一位不亮;再次輸入6時(shí),數(shù)碼管第1位顯示4,同時(shí)第2位顯示1,第3位顯示3,第4位顯示6。3.2.3 矩陣鍵盤 矩陣鍵盤是由16個(gè)按鈕組成的, 16個(gè)按鈕按4行4列的順序排列構(gòu)成4×4的矩陣鍵盤,如圖3.4所示,圖3.4所示的鍵盤是Protues 7 professional的ISIS 7 professional軟件中的一個(gè)元器件,其原理就是16個(gè)按鈕按4行4列排列構(gòu)成的。圖3.4 矩陣鍵盤 在4位計(jì)算器的設(shè)計(jì)中,單片機(jī)識(shí)別矩陣鍵盤是通過(guò)按列掃描的方式進(jìn)行的。其具體過(guò)程如下:對(duì)所有的列加以高電平,對(duì)第一行(A
11、行)加以低電平,掃描列的電平變化,如列有高電平變?yōu)榈碗娖?,則能確定按下的鍵是哪一個(gè);如第一列沒(méi)有電平變化,依次對(duì)第二行(B行)、第三行(C行)和第四行(D行)加以低電平,分別對(duì)列進(jìn)行掃描,看列的電平變化,來(lái)確定按下的鍵。3.3 元器件清單 4位加法計(jì)算器的硬件電路圖主要由表3.2所示的元器件組成 表3.2元器件列表器件說(shuō)明AT89C51單片機(jī)核心器件晶體51單片機(jī)工作的振蕩源電阻對(duì)電流大小進(jìn)行限制電容51單片機(jī)復(fù)位和振蕩源工作的輔助器件矩陣鍵盤用于輸入數(shù)字和運(yùn)算符4位8段數(shù)碼管用于顯示輸入的數(shù)字及運(yùn)算結(jié)果3.4 電路原理圖圖3.5 系統(tǒng)電路原理圖4 系統(tǒng)程序的簡(jiǎn)單設(shè)計(jì)4.1 程序方框圖開(kāi)始初始
12、化顯示0取第一個(gè)數(shù)取運(yùn)算符取第二個(gè)數(shù)取等于號(hào)計(jì)算并顯示結(jié)果結(jié)束圖4.1 計(jì)算器程序流程圖4.2 計(jì)算器程序#include <reg51.h>sbit P3_0=P30;sbit P3_1=P31;sbit P3_2=P32;sbit P3_3=P33;unsigned char sz12,xs14,xs24,xs34,xs44,sj;int i,cs,bb,t1,t2,fh,s1,s2,k;void chushihua() /*初始化程序*/bb=1;xs10=10;xs11=10;xs12=10;xs13=10;xs20=10;xs21=10;xs22=10;xs23=10;x
13、s30=11;xs31=11;xs32=11;xs33=11;xs40=0;xs41=10;xs42=10;xs43=10;t1=0;t2=0;s1=s2=0;fh=0;cs=1;void xianshi(unsigned char xs4) /*顯示程序*/int i,j;unsigned char zy;zy=0xf1;for (i=0;i<4;i+)P2=(0xff-zy); P1=szxsi;zy=(zy>>1);for (j=0;j<100;j+);return;unsigned char saomiao() /*鍵盤掃描程序*/int i;unsigned
14、char pp;for(i=0;i<1000;i+);P0=0xfe;P3=0x0f;pp=P3;if (P3_0=0) P3=0x0f;pp=P3;while (P3_0=0);for (i=0;i<1000;i+);return 7;if (P3_1=0) P3=0x0f;pp=P3;while (P3_1=0);for (i=0;i<1000;i+);return 8;if (P3_2=0) P3=0x0f;pp=P3;while (P3_2=0);for (i=0;i<1000;i+);return 9;if (P3_3=0) P3=0x0f;pp=P3;whi
15、le (P3_3=0);for (i=0;i<1000;i+);return 11;P0=0xfd;P3=0x0f;pp=P3;if (P3_0=0) P3=0x0f;pp=P3;while (P3_0=0);for (i=0;i<1000;i+);return 4;if (P3_1=0) P3=0x0f;pp=P3;while (P3_1=0);for (i=0;i<1000;i+);return 5;if (P3_2=0) P3=0x0f;pp=P3;while (P3_2=0);for (i=0;i<1000;i+);return 6;if (P3_3=0) P3
16、=0x0f;pp=P3;while (P3_3=0);for (i=0;i<1000;i+);return 12;P0=0xfb;P3=0x0f;pp=P3;if (P3_0=0) P3=0x0f;pp=P3;while (P3_0=0);for (i=0;i<1000;i+);return 1;if (P3_1=0) P3=0x0f;pp=P3;while (P3_1=0);for (i=0;i<1000;i+);return 2;if (P3_2=0) P3=0x0f;pp=P3;while (P3_2=0);for (i=0;i<1000;i+);return 3
17、;if (P3_3=0) P3=0x0f;pp=P3;while (P3_3=0);for (i=0;i<1000;i+);return 13;P0=0xf7;P3=0x0f;pp=P3;if (P3_0=0) P3=0x0f;pp=P3;while (P3_0=0);for (i=0;i<1000;i+);return 16;if (P3_1=0) P3=0x0f;pp=P3;while (P3_1=0);for (i=0;i<1000;i+);return 0;if (P3_2=0) P3=0x0f;pp=P3;while (P3_2=0);for (i=0;i<1
18、000;i+);return 15;if (P3_3=0) P3=0x0f;pp=P3;while (P3_3=0);for (i=0;i<1000;i+);return 14;return 10;void chuli(unsigned char x)/*運(yùn)算程序*/int i;if (x=16)cs=0;k=2;return ;if (x>=0 && x<10) k=0;if (bb=1)if (s1=4) cs=0;return ;elsefor (i=3;i>0;i-)xs1i=xs1i-1;xs10=x;s1+;t1=t1*10+x;if (bb
19、=2)if (s2=4) cs=0;return ;elsefor (i=3;i>0;i-)xs2i=xs2i-1;xs20=x;s2+;t2=t2*10+x;if (x>10)if (bb=1) fh=x;bb=2;return;if (bb=2) if(fh=11&&t2=0)t1=10000;if (fh=11) t1=t1/t2;if (fh=12) t1=t1*t2;if (fh=13) t1=t1-t2;if (fh=14) t1=t1+t2;if(t1<0) t1=-t1;if (t1>=10000) cs=0;k=1;return;els
20、e if (t1>=0 && t1<10) xs10=t1;xs11=10;xs12=10;xs13=10; if (t1>=10 && t1<100) xs10=t1%10;xs11=t1/10;xs12=10;xs13=10;if (t1>=100 && t1<1000) xs10=t1%10;xs11=(t1-(t1/100)*100)/10;xs12=t1/100;xs13=10;if (t1>=1000 && t1<10000) xs10=t1%10;xs11=t1%100
21、/10;xs12=(t1-(t1/1000)*1000)/100;xs13=t1/1000;bb=2;s2=0;t2=0;xs20=10;xs21=10;xs22=10;xs23=10;fh=x;void main() /*主程序*/ sz0=0xc0;sz1=0xf9;sz2=0xa4;sz3=0xb0;sz4=0x99;sz5=0x92;sz6=0x82;sz7=0xf8;sz8=0x80;sz9=0x90;sz10=0xff;sz11=0x86; cs=0;k=2;for (;)if (cs=0) chushihua();if (cs=1) sj=saomiao();if (cs=1 &
22、amp;& sj!=10) chuli(sj);if (cs=1 &&(bb=1 | bb=2 && s2=0) xianshi(xs1);if (cs=1 &&(bb=2 && s2!=0) xianshi(xs2);if(k=1)xianshi(xs3);if(cs=1&&k=2)xianshi(xs4);5 系統(tǒng)的仿真調(diào)試進(jìn)行110+600+9500的加法運(yùn)算時(shí),在進(jìn)行前一部分的加法,即110+600是的結(jié)果顯示如圖5.1所示。在其結(jié)果上再加上9500時(shí),結(jié)果超出了計(jì)算器的范圍,計(jì)算器顯示錯(cuò)誤,數(shù)碼管的顯示如圖5.2所示。圖5.1 110+600的結(jié)果顯示圖圖5.2 超出計(jì)算范圍顯示錯(cuò)誤6 課程設(shè)計(jì)總結(jié)經(jīng)過(guò)兩周的努力,4位加法計(jì)算器終于設(shè)計(jì)成功,達(dá)到了要求的目標(biāo)。這兩周的課程設(shè)計(jì),我過(guò)的忙碌且充實(shí)著,從上課后對(duì)單片機(jī)的懵懵懂懂,到現(xiàn)在熟練運(yùn)用,我都覺(jué)得受益頗多。同學(xué)們?cè)谶@為期兩
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷藏合同范本
- 加工車間轉(zhuǎn)租合同范本
- 不見(jiàn)面簽訂租賃合同范本
- 2025年合肥貨運(yùn)車從業(yè)考試題
- 個(gè)人施工承攬合同范本
- app開(kāi)發(fā)合同范本模板
- 加工訂單合同范本模板
- 農(nóng)村供熱服務(wù)合同范本
- 個(gè)人股權(quán)質(zhì)押合同范本
- 光租船合同范本
- JTG F40-2004 公路瀝青路面施工技術(shù)規(guī)范
- 黃龍溪古鎮(zhèn)文化旅游發(fā)展現(xiàn)狀與對(duì)策研究
- JT-T-1045-2016道路運(yùn)輸企業(yè)車輛技術(shù)管理規(guī)范
- 2024年事業(yè)單位衛(wèi)生系統(tǒng)(護(hù)理學(xué))招聘考試題庫(kù)與答案
- 互聯(lián)網(wǎng)金融 個(gè)人網(wǎng)絡(luò)消費(fèi)信貸 貸后催收風(fēng)控指引
- 2024年重慶市銅梁區(qū)龍都水資源開(kāi)發(fā)有限責(zé)任公司招聘筆試參考題庫(kù)附帶答案詳解
- 體檢科健康管理案例分析
- 涼山州西昌市人民醫(yī)院招聘臨床護(hù)理人員考試試題及答案
- 2024年輔警招聘考試試題庫(kù)附完整答案(必刷)
- 會(huì)議記錄表格樣本
- 2024年中考記敘文閱讀題及答案5篇
評(píng)論
0/150
提交評(píng)論