單片機課程設計十進制加法計算器設計說明_第1頁
單片機課程設計十進制加法計算器設計說明_第2頁
單片機課程設計十進制加法計算器設計說明_第3頁
單片機課程設計十進制加法計算器設計說明_第4頁
單片機課程設計十進制加法計算器設計說明_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 . . . 單片機課程設計報告十進制加法計算器設計 學院:物理與微電子科學學院 班級:- XX:- 學號:-29 / 31目錄1、摘 要-22、設計任務和要求-23、單片機簡要原理-3 3.1 AT89C51的介紹-3 3.2 單片機最小系統(tǒng)-8 3.3 七段共陽極數(shù)碼管-9 4、硬件設計-9 4.1 鍵盤電路的設計-9 4.2 顯示電路的設計-115、 軟件設計-12 5.1 系統(tǒng)設計-12 5.2 顯示與按鍵設計-146、 系統(tǒng)調(diào)試.-226.1系統(tǒng)初始狀態(tài)的調(diào)試-22 6.2鍵盤輸入功能的調(diào)試-23 6.3系統(tǒng)運算功能的調(diào)試-257、心得體會-26參考文獻-29附錄 系統(tǒng)硬件電路圖-2

2、9-1、摘要近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據(jù)具體硬件結構軟硬件結合,加以完善。 本設計是實現(xiàn)兩位數(shù)的加減運算的簡易計算器,實現(xiàn)鍵盤輸入,由七段LED數(shù)碼管輸出;程序都是根據(jù)教材和網(wǎng)絡中的程序參考編寫而成,在功能上還并不十分完善,限制也較多。本設計重在設計構思,使得我們用專業(yè)知識、專業(yè)技能分析和解決問題,通過設計使得我們對所學知識徹底鞏固。2、設計任務和要求本次課程設計,我選題是單片機十進制加法計算器軟設計,設計任務為:設計一鍵盤顯示裝

3、置,鍵盤上除需定義10個十進制數(shù)字鍵外還要相應的功能鍵,其它鍵不定義無響應。利用此系統(tǒng)可分別可輸入十進制被加數(shù)與加數(shù),實現(xiàn)兩數(shù)相加并將結果以十進制形式顯示出來。(擴展:多位10進制數(shù)相加) 本課程設計的十進制加法計算器的計算圍為0255,計算結果全為整數(shù),計算結果溢出結果不顯示。 1、加法:三位加法,計算結果超過255溢出不顯示 2、減法:三位減法,計算結果若小于零溢出不顯示 3、乘法:三位數(shù)乘法 4、除法:整數(shù)除法 5、有清零功能3、 單片機簡要原理在該課程設計中,主要用到一個AT89C51芯片和串接的共陰數(shù)碼管。作為該設計的主要部分,下面將對它們的原理與功能做詳細介紹和說明。3.1 AT8

4、9C51的介紹: 圖一 AT89C51外形結構和引腳分布圖芯片AT89C51的外形結構和引腳圖如圖一所示。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。其功能特性描述:AT89C

5、51單片機在電子行業(yè)中有著廣泛的應用。AT89C52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口, 片晶振與時鐘電路,8 位微控制器 8K 字節(jié)在系統(tǒng)可編程 Flash ROM。P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,P0口被分時轉換地址(低8 位)和數(shù)據(jù)總線復用,在訪問期間激活部上拉電阻。 在Flash 編程時,P0 口接收

6、指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。 P1 口:P1 口是一個具有部上拉電阻的8 位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,因為部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。 P1端口引腳號第二功能: P1.0 T2(定時器/計數(shù)器T2的外部計

7、數(shù)輸入),時鐘輸出 P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P2 口:P2 是一個帶有部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL邏輯門電路。對端口P2 寫“1”,通過部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX RI 指令)時,P2 口輸出P2 鎖存器的容。 Fl

8、ash 編程或校驗時,P2亦接收高位地址和一些控制信號。P3 口:P3 口是一組帶有部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。 P3 口還接收一些用于Flash 閃速存儲器編程和程序校驗的控制信號。 P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能。P3口亦作為AT89C52特殊功能(第二功能)使用,如下所示。 在flash編程和校驗時,P3口也接收一些控制信號。 P3端口引腳第二功能:P3.0 RX

