簡易計(jì)算器設(shè)計(jì)_第1頁
簡易計(jì)算器設(shè)計(jì)_第2頁
簡易計(jì)算器設(shè)計(jì)_第3頁
簡易計(jì)算器設(shè)計(jì)_第4頁
簡易計(jì)算器設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、. z.- - - .可修編 . *海洋大學(xué)寸金學(xué)院單片機(jī)課程設(shè)計(jì)論文題目: 簡易計(jì)算器設(shè)計(jì)系 別: 信息技術(shù)系 專 業(yè):電氣工程及其自動(dòng)化班 級(jí):電氣工程及其自動(dòng)化4班 姓 名: 李澤輝 林卓環(huán)學(xué) 號(hào):13 18指導(dǎo)教師: 葉偉慧 職 稱: 講師 日 期: 2015年1月4日 *海洋大學(xué)寸金學(xué)院教務(wù)處制. z. TOC o 1-3 h z u 目錄 TOC o 1-3 h z u HYPERLINK l _Toc4080541271 設(shè)計(jì)任務(wù) PAGEREF _Toc408054127 h 0HYPERLINK l _Toc4080541281.1 設(shè)計(jì)目的和意義 PAGEREF _Toc4

2、08054128 h 0HYPERLINK l _Toc4080541291.2設(shè)計(jì)任務(wù)與要求 PAGEREF _Toc408054129 h 0HYPERLINK l _Toc4080541302 系統(tǒng)設(shè)計(jì) PAGEREF _Toc408054130 h 1HYPERLINK l _Toc4080541312.1 總體方案設(shè)計(jì) PAGEREF _Toc408054131 h 1HYPERLINK l _Toc4080541322.2 芯片選型與具體電路設(shè)計(jì) PAGEREF _Toc408054132 h 1HYPERLINK l _Toc4080541332.2.1 單片機(jī)的選型 PAGER

3、EF _Toc408054133 h 1HYPERLINK l _Toc4080541342.2.2 振蕩電路的設(shè)計(jì) PAGEREF _Toc408054134 h 3HYPERLINK l _Toc408054135復(fù)位電路的設(shè)計(jì) PAGEREF _Toc408054135 h 4HYPERLINK l _Toc408054136矩陣鍵盤電路與運(yùn)算法則指示電路的設(shè)計(jì) PAGEREF _Toc408054136 h 4HYPERLINK l _Toc408054137顯示電路的設(shè)計(jì) PAGEREF _Toc408054137 h 4HYPERLINK l _Toc4080541382.3系統(tǒng)總

4、體電路 PAGEREF _Toc408054138 h 5HYPERLINK l _Toc4080541392.4 系統(tǒng)所用元器件 PAGEREF _Toc408054139 h 6HYPERLINK l _Toc4080541403. 軟件系統(tǒng)設(shè)計(jì) PAGEREF _Toc408054140 h 7HYPERLINK l _Toc4080541413.1 軟件系統(tǒng)總體設(shè)計(jì)方案 PAGEREF _Toc408054141 h 7HYPERLINK l _Toc4080541423.2 軟件系統(tǒng)流程圖 PAGEREF _Toc408054142 h 7HYPERLINK l _Toc408054

5、1433.2.1 主程序流程圖 PAGEREF _Toc408054143 h 7HYPERLINK l _Toc4080541443.2.2 按鍵掃描子程序設(shè)計(jì) PAGEREF _Toc408054144 h 8HYPERLINK l _Toc4080541454 系統(tǒng)調(diào)試 PAGEREF _Toc408054145 h 9HYPERLINK l _Toc4080541464.1系統(tǒng)初始狀態(tài)的調(diào)試 PAGEREF _Toc408054146 h 9HYPERLINK l _Toc4080541474.2鍵盤輸入功能的調(diào)試 PAGEREF _Toc408054147 h 10HYPERLINK

6、 l _Toc4080541484.3系統(tǒng)運(yùn)算功能的調(diào)試 PAGEREF _Toc408054148 h 12HYPERLINK l _Toc408054149課程設(shè)計(jì)心得體會(huì): PAGEREF _Toc408054149 h 14HYPERLINK l _Toc408054151附錄:簡易計(jì)算器設(shè)計(jì)的源程序清單 PAGEREF _Toc408054151 h 151 設(shè)計(jì)任務(wù)1.1 設(shè)計(jì)目的和意義當(dāng)今社會(huì),隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進(jìn)了家家戶戶,無論是生活或?qū)W習(xí),還是娛樂和消遣幾乎樣樣都離不開電子產(chǎn)品,大型復(fù)雜的計(jì)算能力是人腦所不能勝任的,而且比擬容易出錯(cuò)。計(jì)算器作為一種快速

