基于MCS-51單片機(jī)的計(jì)算器設(shè)計(jì)_第1頁(yè)
基于MCS-51單片機(jī)的計(jì)算器設(shè)計(jì)_第2頁(yè)
基于MCS-51單片機(jī)的計(jì)算器設(shè)計(jì)_第3頁(yè)
基于MCS-51單片機(jī)的計(jì)算器設(shè)計(jì)_第4頁(yè)
基于MCS-51單片機(jī)的計(jì)算器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、xxx學(xué)院畢業(yè)設(shè)計(jì)論文基于MCS-51單片機(jī)的計(jì)算器設(shè)計(jì)作者: xxx院系: xxxx學(xué)院機(jī)電工程系專業(yè): 電氣自動(dòng)化年級(jí): xx級(jí)學(xué)號(hào): xxxxx指導(dǎo)教師: xxx摘要本設(shè)計(jì)是一個(gè)實(shí)現(xiàn)加減乘除的計(jì)算器,它的硬件主要由四部分構(gòu)成,一個(gè)8051單片機(jī)芯片,六個(gè)八段共陰極數(shù)碼管,一個(gè)4*4鍵盤,它可以實(shí)現(xiàn)兩位數(shù)的基本加減乘除運(yùn)算。關(guān)鍵詞:MCS-51 單片機(jī) 計(jì)算器 數(shù)碼管目 錄引言:一、設(shè)計(jì)任務(wù)二、方案論證三、電路的硬件設(shè)計(jì)系統(tǒng)框圖微處理器的選擇電源模塊、AT89S52單片機(jī)參數(shù)、鍵盤的設(shè)計(jì)、復(fù)位電路、震蕩電路設(shè)計(jì)、數(shù)碼顯示的驅(qū)動(dòng)電路、數(shù)碼管顯示電路四、軟件設(shè)計(jì)、系統(tǒng)總體流程圖、顯示程序設(shè)計(jì)4

2、.3、鍵盤識(shí)別程序設(shè)計(jì)五、本次設(shè)計(jì)的體會(huì)與心得參考文獻(xiàn)附錄:基于51單片機(jī)的計(jì)算器硬件電路PCB圖:引言:隨著社會(huì)的發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技術(shù)的發(fā)展,猶如雨后春筍般的變化。電子產(chǎn)品的更新速度快就不足驚奇了近年來(lái),單片機(jī)以其體積小、價(jià)格廉、面向控制等獨(dú)特優(yōu)點(diǎn),在各種工業(yè)控制、儀器儀表、設(shè)備、產(chǎn)品的自動(dòng)化、智能化方面獲得了廣泛的應(yīng)用。與此同時(shí),單片機(jī)應(yīng)用系統(tǒng)的可靠性成為人們?cè)絹?lái)越關(guān)注的重要課題。影響可靠性的因素是多方面的,如構(gòu)成系統(tǒng)的元器件本身的可靠性、系統(tǒng)本身各部分之間的相互耦合因素等。其中系統(tǒng)的抗干擾性能是系統(tǒng)可靠性的重要指標(biāo)計(jì)算器在人們的日常中是比較的常見

3、的電子產(chǎn)品之一。可是它還在發(fā)展之中,以后必將出現(xiàn)功能更加強(qiáng)大的計(jì)算器,基于這樣的理念,本次設(shè)計(jì)是用單片機(jī)來(lái)設(shè)計(jì)的計(jì)算器。該設(shè)計(jì)系統(tǒng)是以AT89C51為單片機(jī), P2口作為輸入端,外接4X5的鍵盤,通過(guò)鍵盤掃描來(lái)對(duì)輸入數(shù)的控制,并外接驅(qū)動(dòng)電路,用來(lái)保證數(shù)碼管的工作正常。計(jì)算器將完成的功能有加,減,乘,除等功能。一、設(shè)計(jì)任務(wù)(1)設(shè)計(jì)鍵盤,其中有10個(gè)數(shù)字鍵09,和實(shí)現(xiàn)基本“+”、“”、“*”、“/”、“=”鍵;(2)設(shè)計(jì)顯示電路能夠顯示按鍵的數(shù)值及計(jì)算結(jié)果;(3)實(shí)現(xiàn)2位數(shù)的簡(jiǎn)單運(yùn)算二、方案論證方案一:采用計(jì)算器專用芯片實(shí)現(xiàn)。用計(jì)算器專用芯片進(jìn)行設(shè)計(jì)并編程實(shí)現(xiàn)。這種設(shè)計(jì)方案計(jì)算效率高、速度快、而