9、D(串行輸入口)P3.1 TXD(串行輸出口)P3.2 INTO(外中斷0)P3.3 INT1(外中斷1)P3.4 TO(定時/計數(shù)器0)P3.5 T1(定時/計數(shù)器1)P3.6 WR(外部數(shù)據(jù)存儲器寫選通)P3.7 RD(外部數(shù)據(jù)存儲器讀選通)RST復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復位。ALE/PROG當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FL

10、ASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。PSEN程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必

11、須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行部程序存儲器的指令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。引腳使用說明:I/O端口的編程實際上就是根據(jù)應用電路的具體功能和要求對I/O寄存器進行編程。具體步驟如下:l. 根據(jù)實際電路的要求,選擇要使用哪些I/O端口。2. 初始化端口的數(shù)據(jù)輸出寄存器,應避免端口作為輸出時的開始階段出現(xiàn)不確定狀態(tài),影響外圍電路正常工作。3. 根據(jù)外圍電路功能,確定PO端口的方向,初始化端口的數(shù)據(jù)方向寄存器。對于用作輸

12、入的端口可以不考慮方向初始化,因為PO的復位缺省值為輸入。4. 用作輸入的PO管腳,需上拉電阻。5. 最后對I/O端口進行輸出(寫數(shù)據(jù)輸出寄存器)和輸入(讀端口)編程,完成對外圍電路的相應功能。3.2 單片機最小系統(tǒng)單片機最小系統(tǒng)就是支持主芯片正常工作的最小部分,包括主控芯片、復位電路和晶振電路。(一) 復位電路 圖二 復位電路本設計采用上電與手動復位電路,電阻分別選取100和10K,電容選取10uF,系統(tǒng)一上電,芯片就復位,或者中途按按鍵也可以進行復位。(2) 晶振電路 圖三 晶振電路晶振電路是單片機的心臟,它用于產(chǎn)生單片機工作所需要的時鐘信號。單片機的晶振選取11.0592MHz,晶振旁電

13、容選取30pF。3.3 七段共陽極數(shù)碼管圖四 七段共陽數(shù)碼管 圖為七段共陽數(shù)碼管的引腳圖,從左到右數(shù)碼管的段碼分別為a,b,c,d,e,f,g和小數(shù)點dp,低電平時點亮,最右邊為位選端。4、硬件設計簡易數(shù)字計算器系統(tǒng)硬件設計主要包括:鍵盤電路,顯示電路以與其他輔助電路。下面分別進行設計。 4.1 鍵盤電路的設計 鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個以上)和專用驅(qū)動芯片的組合,當按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預。通用計算機使用的標準鍵盤就是編碼鍵盤。當系統(tǒng)功能比較復雜,按鍵數(shù)量很多時,采用編碼鍵盤可以簡化軟件設計。但

14、大多數(shù)智能儀器和電子產(chǎn)品的按鍵數(shù)目都不太多(20個以),為了降低成本和簡化電路通常采用非編碼鍵盤。非編碼鍵盤的接口電路有設計者根據(jù)需要自行決定,按鍵信息通過接口軟件來獲取。本課題需要的是16個按鍵,故選擇用非編碼鍵盤。計算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨立按鍵的方式,在這種情況下,編程會很簡單,但是會占用大量的I/O 口資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條I/O 線作為行線,四條I/O 線作為列線組成鍵盤,在行線和列線的每個交叉點上設置一個按鍵。這樣鍵盤上按鍵的個數(shù)就為44個。這種行列式鍵盤結構能有效地提高單片機系統(tǒng)中I/O 口的利

15、用率。矩陣鍵盤的工作原理:計算器的鍵盤布局如圖五所示:一般有16個鍵組成,在單片機中正好可以用一個P口實現(xiàn)16個按鍵功能,這種形式在單片機系統(tǒng)中也最常用。具體電路連接如圖五所示: 圖五 4*4鍵盤接口電路4.2 顯示電路的設計 當系統(tǒng)需要顯示少量數(shù)據(jù)時,采用LED數(shù)碼管進行顯示是一種經(jīng)濟實用的方法。數(shù)碼管顯示有靜態(tài)顯示和動態(tài)顯示兩種方法。為了減少端口的使用,故選擇動態(tài)顯示。電路如下圖六所示: 圖六 三位數(shù)碼管的顯示電路5、軟件設計在十進制加法計算器的軟件規(guī)劃要求下,簡易計算器的程序主要包括以下功能模塊:(1) 主模塊,為系統(tǒng)的初始化。(2)顯示與讀鍵模塊,分為判鍵程序段、運算操作子程序、顯示子