7、通用的計(jì)算工具方便了用戶的使用。計(jì)算器可謂是我們最親密的電子伙伴之一。本設(shè)計(jì)著重在于分析計(jì)算器軟件和開發(fā)過程中的環(huán)節(jié)和步驟,并從實(shí)踐經(jīng)歷出發(fā)對計(jì)算器設(shè)計(jì)做了詳細(xì)的分析和研究。單片機(jī)由于其微小的體積和極低的本錢,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中。單片微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。本系統(tǒng)采用AT89C51設(shè)計(jì)計(jì)算器控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際輸入值顯示,簡單運(yùn)算的功能。1.2設(shè)計(jì)任務(wù)與要求1、設(shè)計(jì)4*4的鍵盤,其中10個(gè)數(shù)字鍵09,其余6個(gè)鍵為+、-*、/、=和C鍵;2、設(shè)計(jì)2位LED接口

8、電路;3、實(shí)現(xiàn)1位數(shù)的簡單運(yùn)算。2 系統(tǒng)設(shè)計(jì)2.1 總體方案設(shè)計(jì) 根據(jù)系統(tǒng)的要求,確定系統(tǒng)的總體方案如圖1所示。圖1 系統(tǒng)總體設(shè)計(jì)方案2.2 芯片選型與具體電路設(shè)計(jì)單片機(jī)的選型系統(tǒng)采用AT89C51單片機(jī),該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,所以是一種高效微控制器。主要有以下特性:1、與MCS-51 兼容 2、4K字節(jié)可編程FLASH存儲(chǔ)器 3、全靜態(tài)工作:0Hz-24MHz 4、1288位內(nèi)部RAM 5、32可編程I/O線 6、兩個(gè)16位定時(shí)器/計(jì)數(shù)器 7、5個(gè)中斷源 8、片內(nèi)

9、振蕩器和時(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í)P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口

10、作為第八位地址接收。 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口輸出地址的高八位。在給出地址1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(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

11、口寫入1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流ILL這是由于上拉的緣故。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOV*

12、,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ǔ)器0000H-FFFFH,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源VPP。 *TAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 *TA

13、L2:來自反向振蕩器的輸出。 振蕩電路的設(shè)計(jì)本系統(tǒng)采取12MHz晶振為振蕩源,為單片機(jī)提供時(shí)鐘信號(hào),其電路如圖2所示。圖2振蕩電路設(shè)計(jì)2.2.3復(fù)位電路的設(shè)計(jì)系統(tǒng)復(fù)位電路設(shè)計(jì)如圖3所示。圖3復(fù)位電路設(shè)計(jì)矩陣鍵盤電路與運(yùn)算法則指示電路的設(shè)計(jì)系統(tǒng)采用了KEYPAD-SMALLCALC型4*4計(jì)算器專用鍵盤,包含行線和列線各4根,分別接于P1.0P1.3和P1.4P1.7??奢斎霐?shù)字09,進(jìn)展+、-、*、/簡單運(yùn)算,并具有復(fù)位功能;運(yùn)算法則指示電路采用了4只黃色LED-BIRY,并將其共地,另一端分別接至單片機(jī)的4個(gè)管腳,當(dāng)執(zhí)行*種運(yùn)算法則時(shí),其對應(yīng)的LED亮,運(yùn)算完成后,LED滅。系統(tǒng)矩陣鍵盤電路

14、與運(yùn)算法則指示電路如圖4所示。圖4矩陣鍵盤與運(yùn)算法則指示電路設(shè)計(jì)LED顯示電路的設(shè)計(jì)根據(jù)設(shè)計(jì)要求,系統(tǒng)采用了2個(gè)7SEG-CATHODE型7位LED顯示器,分別接于單片機(jī)P0口和P2口得低7位,并分別接上拉排阻RP1和RP2,顯示輸入數(shù)據(jù)和運(yùn)算結(jié)果。當(dāng)顯示數(shù)據(jù)為一位數(shù)時(shí),高位顯示0”圖5 LED顯示電路設(shè)計(jì)系統(tǒng)總體電路系統(tǒng)總體上分為單片機(jī)、振蕩電路、復(fù)位電路、LED顯示電路、矩陣鍵盤電路、運(yùn)算法則指示電路六個(gè)局部。單片機(jī)為系統(tǒng)的中央處理器,完成數(shù)據(jù)的采集、運(yùn)算、數(shù)據(jù)輸出等功能;振蕩電路采用12MHz的晶振,為單片機(jī)提供時(shí)鐘信號(hào);復(fù)位電路為單片機(jī)提供復(fù)位功能;LED顯示電路采用2只7位LED顯示

