




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、存檔資料成績:華東交通大學課程設(shè)計報告書所屬課程名稱單片機原理及應用題 目院(系) 電氣學院班 級 電氣化14 - 班學 號一學生姓名指導教師輔導教師2016年12月 30日課程設(shè)計(論文)任務書電氣學 院電氣工程專 業(yè)_14級()班一、課程設(shè)計(論文)題目填寫所選題目二、課程設(shè)計(論文)工作自2016年12月26日起至_ 2016 年12月30日止。三、課程設(shè)計(論文)內(nèi)容要求:1.本課程設(shè)計的目的(1)使學生掌握系統(tǒng)單片機各功能模塊的基本工作原理;(2)培養(yǎng)學生單片機硬件電路設(shè)計的基本思路和方法;(3)使學生掌握系統(tǒng)調(diào)試的方法;(4)培養(yǎng)學生分析、解決問題的能力;(5)提高學生的科技論文寫
2、作能力。2.課程設(shè)計的任務及要求1)基本要求:(1)分析所設(shè)計系統(tǒng)各功能模塊的工作原理;(2)選用合適的器件(芯片);(3)提出系統(tǒng)的設(shè)計方案(要有電路原理圖);(4)對所設(shè)計電路進行仿真調(diào)試。(5)所設(shè)計系統(tǒng)的具體功能要求:(此處填寫自己所選題目任務書中的系統(tǒng)功能要求)2)提高要求:在基本要求達到后,可進行創(chuàng)新設(shè)計,如改善電路性能,在實驗板上調(diào)試等。3)課程設(shè)計論文編寫要求(1)要按照書稿的規(guī)格譽寫課設(shè)論文(2)論文包括目錄、緒論、正文、小結(jié)、參考文獻、附錄等(3)正文中要有程序設(shè)計思路的闡述,程序流程圖,硬件原理圖等(4)課設(shè)論文裝訂按學校的統(tǒng)一要求完成4)課設(shè)考核:從以下幾方面來考查:(
3、1)出勤情況及任務的飽滿程度;(2)設(shè)計任務的難易程度;(3)完成課設(shè)任務情況;(4)動手調(diào)試能力;(5)論文撰寫的原理分析、設(shè)計思路以及論述的層次性、條理性、格式的規(guī)范性;5)課程設(shè)計進度安排內(nèi)容天數(shù)地點構(gòu)思及收集資料1圖書館實驗室程序設(shè)計與調(diào)試實驗室撰寫論文教室撰寫論文教室學生簽名:2016年12月26日課程設(shè)計(論文)評審意見(1)任務難易及完成情況:優(yōu)()、良()、中()、一般()、差();(2)完成調(diào)試能力評價:優(yōu)()、良()、中()、一般()、差();(3)論文撰寫水平評價:優(yōu)()、良()、中()、一般()、差();(4)論文格式規(guī)范性評價:優(yōu)()、良()、中()、一般()、差()
4、;(5)考勤及任務飽滿情況:優(yōu)()、良()、中()、一般()、差();評閱人:2017 年1 月7 日三硝Q單片機課程設(shè)計報告目錄 TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 1、摘要2 HYPERLINK l bookmark8 o Current Document 2、設(shè)計任務和要求2 HYPERLINK l bookmark10 o Current Document 3、單片機簡要原理3 HYPERLINK l bookmark12 o Current Document AT89C51 的介紹3 HYPERLINK l b
5、ookmark14 o Current Document 單片機最小系統(tǒng)8七段共陽極數(shù)碼管9 HYPERLINK l bookmark24 o Current Document 4、硬件設(shè)計9 HYPERLINK l bookmark26 o Current Document 鍵盤電路的設(shè)計9 HYPERLINK l bookmark28 o Current Document 顯示電路的設(shè)計11 HYPERLINK l bookmark30 o Current Document 5、 軟件設(shè)計12 HYPERLINK l bookmark32 o Current Document 系統(tǒng)設(shè)計12
6、 HYPERLINK l bookmark36 o Current Document 顯示與按鍵設(shè)計14 HYPERLINK l bookmark44 o Current Document 6、系統(tǒng)調(diào)試.22 HYPERLINK l bookmark46 o Current Document 系統(tǒng)初始狀態(tài)的調(diào)試22 HYPERLINK l bookmark48 o Current Document 鍵盤輸入功能的調(diào)試23 HYPERLINK l bookmark55 o Current Document 系統(tǒng)運算功能的調(diào)試257、心得體會26 HYPERLINK l bookmark59 o
7、Current Document 參考文獻29 HYPERLINK l bookmark61 o Current Document 附錄系統(tǒng)硬件電路圖29單片機課程設(shè)計報告1、摘要近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷深入,同時 帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應 用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識 是不夠的,還應根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本設(shè)計是實現(xiàn)兩位數(shù)的加減運算的簡易計算器,實現(xiàn)鍵盤輸入, 由七段LED數(shù)碼管輸出;程序都是根據(jù)教材內(nèi)和網(wǎng)絡中的程序參考編 寫而成,在功能上還并不十分完善,限制也較多。本設(shè)計重在設(shè)計構(gòu) 思
8、,使得我們用專業(yè)知識、專業(yè)技能分析和解決問題,通過設(shè)計使得 我們對所學知識徹底鞏固。2、設(shè)計任務和要求本次課程設(shè)計,我選題是單片機十進制加法計算器軟設(shè)計,設(shè) 計任務為:設(shè)計一鍵盤顯示裝置,鍵盤上除需定義10個十進制數(shù)字鍵外還要 相應的功能鍵,其它鍵不定義無響應。利用此系統(tǒng)可分別可輸入十進 制被加數(shù)與加數(shù),實現(xiàn)兩數(shù)相加并將結(jié)果以十進制形式顯示出來。(擴 展:多位10進制數(shù)相加)本課程設(shè)計的十進制加法計算器的計算范圍為0255,計算結(jié) 果全為整數(shù),計算結(jié)果溢出結(jié)果不顯示。單片機課程設(shè)計報告1、加法:三位加法,計算結(jié)果超過255溢出不顯示2、減法:三位減法,計算結(jié)果若小于零溢出不顯示3、乘法:三位數(shù)
9、乘法4、除法:整數(shù)除法5、有清零功能3、單片機簡要原理在該課程設(shè)計中,主要用到一個AT89C51芯片和串接的共陰數(shù) 碼管。作為該設(shè)計的主要部分,下面將對它們的原理及功能做詳細介 紹和說明。3.1 AT89C51的介紹:圖一 AT89C51外形結(jié)構(gòu)和引腳分布圖芯片AT89C51的外形結(jié)構(gòu)和引腳圖如圖一所示。AT89C51是一種帶4K單片機課程設(shè)計報告字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM-Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能 CMOS8 位微處 理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù) 制
10、造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功 能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一 種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉 的方案。其功能特性描述:AT89C51單片機在電子行業(yè)中有著廣泛的應用。 AT89C52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位 I/O 口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位 定時器/計數(shù) 器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電 路,8位微控制器8K字節(jié)在系統(tǒng)可編程Flash ROM。P0 口: P0 口是一個8位漏極開路的雙向I/O 口。作為輸出
11、口, 每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高 阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,P0 口被分時轉(zhuǎn)換地址 (低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出 指令字節(jié),校驗時,要求外接上拉電阻。P1 口: P1 口是一個具有內(nèi)部上拉電阻的8位雙向I/O 口,P1 輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部 上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,單片機課程設(shè)計報告因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流 (IIL)。止匕外,P1.
12、0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入 (P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入1.1/12乂),具體如下表 所示。在flash編程和校驗時,P1 口接收低8位地址字節(jié)。P1端口引腳號第二功能:P1.0 T2 (定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)P2 口: P2是一個帶有內(nèi)部上拉電阻的8位雙向1/0 口,P2的 輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口 P2寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入 口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號 拉
13、低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí) 行MOVX DPTR指令)時,P2 口送出高8位地址數(shù)據(jù)。在訪問8位 地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVXRI指令)時,P2 口輸出P2鎖 存器的內(nèi)容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。P3 口: P3 口是一組帶有內(nèi)部上拉電阻的8位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對 P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此 時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。單片機課程設(shè)計報告P3 口還接收一些用于Flas
14、h閃速存儲器編程和程序校驗的控制 信號。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功 能。P3 口亦作為AT89C52特殊功能(第二功能)使用,如下所示。在flash編程和校驗時,P3 口也接收一些控制信號。P3端口引腳第二功能:P3.0 RXD(串行輸入口)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)兩個機器周 期以上高電平將是單片機復位。
15、ALE/PROG當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE (地 址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE 仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時 鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過 一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈單片機課程設(shè)計報告沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的 D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC 指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部 程序時,應設(shè)置ALE禁止位無效。PSEN程序儲
16、存允許(PSEN)輸出是外部程序存儲器的讀選通 信號,當AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器 周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數(shù)據(jù) 存儲器,將跳過兩次PSEN信號。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地 址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如 果加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接丫“端),CPU則執(zhí)行內(nèi)部程序存儲器的指 令。FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當 然這必須是該器件是使用12V編程電壓Vpp。引腳使用說明:I/O端
17、口的編程實際上就是根據(jù)應用電路的具體功能和要求對 I/O寄存器進行編程。具體步驟如下:.根據(jù)實際電路的要求,選擇要使用哪些I/O端口。.初始化端口的數(shù)據(jù)輸出寄存器,應避免端口作為輸出時的開 始階段出現(xiàn)不確定狀態(tài),影響外圍電路正常工作。單片機課程設(shè)計報告.根據(jù)外圍電路功能,確定PO端口的方向,初始化端口的數(shù)據(jù) 方向寄存器。對于用作輸入的端口可以不考慮方向初始化,因為PO 的復位缺省值為輸入。.用作輸入的PO管腳,需上拉電阻。.最后對I/O端口進行輸出(寫數(shù)據(jù)輸出寄存器)和輸入(讀端 口)編程,完成對外圍電路的相應功能。3.2單片機最小系統(tǒng)單片機最小系統(tǒng)就是支持主芯片正常工作的最小部分,包括主控
18、芯片、復位電路和晶振電路。(一)復位電路本設(shè)計采用上電與手動復位電路,電阻分別選取100和10K,電 容選取10uF,系統(tǒng)一上電,芯片就復位,或者中途按按鍵也可以進 行復位。(二)晶振電路單片機課程設(shè)計報告C230pF,1xlCRYSTAL -C230pF,1xlCRYSTAL -.XT2圖三 晶振電路晶振電路是單片機的心臟,它用于產(chǎn)生單片機工作所需要的時鐘信號。單片機的晶振選取11.0592MHz,晶振旁電容選取30pF。3.3七段共陽極數(shù)碼管3.3七段共陽極數(shù)碼管圖四七段共陽數(shù)碼管圖為七段共陽數(shù)碼管的引腳圖,從左到右數(shù)碼管的段碼分別為a,b,c,d,e,f,g 和小數(shù)點dp,低電平時點亮,
19、最右邊為位選端。4、硬件設(shè)計簡易數(shù)字計算器系統(tǒng)硬件設(shè)計主要包括:鍵盤電路,顯示電路以 及其他輔助電路。下面分別進行設(shè)計。鍵盤電路的設(shè)計單片機課程設(shè)計報告鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是 較多按鍵(20個以上)和專用驅(qū)動芯片的組合,當按下某個 按鍵時,它能夠處理按鍵抖動、連擊等問題,直接輸出按鍵 的編碼,無需系統(tǒng)軟件干預。通用計算機使用的標準鍵盤就 是編碼鍵盤。當系統(tǒng)功能比較復雜,按鍵數(shù)量很多時,采用 編碼鍵盤可以簡化軟件設(shè)計。但大多數(shù)智能儀器和電子產(chǎn)品 的按鍵數(shù)目都不太多(20個以內(nèi)),為了降低成本和簡化電 路通常采用非編碼鍵盤。非編碼鍵盤的接口電路有設(shè)計者根 據(jù)需要自行決定,
20、按鍵信息通過接口軟件來獲取。本課題需 要的是16個按鍵,故選擇用非編碼鍵盤。計算器輸入數(shù)字和其他功能按鍵要用到很多按鍵,如果采用獨立 按鍵的方式,在這種情況下,編程會很簡單,但是會占用大量的I/O 口 資源,因此在很多情況下都不采用這種方式,而是采用矩陣鍵盤的方 案。矩陣鍵盤采用四條I/O線作為行線,四條I/O線作為列線組成鍵 盤,在行線和列線的每個交叉點上設(shè)置一個按鍵。這樣鍵盤上按鍵的 個數(shù)就為4X4個。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中 I/O 口的利用率。矩陣鍵盤的工作原理:計算器的鍵盤布局如圖五所示:一般有16 個鍵組成,在單片機中正好可以用一個P口實現(xiàn)16個按鍵功能,這種 形
21、式在單片機系統(tǒng)中也最常用。具體電路連接如圖五所示:單片機課程設(shè)計報告0 - O0 - O圖五4*4鍵盤接口電路顯示電路的設(shè)計當系統(tǒng)需要顯示少量數(shù)據(jù)時,采用LED數(shù)碼管進行顯示是一種經(jīng)濟實用的方法。數(shù)碼管顯示有靜態(tài)顯示和動態(tài)顯示兩種方法。為了減 少端口的使用,故選擇動態(tài)顯示。電路如下圖六所示:11單片機課程設(shè)計報告圖六三位數(shù)碼管的顯示電路軟件設(shè)計在十進制加法計算器的軟件規(guī)劃要求下,簡易計算器的程序主要包括以下功能模塊:(1) 主模塊,為系統(tǒng)的初始化。(2)顯示 與讀鍵模塊,分為判鍵程序段、運算操作子程序、顯示子程序等部分;系統(tǒng)設(shè)計(一) 系統(tǒng)模塊圖12單片機課程設(shè)計報告圖七系統(tǒng)模塊圖此系統(tǒng)包括晶
22、振電路、復位電路、LED顯示電路、矩陣按鍵電路 運算法則指示燈以及單片機。其中通過輸入鍵盤模塊將數(shù)字09和運 算符號“ +,、”-,、“*,、“/,輸入單片機進行運算;運算模塊分別根 據(jù)輸入的運算符進行加減乘除運算;顯示模塊將運算后的數(shù)值通過動 態(tài)掃描使之在數(shù)碼管上輸出。(二)系統(tǒng)總流程圖主程序主要是用來進行初始化的,調(diào)用其他子程序,清空各個標 志位,清空緩存區(qū),讀取鍵碼,判斷功能,在LED上作出回應,主程 序流程圖如圖六所示。(1)數(shù)字送顯示緩沖程序設(shè)計簡易計算器所顯示的數(shù)值最大位三位。要顯示數(shù)值,先判斷數(shù)值 大小和位數(shù),如果是超過三位或大于255,將不顯示數(shù)字??芍匦螺?入數(shù)字,再次計算。
23、(2)運算程序的設(shè)計13單片機課程設(shè)計報告首先初始化參數(shù),送LED三位顯示“0”,其它位不顯示。然后掃描 鍵盤看是否有鍵輸入,若有,讀取鍵碼。判斷鍵碼是數(shù)字鍵、清零鍵 還是功能鍵,是數(shù)值鍵則送LED顯示并保存數(shù)值,是清零鍵則做清零 處理,是功能鍵則又判斷是“二”還是運算鍵,若是“二”則計算最后結(jié)果 并送LED顯示,若是運算鍵則保存相對運算程序的首地址。顯示與按鍵設(shè)計(一)LED顯示程序設(shè)計LED顯示器由七段發(fā)光二極管組成,排列成8字形狀,因此也稱為 七段LED顯示器。為了顯示數(shù)字或符號,要為ED顯示器提供代碼,即 字形代碼。七段發(fā)光二極管,再加上一個小數(shù)點位,共計8段,因此 提供的字形代碼的長
24、度正好是一個字節(jié)。簡易計算器用到的數(shù)字09 的共陽極字形代碼如下表:顯示字型gfedcba段碼001111110c0h100001100f9h210110110a4h310011110b0h4110011099h5110110192h6111110182h700001110f8h8111111180h9110111190h表一共陽極數(shù)碼管段碼對照表(二)讀鍵子程序設(shè)計單片機課程設(shè)計報告為了實現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個鍵都有其處 理子程序,為此每個鍵都對應一個碼一一鍵碼。為了得到被按鍵的鍵 碼,現(xiàn)使用行掃描法識別按鍵。其程序框圖如圖八:讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模
25、大小,均進 行兩次讀鍵。第一次所有列線均輸出低電平,從所有讀入鍵盤信息(行 信息);第二次所有行線均輸出低電平,從所有行線讀入鍵盤信息(列 信息)。將兩次讀鍵信息進行組合就可以得到按鍵的特征編碼,然后 通過查表得到按鍵的順序編碼。將各特征編碼按希望的順序排成一張 表,然后用當前讀得的特征碼來查表。當表中有該特征碼時,它的位 置就是對應的順序編碼;當表中沒有該特征碼時,說明這是一個沒有 定義的鍵碼,與沒有按鍵(0FFH)同等看待。(三)流程圖15單片機課程設(shè)計報告圖八計算鍵值子程序流程圖(四)源程序RESULT圖八計算鍵值子程序流程圖(四)源程序RESULTEQU60HRESULT1EQU61H
26、FUNCTIONKEY EQU62HORG00HSTART:MOVR3,#0MOVFUNCTIONKEY,#0MOV32H,#00HMOV33H,#00HMOV34H,#00HMLOOP:CALLDISP;調(diào)顯示子程序WAIT:CALLTESTKEY;判斷有無按鍵JZWAITCALLGETKEY;讀鍵16單片機課程設(shè)計報告INCR3;按鍵個數(shù)CJNEA,#0,NEXT1;判斷是否數(shù)字鍵LJMPE1;轉(zhuǎn)數(shù)字鍵處理NEXT1:CJNEA,#1,NEXT2LJMPE1NEXT2:CJNEA,#2,NEXT3LJMPE1NEXT3:CJNEA,#3,NEXT4LJMPE1NEXT4:CJNEA,#4,
27、NEXT5LJMPE1NEXT5:CJNEA,#5,NEXT6LJMPE1NEXT6:CJNEA,#6,NEXT7LJMPE1NEXT7:CJNEA,#7,NEXT8LJMPE1NEXT8:CJNEA,#8,NEXT9LJMPE1NEXT9:CJNEA,#9,NEXT10LJMPE1NEXT10:CJNEA,#10,NEXT11;判斷是否功能鍵LJMPE2;轉(zhuǎn)功能鍵處理NEXT11:CJNEA,#11,NEXT12LJMPE2NEXT12:CJNEA,#12, NEXT13LJMPE2NEXT13:CJNEA,#13,NEXT14LJMPE2NEXT14:CJNEA,#14,NEXT15LJM
28、PE2NEXT15:LJMPE3;判斷是否清除鍵E1:CJNER3,#1,N1;判斷第幾次按鍵LJMPE11;為第一個數(shù)字N1:CJNER3,#2,N2LJMPE12;為第二個數(shù)字N2:CJNER3,#3,N3LJMPE13;為第三個數(shù)字N3:LJMPE3;第四個數(shù)字轉(zhuǎn)溢出E11:MOVR4,A;輸入值暫存R4MOV34H,A;輸入值送顯示緩存MOV33H,#00HMOV32H,#00HLJMPMLOOP;等待再次輸入17單片機課程設(shè)計報告E12:MOVR7,A;個位數(shù)暫存R7MOVB,#10MOVA,R4MULAB;十位數(shù)ADDA,R7MOVR4,A;輸入值存R4MOV32H,#00H;輸入
29、值送顯示緩存MOV33H,34HMOV34H,R7LJMPMLOOPE13:MOVR7,AMOVB,#10MOVA,R4MULABJBOV,E3;輸入溢出ADDA,R7JBCY,E3;輸入溢出MOVR4,AMOV32H,33H;輸入值送顯示緩存MOV33H,34HMOV34H,R7LJMPMLOOPE3:MOVR3,#0;按鍵次數(shù)清零MOVR4,#0;輸入值清零MOVRESULT,#0;計算結(jié)果清零MOVFUNCTIONKEY,#0;功能鍵設(shè)為零MOV32H,#00H;顯示清空MOV33H,#00HMOV34H,#00HLJMPMLOOPE2:MOV34H,#00HMOV33H,#00HMOV
30、32H,#00HMOVR0,FUNCTIONKEY;與上次功能鍵交換MOVFUNCTIONKEY,AMOVA,R0CJNEA,#10,N21;判斷功能鍵LJMPJIA; + N21:CJNEA,#11,N22LJMPJIAN; ;N22:CJNEA,#12,N23LJMPCHENG;* ;N23:CJNEA,#13,N2418單片機課程設(shè)計報告LJMPCHU;/N24:CJNEA,#0,N25LJMPFIRST;首次按功能鍵N25:LJMPDEN; ;N4:LJMPE3FIRST:MOVRESULT,R4;輸入值送結(jié)果MOVR3,#0;按鍵次數(shù)清零LJMPDISP1;結(jié)果處理JIA:MOVA,
31、RESULT;上次結(jié)果送累加器ADDA,R4;上次結(jié)果加輸入值JBCY,N4;溢出MOVRESULT,A;存本次結(jié)果MOVR3,#0;按鍵次數(shù)清零LJMPDISP1JIAN:MOVA,RESULTSUBBA,R4;上次結(jié)果減輸入值JBCY,N4;負數(shù)溢出MOVRESULT,AMOVR3,#0LJMPDISP1CHENG:MOVA,RESULTMOVB,AMOVA,R4MULAB;上次結(jié)果乘輸入值JBOV,N4;溢出MOVRESULT,ALJMPDISP1CHU:MOVA,R4MOVB,AMOVA,RESULTDIVAB;上次結(jié)果除輸入值MOVRESULT,AMOVR3,#0LJMPDISP1D
32、EN:MOVR3,#0LJMPDISP1DISP1:MOVB,#10MOVA,RESULT;結(jié)果送累加器DIVAB;結(jié)果除10MOVRESULT1,A;暫存商MOVA,B;取個位數(shù)MOV34H,A;個位數(shù)送顯示緩存MOVA,RESULT1JZDISP11;結(jié)果是否為一位數(shù)19單片機課程設(shè)計報告MOV B,#10MOV A,RESULT1 DIV AB MOV RESULT1,AMOVA,B;十位送顯示緩存;;十位送顯示緩存;結(jié)果是否為二位數(shù) ;百位數(shù)送顯示緩存MOV A,RESULT1JZDISP11MOV32H,ADISP11: LJMPMLOOPDISP: MOV R0,#34HDIR1:
33、 MOV DPTR,#SEGTAB MOV A,R0 MOVC A,A+DPTR MOV P0,ACJNE R0,#34H,DIR2 SETB P2.0 LCALL D1MSCLR P2.0 DEC R0 SJMP DIR1DIR2: CJNE R0,#33H,DIR3SETB P2.1 CALL D1MS CLR P2.1 DEC R0SJMP DIR1DIR3: SETB P2.2 CALL D1MS CLR P2.2 RETD1MS:MOVR7,#02HDMS:MOVR6,#0F0HDJNZR6,$DJNZ R7,DMSRETSEGTAB: DB 0C0H, 0F9H, 0A4H, 0B
34、0HDB99H,92H,82H,0F8HDB80H,90H,88H,83HDB0C6H,0A1H,86H,8EHTESTKEY:ACALL DISP2)單片機課程設(shè)計報告MOV MOV CPL ANL RETKEYTABLE:DB DB DB DBGETKEY: MOVACALL MOV MOV CJNE LJMPK12:MOVMOV MOV CJNE MOV MOVMOV MOV CPL ANL RETKEYTABLE:DB DB DB DBGETKEY: MOVACALL MOV MOV CJNE LJMPK12:MOVMOV MOV CJNE MOV MOVCJNE MOV MOV CJ
35、NE MOV MOV CJNE LJMPK13:P1,#0FHA,P1AA,#0FH0EEH,0EDH,0DDH,0BDH 0EBH,0DBH,0BBH,0E7H 0D7H,0B7H,0DEH,0BEH 07EH,07DH,07BH,077H;讀入鍵狀態(tài);高四位不用;鍵碼定義R6,#10 DELAY P1,#0FH A,P1 A,0FH,K12 MLOOP B,A P1,#0EFH A,P1 A,#0EFH,K13P1,#0DFH A,P1 A,#0DFH,K13 P1,#0BFH A,P1 A,#0BFH,K13 P1,#07FH A,P1 A,#07FH,K13MLOOPANL A,#0F
36、0H;讀鍵子程序ORL MOV MOV MOV MOVK14:MOVORL MOV MOV MOV MOVK14:MOVMOVC CJNE MOVK15:MOVCJNE MOVA,B B,A R1,#16 R2,#0 DPTR,#KEYTABLE A,R2 A,A+DPTR A,B,K16 P1,#0FH A,P1 A,#0FH,K15 R6,#102121單片機課程設(shè)計報告ACALLDELAYMOVA,R2RETK16:INCR2DJNZR1,K14AJMPMLOOP;10ms延時子程序DELAY:MOVR7,#10TS1:MOVR6,#0FFHTS2:NOPNOPDJNZR6,TS2DJN
37、ZR7,TS1RETEND6系統(tǒng)調(diào)試系統(tǒng)初始狀態(tài)的調(diào)試系統(tǒng)初始狀態(tài)時,2個LED顯示器顯示“0”,運算法則指示燈全滅。調(diào)試 結(jié)果如圖9所示。22單片機課程設(shè)計報告振蕩電路LE 是用電路振蕩電路二 T HF PF5LZ dh Z2PF1如lE復位電路單片機rnnAru PD.V1.I1 二 T HF PF5LZ dh Z2PF1如lE復位電路單片機rnnAru PD.V1.I1 ,口 13rAiz FDaCrnjsfAis PDtfAK rn.WAirPZEJ.CFzv3e PZJVAiD 工工411 AZ.AG P工樂啊口 FI.Sl-AI* P2.VASFWWraTW F3L3rmT noP
38、3ST1 P3K 防力何r矩陣鍵盤電路運算法則指示電路圖9系統(tǒng)初始狀態(tài)調(diào)試結(jié)果鍵盤輸入功能的調(diào)試通過鍵盤分別輸入“8”、“*”、“9,LED顯示電路和運算法則指示電路分 別顯示相應的結(jié)果。調(diào)試結(jié)果如圖11所示。23振蕩電路ClU1kAJJ,ir復位電圈單片機pas 口 ra.fDi FUZf.VZ rajf.Ma P*3 raj3f.M5 NLMSISF2O PO.i祁 P3JM-IO F3AA-I1 rz.iiE rZATi-D rNJKN, F2JWCR3.VTW& paTrm psaTirin.i/iD FOT1 pjjHm 口 37BT振霜電路復位電路單片機課程設(shè)計報告LED顯示電路-
39、S叵 SHUULH3 TZd 工工3l TJID23矩陣鍵盤電踣運算法則指示電路3)輸入“8”U1單片機19EM IIrunta PD.Ilfll 1 F 口否= TU3A13 FUMI t FDAId FDJEIM FD7LAI7PHAE P3 VAARTAin ni/Ai i PZ*A1Z Pi3AI3 PZa Al FZ.TfAI3PMr;D ra.inxi FuiflU rajiUrrTP2VTDP3?ri AlATTirFFLE 口顯示用路FP2P1T口8)輸入“*”24,HCS除;3Zn 乘,咒貨 減產(chǎn)6 加產(chǎn)矩陣鍵盤電路運算法劇指示電路單片機課程設(shè)計報告振蕩電踣C1r-nHI-r
40、IEPF-zt teeO 口RP2口區(qū)口圈27rr口? I復位電路除r振蕩電踣C1r-nHI-rIEPF-zt teeO 口RP2口區(qū)口圈27rr口? I復位電路除r乘鏟減f加矩陣鍵盤電蹺 運算法則指示電路輸入“9”圖10鍵盤輸入功能調(diào)試結(jié)果系統(tǒng)運算功能的調(diào)試當輸入“8”、“*”、“9”后,點擊“二”可得到運算結(jié)果“72”,并通過LED 顯示電路顯示。調(diào)試結(jié)果如圖11所示。25單片機課程設(shè)計報告KF二 TT- TV復位電路振蕩電路口匯,HTXLIPJSFTET ALRP1u,單片機LED顯樂電路RP2矩陣鍵盤電踣 運算祛則指示電踣a? f o _n _n n DflKF二 TT- TV復位電路
41、振蕩電路口匯,HTXLIPJSFTET ALRP1u,單片機LED顯樂電路RP2矩陣鍵盤電踣 運算祛則指示電踣a? f o _n _n n DflaEEDH,SDDB-n圖11系統(tǒng)運算功能調(diào)試結(jié)果7、心得體會單片機課程設(shè)計終于結(jié)束了,通過緊張的工作,完成了我的設(shè)計 任務-十進制加法計算器??偟膩碚f,這次課程設(shè)計是比較成功的。 當然,這其中也經(jīng)歷了許多坎坷,但是在我的堅持不懈下,在老師的 細心指導下,在同學們的熱情幫助下,最終克服了種種困難,取得了 成功。起初我還想從老師所給的四個單片機課程設(shè)計題目中選擇一題, 后來發(fā)覺自己自己對計算器挺感興趣的,所以就決定利用自己所學的 單片機知識自己做一個計算器。但由于以前從未做過像這種軟硬件相 結(jié)合的設(shè)計,所以我請教了好幾個有參加電子競賽的同學并且在網(wǎng)上單片機課程設(shè)計報告和圖書館查閱了不少的有關(guān)于單片機課程設(shè)計的文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西農(nóng)業(yè)大學南昌商學院《電視欄目創(chuàng)意與策劃》2023-2024學年第一學期期末試卷
- 公共交通行業(yè)服務質(zhì)量評價制度
- 公共交通車輛維修質(zhì)量管理制度
- 工作責任追究制度
- 新疆魚類制品種類及食用情況調(diào)查問卷
- 關(guān)于聯(lián)耕聯(lián)種生產(chǎn)方式推行的民意調(diào)查
- 農(nóng)村暗室改造方案范本
- 2025年農(nóng)林牧漁行業(yè)現(xiàn)狀分析:國家對農(nóng)林牧漁行業(yè)政策支持力度不斷加大
- 無機墻體保溫施工方案
- 廣東省深圳實驗學校高中園2024-2025學年高二上學期第三階段考試數(shù)學試題(解析版)
- 農(nóng)民田間學校規(guī)章制度
- 《電力建設(shè)施工技術(shù)規(guī)范 第2部分:鍋爐機組》DLT 5190.2
- 供水管網(wǎng)搶修管理課件
- 微信公眾號總結(jié)報告
- 制定售后服務績效考評標準與方法
- 正確認識人的本質(zhì) (修改版)
- 2023年北京師范大學珠海分校招聘考試真題
- 2016-2023年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學院高職單招(英語/數(shù)學/語文)筆試歷年考點試題甄選合集含答案解析
- 高原健康呼吸用氧 通用技術(shù)指南
- 中醫(yī)內(nèi)科學-咳嗽課件
- 2022管理學試題庫(馬工程)
評論
0/150
提交評論