16、程序等部分;5.1系統(tǒng)設計(一) 系統(tǒng)模塊圖 圖七 系統(tǒng)模塊圖 此系統(tǒng)包括晶振電路、復位電路、LED顯示電路、矩陣按鍵電路運算法則指示燈以與單片機。其過輸入鍵盤模塊將數(shù)字09和運算符號“+”、“-”、“*”、“/”輸入單片機進行運算;運算模塊分別根據(jù)輸入的運算符進行加減乘除運算;顯示模塊將運算后的數(shù)值通過動態(tài)掃描使之在數(shù)碼管上輸出。(2) 系統(tǒng)總流程圖主程序主要是用來進行初始化的,調(diào)用其他子程序,清空各個標志位,清空緩存區(qū),讀取鍵碼,判斷功能,在LED上作出回應,主程序流程圖如圖六所示。(1)數(shù)字送顯示緩沖程序設計簡易計算器所顯示的數(shù)值最大位三位。要顯示數(shù)值,先判斷數(shù)值大小和位數(shù),如果是超過三

17、位或大于255,將不顯示數(shù)字??芍匦螺斎霐?shù)字,再次計算。(2)運算程序的設計首先初始化參數(shù),送LED三位顯示“0”,其它位不顯示。然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵碼。判斷鍵碼是數(shù)字鍵、清零鍵還是功能鍵,是數(shù)值鍵則送LED顯示并保存數(shù)值,是清零鍵則做清零處理,是功能鍵則又判斷是“=”還是運算鍵,若是“=”則計算最后結果并送LED顯示,若是運算鍵則保存相對運算程序的首地址。5.2 顯示與按鍵設計(1) LED顯示程序設計LED顯示器由七段發(fā)光二極管組成,排列成8字形狀,因此也稱為七段LED顯示器。為了顯示數(shù)字或符號,要為LED顯示器提供代碼,即字形代碼。七段發(fā)光二極管,再加上一個小數(shù)點位,

18、共計8段,因此提供的字形代碼的長度正好是一個字節(jié)。簡易計算器用到的數(shù)字09的共陽極字形代碼如下表:顯示字型gfedcba段碼001111110c0h100001100f9h210110110a4h310011110b0h4110011099h5110110192h6111110182h700001110f8h8111111180h9110111190h表一 共陽極數(shù)碼管段碼對照表(2) 讀鍵子程序設計為了實現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個鍵都有其處理子程序,為此每個鍵都對應一個碼鍵碼。為了得到被按鍵的鍵碼,現(xiàn)使用行掃描法識別按鍵。其程序框圖如圖八:讀鍵程序使用的是反轉法讀鍵,不管鍵盤矩

19、陣的規(guī)模大小,均進行兩次讀鍵。第一次所有列線均輸出低電平,從所有讀入鍵盤信息(行信息);第二次所有行線均輸出低電平,從所有行線讀入鍵盤信息(列信息)。將兩次讀鍵信息進行組合就可以得到按鍵的特征編碼,然后通過查表得到按鍵的順序編碼。將各特征編碼按希望的順序排成一表,然后用當前讀得的特征碼來查表。當表中有該特征碼時,它的位置就是對應的順序編碼;當表中沒有該特征碼時,說明這是一個沒有定義的鍵碼,與沒有按鍵(0FFH)同等看待。(3) 流程圖 圖八 計算鍵值子程序流程圖(4) 源程序RESULT EQU60H RESULT1 EQU61H FUNCTIONKEY EQU62H ORG 00HSTART

20、:MOV R3,#0 MOV FUNCTIONKEY,#0MOV 32H,#00HMOV 33H,#00HMOV 34H,#00HMLOOP:CALL DISP ;調(diào)顯示子程序WAIT:CALL TESTKEY ;判斷有無按鍵JZ WAIT CALL GETKEY ;讀鍵INC R3 ;按鍵個數(shù)CJNE A,#0,NEXT1 ;判斷是否數(shù)字鍵LJMP E1 ;轉數(shù)字鍵處理NEXT1:CJNE A,#1,NEXT2LJMP E1NEXT2:CJNE A,#2,NEXT3LJMP E1NEXT3:CJNE A,#3,NEXT4LJMP E1NEXT4:CJNE A,#4,NEXT5LJMP E1N