15、器,實(shí)現(xiàn)2位輸入輸出數(shù)據(jù)的顯示;運(yùn)算法則指示電路通過4只LED顯示系統(tǒng)當(dāng)前的運(yùn)算法則。系統(tǒng)總體電路如圖6所示。圖6 系統(tǒng)總體電路設(shè)計(jì)2.4 系統(tǒng)所用元器件 本系統(tǒng)所用的元器件清單如表1所示。表1 本系統(tǒng)所用的元器件元器件名稱數(shù)量單片機(jī)AT89C17位LED顯示器7SEG-CATHODE2電容CAP2極性電容CAP-ELEC1晶振CRYSTAL1計(jì)算器鍵盤KEYPAD-SMALLCALC1LED-BIRY4電阻RES1排阻RESPACK-82電源VCC1導(dǎo)線假設(shè)干3. 軟件系統(tǒng)設(shè)計(jì)3.1 軟件系統(tǒng)總體設(shè)計(jì)方案系統(tǒng)通過矩陣鍵盤輸入數(shù)據(jù),單片機(jī)對輸入數(shù)據(jù)進(jìn)展處理,將處理結(jié)果輸出,通過LED顯示電路和

16、運(yùn)算法則指示電路顯示處理結(jié)果。軟件系統(tǒng)總體設(shè)計(jì)方案如圖7所示。圖7 軟件系統(tǒng)總體設(shè)計(jì)方案3.2 軟件系統(tǒng)流程圖3.2.1 主程序流程圖主程序流程圖如圖8所示。圖8 主程序流程圖3.2.2按鍵掃描子程序設(shè)計(jì) 小四宋體加粗由于矩陣鍵盤的行線和列線分別接于P1口得高4位和低4位,通過線反轉(zhuǎn)法檢測鍵盤按鍵狀態(tài),根據(jù)所得值向單片機(jī)反應(yīng)相應(yīng)數(shù)據(jù)。按鍵掃描流程圖如圖9所示。圖9 按鍵掃描流程圖4 系統(tǒng)調(diào)試4.1系統(tǒng)初始狀態(tài)的調(diào)試系統(tǒng)初始狀態(tài)時(shí),2個(gè)LED顯示器顯示0”圖10 系統(tǒng)初始狀態(tài)調(diào)試結(jié)果4.2鍵盤輸入功能的調(diào)試通過鍵盤分別輸入8”、*、9(a)輸入8(b)輸入*(c)輸入9圖11 鍵盤輸入功能調(diào)試結(jié)

17、果4.3系統(tǒng)運(yùn)算功能的調(diào)試當(dāng)輸入8”圖12 系統(tǒng)運(yùn)算功能調(diào)試結(jié)果課程設(shè)計(jì)心得體會(huì):通過這次單片機(jī)課程設(shè)計(jì),我們深感自己動(dòng)手操作的重要性。我們在課堂上接觸到的多半是蒼白的理論,在實(shí)踐層面上只有一定的指導(dǎo)作用。但是真正在實(shí)際運(yùn)用過程中,我們?nèi)绻狈Ρ匾募皶r(shí)鍛煉,那將會(huì)感覺到力不從心。工科本來就是一門集思維和動(dòng)手能力于一體的學(xué)科,要想真正掌握好,思考、假設(shè)和實(shí)驗(yàn)驗(yàn)證都是必不可少的。在通過很多的理論學(xué)習(xí)之后,我們通過課程設(shè)計(jì)和相關(guān)的實(shí)驗(yàn)把書本上的理論知識(shí)在實(shí)際運(yùn)用中加以利用,穩(wěn)固了理論知識(shí)的同時(shí)也增強(qiáng)了我們的動(dòng)手能力。通過實(shí)習(xí),我才真正領(lǐng)略到艱辛奮斗這一詞的真正含義,我才意識(shí)到老一輩電子設(shè)計(jì)為我們的

