




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)(論文)題 目 名 稱 簡(jiǎn)易計(jì)算器設(shè)計(jì) 課 程 名 稱 單片機(jī)原理及應(yīng)用 學(xué) 生 姓 名 學(xué) 號(hào) 系 、專 業(yè) 指 導(dǎo) 教 師 2013 年 6 月 24 日 摘要本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的十進(jìn)制計(jì)算器系統(tǒng)設(shè)計(jì),可以完成計(jì)算器的鍵盤輸入,進(jìn)行加、減、乘、除3位無(wú)符號(hào)數(shù)字的簡(jiǎn)單四則運(yùn)算,并在LED上相應(yīng)的顯示結(jié)果。設(shè)計(jì)過程在硬件與軟件方面進(jìn)行同步設(shè)計(jì)。硬件方面從功能考慮,首先選擇內(nèi)部存儲(chǔ)資源豐富的AT89C51單片機(jī),輸入采用4×4矩陣鍵盤。顯示采用3位7段共陰極LED動(dòng)態(tài)顯示。軟件方面從分析計(jì)算器功能、流程圖設(shè)計(jì),再到程序的編寫進(jìn)行系統(tǒng)設(shè)計(jì)。編程語(yǔ)言方體設(shè)計(jì)以及高效性
2、和功能性對(duì)C語(yǔ)言和匯編語(yǔ)言進(jìn)行比較分析,針對(duì)計(jì)算器四則運(yùn)算算法特別是乘法和除法運(yùn)算的實(shí)現(xiàn),采用匯編語(yǔ)言進(jìn)行編程,并用proteus仿真。關(guān)鍵詞:計(jì)算器;AT89C51芯片;數(shù)碼管;矩陣鍵盤 目錄第1章 設(shè)計(jì)說明11.1 設(shè)計(jì)要求11.2 性能指標(biāo)11.3 設(shè)計(jì)方案的確定1第2章 單片機(jī)主要原理22.1 單片機(jī)概述22.2 單片機(jī)最小系統(tǒng)42.3 七段共陽(yáng)極數(shù)碼管5第3章 硬件設(shè)計(jì)63.1 鍵盤電路的設(shè)計(jì)63.2 顯示電路的設(shè)計(jì)7第4章 軟件設(shè)計(jì)84.1 系統(tǒng)設(shè)計(jì)84.2 顯示與按鍵設(shè)計(jì)9第5章 調(diào)試與仿真125.1 Keil C51單片機(jī)軟件開發(fā)系統(tǒng)125.2 proteus的操作12第6章
3、心得體會(huì)17 參考文獻(xiàn)18 致謝19 附錄 程序清單20第1章 設(shè)計(jì)說明1.1 設(shè)計(jì)要求要求能實(shí)現(xiàn)小于255的數(shù)的加減乘除運(yùn)算,采用4×4鍵盤,根據(jù)輸入鍵的按下實(shí)現(xiàn)不同的功能,最終結(jié)果通過LED顯示。1.2 性能指標(biāo) 本課程設(shè)計(jì)的十進(jìn)制加法計(jì)算器的計(jì)算范圍為0255,計(jì)算結(jié)果全為整數(shù),計(jì)算結(jié)果溢出結(jié)果不顯示。1.加法:三位加法,計(jì)算結(jié)果超過255溢出不顯示2.減法:三位減法,計(jì)算結(jié)果若小于零溢出不顯示3.乘法:三位數(shù)乘法4.除法:整數(shù)除法5.有清零功能1.3 設(shè)計(jì)方案的確定 按照設(shè)計(jì)要求,本課題需要使用數(shù)碼管顯示和擴(kuò)展4*4鍵盤,由于AT89C51芯片的I/O口不夠多,而且為了硬件電
4、路設(shè)計(jì)的簡(jiǎn)單化,故選擇串行動(dòng)態(tài)顯示和用P1口擴(kuò)展4*4鍵盤,擴(kuò)展的4*4鍵盤定義十個(gè)數(shù)字鍵,六個(gè)功能鍵,使用串行動(dòng)態(tài)顯示顯示運(yùn)算結(jié)果。 主程序進(jìn)行初始化,采用行列掃描進(jìn)行查表得出鍵值,每次按鍵后調(diào)用顯示子程序。 第2章 單片機(jī)主要原理在該課程設(shè)計(jì)中,主要用到一個(gè)AT89C51芯片和串接的共陰數(shù)碼管。作為該設(shè)計(jì)的主要部分,下面將對(duì)它們的原理及功能做詳細(xì)介紹和說明。2.1 單片機(jī)概述單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器
5、和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)經(jīng)過1、2、3,3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引腳的多功能化,以及低電壓低功耗。MSC-51芯片簡(jiǎn)介:8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:(1)中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)
6、單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。(2)數(shù)據(jù)存儲(chǔ)器(RAM):8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。(3)程序存儲(chǔ)器(ROM) :8051單片機(jī)具有64KB程序存儲(chǔ)器尋址空間,程序存儲(chǔ)器內(nèi)外統(tǒng)一編址,用來存放用戶程序、表格、常數(shù)。當(dāng)引腳EA=1時(shí),程序從內(nèi)部的程序存儲(chǔ)器開始執(zhí)行,當(dāng)內(nèi)部程序存儲(chǔ)器中的程序執(zhí)行完畢后,在轉(zhuǎn)向外部的程序存儲(chǔ)器。當(dāng)引腳EA=0時(shí),程序從外部
7、程序存儲(chǔ)器開始執(zhí)行。(4)并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。當(dāng)P0口作為通用的I/O接口使用時(shí),漏極處于開路狀態(tài),所以需接上拉電阻。(5)全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。(6)中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。(7)MCS-51的引腳說明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙
8、列直接DIP結(jié)構(gòu),下圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說明:如圖1.1圖1.1 單片機(jī)引腳1.電源引腳:VCC:電源正(一般接+5V電源)GND:電源接地端2.復(fù)位引腳:RST:復(fù)位引腳。當(dāng)該引腳保持兩個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就可恢復(fù)初始狀態(tài)。3.端口引腳:P0.0-P0.7:P0口,8位雙向線。P1.0-P1.7:P0口,8位雙向線。P2.0-P2.7:P0口,8位雙向線。P3.0-P3.7:P0口,8位雙向線。4.時(shí)鐘電路:XTAL1和XTAL2:外接晶振引腳
9、。晶振信號(hào)直接加在XTAL1和XTAL2兩端。5.控制引腳:ALE/、EA/Vpp組成MCS控制總線。EA/Vpp(31引腳):程序存儲(chǔ)器的內(nèi)外部選通線。當(dāng)EA =1時(shí),選通內(nèi)部程序存儲(chǔ)器中的程序,當(dāng)片內(nèi)程序存儲(chǔ)器存放的指令讀完后再讀外部存儲(chǔ)器指令;當(dāng)EA=0時(shí),不管片內(nèi)有無(wú)程序存儲(chǔ)器,一律讀取外部程序存儲(chǔ)器程序。ALE/(30引腳):地址鎖存信號(hào)。:訪問外部程序存儲(chǔ)控制信號(hào)。2.2 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)就是支持主芯片正常工作的最小部分,是單片機(jī)工作的最基本的配置,包括主控芯片、復(fù)位電路和晶振電路。如圖2.1 圖2.1 單片機(jī)最小系統(tǒng)2.3 七段共陽(yáng)極數(shù)碼管圖2.2 七段共陽(yáng)數(shù)碼管圖為
10、七段共陽(yáng)數(shù)碼管的引腳圖,從左到右數(shù)碼管的段碼分別為a,b,c,d,e,f,g和小數(shù)點(diǎn)dp,低電平時(shí)點(diǎn)亮,最右邊為位選端。第3章 硬件設(shè)計(jì)簡(jiǎn)易數(shù)字計(jì)算器系統(tǒng)硬件設(shè)計(jì)主要包括:鍵盤電路,顯示電路以及其他輔助電路。下面分別進(jìn)行設(shè)計(jì)。 3.1 鍵盤電路的設(shè)計(jì) 鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個(gè)以上)和專用驅(qū)動(dòng)芯片的組合,當(dāng)按下某個(gè)按鍵時(shí),它能夠處理按鍵抖動(dòng)、連擊等問題,直接輸出按鍵的編碼,無(wú)需系統(tǒng)軟件干預(yù)。通用計(jì)算機(jī)使用的標(biāo)準(zhǔn)鍵盤就是編碼鍵盤。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量很多時(shí),采用編碼鍵盤可以簡(jiǎn)化軟件設(shè)計(jì)。但大多數(shù)智能儀器和電子產(chǎn)品的按鍵數(shù)目都不太多(20個(gè)以內(nèi)),為了
11、降低成本和簡(jiǎn)化電路通常采用非編碼鍵盤。非編碼鍵盤的接口電路有設(shè)計(jì)者根據(jù)需要自行決定,按鍵信息通過接口軟件來獲取。本課題需要的是16個(gè)按鍵,故選擇用非編碼鍵盤。計(jì)算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的I/O口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤,在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為4×4個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。矩陣鍵盤的工作原理:計(jì)算器的鍵盤布局如圖五所示:一
12、般有16個(gè)鍵組成,在單片機(jī)中正好可以用一個(gè)P1口實(shí)現(xiàn)16個(gè)按鍵功能,這種形式在單片機(jī)系統(tǒng)中也最常用。具體電路連接如圖3.1所示: 圖3.1 4*4鍵盤接口電路3.2 顯示電路的設(shè)計(jì) 當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時(shí),采用LED數(shù)碼管進(jìn)行顯示是一種經(jīng)濟(jì)實(shí)用的方法。數(shù)碼管顯示有靜態(tài)顯示和動(dòng)態(tài)顯示兩種方法。為了減少端口的使用,故選擇動(dòng)態(tài)顯示。 電路如下圖3.2所示:圖3.2 三位數(shù)碼管顯示電路第4章 軟件設(shè)計(jì)在十進(jìn)制加法計(jì)算器的軟件規(guī)劃要求下,簡(jiǎn)易計(jì)算器的程序主要包括以下功能模塊:(1)主模塊,為系統(tǒng)的初始化。(2)顯示與讀鍵模塊,分為判鍵程序段、運(yùn)算操作子程序、顯示子程序等部分;4.1 系統(tǒng)設(shè)計(jì)(1)系統(tǒng)
13、模塊圖輸入模塊單片機(jī)運(yùn)算模塊顯示模塊 圖4.1 系統(tǒng)模塊圖此系統(tǒng)包括輸入、運(yùn)算和顯示模塊,由單片機(jī)控制。其中通過輸入鍵盤模塊將數(shù)字09和運(yùn)算符號(hào)“+”、“-”、“*”、“/”輸入單片機(jī)進(jìn)行運(yùn)算;運(yùn)算模塊分別根據(jù)輸入的運(yùn)算符進(jìn)行加減乘除運(yùn)算;顯示模塊將運(yùn)算后的數(shù)值通過動(dòng)態(tài)掃描使之在數(shù)碼管上輸出。(2)系統(tǒng)總流程圖主程序主要是用來進(jìn)行初始化的,調(diào)用其他子程序,清空各個(gè)標(biāo)志位,清空緩存區(qū),讀取鍵碼,判斷功能,在LED上作出回應(yīng),主程序流程圖如圖4.2所示。1.數(shù)字送顯示緩沖程序設(shè)計(jì)簡(jiǎn)易計(jì)算器所顯示的數(shù)值最大位三位。要顯示數(shù)值,先判斷數(shù)值大小和位數(shù),如果是超過三位或大于255,將不顯示數(shù)字??芍匦螺斎?/p>
14、數(shù)字,再次計(jì)算。2.運(yùn)算程序的設(shè)計(jì)首先初始化參數(shù),送LED三位顯示“0”,其它位不顯示。然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵碼。判斷鍵碼是數(shù)字鍵、清零鍵還是功能鍵,是數(shù)值鍵則送LED顯示并保存數(shù)值,是清零鍵則做清零處理,是功能鍵則又判斷是“=”還是運(yùn)算鍵,若是“=”則計(jì)算最后結(jié)果并送LED顯示,若是運(yùn)算鍵則保存相對(duì)運(yùn)算程序的首地址。 開始從初始化參數(shù)LED顯示功能鍵按鍵輸入?根據(jù)上次功能鍵和輸入的數(shù)據(jù)計(jì)算結(jié)果 否 是保存結(jié)果和功能鍵讀取按鍵結(jié)果送顯示緩存分析鍵值 等待數(shù)值輸入請(qǐng)零鍵數(shù)字鍵 數(shù)值顯示中 圖4.2 主程序流程圖4.2 顯示與按鍵設(shè)計(jì)(1)LED顯示程序設(shè)計(jì)LED顯示器由七段發(fā)光
15、二極管組成,排列成8字形狀,因此也稱為七段LED顯示器。為了顯示數(shù)字或符號(hào),要為L(zhǎng)ED顯示器提供代碼,即字形代碼。七段發(fā)光二極管,再加上一個(gè)小數(shù)點(diǎn)位,共計(jì)8段,因此提供的字形代碼的長(zhǎng)度正好是一個(gè)字節(jié)。簡(jiǎn)易計(jì)算器用到的數(shù)字09的共陽(yáng)極字形代碼如下表:表1 共陽(yáng)極數(shù)碼管段碼對(duì)照表顯示字型gfedcba段碼001111110c0h100001100f9h210110110a4h310011110b0h4110011099h5110110192h6111110182h700001110f8h8111111180h9110111190h(2)讀鍵子程序設(shè)計(jì)為了實(shí)現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個(gè)鍵
16、都有其處理子程序,為此每個(gè)鍵都對(duì)應(yīng)一個(gè)碼鍵碼。為了得到被按鍵的鍵碼,現(xiàn)使用行掃描法識(shí)別按鍵。其程序框圖如圖4.3。矩陣按鍵掃描程序是一種節(jié)省I/O口的方法,按鍵數(shù)目越多節(jié)省I/O口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷該行(列)是那一只鍵按下。本鍵盤掃描程序的優(yōu)點(diǎn)在于:不用專門的按鍵延時(shí)程序,提高了CPU效率,也不用中斷來掃描鍵盤,節(jié)省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU時(shí)最短,不論有鍵按下或者無(wú)鍵按下都可以在很短的時(shí)間完成一次掃描。讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進(jìn)行兩次讀鍵。第一次所有列線均輸出低電平,從所有讀入鍵盤信息(行信息);第
17、二次所有行線均輸出低電平,從所有行線讀入鍵盤信息(列信息)。將兩次讀鍵信息進(jìn)行組合就可以得到按鍵的特征編碼,然后通過查表得到按鍵的順序編碼。將各特征編碼按希望的順序排成一張表,然后用當(dāng)前讀得的特征碼來查表。當(dāng)表中有該特征碼時(shí),它的位置就是對(duì)應(yīng)的順序編碼;當(dāng)表中沒有該特征碼時(shí),說明這是一個(gè)沒有定義的鍵碼,與沒有按鍵(0FFH)同等看待。 開始初始化地址參數(shù)輸出列掃描信號(hào)列掃描信號(hào)移位讀入行信號(hào) 否該列有輸入 是按照行列計(jì)算鍵值 否4列掃描完?查表得鍵碼 是返回等待按鍵得鍵碼開始圖4.3 計(jì)算鍵值子程序流程圖第5章 調(diào)試與仿真下面用KEIL uVision3與 proteus仿真軟件介紹十進(jìn)制加法
18、計(jì)算器的仿真與調(diào)試。5.1 Keil C51單片機(jī)軟件開發(fā)系統(tǒng)(1)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu)中,其中uVision是C51 for Windows的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直
19、接寫入程序存貯器如EPROM中。(2)采用KEIL 開發(fā)的89c51單片機(jī)應(yīng)用程序步驟:1.在uVision 集成開發(fā)環(huán)境中創(chuàng)建新項(xiàng)目(Project),擴(kuò)展文件名為.UV2,并為該項(xiàng)目選定合適的單片機(jī)CPU器件(本設(shè)計(jì)采用ATMEL 公司下的AT89C51)2.用uVision 的文本編輯器編寫源文件,可以是匯編文件(.ASM),也可以使C語(yǔ)言文件(擴(kuò)展名.C),并將該文件添加到項(xiàng)目中去。一個(gè)項(xiàng)目文件可以包含多個(gè)文件,除了源程序文件外,還可以是庫(kù)文件、頭文件或文本說明文件。3.通過uVision 3 的相關(guān)選擇項(xiàng),配置編譯環(huán)境、連接定位器以及Debug調(diào)試器的功能。4.對(duì)項(xiàng)目中的源文件進(jìn)行編
20、譯連接,生成絕對(duì)目標(biāo)代碼和可選的HEX文件,如果出現(xiàn)編譯連接錯(cuò)誤則返回到第2步,修改源文件中的錯(cuò)誤后重構(gòu)整個(gè)項(xiàng)目。5.對(duì)沒有語(yǔ)法錯(cuò)誤的程序進(jìn)行仿真調(diào)試,調(diào)試成功后將HEX文件寫入到單片機(jī)應(yīng)用系統(tǒng)的ROM中。5.2 proteus的操作(1)硬件電路圖的接法操作 1.放置選擇(刪除)元器件 2.移動(dòng)元器件 3.縮放視圖 4.連接導(dǎo)線5.仿真,調(diào)試(2)簡(jiǎn)易計(jì)算器設(shè)計(jì)原理圖圖5.1 簡(jiǎn)易計(jì)算器原理電路圖(3)單片機(jī)系統(tǒng)PROTEUS設(shè)計(jì)與仿真過程 Proteus強(qiáng)大的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真功能,使它可成為單片機(jī)系統(tǒng)應(yīng)用開發(fā)和改進(jìn)手段之一。全部過程都是在計(jì)算機(jī)上通過Proteus來完成的。其過程一般也
21、可分為三步:1.在ISIS平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計(jì)、選擇元器件、接插件、連接電路和電氣檢測(cè)等,簡(jiǎn)稱Proteus電路設(shè)計(jì)。2.在Keil平臺(tái)上進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計(jì)、編輯、匯編編譯、代碼級(jí)調(diào)試,最后生成目標(biāo)代碼文件(*.hex)。簡(jiǎn)稱Proteus源程序設(shè)計(jì)和生成目標(biāo)代碼文件。3.在ISIS平臺(tái)上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中,并實(shí)現(xiàn)單片機(jī)系統(tǒng)的實(shí)時(shí)交互、協(xié)同仿真。它在相當(dāng)程度上反映了實(shí)際單片機(jī)系統(tǒng)的運(yùn)行情況。簡(jiǎn)稱Proteus仿真。在Proteus中將硬件電路全部接好以后,將Keil中生成的.hex文件導(dǎo)入到單片機(jī)中,點(diǎn)擊開始仿真按鈕,電路開始仿真??梢杂^察到:數(shù)碼管顯示“000”;分
22、別依次按下按鍵“5”、“+”、“6”和“=”,可以看到數(shù)碼管顯示“11”;也可以分別調(diào)試其它功能鍵,結(jié)果發(fā)現(xiàn)調(diào)試結(jié)果與預(yù)期的理論值相吻合,即本次課設(shè)已成功。 仿真結(jié)果如下:圖5.2 4+5的仿真結(jié)果圖5.3 8-2的仿真結(jié)果圖5.4 21*10的仿真結(jié)果圖5.5 66/3的仿真結(jié)果 圖5.6 計(jì)算器清零第6章 心得體會(huì) 剛開始接到這個(gè)計(jì)算器的課程設(shè)計(jì)任務(wù)時(shí),因?yàn)橐郧白鲞^類似的題目,于是在腦海中初步構(gòu)建了編寫程序的一些控制程序。但是由于缺乏編寫大量程序的經(jīng)驗(yàn),不能如行云流水般的將全部的各部分代碼寫出,于是去網(wǎng)上查找相關(guān)資料,了解計(jì)算器的輸入控制原理、運(yùn)算處理以及顯示的原理。了解之后自己嘗試編寫程
23、序,經(jīng)過三四天的辛苦工作,終于初步把所需要的程序編好了,于是就進(jìn)行仿真,在仿真期間也發(fā)現(xiàn)了許多錯(cuò)誤,基本上都是平日容易犯的錯(cuò)誤,比如忘記了子程序標(biāo)號(hào)、死循環(huán)程序、標(biāo)點(diǎn)符號(hào)的漏寫等。經(jīng)過反復(fù)的編譯差錯(cuò),仿真編譯通過后,于是開始在Proteus中連硬件電路,全部接完電路之后將.Hex文件導(dǎo)入進(jìn)行仿真,發(fā)現(xiàn)軟件與硬件不能夠?qū)?yīng)協(xié)調(diào)工作,于是分別對(duì)軟件和硬件進(jìn)行檢查,經(jīng)過反復(fù)的仿真調(diào)試,并且在同學(xué)的幫助和自己對(duì)每個(gè)子程序進(jìn)行仿真觀察下,終于在課設(shè)快結(jié)束時(shí)成功的調(diào)試出結(jié)果了。這就是我這兩周課程設(shè)計(jì)的經(jīng)過,看似簡(jiǎn)單,過程卻曲折艱辛。 通過這次課程設(shè)計(jì),我進(jìn)一步熟練了對(duì)Proteus軟件的操作。在編寫程序的
24、過程中,遇到了很多問題,使我發(fā)現(xiàn)自己以前學(xué)習(xí)上存在的不足,對(duì)以前所學(xué)過的知識(shí)理解得不夠深刻,掌握得不夠牢固,對(duì)單片機(jī)匯編語(yǔ)言掌握得不夠好。通過與同學(xué)探討和請(qǐng)教老師,終于把問題都解決了,并加深了對(duì)計(jì)算器工作的原理的了解。同時(shí)也掌握了做課程設(shè)計(jì)的一般流程,為以后的設(shè)計(jì)積累了一定的經(jīng)驗(yàn)。做課程設(shè)計(jì)時(shí),先查閱相關(guān)知識(shí),把原理吃透,確定一個(gè)大的設(shè)計(jì)方向,在按照這個(gè)方向分模塊的把要實(shí)現(xiàn)的功能用流程圖的形式展示。學(xué)會(huì)了怎么樣去制定計(jì)劃,怎么樣去實(shí)現(xiàn)這個(gè)計(jì)劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒??傊?,通過這次的設(shè)計(jì),進(jìn)一步了解了單片微型計(jì)算機(jī)及應(yīng)用原理,收獲很大,對(duì)軟件編程、排錯(cuò)調(diào)試、查閱資料等
25、方面得到較全面的鍛煉和提高。同時(shí)通過本次課程設(shè)計(jì)的學(xué)習(xí),掌握了一種系統(tǒng)的研究方法,可以進(jìn)行一些簡(jiǎn)單的編程,我還深深的體會(huì)到設(shè)計(jì)課的重要性和目的性所在。為了完成項(xiàng)目,在網(wǎng)絡(luò)上找到了許多相關(guān)的資料,大大擴(kuò)充自己的知識(shí)面,使許多以前想解決卻無(wú)法解決的困難迎刃而解。將書本上的理論知識(shí)和實(shí)際有機(jī)地結(jié)合起來,理論中得出結(jié)論。鍛煉了實(shí)際分析問題和解決問題的能力,提高了適應(yīng)實(shí)際的能力,為今后的學(xué)習(xí)和實(shí)踐打下了良好的基礎(chǔ)。此次課設(shè)還鞏固和綜合運(yùn)用所學(xué)過的原理知識(shí),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。參考文獻(xiàn)1周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)(修訂版).北京航空大學(xué)出版社2江世明、黃同成.單片機(jī)原理及應(yīng)用.
26、中國(guó)鐵道出版社3張志良.單片機(jī)原理與控制技術(shù).第2版. 機(jī)械工業(yè)出版社4康華光.電子技術(shù)基礎(chǔ)(第5版). 高等教育出版社出版,20065蔣力培.單片微機(jī)系統(tǒng)實(shí)用教程(第1版).機(jī)械工業(yè)出版社6姜志海、劉連鑫.單片微型計(jì)算機(jī)原理及應(yīng)用.電子工業(yè)出版社,2011致謝為期兩周的單片機(jī)課程設(shè)計(jì)終于結(jié)束了,通過緊張的工作,完成了我的設(shè)計(jì)任務(wù)簡(jiǎn)易計(jì)算器設(shè)計(jì)。總的來說,這次課程設(shè)計(jì)是比較成功的。當(dāng)然,這其中也經(jīng)歷了許多坎坷,但是在我的堅(jiān)持不懈下,在老師的細(xì)心指導(dǎo)下,在同學(xué)們的熱情幫助下,最終克服了種種困難,取得了成功。在此,我非常感謝劉偉春老師對(duì)我這次課程設(shè)計(jì)的指導(dǎo),在老師的教導(dǎo)下,我不僅學(xué)到了有關(guān)這個(gè)課題
27、的相關(guān)知識(shí),而且更重要的是學(xué)到了一種學(xué)習(xí)方法。如果說劉老師的指導(dǎo)為我這次課程設(shè)計(jì)指明了大方向,那么同學(xué)就在細(xì)節(jié)上給了我很大的幫助,主要是幫我改論文格式和程序中的小錯(cuò)誤。老師的指導(dǎo)和同學(xué)的幫助給了我很大鼓勵(lì),是我這次課程設(shè)計(jì)得以完成的巨大動(dòng)力。通過本次課程設(shè)計(jì)也讓我明白了團(tuán)結(jié)的重要性,在此再一次感謝劉老師的指導(dǎo)和同學(xué)的幫忙。附錄 程序清單YJ EQU50H ;結(jié)果存放YJ1 EQU51H ;中間結(jié)果存放GONG EQU52H ;功能鍵存放ORG 00HSTART:MOV R3,#0 ;初始化顯示為空MOV GONG,#0MOV 32H,#00HMOV 33H,#00HMOV 34H,#00HML
28、OOP:CALL DISP ;調(diào)顯示子程序WAIT:CALL TESTKEY ;判斷有無(wú)按鍵JZ WAIT CALL GETKEY ;讀鍵INC R3 ;按鍵個(gè)數(shù)CJNE A,#0,NEXT1 ;判斷是否數(shù)字鍵LJMP E1 ;轉(zhuǎn)數(shù)字鍵處理NEXT1:CJNE A,#1,NEXT2LJMP E1NEXT2:CJNE A,#2,NEXT3LJMP E1NEXT3:CJNE A,#3,NEXT4LJMP E1NEXT4:CJNE A,#4,NEXT5LJMP E1NEXT5:CJNE A,#5,NEXT6LJMP E1NEXT6:CJNE A,#6,NEXT7LJMP E1NEXT7:CJNE A
29、,#7,NEXT8LJMP E1NEXT8:CJNE A,#8,NEXT9LJMP E1NEXT9:CJNE A,#9,NEXT10LJMP E1NEXT10:CJNE A,#10,NEXT11 ;判斷是否功能鍵LJMP E2 ;轉(zhuǎn)功能鍵處理NEXT11:CJNE A,#11,NEXT12LJMP E2NEXT12:CJNE A,#12, NEXT13LJMP E2NEXT13:CJNE A,#13,NEXT14LJMP E2NEXT14:CJNE A,#14,NEXT15LJMP E2NEXT15:LJMP E3 ;判斷是否清除鍵E1:CJNE R3,#1,N1 ;判斷第幾次按鍵LJMP E
30、11 ;為第一個(gè)數(shù)字N1:CJNE R3,#2,N2LJMP E12 ;為第二個(gè)數(shù)字N2:CJNE R3,#3,N3 LJMP E13 ;為第三個(gè)數(shù)字N3:LJMP E3 ;第四個(gè)數(shù)字轉(zhuǎn)溢出E11:MOV R4,A ;輸入值暫存R4MOV 34H,A ;輸入值送顯示緩存MOV 33H,#00HMOV 32H,#00HLJMP MLOOP ;等待再次輸入E12: MOV R7,A ;個(gè)位數(shù)暫存R7MOV B,#10MOV A,R4MUL AB ;十位數(shù)ADDA,R7MOV R4,A ;輸入值存R4MOV 32H,#00H ;輸入值送顯示緩存MOV 33H,34HMOV 34H,R7LJMP ML
31、OOPE13:MOV R7,AMOV B,#10MOV A,R4MUL ABJB OV,E3 ;輸入溢出ADD A,R7JB CY,E3 ;輸入溢出MOV R4,AMOV 32H,33H;輸入值送顯示緩存MOV 33H,34HMOV 34H,R7LJMP MLOOPE3:MOV R3,#0 ;按鍵次數(shù)清零MOV R4,#0 ;輸入值清零MOV YJ,#0 ;計(jì)算結(jié)果清零MOV GONG,#0 ;功能鍵設(shè)為零 MOV 32H,#00H ;顯示清空MOV 33H,#00HMOV 34H,#00HLJMP MLOOPE2:MOV 34H,#00HMOV 33H,#00HMOV 32H,#00HMOV
32、 R0,GONG ;與上次功能鍵交換MOV GONG,AMOV A,R0CJNE A,#10,N21 ;判斷功能鍵LJMP JIA ;""N21: CJNE A,#11,N22LJMP JIAN ;""N22: CJNE A,#12,N23LJMP CHENG ;"*"N23:CJNE A,#13,N24LJMP CHU ;"/"N24:CJNE A,#0,N25LJMP FIRST ;首次按功能鍵N25:LJMP DEN ;"="N4:LJMP E3FIRST:MOV YJ,R4 ;輸入值送結(jié)
33、果MOV R3,#0 ;按鍵次數(shù)清零LJMP DISP1 ;結(jié)果處理JIA:MOV A,YJ ;上次結(jié)果送累加器ADD A,R4 ;上次結(jié)果加輸入值JB CY,N4 ;溢出MOV YJ,A ;存本次結(jié)果MOV R3,#0 ;按鍵次數(shù)清零LJMP DISP1JIAN:MOV A,YJSUBB A,R4 ;上次結(jié)果減輸入值JB CY,N4 ;負(fù)數(shù)溢出MOV YJ,AMOV R3,#0LJMP DISP1CHENG:MOV A,YJMOV B,AMOV A,R4MUL AB ;上次結(jié)果乘輸入值JB OV,N4 ;溢出MOV YJ,ALJMP DISP1CHU:MOV A,R4MOV B,AMOV A,YJDIV AB ;上次結(jié)果除輸入值MOV YJ,AMOV R3,#0LJMP DISP1DEN:MOV R3,#0LJMP DISP1DISP1:MOVB,#10MOVA,YJ ;結(jié)果送累加器DIVAB ;結(jié)果除10MOVYJ1,A ;暫存"商"MOVA,B ;取個(gè)位數(shù)MOV34H,A ;個(gè)位數(shù)送顯示緩存MOVA,YJ1JZDISP11 ;結(jié)果是否為一位數(shù)MOVB,#10MOVA,YJ1DIVABMOVYJ1,AMOVA,BMOV33H,A ;十位送顯示緩存MOVA,YJ1JZ DISP11 ;結(jié)果是否為二位數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)值模擬與流場(chǎng)優(yōu)化方法-洞察闡釋
- 動(dòng)態(tài)皮膚模擬技術(shù)在虛擬試妝中的應(yīng)用研究-洞察闡釋
- 地球深部流體運(yùn)移機(jī)制-洞察闡釋
- 人工智能與經(jīng)濟(jì)刺激創(chuàng)新-洞察闡釋
- 鉆井作業(yè)輔助人員派遣與物資供應(yīng)服務(wù)協(xié)議
- 智慧寵家寵物用品店全國(guó)連鎖授權(quán)供貨協(xié)議
- 共有產(chǎn)權(quán)住房上市交易糾紛解決合同
- 玻璃幕墻設(shè)計(jì)與施工監(jiān)理服務(wù)協(xié)議
- 游戲改編與玩法補(bǔ)充協(xié)議
- 物流運(yùn)輸車輛購(gòu)置與智能駕駛輔助系統(tǒng)合同
- FZ/T 91007-2004紡織機(jī)械產(chǎn)品涂裝工藝
- 工程結(jié)構(gòu)試驗(yàn)作業(yè)朱爾玉課后題答案
- 英語(yǔ)連讀發(fā)音技巧講解課件
- 青綠山水 國(guó)畫 教學(xué)課件
- 2015年低壓電工初訓(xùn)題庫(kù)
- 自身免疫性腦炎課件
- 案場(chǎng)物業(yè)服務(wù)月度考核表
- Q∕GDW 12152-2021 輸變電工程建設(shè)施工安全風(fēng)險(xiǎn)管理規(guī)程
- 銀發(fā)【2007】246號(hào)
- 鋼板樁支護(hù)施工組織設(shè)計(jì)
- 《中小尺度天氣動(dòng)力學(xué)》復(fù)習(xí)資料
評(píng)論
0/150
提交評(píng)論