21、EXT5:CJNE A,#5,NEXT6LJMP E1NEXT6:CJNE A,#6,NEXT7LJMP E1NEXT7:CJNE A,#7,NEXT8LJMP E1NEXT8:CJNE A,#8,NEXT9LJMP E1NEXT9:CJNE A,#9,NEXT10LJMP E1NEXT10:CJNE A,#10,NEXT11 ;判斷是否功能鍵LJMP E2 ;轉功能鍵處理NEXT11:CJNE A,#11,NEXT12LJMP E2NEXT12:CJNE A,#12, NEXT13LJMP E2NEXT13:CJNE A,#13,NEXT14LJMP E2NEXT14:CJNE A,#14,

22、NEXT15LJMP E2NEXT15:LJMP E3 ;判斷是否清除鍵E1:CJNE R3,#1,N1 ;判斷第幾次按鍵LJMP E11 ;為第一個數(shù)字N1:CJNE R3,#2,N2LJMP E12 ;為第二個數(shù)字N2:CJNE R3,#3,N3 LJMP E13 ;為第三個數(shù)字N3:LJMP E3 ;第四個數(shù)字轉溢出E11:MOV R4,A ;輸入值暫存R4MOV 34H,A ;輸入值送顯示緩存MOV 33H,#00HMOV 32H,#00HLJMP MLOOP ;等待再次輸入E12: MOV R7,A ;個位數(shù)暫存R7MOV B,#10MOV A,R4MUL AB ;十位數(shù)ADDA,R

23、7MOV R4,A ;輸入值存R4MOV 32H,#00H ;輸入值送顯示緩存MOV 33H,34HMOV 34H,R7LJMP MLOOPE13:MOV R7,AMOV B,#10MOV A,R4MUL AB OV,E3 ;輸入溢出ADD A,R7 CY,E3 ;輸入溢出MOV R4,AMOV 32H,33H;輸入值送顯示緩存MOV 33H,34HMOV 34H,R7LJMP MLOOPE3:MOV R3,#0 ;按鍵次數(shù)清零MOV R4,#0 ;輸入值清零MOV RESULT,#0 ;計算結果清零MOV FUNCTIONKEY,#0 ;功能鍵設為零 MOV 32H,#00H;顯示清空MOV

24、 33H,#00HMOV 34H,#00HLJMP MLOOPE2:MOV 34H,#00HMOV 33H,#00HMOV 32H,#00HMOV R0,FUNCTIONKEY ;與上次功能鍵交換MOV FUNCTIONKEY,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:LJ

25、MP E3FIRST:MOV RESULT,R4 ;輸入值送結果MOV R3,#0 ;按鍵次數(shù)清零LJMP DISP1 ;結果處理JIA:MOV A,RESULT;上次結果送累加器ADD A,R4;上次結果加輸入值 CY,N4;溢出MOV RESULT,A;存本次結果MOV R3,#0;按鍵次數(shù)清零LJMP DISP1JIAN:MOV A,RESULTSUBB A,R4;上次結果減輸入值 CY,N4;負數(shù)溢出MOV RESULT,AMOV R3,#0LJMP DISP1CHENG:MOV A,RESULTMOV B,AMOV A,R4MUL AB;上次結果乘輸入值 OV,N4;溢出MOV RE

26、SULT,ALJMP DISP1CHU:MOV A,R4MOV B,AMOV A,RESULTDIV AB;上次結果除輸入值MOV RESULT,AMOV R3,#0LJMP DISP1DEN:MOV R3,#0LJMP DISP1DISP1:MOVB,#10MOVA,RESULT;結果送累加器DIVAB;結果除10MOVRESULT1,A;暫存商MOVA,B;取個位數(shù)MOV34H,A;個位數(shù)送顯示緩存MOVA,RESULT1JZDISP11;結果是否為一位數(shù)MOVB,#10MOVA,RESULT1DIVABMOVRESULT1,AMOVA,BMOV33H,A;十位送顯示緩存MOVA,RESU

