版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 課程設(shè)計(論文) 題 目 名 稱 簡易計算器設(shè)計 課 程 名 稱 單片機原理及應(yīng)用 學(xué) 生 姓 名 學(xué) 號 系 、專 業(yè) 指 導(dǎo) 教 師 2013 年 6 月 24 日 摘要 51系列的單片機進行的十進制計算器系統(tǒng)設(shè)計,可以完成計算器本設(shè)計是基于3LED上相位無符號數(shù)字的簡單四則運算,并在的鍵盤輸入,進行加、減、乘、除應(yīng)的顯示結(jié)果。 設(shè)計過程在硬件與軟件方面進行同步設(shè)計。硬件方面從功能考慮,首先選擇內(nèi)部AT89C514437段單片機,輸入采用矩陣鍵盤。顯示采用存儲資源豐富的位LED動態(tài)顯示。軟件方面從分析計算器功能、流程圖設(shè)計,再到程序的編寫共陰極C語言和匯編語言進行比進行系統(tǒng)設(shè)計。編程語言
2、方體設(shè)計以及高效性和功能性對較分析,針對計算器四則運算算法特別是乘法和除法運算的實現(xiàn),采用匯編語言進行proteus仿真。編程,并用 關(guān)鍵詞:AT89C51芯片;數(shù)碼管;矩陣鍵盤 計算器; 目錄 第1章 設(shè)計說明 . 1 1.1 設(shè)計要求 . 1 1.2 性能指標 . 1 1.3 設(shè)計方案的確定 . 1 第2章 單片機主要原理 . 2 2.1 單片機概述 . 2 2.2 單片機最小系統(tǒng) . 4 2.3 七段共陽極數(shù)碼管 . 5 第3章 硬件設(shè)計 . 5 3.1 鍵盤電路的設(shè)計 . 5 3.2 顯示電路的設(shè)計 . 6 第4章 軟件設(shè)計 . 7 4.1 系統(tǒng)設(shè)計 . 7 4.2 顯示與按鍵設(shè)計 .
3、 9 第5章 調(diào)試與仿真 . 11 5.1 Keil C51單片機軟件開發(fā)系統(tǒng) . 11 5.2 proteus的操作 . 12 第6章 心得體會 . 16 參考文獻 . 17 致謝 . 18 附錄 程序清單 . 19 第1章 設(shè)計說明 1.1 設(shè)計要求 25544鍵盤,根據(jù)輸入鍵的按下的數(shù)的加減乘除運算,采用要求能實現(xiàn)小于LED顯示。實現(xiàn)不同的功能,最終結(jié)果通過 1.2 性能指標 0255,計算結(jié)果全為整數(shù),計本課程設(shè)計的十進制加法計算器的計算范圍為算結(jié)果溢出結(jié)果不顯示。 1.255溢出不顯示加法:三位加法,計算結(jié)果超過 2.減法:三位減法,計算結(jié)果若小于零溢出不顯示 3.乘法:三位數(shù)乘法
4、4.除法:整數(shù)除法 5.有清零功能 1.3 設(shè)計方案的確定 4*4AT89C51鍵盤,由于按照設(shè)計要求,本課題需要使用數(shù)碼管顯示和擴展I/O口不夠多,而且為了硬件電路設(shè)計的簡單化,故選擇串行動態(tài)顯示和用芯片的P14*44*4鍵盤定義十個數(shù)字鍵,六個功能鍵,擴展的使用串行動態(tài)口擴展鍵盤,顯示顯示運算結(jié)果。 主程序進行初始化,采用行列掃描進行查表得出鍵值,每次按鍵后調(diào)用顯示子程序。 1 第2章 單片機主要原理 AT89C51芯片和串接的共陰數(shù)碼管。主要用到一個作為該設(shè)在該課程設(shè)計中,計的主要部分,下面將對它們的原理及功能做詳細介紹和說明。 2.1 單片機概述 單片機微型計算機是微型計算機的一個重要
5、分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機的基本功能部件:中I/O接口電路等。因此,單片機只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備央處理器、存儲器和相結(jié)合,便可成為一個單片機控制系統(tǒng)。 1、2、3,3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)單片機經(jīng)過CPU功能在增強,內(nèi)部資源在增多,引腳的多功能化,以及低電壓低功展,它們的耗。 MSC-51芯片簡介: 8051(ROM)(RAM)、定時單片機包含中央處理器、程序存儲器、數(shù)據(jù)存儲器/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線
6、和控制總線等三大總線,現(xiàn)在我們分別加以說明: (1)中央處理器: (CPU)8位數(shù)據(jù)寬度的處理器,能處是整個單片機的核心部件,是中央處理器8CPU負責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,位二進制數(shù)據(jù)或代碼,理完成運算和控制輸入輸出功能等操作。 (2)(RAM): 數(shù)據(jù)存儲器80511288128個專用寄存器單元,它們是個位用戶數(shù)據(jù)存儲單元和內(nèi)部有統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存RAM128個,可存放讀寫的數(shù)據(jù),運算的只有放用戶數(shù)據(jù),所以,用戶能使用的中間結(jié)果或用戶定義的字型表。 (3)(ROM) :程序存儲器 805164KB程序存儲器尋址空間,程
7、序存儲器內(nèi)外統(tǒng)一編址,用單片機具有EA=1時,程序從內(nèi)部的程序存儲器開始執(zhí)來存放用戶程序、表格、常數(shù)。當(dāng)引腳EA=0當(dāng)引腳當(dāng)內(nèi)部程序存儲器中的程序執(zhí)行完畢后,在轉(zhuǎn)向外部的程序存儲器。行,時,程序從外部程序存儲器開始執(zhí)行。 2 (4)(I/O)口:并行輸入輸出 805148I/O(P0P1P2P3),用于對外部數(shù)據(jù)的傳輸。當(dāng) 組位或口、共有P0I/O接口使用時,漏極處于開路狀態(tài),所以需接上拉電阻??谧鳛橥ㄓ玫?(5)全雙工串行口: 8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。 (6)中斷系統(tǒng): 8051具備較完善的中
8、斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串2級的優(yōu)先級別選擇。 行中斷,可滿足不同的控制要求,并具有(7)MCS-51的引腳說明: MCS-5180318051875140Pin封裝的雙列直接、均采用及系列單片機中的DIP40個引腳中,正電源和地線兩根,外置石英振結(jié)構(gòu),下圖是它們的引腳配置,4832I/OP3口線復(fù)用?,F(xiàn)在我們個蕩器的時鐘線兩根,口,中斷口線與組位共1.1 對這些引腳的功能加以說明:如圖 單片機引腳圖1.1 1. 電源引腳:+5V:VCC 電源正(一般接電源)GND: 電源接地端2. 復(fù)位引腳:RST復(fù)位引腳。當(dāng)該引腳保持兩個機器周期以上的高電平時,單片機就可恢 復(fù)初始
9、狀態(tài)。3 3.端口引腳: P0.0-P0.7:P08位雙向線。 口,P1.0-P1.7:P08位雙向線。 口,P2.0-P2.7:P08位雙向線。 口,P3.0-P3.7:P08位雙向線。 口,4.時鐘電路: XTAL1XTAL2XTAL1XTAL2和和:外接晶振引腳。晶振信號直接加在兩端。 5.控制引腳: ALE/EA/VppMCS控制總線。、 組成、 EA/Vpp31EA =1時,選通內(nèi)部程:程序存儲器的內(nèi)外部選通線。當(dāng)引腳)(序存儲器中的程序,當(dāng)片內(nèi)程序存儲器存放的指令讀完后再讀外部存儲器指令;當(dāng)EA=0時,不管片內(nèi)有無程序存儲器,一律讀取外部程序存儲器程序。 ALE30引腳):地址鎖存
10、信號。 /( :訪問外部程序存儲控制信號。 2.2 單片機最小系統(tǒng) 單片機最小系統(tǒng)就是支持主芯片正常工作的最小部分,是單片機工作的最基本的2.1 配置,包括主控芯片、復(fù)位電路和晶振電路。如圖 單片機最小系統(tǒng) 圖2.1 4 2.3 七段共陽極數(shù)碼管 圖2.2 七段共陽數(shù)碼管 abcdefg,圖為七段共陽數(shù)碼管的引腳圖,從左到右數(shù)碼管的段碼分別為,dp,低電平時點亮,最右邊為位選端。 和小數(shù)點 第3章 硬件設(shè)計 簡易數(shù)字計算器系統(tǒng)硬件設(shè)計主要包括:鍵盤電路,顯示電路以及其他輔助電路。下面分別進行設(shè)計。 3.1 鍵盤電路的設(shè)計 20個以上)鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(和
11、專用驅(qū)動芯片的組合,當(dāng)按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。通用計算機使用的標準鍵盤就是編碼鍵盤。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時,采用編碼鍵盤可以簡化軟件設(shè)計。但大多數(shù)20個以內(nèi)),為了降低成本和簡化電路通智能儀器和電子產(chǎn)品的按鍵數(shù)目都不太多(常采用非編碼鍵盤。非編碼鍵盤的接口電路有設(shè)計者根據(jù)需要自行決定,按鍵信息通16個按鍵,故選擇用非編碼鍵盤。 過接口軟件來獲取。本課題需要的是5 計算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨立按鍵的方式,在I/O口資源,因此在很多情況下都不編程會很簡單,但是會占用大量的這種情況下,I/O線作為行
12、線,四條而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條采用這種方式,I/O線作為列線組成鍵盤,在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤上44I/O口的個。按鍵的個數(shù)就為這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中利用率。 16個鍵組成,在矩陣鍵盤的工作原理:計算器的鍵盤布局如圖五所示:一般有P116個按鍵功能,這種形式在單片機系統(tǒng)中也最口實現(xiàn)單片機中正好可以用一個常用。 3.1所示: 具體電路連接如圖 鍵盤接口電路3.1 4*4 圖3.2 顯示電路的設(shè)計 LED數(shù)碼管進行顯示是一種經(jīng)濟實用的方法。采用當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時,數(shù)碼管顯示有靜態(tài)顯示和動態(tài)顯示兩種方法。為了減少端口的使用,故選擇動
13、態(tài)顯示。 3.2所示:電路如下圖 圖3.2 三位數(shù)碼管顯示電路 6 第4章 軟件設(shè)計 在十進制加法計算器的軟件規(guī)劃要求下,簡易計算器的程序主要包括以下功能模(1)(2)顯示與讀鍵模塊,分為判鍵程序段、運算主模塊,為系統(tǒng)的初始化。塊:操作子程序、顯示子程序等部分; 4.1 系統(tǒng)設(shè)計 (1)系統(tǒng)模塊圖 單片機 按鍵輸入? 51 1 0 列掃描信號移位1 0 1 輸入模塊 92h 1 根據(jù)上次功能鍵和輸入的數(shù)據(jù)計算結(jié)果0 1 1 0 1 1 1 1 1 運算模塊 67 8 否 是 讀取按鍵 保存結(jié)果和功能鍵 分析鍵值82h 1 1 1 1 0f8h 1 0 0 0 1 1 1 1 80h讀入行信號
14、該列有輸入 7 顯示模塊 系統(tǒng)模塊圖圖4.1 其中通過輸入鍵盤模塊將數(shù)由單片機控制。此系統(tǒng)包括輸入、運算和顯示模塊,”/”“-”“*09“+”輸入單片機進行運算;運算模塊分別根據(jù)字、和運算符號、顯示模塊將運算后的數(shù)值通過動態(tài)掃描使之在數(shù)碼輸入的運算符進行加減乘除運算; 管上輸出。)2( 系統(tǒng)總流程圖清空緩存調(diào)用其他子程序,主程序主要是用來進行初始化的,清空各個標志位,4.2LED 區(qū),讀取鍵碼,判斷功能,在所示。上作出回應(yīng),主程序流程圖如圖1. 數(shù)字送顯示緩沖程序設(shè)計如要顯示數(shù)值,先判斷數(shù)值大小和位數(shù),簡易計算器所顯示的數(shù)值最大位三位。255 ,將不顯示數(shù)字??芍匦螺斎霐?shù)字,再次計算。果是超過
15、三位或大于2 .運算程序的設(shè)計“0”LED,其它位不顯示。然后掃描鍵盤看是否有鍵首先初始化參數(shù),送三位顯示LED顯輸入,若有,讀取鍵碼。判斷鍵碼是數(shù)字鍵、清零鍵還是功能鍵,是數(shù)值鍵則送“=”“=”若是是功能鍵則又判斷是還是運算鍵,示并保存數(shù)值,是清零鍵則做清零處理,LED 則計算最后結(jié)果并送顯示,若是運算鍵則保存相對運算程序的首地址。 開始 從初始化參數(shù) LED顯示 功能鍵 否 8結(jié)果送顯示緩存 數(shù)字鍵 請零鍵 等待數(shù)值輸入 數(shù)值顯示中 圖4.2 主程序流程圖4.2 顯示與按鍵設(shè)計 (1)LED顯示程序設(shè)計 LED8LED顯顯示器由七段發(fā)光二極管組成,排列成字形狀,因此也稱為七段LED顯示器提
16、供代碼,即字形代碼。七段發(fā)光二示器。為了顯示數(shù)字或符號,要為8段,共計因此提供的字形代碼的長度正好是一個字節(jié)。再加上一個小數(shù)點位,極管,09的共陽極字形代碼如下表:簡易計算器用到的數(shù)字 共陽極數(shù)碼管段碼對照表1 表 g f e d c b a 段碼 顯示字型0 0c0h 1 1 0 1 1 1 1 0f9h 1 0 1 0 10 0 0 0a4h0 1 1 1 0 1 1 2 0b0h 1 0 0 1 1 1 1 3 99h 4 1 1 0 0 1 1 0 9 9 1 1 0 1 1 1 1 90h (2)讀鍵子程序設(shè)計 為了實現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個鍵都有其處理子程序,為此每
17、個鍵都對應(yīng)一個碼鍵碼。為了得到被按鍵的鍵碼,現(xiàn)使用行掃描法識別按鍵。4.3。 其程序框圖如圖I/OI/O口就越可觀,按鍵數(shù)目越多節(jié)省口的方法矩陣按鍵掃描程序是一種節(jié)省,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那一只鍵按下。 CPU效率,也本鍵盤掃描程序的優(yōu)點在于:不用專門的按鍵延時程序,提高了CPU每次掃描占用另外,本鍵盤掃描程序,不用中斷來掃描鍵盤,節(jié)省了硬件資源。時最短,不論有鍵按下或者無鍵按下都可以在很短的時間完成一次掃描。 讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進行兩次讀鍵。第一次所有列線均輸出低電平,從所有讀入鍵盤信息(行信息);第二次所有行線均輸出
18、低電平,從所有行線讀入鍵盤信息(列信息)。將兩次讀鍵信息進行組合就可以得到按鍵的特征編碼,然后通過查表得到按鍵的順序編碼。將各特征編碼按希望的順序排成一張表,然后用當(dāng)前讀得的特征碼來查表。當(dāng)表中有該特征碼時,它的位置就是對應(yīng)的順序編碼;當(dāng)表中沒有該特征碼時,說明這是一個沒有定義的鍵碼,與沒有按(0FFH)同等看待。鍵 開始 初始化地址參數(shù) 輸出列掃描信號 10 是 否 按照行列計算鍵值 4列掃描完? 查表得鍵碼 是 返回等待按鍵得鍵碼 開始 圖4.3 計算鍵值子程序流程圖 第5章 調(diào)試與仿真 KEIL uVision3proteus仿真軟件介紹十進制加法計算器的仿真與調(diào) 下面用與試。 5.1
19、Keil C51單片機軟件開發(fā)系統(tǒng) (1)系統(tǒng)的整體結(jié)構(gòu) C51uVisionC51 for Windows的集成開發(fā)環(huán)境是工具包的整體結(jié)構(gòu)中,其中(IDE)IDE開發(fā)人員可用調(diào)試、仿真等整個開發(fā)流程??梢酝瓿删庉?、編譯、連接、,CC51編譯器編譯生成目標文件或匯編源文件。然后分別由本身或其它編輯器編輯(.OBJ)LIB51L51連接定位目標文件可由也可以與庫文件一起經(jīng)創(chuàng)建生成庫文件,。(.ABS)ABSOH51Hex文件,以供調(diào)試器文件由生成絕對目標文件轉(zhuǎn)換成標準的。dScope51tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行或EPROM中。 調(diào)試,也可以直接寫入程
20、序存貯器如(2)KEIL89c51單片機應(yīng)用程序步驟:開發(fā)的 采用 1uVision(Project).UV2,集成開發(fā)環(huán)境中創(chuàng)建新項目,擴展文件名為.在 CPUATMEL 公司用下的采機適合的單片(器件本設(shè)計定目該并為項選AT89C51) 2.uVision(.ASM), 的文本編輯器編寫源文件,可以是匯編文件也可以用C.C),并將該文件添加到項目中去。一個項目文件可以包含多使語言文件(擴展名11 個文件,除了源程序文件外,還可以是庫文件、頭文件或文本說明文件。 3.uVision 3Debug調(diào)的相關(guān)選擇項,配置編譯環(huán)境、連接定位器以及通過 試器的功能。 4.HEX文件,對項目中的源文件進
21、行編譯連接,生成絕對目標代碼和可選的2步,修改源文件中的錯誤后重構(gòu)整個項目。如果出現(xiàn)編譯連接錯誤則返回到第 5.HEX文件寫入到單片對沒有語法錯誤的程序進行仿真調(diào)試,調(diào)試成功后將ROM中。機應(yīng)用系統(tǒng)的 5.2 proteus的操作 (1)硬件電路圖的接法操作 1.放置選擇(刪除)元器件 2.移動元器件 3.縮放視圖 4.連接導(dǎo)線 5.仿真,調(diào)試 (2)簡易計算器設(shè)計原理圖 圖5.1 簡易計算器原理電路圖 12 (3)PROTEUS設(shè)計與仿真過程單片機系統(tǒng) Proteus強大的單片機系統(tǒng)設(shè)計與仿真功能,使它可成為單片機系統(tǒng)應(yīng)用開發(fā)和Proteus來完成的。其過程一般也可分改進手段之一。全部過程都
22、是在計算機上通過為三步: 1.ISIS平臺上進行單片機系統(tǒng)電路設(shè)計、選擇元器件、接插件、連接電路和在Proteus電路設(shè)計。 電氣檢測等,簡稱2Keil平臺上進行單片機系統(tǒng)程序設(shè)計、編輯、匯編編譯、代碼級調(diào)試,最在.(*.hex)Proteus源程序設(shè)計和生成目標代碼文件。后生成目標代碼文件 。簡稱3.ISIS平臺上將目標代碼文件加載到單片機系統(tǒng)中,并實現(xiàn)單片機系統(tǒng)的實在Proteus簡稱協(xié)同仿真。它在相當(dāng)程度上反映了實際單片機系統(tǒng)的運行情況。時交互、仿真。 ProteusKeil.hex文件導(dǎo)入到單片機在中生成的中將硬件電路全部接好以后,將“000”;分別依中,點擊開始仿真按鈕,電路開始仿真
23、。可以觀察到:數(shù)碼管顯示“5”“+”“6”“=”“11”;也可、和,可以看到數(shù)碼管顯示、次按下按鍵以分別調(diào)試其它功能鍵,結(jié)果發(fā)現(xiàn)調(diào)試結(jié)果與預(yù)期的理論值相吻合,即本次課設(shè)已成功。 仿真結(jié)果如下: 圖5.2 4+5的仿真結(jié)果 13 8-2的仿真結(jié)果圖5.3 的仿真結(jié)果 圖5.4 21*1014 的仿真結(jié)果5.5 圖 66/3 計算器清零5.6 圖 15 第6章 心得體會 剛開始接到這個計算器的課程設(shè)計任務(wù)時,因為以前做過類似的題目,于是在腦海中初步構(gòu)建了編寫程序的一些控制程序。但是由于缺乏編寫大量程序的經(jīng)驗,不能如行云流水般的將全部的各部分代碼寫出,于是去網(wǎng)上查找相關(guān)資料,了解計算器的輸入控制原理
24、、運算處理以及顯示的原理。了解之后自己嘗試編寫程序,經(jīng)過三四天的辛苦工作,終于初步把所需要的程序編好了,于是就進行仿真,在仿真期間也發(fā)現(xiàn)了許多錯誤,基本上都是平日容易犯的錯誤,比如忘記了子程序標號、死循環(huán)程序、Proteus中標點符號的漏寫等。經(jīng)過反復(fù)的編譯差錯,仿真編譯通過后,于是開始在.Hex文件導(dǎo)入進行仿真,發(fā)現(xiàn)軟件與硬件不能夠連硬件電路,全部接完電路之后將對應(yīng)協(xié)調(diào)工作,于是分別對軟件和硬件進行檢查,經(jīng)過反復(fù)的仿真調(diào)試,并且在同學(xué)的幫助和自己對每個子程序進行仿真觀察下,終于在課設(shè)快結(jié)束時成功的調(diào)試出結(jié)果了。這就是我這兩周課程設(shè)計的經(jīng)過,看似簡單,過程卻曲折艱辛。 Proteus軟件的操作
25、。在編寫程序的過程通過這次課程設(shè)計,我進一步熟練了對 中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學(xué)習(xí)上存在的不足,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,對單片機匯編語言掌握得不夠好。通過與同學(xué)探討和請教老師,終于把問題都解決了,并加深了對計算器工作的原理的了解。同時也掌握了做課程設(shè)計的一般流程,為以后的設(shè)計積累了一定的經(jīng)驗。做課程設(shè)計時,先查16 閱相關(guān)知識,把原理吃透,確定一個大的設(shè)計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。學(xué)會了怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒??傊ㄟ^這次的設(shè)計,進一步了解了單片微型計算
26、機及應(yīng)用原理,收獲很大,對軟件編程、排錯調(diào)試、查閱資料等方面得到較全面的鍛煉和提高。 同時通過本次課程設(shè)計的學(xué)習(xí),掌握了一種系統(tǒng)的研究方法,可以進行一些簡單的編程,我還深深的體會到設(shè)計課的重要性和目的性所在。為了完成項目,在網(wǎng)絡(luò)上找到了許多相關(guān)的資料,大大擴充自己的知識面,使許多以前想解決卻無法解決的困難迎刃而解。將書本上的理論知識和實際有機地結(jié)合起來, 理論中得出結(jié)論。鍛煉了實際分析問題和解決問題的能力,提高了適應(yīng)實際的能力,為今后的學(xué)習(xí)和實踐打下了良好的基礎(chǔ)。此次課設(shè)還鞏固和綜合運用所學(xué)過的原理知識,從而提高自己的實際動手能力和獨立思考的能力。 參考文獻 1周航慈.單片機應(yīng)用程序設(shè)計技術(shù)(
27、修訂版).北京航空大學(xué)出版社 2江世明、黃同成.單片機原理及應(yīng)用.中國鐵道出版社 3張志良.單片機原理與控制技術(shù).第2版. 機械工業(yè)出版社 4康華光.電子技術(shù)基礎(chǔ)(第5版). 高等教育出版社出版,2006 5蔣力培.單片微機系統(tǒng)實用教程(第1版).機械工業(yè)出版社 6姜志海、劉連鑫.單片微型計算機原理及應(yīng)用.電子工業(yè)出版社,2011 17 致謝 為期兩周的單片機課程設(shè)計終于結(jié)束了,通過緊張的工作,完成了我的設(shè)計任務(wù)簡易計算器設(shè)計??偟膩碚f,這次課程設(shè)計是比較成功的。當(dāng)然,這其中也經(jīng)歷了許多坎坷,但是在我的堅持不懈下,在老師的細心指導(dǎo)下,在同學(xué)們的熱情幫助下,最終克服了種種困難,取得了成功。在此,
28、我非常感謝劉偉春老師對我這次課程設(shè)計的指導(dǎo),在老師的教導(dǎo)下,我不僅學(xué)到了有關(guān)這個課題的相關(guān)知識,而且更重要的是學(xué)到了一種學(xué)習(xí)方法。如果說劉老師的指導(dǎo)為我這次課程設(shè)計指明了大方向,那么同學(xué)就在細節(jié)上給了我很大的幫助,主要是幫我改論文格式和程序中的小錯誤。老師的指導(dǎo)和同學(xué)的幫助給了我很大鼓勵,是我這次課程設(shè)計得以完成的巨大動力。通過本次課程設(shè)計也讓我明白了團結(jié)的重要性,在此再一次感謝劉老師的指導(dǎo)和同學(xué)的幫忙。 18 附錄 程序清單 50H YJ EQU 結(jié)果存放; YJ1 EQU 51H 中間結(jié)果存放; GONG EQU 52H 功能鍵存放; ORG 00H START: MOV R3,#0 初始
29、化顯示為空; MOV GONG,#0 MOV 32H,#00H 33H,#00H MOV MOV 34H,#00H DISP CALL MLOOP: 調(diào)顯示子程序; TESTKEY CALL WAIT: 判斷有無按鍵; JZ WAIT GETKEY CALL ;讀鍵 R3 INC ; 按鍵個數(shù) A,#0,NEXT1 CJNE 判斷是否數(shù)字鍵;19 LJMP E1 ;轉(zhuǎn)數(shù)字鍵處理 NEXT1: CJNE A,#1,NEXT2 E1 LJMP NEXT2: CJNE A,#2,NEXT3 E1 LJMP NEXT3: CJNE A,#3,NEXT4 E1 LJMP NEXT4: CJNE A,#4
30、,NEXT5 E1 LJMP A,#5,NEXT6 NEXT5: CJNE LJMP E1 A,#6,NEXT7 NEXT6: CJNE E1 LJMP A,#7,NEXT8 NEXT7: CJNE E1 LJMP A,#8,NEXT9 NEXT8: CJNE LJMP E1 CJNE NEXT9: A,#9,NEXT10 E1 LJMP A,#10,NEXT11 NEXT10: CJNE ; 判斷是否功能鍵 E2 LJMP 轉(zhuǎn)功能鍵處理; NEXT11: CJNE A,#11,NEXT12 E2 LJMP A,#12, NEXT13 NEXT12: CJNE E2 LJMP NEXT13:
31、CJNE A,#13,NEXT14 E2 LJMP NEXT14: CJNE A,#14,NEXT15 E2 LJMP NEXT15: LJMP E3 判斷是否清除鍵 ; CJNE E1: R3,#1,N1 判斷第幾次按鍵;20 LJMP E11 ;為第一個數(shù)字 CJNE N1: R3,#2,N2 LJMP E12 為第二個數(shù)字; R3,#3,N3 CJNE N2: E13 LJMP 為第三個數(shù)字; LJMP E3 N3: 第四個數(shù)字轉(zhuǎn)溢出;MOV R4,A E11: R4 輸入值暫存; MOV 34H,A 輸入值送顯示緩存; 33H,#00H MOV MOV 32H,#00H MLOOP L
32、JMP 等待再次輸入; R7 E12: MOV R7,A 個位數(shù)暫存; MOV B,#10 A,R4 MOV MUL AB 十位數(shù) ;A,R7 ADD R4 R4,A MOV 輸入值存 ; MOV 32H,#00H ;輸入值送顯示緩存 33H,34H MOV 34H,R7 MOV LJMP MLOOP R7,A MOV E13: MOV B,#10 A,R4 MOV MUL AB OV,E3 JB 輸入溢出;A,R7 ADD JB CY,E3 輸入溢出; MOV R4,A 32H,33H MOV 輸入值送顯示緩存; MOV 33H,34H 21 MOV 34H,R7 LJMP MLOOP MO
33、V R3,#0 E3: 按鍵次數(shù)清零; MOV R4,#0 輸入值清零; MOV YJ,#0 ;計算結(jié)果清零 MOV GONG,#0 功能鍵設(shè)為零; MOV 32H,#00H 顯示清空 ;33H,#00H MOV 34H,#00H MOV MLOOP LJMP 34H,#00H MOV E2: 33H,#00H MOV 32H,#00H MOV MOV R0,GONG 與上次功能鍵交換;GONG,A MOV A,R0 MOV A,#10,N21 CJNE ;判斷功能鍵 LJMP 尻 JIA CJNE A,#11,N22 N21: 尻 LJMP JIAN CJNE A,#12,N23 N22:
34、;* CHENG LJMP A,#13,N24 CJNE N23: ;/ CHU LJMP A,#0,N25 N24: CJNE FIRST LJMP 首次按功能鍵; LJMP ;= DEN N25: E3 N4: LJMP YJ,R4 MOV FIRST: 輸入值送結(jié)果 ; R3,#0 MOV 按鍵次數(shù)清零 ; LJMP DISP1 結(jié)果處理;22 JIA: MOV A,YJ 上次結(jié)果送累加器; A,R4 ADD ;上次結(jié)果加輸入值 CY,N4 JB ;溢出 YJ,A MOV ;存本次結(jié)果 MOV R3,#0 ;按鍵次數(shù)清零 DISP1 LJMP A,YJ JIAN: MOV SUBB A,
35、R4 上次結(jié)果減輸入值 ; JB CY,N4 負數(shù)溢出; YJ,A MOV R3,#0 MOV DISP1 LJMP CHENG: A,YJ MOV B,A MOV A,R4 MOV AB MUL 上次結(jié)果乘輸入值; JB OV,N4 溢出 ; YJ,A MOV DISP1 LJMP CHU: MOV A,R4 B,A MOV A,YJ MOV DIV AB 上次結(jié)果除輸入值; MOV YJ,A MOV R3,#0 LJMP DISP1 DEN: MOV R3,#0 DISP1 LJMP B,#10 MOV DISP1: A,YJ MOV 結(jié)果送累加器 ;10 DIV AB ;結(jié)果除23 MOV YJ1,A ;暫存商 MOV A,B ;取個位數(shù) 34H,A MOV 個位數(shù)送顯示緩存;A,YJ1 MOV DISP11 JZ 結(jié)果是否為一位數(shù); MOV B,#10 A,YJ1 MOV AB DIV YJ1,A MOV A,B MOV 33H,A MOV 十位送顯示緩存 ;A,YJ1 MOV DISP11 JZ 結(jié)果是否為二位數(shù); 32H,A MOV 百位數(shù)送顯示緩存; DISP11: MLOOP LJMP
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度牧業(yè)產(chǎn)業(yè)扶貧項目承包合同范本3篇
- 2025版農(nóng)產(chǎn)品溯源與質(zhì)量認證服務(wù)合同3篇
- 遼寧省朝陽市北票市2024-2025學(xué)年七年級上學(xué)期1月期末道德與法治試題(含答案)
- 2025年度個人公司股權(quán)結(jié)構(gòu)調(diào)整合同4篇
- 二零二五年度某局勞務(wù)分包結(jié)算與數(shù)字化轉(zhuǎn)型戰(zhàn)略合同2篇
- 天然氣在科技創(chuàng)新中的地位考核試卷
- 家禽飼養(yǎng)業(yè)質(zhì)量品牌提升與市場競爭策略考核試卷
- 供應(yīng)鏈協(xié)同采購與供應(yīng)商管理考核試卷
- 儀器儀表制造業(yè)的持續(xù)創(chuàng)新能力考核試卷
- 2025版二零二五年度美發(fā)店房東租賃合同范本:租賃合作協(xié)議4篇
- 中醫(yī)診療方案腎病科
- 2025年安慶港華燃氣限公司招聘工作人員14人高頻重點提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級下冊數(shù)學(xué)第七章 相交線與平行線 單元測試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護理培訓(xùn)課件:《早產(chǎn)兒姿勢管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動站儀器運營維護項目操作說明以及簡單故障處理
- 2022年12月Python-一級等級考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識
評論
0/150
提交評論