4、且成本也相對(duì)較低,是廠家做計(jì)算器的最佳方案。但是本人對(duì)計(jì)算器專用芯片掌握的不夠,還不足以實(shí)現(xiàn)設(shè)計(jì)計(jì)算器,所以這個(gè)方案不可去。方案二:采用FPGA(現(xiàn)場(chǎng)可編程門陣列)作為系統(tǒng)的控制器。FPGA將所有器件集成到一塊芯片上,體積小,節(jié)省空間,提高了穩(wěn)定性;直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測(cè)試和實(shí)現(xiàn)快捷,開發(fā)效率高,工作可靠性好。可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密度高,采用并行的輸入輸出方式,系統(tǒng)處理速度高,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。由FPGA內(nèi)部編程實(shí)現(xiàn)計(jì)算器功能,本設(shè)計(jì)對(duì)數(shù)據(jù)處理速度的要求不是很高,F(xiàn)PGA的高速處理的優(yōu)勢(shì)得不到充分的體現(xiàn),由于其集成度高,使其成本

5、偏高,同時(shí)由于芯片的引腳較多,實(shí)物電路板布線復(fù)雜,加重了電路設(shè)計(jì)和實(shí)際焊接的工作。并且FPGA的價(jià)格相對(duì)較高,性價(jià)比太低。方案三:用單片機(jī)實(shí)現(xiàn)。由于單片機(jī)集成了運(yùn)算器電路、控制電路、存儲(chǔ)器、中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器以及輸入/輸出口電路等,所以用單片機(jī)設(shè)計(jì)控制電路省去了很多分立元器件。由于單片機(jī)是可編程芯片,并且它可以運(yùn)用C語(yǔ)言編寫,對(duì)于一些復(fù)雜的計(jì)算功能,可以調(diào)用C語(yǔ)言庫(kù)函數(shù)。使編寫程序變得非常簡(jiǎn)單。所以該課題用單片機(jī)實(shí)現(xiàn),不僅功能易于實(shí)現(xiàn),而且精確度高,穩(wěn)定性好,抗干擾能力強(qiáng)。并且由于其成本低、體積小、技術(shù)成熟和功耗小等優(yōu)點(diǎn),且技術(shù)比較成熟。性價(jià)比也相當(dāng)高。更重要的是本人經(jīng)過(guò)幾年的學(xué)習(xí),對(duì)單

6、片機(jī)已有深刻的理解,并且可以靈活運(yùn)用。綜上所述,并通過(guò)各個(gè)方面綜合比較為達(dá)到最佳效果。我們采用方案三利用單片機(jī)控制器。三、電路的硬件設(shè)計(jì)鍵盤輸入數(shù)碼顯示驅(qū)動(dòng)芯片AT89S52圖1:系統(tǒng)框圖的選擇 1、控制中心采用AT89S52來(lái)實(shí)現(xiàn) 2、驅(qū)動(dòng)是74LS244實(shí)現(xiàn) 3、顯示用六個(gè)共陰數(shù)碼管完成 4、以7805芯片為核心,提供+5V,2A直流電源圖2:電源模塊D1-D4為普通二極管,D6為發(fā)光二極管, C1為1000-4700uf的電解電容,C2、C4為0.1-1uF瓷片電容、C3為100-470uF的電解電容,系統(tǒng)的參數(shù)如上圖所示。7805引腳的1、3兩端加二極管D5,目的為了有效的保護(hù)電路。在

7、電流過(guò)大時(shí)可以對(duì)7805的耐壓起到了保護(hù)左右以免燒毀7805芯片。在C1的電容增大時(shí)可以提高電路的穩(wěn)壓效應(yīng),當(dāng)然也不說(shuō)是越大越好。C2為濾波電容可以有效的慮掉高電平信號(hào)產(chǎn)生的干擾。D6是一個(gè)發(fā)光二極管,可以在上電時(shí)看到電路是不是導(dǎo)通的。C3和C4夠成了電容的反饋有效的慮底平波和保護(hù)電路。、AT89S52單片機(jī)參數(shù)圖3:?jiǎn)纹瑱C(jī)引腳與MCS-51單片機(jī)產(chǎn)品兼容 、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、 1000次擦寫周期、 全靜態(tài)操作:0Hz33Hz 、 32個(gè)可編程I/O口線 、三個(gè)16位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源 、全雙工UART串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定

8、時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符。其正常工作時(shí)Vcc為5V的電源,Vss為接地端,IO總線分別為P0、P1、P2、P3口,32根IO引線,每根都可以獨(dú)立使用。P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏 輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0具有內(nèi)部上拉電阻。 在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn) 時(shí),需要外部上拉電阻。 P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4

9、個(gè) TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 引腳號(hào)第二功能 P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出 P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1

10、.7 SCK(在系統(tǒng)編程用) P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR) 時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控

11、制信號(hào)。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。 端口引腳 第二功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INTO(外中斷0)P3.3 INT1(外中斷1)P3.4 TO(定時(shí)/計(jì)數(shù)器0)P3.5 T1(定時(shí)/計(jì)數(shù)器1)P3.