27、LT1JZDISP11;結果是否為二位數(shù)MOV32H,A;百位數(shù)送顯示緩存DISP11:LJMPMLOOPDISP: MOV R0,#34HDIR1: MOV DPTR,#SEGTAB MOV A,R0 MOVC A,A+DPTR MOV P0,A CJNE R0,#34H,DIR2 SETB P2.0 CALL D1MS CLR P2.0 DEC R0 SJMP DIR1DIR2: CJNE R0,#33H,DIR3 SETB P2.1 CALL D1MS CLR P2.1 DEC R0 SJMP DIR1DIR3: SETB P2.2 CALL D1MS CLR P2.2 RETD1MS:

28、 MOV R7,#02HDMS: MOV R6,#0F0H DJNZ R6,$DJNZ R7,DMS RETSEGTAB:DB 0C0H, 0F9H, 0A4H, 0B0H DB 99H, 92H, 82H, 0F8H DB 80H, 90H, 88H, 83H DB 0C6H, 0A1H, 86H, 8EHTESTKEY:ACALL DISPMOVP1,#0FH;讀入鍵狀態(tài)MOVA,P1CPLAANLA,#0FH;高四位不用RETKEYTABLE:DB0EEH,0EDH,0DDH,0BDH;鍵碼定義DB0EBH,0DBH,0BBH,0E7HDB0D7H,0B7H,0DEH,0BEHDB07E

29、H,07DH,07BH,077HGETKEY:MOVR6,#10;讀鍵子程序ACALLDELAYMOVP1,#0FHMOVA,P1CJNEA,0FH,K12LJMPMLOOPK12: MOVB,AMOVP1,#0EFHMOVA,P1CJNEA,#0EFH,K13MOVP1,#0DFHMOVA,P1CJNEA,#0DFH,K13MOVP1,#0BFHMOVA,P1CJNEA,#0BFH,K13MOVP1,#07FHMOVA,P1CJNEA,#07FH,K13LJMPMLOOPK13: ANL A,#0F0HORLA,BMOVB,AMOVR1,#16MOVR2,#0MOVDPTR,#KEYTABL

30、EK14:MOVA,R2MOVCA,A+DPTRCJNEA,B,K16MOVP1,#0FHK15:MOVA,P1CJNEA,#0FH,K15MOVR6,#10ACALLDELAYMOVA,R2RETK16:INCR2DJNZR1,K14AJMPMLOOP ;10ms延時子程序DELAY:MOVR7,#10TS1: MOV R6,#0FFHTS2:NOPNOP DJNZR6,TS2DJNZR7,TS1RETEND6系統(tǒng)調(diào)試 6.1系統(tǒng)初始狀態(tài)的調(diào)試系統(tǒng)初始狀態(tài)時,2個LED顯示器顯示“0”,運算法則指示燈全滅。調(diào)試結果如圖9所示。圖9 系統(tǒng)初始狀態(tài)調(diào)試結果6.2鍵盤輸入功能的調(diào)試通過鍵盤分別輸入

31、“8”、“*”、“9”,LED顯示電路和運算法則指示電路分別顯示相應的結果。調(diào)試結果如圖11所示。(a)輸入“8”(b)輸入“*”(c)輸入“9”圖10 鍵盤輸入功能調(diào)試結果6.3系統(tǒng)運算功能的調(diào)試當輸入“8”、“*”、“9”后,點擊“=”可得到運算結果“72”,并通過LED顯示電路顯示。調(diào)試結果如圖11所示。圖11 系統(tǒng)運算功能調(diào)試結果7、 心得體會單片機課程設計終于結束了,通過緊的工作,完成了我的設計任務-十進制加法計算器??偟膩碚f,這次課程設計是比較成功的。當然,這其中也經(jīng)歷了許多坎坷,但是在我的堅持不懈下,在老師的細心指導下,在同學們的熱情幫助下,最終克服了種種困難,取得了成功。 起初我還想從老師所給的四個單片機課程設計題目中選擇一題,后來發(fā)覺自己自己對計算器挺感興趣的,所以就決定利用自己所學的單片機知識自己做一個計算器。但由于以前從未做過像這種軟硬件相結合的設計,所以我請教了好幾個有參加電子競賽的同學并且在網(wǎng)上和圖書館查閱了不少的有關于單片機課程設計的文獻以與計數(shù)器的相關資料。我在了解計算機所需要的主體硬件之后決定編寫程序,在此過程中,其中鍵盤掃描和動態(tài)掃描顯示掃描程序困擾了我很久,經(jīng)過三四天的辛苦工作,終于初步把所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論