




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 廣東海洋大學寸金學院單片機課程設計 論文題目: 簡易計算器設計 系 別: 信息技術系 專 業(yè): 電氣工程及其自動化 班 級: 電氣工程及其自動化4班 姓 名: 李澤輝 林卓環(huán) 學 號: 指導老師: 葉偉慧 職 稱: 講師 日 期: 2015年1月4日 廣東海洋大學寸金學院教務處制目錄1 設計任務01.1 設計目的和意義01.2設計任務與要求02 系統設計12.1 總體方案設計12.2 芯片選型與具體電路設計12.2.1 單片機的選型12.2.2 振蕩電路的設計3復位電路的設計4矩陣鍵盤電路與運算法則指示電路的設計4LED顯示電路的設計42.3系統總體電路52.4 系統所用元器件63. 軟件系
2、統設計73.1 軟件系統總體設計方案73.2 軟件系統流程圖73.2.1 主程序流程圖73.2.2 按鍵掃描子程序設計84 系統調試94.1系統初始狀態(tài)的調試94.2鍵盤輸入功能的調試104.3系統運算功能的調試12課程設計心得體會:14附錄:簡易計算器設計的源程序清單151 設計任務1.1 設計目的和意義當今社會,隨著人們物質生活的不斷提高,電子產品已經走進了家家戶戶,無論是生活或學習,還是娛樂和消遣幾乎樣樣都離不開電子產品,大型復雜的計算能力是人腦所不能勝任的,而且比較容易出錯。計算器作為一種快速通用的計算工具方便了用戶的使用。計算器可謂是我們最親密的電子伙伴之一。本設計著重在于分析計算器
3、軟件和開發(fā)過程中的環(huán)節(jié)和步驟,并從實踐經驗出發(fā)對計算器設計做了詳細的分析和研究。單片機由于其微小的體積和極低的成本,廣泛的應用于家用電器、工業(yè)控制等領域中。在工業(yè)生產中。單片微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片微型計算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。本系統采用AT89C51設計計算器控制器,實現了能根據實際輸入值顯示,簡單運算的功能。1.2設計任務與要求1、設計4*4的鍵盤,其中10個數字鍵09,其余6個鍵為“+”、“-”“*”、“/”、“=”和“C”鍵;2、設計2位LED接口電路;3、實現1位數的簡單運算。2 系統設計2.1 總體方案設計 根據
4、系統的要求,確定系統的總體方案如圖1所示。圖1 系統總體設計方案2.2 芯片選型與具體電路設計 單片機的選型 系統采用AT89C51單片機,該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,所以是一種高效微控制器。 主要有以下特性:1、與MCS-51 兼容 2、4K字節(jié)可編程FLASH存儲器 3、全靜態(tài)工作:0Hz-24MHz 4、128×8位內部RAM 5、32可編程I/O線 6、兩個16位定時器/計數器 7、5個中斷源 8、片內振蕩器和時鐘電路 各管腳說明如下:VCC:供電電壓。
5、 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內部上拉電
6、阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸
7、入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引
8、腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 振蕩
9、電路的設計 本系統采取12MHz晶振為振蕩源,為單片機提供時鐘信號,其電路如圖2所示。圖2 振蕩電路設計2.2.3復位電路的設計系統復位電路設計如圖3所示。圖3 復位電路設計2.2.4 矩陣鍵盤電路與運算法則指示電路的設計系統采用了KEYPAD-SMALLCALC型4*4計算器專用鍵盤,包含行線和列線各4根,分別接于P1.0P1.3和P1.4P1.7??奢斎霐底?9,進行“+”、“-”、“*”、“/”簡單運算,并具有復位功能;運算法則指示電路采用了4只黃色LED-BIRY,并將其共地,另一端分別接至單片機的4個管腳,當執(zhí)行某種運算法則時,其對應的LED亮,運算完成后,LED滅。系統矩陣鍵盤電路
10、與運算法則指示電路如圖4所示。圖4 矩陣鍵盤與運算法則指示電路設計2.2.5 LED顯示電路的設計根據設計要求,系統采用了2個7SEG-COM-CATHODE型7位LED顯示器,分別接于單片機P0口和P2口得低7位,并分別接上拉排阻RP1和RP2,顯示輸入數據和運算結果。當顯示數據為一位數時,高位顯示“0”,低位顯示需要顯示的數字。LED顯示電路設計如圖5所示。圖5 LED顯示電路設計2.3 系統總體電路系統總體上分為單片機、振蕩電路、復位電路、LED顯示電路、矩陣鍵盤電路、運算法則指示電路六個部分。單片機為系統的中央處理器,完成數據的采集、運算、數據輸出等功能;振蕩電路采用12MHz的晶振,
11、為單片機提供時鐘信號;復位電路為單片機提供復位功能;LED顯示電路采用2只7位LED顯示器,實現2位輸入輸出數據的顯示;運算法則指示電路通過4只LED顯示系統當前的運算法則。系統總體電路如圖6所示。圖6 系統總體電路設計2.4 系統所用元器件 本系統所用的元器件清單如表1所示。表1 本系統所用的元器件元器件名稱數量單片機AT89C5117位LED顯示器7SEG-COM-CATHODE2電容CAP2極性電容CAP-ELEC1晶振CRYSTAL1計算器鍵盤KEYPAD-SMALLCALC1LED-BIRY4電阻RES1排阻RESPACK-82電源VCC1導線若干3. 軟件系統設計3.1 軟件系統總
12、體設計方案 系統通過矩陣鍵盤輸入數據,單片機對輸入數據進行處理,將處理結果輸出,通過LED顯示電路和運算法則指示電路顯示處理結果。軟件系統總體設計方案如圖7所示。圖7 軟件系統總體設計方案3.2 軟件系統流程圖3.2.1 主程序流程圖主程序流程圖如圖8所示。圖8 主程序流程圖3.2.2 按鍵掃描子程序設計 (小四宋體加粗)由于矩陣鍵盤的行線和列線分別接于P1口得高4位和低4位,通過線反轉法檢測鍵盤按鍵狀態(tài),根據所得值向單片機反饋相應數據。按鍵掃描流程圖如圖9所示。圖9 按鍵掃描流程圖4 系統調試4.1系統初始狀態(tài)的調試 系統初始狀態(tài)時,2個LED顯示器顯示“0”,運算法則指示燈全滅。調試結果如
13、圖10所示。圖10 系統初始狀態(tài)調試結果4.2鍵盤輸入功能的調試通過鍵盤分別輸入“8”、“*”、“9”,LED顯示電路和運算法則指示電路分別顯示相應的結果。調試結果如圖11所示。(a)輸入“8”(b)輸入“*”(c)輸入“9”圖11 鍵盤輸入功能調試結果4.3系統運算功能的調試當輸入“8”、“*”、“9”后,點擊“=”可得到運算結果“72”,并通過LED顯示電路顯示。調試結果如圖12所示。圖12 系統運算功能調試結果課程設計心得體會:通過這次單片機課程設計,我們深感自己動手操作的重要性。我們在課堂上接觸到的多半是蒼白的理論,在實踐層面上只有一定的指導作用。但是真正在實際運用過程中,我們如果缺乏
14、必要的及時鍛煉,那將會感覺到力不從心。工科本來就是一門集思維和動手能力于一體的學科,要想真正掌握好,思考、假設和實驗驗證都是必不可少的。在通過很多的理論學習之后,我們通過課程設計和相關的實驗把書本上的理論知識在實際運用中加以利用,鞏固了理論知識的同時也增強了我們的動手能力。通過實習,我才真正領略到“艱苦奮斗”這一詞的真正含義,我才意識到老一輩電子設計為我們的社會付出。我們學習理論知識的最終目的還是要走向實際運用, 通過這種模擬式的學習,我們加深認識到理論與實踐的差異。通過這個課程設計,我們大家把整個學習階段的各種學科知識竄聯在一起,更好地認識到學習是一個系統工程。我們的每一個環(huán)節(jié)都是
15、在為以后的實踐環(huán)節(jié)做鋪墊,我們的每一個環(huán)節(jié)都是要有所掌握才可以順利完成任務。通過這樣的實踐活動,我們都深感動手起來遇到的各種問題都要親自去解決是一件很不容易的事情,同時我們也在實踐過程中修復了以往學習的很多漏洞。我們也得到了不同程度的完善和提升。希望以后能多舉行多參與這類型的實踐活動。把理論知識結合到實踐層面去,理論結合實際學習才會更有聲有色。要把我們學到理論知識的真正利用到生產實際中還需要大量的實踐和運用。我們忘不了自己在這一過程中的努力與收獲,我們也相信付出與收獲成正比,我們付出的越多,相應地收獲也就越多,學習的過程中,我們要不斷地改進和學習,多多交流才能更好更輕松地學習。這次課程設計終于
16、順利完成了,在設計中遇到了很多專業(yè)知識問題,最后在老師的辛勤指導下,終于順利完成。同時,在老師的身上我們學也到很多實用的知識,在次我們表示感謝!同時,對給過我?guī)椭乃型瑢W和各位指導老師再次表示忠心的感謝! 成績: 評閱老師: 日期:附錄:簡易計算器設計的源程序清單#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; /輸入數據標志位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) /延時函數unsigned int i;while(t-)for(i=0;i<560; i+);void JiSuan() /運算函數 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() /按鍵掃描函數 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() /主函數unsigned char key; P0=table0;P2=table0;flag1=0; Jia=0;Jian=0;Cheng=0;Chu=0;while (1) key = Keys_Scan(); /鍵盤掃描結果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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年財務分析師考試試題及答案
- 2025年國際商務談判技巧測試卷及答案
- 2025年鋼筋混凝土結構設計考試試卷及答案
- 物資運載儲存管理制度
- 物資采購公示管理制度
- 特殊停電用戶管理制度
- 特殊服飾日常管理制度
- 特殊群體超市管理制度
- 特種人員作業(yè)管理制度
- 特種作業(yè)電工管理制度
- 2025春國開《創(chuàng)業(yè)基礎》形考任務1-4答案
- 義務教育歷史課程標準(2022年版)
- 消防行業(yè)特有工種職業(yè)技能鑒定申報登記表參考模板范本
- 石油化工工藝管道安裝施工方案【實用文檔】doc
- 第4章 帶傳動設計 (1)課件
- 人教版七年級下冊英語單詞辨音訓練題(一)
- 公共政策的經濟學分析課件
- 新世紀健康飲食課件
- 上海市2013年基準地價更新成果
- 道德與法治四年級(下)第二單元單元備課
- 蘇州市吳江區(qū)2021-2022蘇教版五年級數學下冊期末試卷真題
評論
0/150
提交評論