18、社會(huì)付出。我們學(xué)習(xí)理論知識(shí)的最終目的還是要走向?qū)嶋H運(yùn)用,通過這種模擬式的學(xué)習(xí),我們加深認(rèn)識(shí)到理論與實(shí)踐的差異。通過這個(gè)課程設(shè)計(jì),我們大家把整個(gè)學(xué)習(xí)階段的各種學(xué)科知識(shí)竄聯(lián)在一起,更好地認(rèn)識(shí)到學(xué)習(xí)是一個(gè)系統(tǒng)工程。我們的每一個(gè)環(huán)節(jié)都是在為以后的實(shí)踐環(huán)節(jié)做鋪墊,我們的每一個(gè)環(huán)節(jié)都是要有所掌握才可以順利完成任務(wù)。通過這樣的實(shí)踐活動(dòng),我們都深感動(dòng)手起來遇到的各種問題都要親自去解決是一件很不容易的事情,同時(shí)我們也在實(shí)踐過程中修復(fù)了以往學(xué)習(xí)的很多漏洞。我們也得到了不同程度的完善和提升。希望以后能多舉行多參與這類型的實(shí)踐活動(dòng)。把理論知識(shí)結(jié)合到實(shí)踐層面去,理論結(jié)合實(shí)際學(xué)習(xí)才會(huì)更有聲有色。要把我們學(xué)到理論知識(shí)的真正

19、利用到生產(chǎn)實(shí)際中還需要大量的實(shí)踐和運(yùn)用。我們忘不了自己在這一過程中的努力與收獲,我們也相信付出與收獲成正比,我們付出的越多,相應(yīng)地收獲也就越多,學(xué)習(xí)的過程中,我們要不斷地改良和學(xué)習(xí),多多交流才能更好更輕松地學(xué)習(xí)。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多專業(yè)知識(shí)問題,最后在教師的辛勤指導(dǎo)下,終于順利完成。同時(shí),在教師的身上我們學(xué)也到很多實(shí)用的知識(shí),在次我們表示感謝!同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)教師再次表示忠心的感謝!成績:評閱教師:日期:附錄:簡易計(jì)算器設(shè)計(jì)的源程序清單#include #include #define uchar unsigned char#define uin

20、t unsigned intsbit Jia =P34; /加法標(biāo)志sbit Jian =P35; /減法標(biāo)志sbit Cheng=P36; /乘法標(biāo)志sbit Chu =P37; /除法標(biāo)志int a=0,b=0,c=0;int flag=0; /輸入數(shù)據(jù)標(biāo)志位int flag1=0; /運(yùn)算法則標(biāo)志位uchar code KeyCodeTable= 0*11,0*12,0*14,0*18,0*21,0*22,0*24,0*28,0*41,0*42,0*44,0*48,0*81,0*82,0*84,0*88; /按鍵掃描碼表unsigned char const table=0*3f,0*0

21、6,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f,0*77,0*7c,0*39,0*5e,0*79,0*71;/0-F /LED共陰極字碼表 void Delay_ms(unsigned int t) /延時(shí)函數(shù)unsigned int i;while(t-)for(i=0;i9)a=c/10;b=c%10;P0=tablea;P2=tableb; elseP0=table0;P2=tablec; uchar Keys_Scan() /按鍵掃描函數(shù) uchar sCode,kCode,k;P1 = 0*f0;if(P1&0*f0)!=0*f0) Delay_m

22、s(30);if(P1&0*f0)!=0*f0) sCode = 0*fe;Delay_ms(20);for(k=0;k4;k+) P1 = sCode;if(P1&0*f0)!=0*f0) kCode = P1;if(kCode = KeyCodeTable0) return 0;if(kCode = KeyCodeTable1) return 1;if(kCode = KeyCodeTable2) return 2;if(kCode = KeyCodeTable3) return 3;if(kCode = KeyCodeTable4) return 4;if(kCode = KeyCode

23、Table5) return 5;if(kCode = KeyCodeTable6) return 6;if(kCode = KeyCodeTable7) return 7;if(kCode = KeyCodeTable8) return 8;if(kCode = KeyCodeTable9) return 9;if(kCode = KeyCodeTable10) return 10;if(kCode = KeyCodeTable11) return 11;if(kCode = KeyCodeTable12) return 12;if(kCode = KeyCodeTable13) retur

24、n 13;if(kCode = KeyCodeTable14) return 14;if(kCode = KeyCodeTable15) return 15;else sCode = _crol_(sCode,1);return -1;void main() /主函數(shù)unsigned char key; P0=table0;P2=table0;flag1=0; Jia=0;Jian=0;Cheng=0;Chu=0;while (1) key = Keys_Scan(); /鍵盤掃描結(jié)果switch(key)case 0: /第一行 if(flag=0) / c=a+b; c=a*b; c=a-b; c=a/ba=7;flag=1;else b=7;flag=0;P2 = tableb;break;case

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論