12、6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。ALE/PROG當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8

13、EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效。PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。EA/VPP外部訪問(wèn)允許,欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vc

14、c端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。3.5、鍵盤的設(shè)計(jì)圖4鍵盤的設(shè)計(jì)圖4是鍵盤的設(shè)計(jì),用AT89S52芯片構(gòu)成的4X5的鍵盤。P2口和P1口的7腳與其相接。矩陣鍵盤工作原理是。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口(如P1口)就可以構(gòu)成4*4=16個(gè)按鍵。確定矩陣式鍵盤上何鍵被按下,用“行掃描法”。 行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識(shí)別方法.判斷鍵盤中有無(wú)鍵按下: 將全部行線置低電平,然后檢測(cè)列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交*的4個(gè)按鍵之中。若所

15、有列線均為高電平,則鍵盤中無(wú)鍵按下。判斷閉合鍵所在的位置: 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過(guò)程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交*處的按鍵就是閉合的按鍵。把每個(gè)鍵都分成水平和垂直的兩端接入,比如說(shuō)掃描碼是從垂直的入,那就代表那一行所接收到的掃描碼是同一個(gè)位,而讀入掃描碼的則是水平,掃描的動(dòng)作是先輸入掃描碼,再去讀取輸入的值,經(jīng)過(guò)比對(duì)之后就可知道是哪個(gè)鍵被按下。鍵盤電路設(shè)計(jì)說(shuō)明:1、 在安裝前應(yīng)首先確保開關(guān)無(wú)損壞。2、 看電路有無(wú)短接,虛焊等現(xiàn)象

16、。3.6、復(fù)位電路圖5:復(fù)位電路圖中的RST接單片機(jī)的9號(hào)腳,當(dāng)按鍵S按下時(shí)單片機(jī)復(fù)位。其中電阻R23和R6分別取200和1K,電容C4為電解性電容取值為16V/22UF。Vcc接5V電壓。3.7、震蕩電路設(shè)計(jì)圖6: 震蕩電路圖中X1、X2分別接單片機(jī)的18和19號(hào)腳。時(shí)鐘有內(nèi)部電路產(chǎn)生,定時(shí)器件為石英晶體和電容組成的并聯(lián)諧振回路,電容C1、C2的取之為30p,Y1的取值為12MHz。3.8、數(shù)碼顯示的驅(qū)動(dòng)電路圖7:數(shù)碼顯示驅(qū)動(dòng)電路該設(shè)計(jì)采用74LS244芯片作為驅(qū)動(dòng),以保證數(shù)碼管顯示的亮度。其輸入端接單片機(jī)的P1口,輸出端串180的限流電阻接數(shù)碼管的段碼。1號(hào)腳和19號(hào)腳接底電平。74LS2

17、44芯片為244為三態(tài)輸出的八組緩沖器和總線驅(qū)動(dòng)器。其功能表如下圖所示:圖8:74LS244功能表圖3.9、數(shù)碼管顯示電路圖9:數(shù)碼管顯示電路設(shè)計(jì)采用六個(gè)共陰八段數(shù)碼管顯示,各數(shù)碼管的段選線并接之后接入驅(qū)動(dòng)電路。其六個(gè)公共端分別接P3口底六位,作為動(dòng)態(tài)顯示時(shí)選擇數(shù)碼管用。動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。四、軟

18、件設(shè)計(jì)4.1、系統(tǒng)總體流程圖開始初始化參數(shù)數(shù)碼管顯示零鍵盤行列掃描有健按下讀取鍵碼鍵碼是?數(shù)字鍵運(yùn)算功能鍵清零鍵記憶其對(duì)應(yīng)的鍵值記憶其運(yùn)算符數(shù)碼管顯示數(shù)碼管顯示是“=”?計(jì)算最后結(jié)果數(shù)碼管顯示是“=”其他鍵圖10:系統(tǒng)總體流程圖4.2、顯示程序設(shè)計(jì)利用數(shù)碼管動(dòng)態(tài)顯示的方法,設(shè)置顯示循環(huán)次數(shù),讓六個(gè)數(shù)碼管從左到右依次顯示,之間要調(diào)用延時(shí)子程序,但延時(shí)時(shí)間小于人的視覺暫留。程序流程圖如下圖11:顯示程序流程圖4.3、鍵盤識(shí)別程序設(shè)計(jì) 該試劑利用5*4的小鍵盤,提供 0-9, “+”“-”“*”“/”,“=”,清零鍵。再利用數(shù)碼管,對(duì)于即時(shí)按下的鍵和結(jié)果進(jìn)行顯示。向列掃描碼逐列輸出低電平,然后從行碼地址讀回。如果有鍵按下,則相應(yīng)的行值應(yīng)為低,如果無(wú)鍵按下,由于上拉電阻的作用,行碼為高

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論