




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 廣東海洋大學(xué)寸金學(xué)院單片機課程設(shè)計 論文題目: 簡易計算器設(shè)計 系 別: 信息技術(shù)系 專 業(yè): 電氣工程及其自動化 班 級: 電氣工程及其自動化4班 姓 名: 李澤輝 林卓環(huán) 學(xué) 號: 指導(dǎo)老師: 葉偉慧 職 稱: 講師 日 期: 2015年1月4日 廣東海洋大學(xué)寸金學(xué)院教務(wù)處制目錄1 設(shè)計任務(wù)01.1 設(shè)計目的和意義01.2設(shè)計任務(wù)與要求02 系統(tǒng)設(shè)計12.1 總體方案設(shè)計12.2 芯片選型與具體電路設(shè)計12.2.1 單片機的選型12.2.2 振蕩電路的設(shè)計3復(fù)位電路的設(shè)計4矩陣鍵盤電路與運算法則指示電路的設(shè)計4LED顯示電路的設(shè)計42.3系統(tǒng)總體電路52.4 系統(tǒng)所用元器件63. 軟件系
2、統(tǒng)設(shè)計73.1 軟件系統(tǒng)總體設(shè)計方案73.2 軟件系統(tǒng)流程圖73.2.1 主程序流程圖73.2.2 按鍵掃描子程序設(shè)計84 系統(tǒng)調(diào)試94.1系統(tǒng)初始狀態(tài)的調(diào)試94.2鍵盤輸入功能的調(diào)試104.3系統(tǒng)運算功能的調(diào)試12課程設(shè)計心得體會:14附錄:簡易計算器設(shè)計的源程序清單151 設(shè)計任務(wù)1.1 設(shè)計目的和意義當今社會,隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進了家家戶戶,無論是生活或?qū)W習(xí),還是娛樂和消遣幾乎樣樣都離不開電子產(chǎn)品,大型復(fù)雜的計算能力是人腦所不能勝任的,而且比較容易出錯。計算器作為一種快速通用的計算工具方便了用戶的使用。計算器可謂是我們最親密的電子伙伴之一。本設(shè)計著重在于分析計算器
3、軟件和開發(fā)過程中的環(huán)節(jié)和步驟,并從實踐經(jīng)驗出發(fā)對計算器設(shè)計做了詳細的分析和研究。單片機由于其微小的體積和極低的成本,廣泛的應(yīng)用于家用電器、工業(yè)控制等領(lǐng)域中。在工業(yè)生產(chǎn)中。單片微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片微型計算機簡稱單片機,特別適用于控制領(lǐng)域,故又稱為微控制器。本系統(tǒng)采用AT89C51設(shè)計計算器控制器,實現(xiàn)了能根據(jù)實際輸入值顯示,簡單運算的功能。1.2設(shè)計任務(wù)與要求1、設(shè)計4*4的鍵盤,其中10個數(shù)字鍵09,其余6個鍵為“+”、“-”“*”、“/”、“=”和“C”鍵;2、設(shè)計2位LED接口電路;3、實現(xiàn)1位數(shù)的簡單運算。2 系統(tǒng)設(shè)計2.1 總體方案設(shè)計 根據(jù)
4、系統(tǒng)的要求,確定系統(tǒng)的總體方案如圖1所示。圖1 系統(tǒng)總體設(shè)計方案2.2 芯片選型與具體電路設(shè)計 單片機的選型 系統(tǒng)采用AT89C51單片機,該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,所以是一種高效微控制器。 主要有以下特性:1、與MCS-51 兼容 2、4K字節(jié)可編程FLASH存儲器 3、全靜態(tài)工作:0Hz-24MHz 4、128×8位內(nèi)部RAM 5、32可編程I/O線 6、兩個16位定時器/計數(shù)器 7、5個中斷源 8、片內(nèi)振蕩器和時鐘電路 各管腳說明如下:VCC:供電電壓。
5、 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電
6、阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸
7、入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引
8、腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 振蕩
9、電路的設(shè)計 本系統(tǒng)采取12MHz晶振為振蕩源,為單片機提供時鐘信號,其電路如圖2所示。圖2 振蕩電路設(shè)計2.2.3復(fù)位電路的設(shè)計系統(tǒng)復(fù)位電路設(shè)計如圖3所示。圖3 復(fù)位電路設(shè)計2.2.4 矩陣鍵盤電路與運算法則指示電路的設(shè)計系統(tǒng)采用了KEYPAD-SMALLCALC型4*4計算器專用鍵盤,包含行線和列線各4根,分別接于P1.0P1.3和P1.4P1.7??奢斎霐?shù)字09,進行“+”、“-”、“*”、“/”簡單運算,并具有復(fù)位功能;運算法則指示電路采用了4只黃色LED-BIRY,并將其共地,另一端分別接至單片機的4個管腳,當執(zhí)行某種運算法則時,其對應(yīng)的LED亮,運算完成后,LED滅。系統(tǒng)矩陣鍵盤電路
10、與運算法則指示電路如圖4所示。圖4 矩陣鍵盤與運算法則指示電路設(shè)計2.2.5 LED顯示電路的設(shè)計根據(jù)設(shè)計要求,系統(tǒng)采用了2個7SEG-COM-CATHODE型7位LED顯示器,分別接于單片機P0口和P2口得低7位,并分別接上拉排阻RP1和RP2,顯示輸入數(shù)據(jù)和運算結(jié)果。當顯示數(shù)據(jù)為一位數(shù)時,高位顯示“0”,低位顯示需要顯示的數(shù)字。LED顯示電路設(shè)計如圖5所示。圖5 LED顯示電路設(shè)計2.3 系統(tǒng)總體電路系統(tǒng)總體上分為單片機、振蕩電路、復(fù)位電路、LED顯示電路、矩陣鍵盤電路、運算法則指示電路六個部分。單片機為系統(tǒng)的中央處理器,完成數(shù)據(jù)的采集、運算、數(shù)據(jù)輸出等功能;振蕩電路采用12MHz的晶振,
11、為單片機提供時鐘信號;復(fù)位電路為單片機提供復(fù)位功能;LED顯示電路采用2只7位LED顯示器,實現(xiàn)2位輸入輸出數(shù)據(jù)的顯示;運算法則指示電路通過4只LED顯示系統(tǒng)當前的運算法則。系統(tǒng)總體電路如圖6所示。圖6 系統(tǒng)總體電路設(shè)計2.4 系統(tǒng)所用元器件 本系統(tǒng)所用的元器件清單如表1所示。表1 本系統(tǒng)所用的元器件元器件名稱數(shù)量單片機AT89C5117位LED顯示器7SEG-COM-CATHODE2電容CAP2極性電容CAP-ELEC1晶振CRYSTAL1計算器鍵盤KEYPAD-SMALLCALC1LED-BIRY4電阻RES1排阻RESPACK-82電源VCC1導(dǎo)線若干3. 軟件系統(tǒng)設(shè)計3.1 軟件系統(tǒng)總
12、體設(shè)計方案 系統(tǒng)通過矩陣鍵盤輸入數(shù)據(jù),單片機對輸入數(shù)據(jù)進行處理,將處理結(jié)果輸出,通過LED顯示電路和運算法則指示電路顯示處理結(jié)果。軟件系統(tǒng)總體設(shè)計方案如圖7所示。圖7 軟件系統(tǒng)總體設(shè)計方案3.2 軟件系統(tǒng)流程圖3.2.1 主程序流程圖主程序流程圖如圖8所示。圖8 主程序流程圖3.2.2 按鍵掃描子程序設(shè)計 (小四宋體加粗)由于矩陣鍵盤的行線和列線分別接于P1口得高4位和低4位,通過線反轉(zhuǎn)法檢測鍵盤按鍵狀態(tài),根據(jù)所得值向單片機反饋相應(yīng)數(shù)據(jù)。按鍵掃描流程圖如圖9所示。圖9 按鍵掃描流程圖4 系統(tǒng)調(diào)試4.1系統(tǒng)初始狀態(tài)的調(diào)試 系統(tǒng)初始狀態(tài)時,2個LED顯示器顯示“0”,運算法則指示燈全滅。調(diào)試結(jié)果如
13、圖10所示。圖10 系統(tǒng)初始狀態(tài)調(diào)試結(jié)果4.2鍵盤輸入功能的調(diào)試通過鍵盤分別輸入“8”、“*”、“9”,LED顯示電路和運算法則指示電路分別顯示相應(yīng)的結(jié)果。調(diào)試結(jié)果如圖11所示。(a)輸入“8”(b)輸入“*”(c)輸入“9”圖11 鍵盤輸入功能調(diào)試結(jié)果4.3系統(tǒng)運算功能的調(diào)試當輸入“8”、“*”、“9”后,點擊“=”可得到運算結(jié)果“72”,并通過LED顯示電路顯示。調(diào)試結(jié)果如圖12所示。圖12 系統(tǒng)運算功能調(diào)試結(jié)果課程設(shè)計心得體會:通過這次單片機課程設(shè)計,我們深感自己動手操作的重要性。我們在課堂上接觸到的多半是蒼白的理論,在實踐層面上只有一定的指導(dǎo)作用。但是真正在實際運用過程中,我們?nèi)绻狈?/p>
14、必要的及時鍛煉,那將會感覺到力不從心。工科本來就是一門集思維和動手能力于一體的學(xué)科,要想真正掌握好,思考、假設(shè)和實驗驗證都是必不可少的。在通過很多的理論學(xué)習(xí)之后,我們通過課程設(shè)計和相關(guān)的實驗把書本上的理論知識在實際運用中加以利用,鞏固了理論知識的同時也增強了我們的動手能力。通過實習(xí),我才真正領(lǐng)略到“艱苦奮斗”這一詞的真正含義,我才意識到老一輩電子設(shè)計為我們的社會付出。我們學(xué)習(xí)理論知識的最終目的還是要走向?qū)嶋H運用, 通過這種模擬式的學(xué)習(xí),我們加深認識到理論與實踐的差異。通過這個課程設(shè)計,我們大家把整個學(xué)習(xí)階段的各種學(xué)科知識竄聯(lián)在一起,更好地認識到學(xué)習(xí)是一個系統(tǒng)工程。我們的每一個環(huán)節(jié)都是
15、在為以后的實踐環(huán)節(jié)做鋪墊,我們的每一個環(huán)節(jié)都是要有所掌握才可以順利完成任務(wù)。通過這樣的實踐活動,我們都深感動手起來遇到的各種問題都要親自去解決是一件很不容易的事情,同時我們也在實踐過程中修復(fù)了以往學(xué)習(xí)的很多漏洞。我們也得到了不同程度的完善和提升。希望以后能多舉行多參與這類型的實踐活動。把理論知識結(jié)合到實踐層面去,理論結(jié)合實際學(xué)習(xí)才會更有聲有色。要把我們學(xué)到理論知識的真正利用到生產(chǎn)實際中還需要大量的實踐和運用。我們忘不了自己在這一過程中的努力與收獲,我們也相信付出與收獲成正比,我們付出的越多,相應(yīng)地收獲也就越多,學(xué)習(xí)的過程中,我們要不斷地改進和學(xué)習(xí),多多交流才能更好更輕松地學(xué)習(xí)。這次課程設(shè)計終于
16、順利完成了,在設(shè)計中遇到了很多專業(yè)知識問題,最后在老師的辛勤指導(dǎo)下,終于順利完成。同時,在老師的身上我們學(xué)也到很多實用的知識,在次我們表示感謝!同時,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝! 成績: 評閱老師: 日期:附錄:簡易計算器設(shè)計的源程序清單#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit Jia =P34; /加法標志sbit Jian =P35; /減法標志sbit Cheng=P36; /乘法標志sbi
17、t Chu =P37; /除法標志int a=0,b=0,c=0;int flag=0; /輸入數(shù)據(jù)標志位int flag1=0; /運算法則標志位uchar code KeyCodeTable= 0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88; /按鍵掃描碼表unsigned char const table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0-F /L
18、ED共陰極字碼表 void Delay_ms(unsigned int t) /延時函數(shù)unsigned int i;while(t-)for(i=0;i<560; i+);void JiSuan() /運算函數(shù) if(flag1=0) c=a+b; /加運算 else if(flag1=1) c=a-b; /減運算 else if(flag1=2) c=a*b; /乘運算 else if(flag1=3) c=a/b; /除運算 flag1=0; Jia=0; Jian=0; Cheng=0; Chu=0; if(c>9) a=c/10; b=c%10; P0=tablea; P
19、2=tableb; else P0=table0; P2=tablec; uchar Keys_Scan() /按鍵掃描函數(shù) uchar sCode,kCode,k;P1 = 0xf0;if(P1&0xf0)!=0xf0) Delay_ms(30);if(P1&0xf0)!=0xf0) sCode = 0xfe;Delay_ms(20);for(k=0;k<4;k+) P1 = sCode;if(P1&0xf0)!=0xf0) kCode = P1;if(kCode = KeyCodeTable0) return 0;if(kCode = KeyCodeTable
20、1) return 1;if(kCode = KeyCodeTable2) return 2;if(kCode = KeyCodeTable3) return 3;if(kCode = KeyCodeTable4) return 4;if(kCode = KeyCodeTable5) return 5;if(kCode = KeyCodeTable6) return 6;if(kCode = KeyCodeTable7) return 7;if(kCode = KeyCodeTable8) return 8;if(kCode = KeyCodeTable9) return 9;if(kCode
21、 = KeyCodeTable10) return 10;if(kCode = KeyCodeTable11) return 11;if(kCode = KeyCodeTable12) return 12;if(kCode = KeyCodeTable13) return 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: if(flag=0)a=8;flag=1;else b=8;flag=0; P2 = table8; break; case 2: P2 = table9
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防接種課件幻燈片
- 預(yù)防小學(xué)生近視教案課件
- 預(yù)防傳染主題班會課件
- 音樂課件兒童歌曲
- 2025年基因工程亞單元疫苗項目合作計劃書
- 屋面雨水排水系統(tǒng)安裝監(jiān)理指南
- 2025年建筑用天然石料項目合作計劃書
- 文化遺產(chǎn)傳承與現(xiàn)代化
- 衛(wèi)生部《手足口病預(yù)防控制指南版》
- 安全設(shè)施使用管理制度培訓(xùn)
- 糖尿病護理和管理
- 2025年廣東省中考化學(xué)真題(解析版)
- 照明組裝生產(chǎn)車間試題帶答案
- 財務(wù)部門半年工作復(fù)盤
- 江蘇南京金陵中學(xué)2024~2025學(xué)年高一下冊期末考試數(shù)學(xué)試題學(xué)生卷
- 福建福州第八中學(xué)2024~2025學(xué)年高一下冊期末數(shù)學(xué)試題
- 供電系統(tǒng)安全培訓(xùn)
- 生產(chǎn)工藝流程控制考核試卷
- 農(nóng)機駕駛培訓(xùn)教程課件
- 箱變吊裝方案(3篇)
- 直播電商結(jié)算管理制度
評論
0/150
提交評論