微機原理與接口技術(shù)實驗指導(dǎo)書_第1頁
微機原理與接口技術(shù)實驗指導(dǎo)書_第2頁
微機原理與接口技術(shù)實驗指導(dǎo)書_第3頁
微機原理與接口技術(shù)實驗指導(dǎo)書_第4頁
微機原理與接口技術(shù)實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、6.微機原理與接口技術(shù)微機原理與接口技術(shù)課程實驗課程實驗6.1 緒論緒論本實驗指導(dǎo)是為電子信息工程、測量與控制工程專業(yè)微機原理與接口技術(shù)課程配套的實驗指導(dǎo)書。 微機原理與接口技術(shù)課程是電類專業(yè)一門重要的專業(yè)基礎(chǔ)課,為適應(yīng)社會對電類專業(yè)掌握更深更廣的計算機技術(shù)而開設(shè)。本課程內(nèi)容包含微機、單片機結(jié)構(gòu)及工作原理、匯編語言、單片機接口技術(shù)及應(yīng)用,既有計算機的理論,又強調(diào)實踐應(yīng)用,注重培養(yǎng)學(xué)生的理論功底和編程、動手能力,是學(xué)生學(xué)習(xí)后續(xù)課程、完成專業(yè)課程和畢業(yè)設(shè)計不可缺少的基礎(chǔ)。本課程是一門實踐性很強的課程,學(xué)生只有通過系統(tǒng)的專業(yè)實驗訓(xùn)練,才能真正透徹地掌握微機原理、單片機原理及應(yīng)用,掌握單片機應(yīng)用系統(tǒng)各

2、主要環(huán)節(jié)的設(shè)計、編程、調(diào)試方法及基本接口電路的應(yīng)用,才能將理論知識與實踐真正結(jié)合轉(zhuǎn)化為開發(fā)應(yīng)用系統(tǒng)的能力,因此實驗課程是微機原理與接口技術(shù)課程不可缺少的一部分。為配合課程學(xué)習(xí),結(jié)合我校電子信息工程專業(yè)實驗室的儀器配置,編寫本實驗指導(dǎo)。本實驗指導(dǎo)書以微機原理與接口技術(shù)(單片機原理)16 課時的實驗教學(xué)課時為基礎(chǔ),共編寫了 14 個軟硬件實驗,教師可以根據(jù)教學(xué)的實際情況選取部分實驗作為課程實驗。本實驗指導(dǎo)同樣適用于其他等專業(yè)的單片機原理及應(yīng)用單片機技術(shù)或以單片機作為教學(xué)內(nèi)容的微機原理等課程。6.2 實驗儀功能簡介實驗儀功能簡介 本章介紹 DP-51PRO 單片機綜合仿真實驗儀的硬件信息,讓您對它的

3、功能有一個大概的了解,對后面的系統(tǒng)電路實驗具有必不可少的幫助。 6.2.1 電路外觀 DP-51PRO 單片機綜合仿真實驗儀的電路布局如圖 2.1 所示。 由圖 2.1 可以看出,它分為很多個功能塊,各個功能塊之間是相對獨立的,每個功能塊都有一個編號分別是豎數(shù) AD,橫數(shù) 110。我們可以從編號,快速的找到功能塊所在的位置。如 C3 功能塊,就是第 3 行的第 3 個功能塊,這樣用戶就可以比較方便的找到對應(yīng)的位置。DP-51PROC 單片機綜合仿真實驗儀集成有強大的硬件資源,并且為用戶提供了多種選擇,使用用戶可以進行各種相關(guān)的實驗。圖 2.1 DP-51PRO 單片機綜合仿真實驗儀6.2.2

4、仿真器調(diào)試下載電路使用說明 在 DP-51PRO 單片機綜合仿真實驗儀中為用戶配備了一個 Monitor51 仿真器,它實質(zhì)上是一個基于 Keil 環(huán)境下的 MON51 仿真調(diào)試器,并且配備了一個裝載用戶程序的空間,可以脫離計算機使用仿真器運行用戶程序,這就相當于一個單片機在運行用戶程序一樣,當用戶將 HEX 文件下載入 Monitor51 仿真器后,用戶將仿真頭插入鎖緊座就相當于在鎖緊座上插入了一塊燒寫好程序的單片機。它的工作方式有兩種:下載工作方式和運行工作方式。下面將給予詳細的說明。 DP-51PRODP-51PRO 下載工作方式下載工作方式 (loadload) 把撥動開關(guān)撥到 LOA

5、D 一邊就進入下載工作方式了。在該工作方式下,用戶可以下載程序到仿真器FLASH 中(FLASH_E 斷開) 。 該方式用于下載 MON51 監(jiān)控程序(運行 DPFLASH),或者進入 ISP 下載狀態(tài)用 ZLGISP 軟件下載用戶程序,為脫機運行作準備。DP-51PRODP-51PRO 運行工作方式運行工作方式 (runrun) 把撥動開關(guān)撥到 RUN 一邊就進入運行工作方式了。在該工作方式下用戶可以運行下載到 FLASH 中的程序(仿真器自帶 FLASH,使用 DPFLASH 在 load 模式下下載,下載完成后切換到 run 模式,復(fù)位后就是脫機運行) ,也可以運行監(jiān)控程序 MON51(

6、已經(jīng)下載到 FLASH 中) ,然后使用 KEIL 來調(diào)試用戶程序(用戶程序由 Keil 的 DEBUG 下載到仿真系統(tǒng)的 RAM 中。 6.2.3 調(diào)試仿真功能的使用 調(diào)試仿真功能是指 DP-51PRO 單片機綜合仿真實驗儀運行單片機 P87C52X2 內(nèi)部的 MON51 監(jiān)控程序,把用戶的應(yīng)用程序裝載到外部 SRAM 中,從而實現(xiàn)運用 Keil C51 集成開發(fā)環(huán)境所提供的所有調(diào)試命令來調(diào)試用戶的應(yīng)用程序或仿真用戶的應(yīng)用系統(tǒng)。 6.2.3.1 如何進入調(diào)試狀態(tài) 首先,在 A1 區(qū),把 JP13 中的 SRAM_E 和 FLASH_E 兩個跳線座得短路器拔走。把 MOD_SW1 開關(guān)撥到 L

7、OAD 模式,即在下載狀態(tài)下。用戶將提供的仿真調(diào)試專用芯片 P87C52X2 插入到 DP-51PRO單片機綜合仿真實驗儀的 U13 鎖緊座上;然后 ISP 跳線 JP14 跳開(即不短接) ,短接 JP15 的 1、2 兩個跳線(TXDRXD) ,按下復(fù)位按鍵“RESET” 。此時,DP-51PRO 單片機綜合仿真實驗儀即進入下載狀態(tài)。 然后將實驗儀接上串口線,在 PC 機上雙擊 DPFlash 下載軟件的快捷圖標(DPFALSH 安裝版在光盤的 SOFTWEAR 目錄內(nèi),運行安裝即可) ,運行 DPFlash 下載軟件。這時將出現(xiàn)如圖 2.2 所示的DPFlash 下載軟件的操作界面。在

8、DPFLASH 上“型號” 的下拉菜單選擇 DP-51PRO,然后選擇適當?shù)耐ㄐ趴诩纯?。另?DPFlash 下載軟件還內(nèi)嵌一個串口調(diào)試器,如圖 2.8 所示的菜單欄的串口調(diào)試器,用戶可以使用它進行串口調(diào)試。 圖 2.2 DPFlash 編程界面然后在主界面中點擊編程命令按鈕,在出現(xiàn)的編程窗口中選擇其它編程選擇欄的編程 MON51 選項,單擊編程命令按鈕即可自動把 MON51.HEX 監(jiān)控程序下載到 DP-51PRO 仿真器的 Flash 中。若無異常,則提示編程正常結(jié)束,這時關(guān)閉該窗口退出 DPFlash 軟件。把 DP-51PRO 仿真器上的工作模式選擇開關(guān)切換到 RUN 處,然后按一下復(fù)

9、位鍵(RESET),MON51 程序就開始運行了。此時,DP-51PRO 單片機綜合仿真實驗儀即進入調(diào)試狀態(tài)。 調(diào)試仿真功能是指 DP-51PRO 運行單片機 P87C52X2 內(nèi)部的 MON51 監(jiān)控程序,把用戶的應(yīng)用程序裝載到外部 SRAM 中,從而實現(xiàn)運用 Keil C51 集成開發(fā)環(huán)境所提供的所有調(diào)試命令來調(diào)試用戶的應(yīng)用程序或仿真用戶的應(yīng)用系統(tǒng)。 6.2.3.2 調(diào)試狀態(tài)的存貯器模型 當 DP-51PRO 仿真器處于調(diào)試狀態(tài)時將執(zhí)行 MON51 監(jiān)控程序,這樣可在 Keil Vision2 集成開發(fā)環(huán)境下調(diào)試程序,即作為 MON51 調(diào)試器。在調(diào)試狀態(tài)下 DP-51PRO 仿真器的存貯

10、器模型,如圖 2.3所示。 系統(tǒng)復(fù)位后,DP-51PRO 仿真器執(zhí)行“MON51 監(jiān)控程序” 。在調(diào)試狀態(tài)下,用戶的應(yīng)用程序必須從 SRAM 的 0 x8000 地址開始存放,中斷矢量也應(yīng)從相應(yīng)的地址單元轉(zhuǎn)移到從 0 x8000 開始的相應(yīng)單元。 注意注意:調(diào)試狀態(tài)下,定時器 T2、串行口 UART 已被“MON51 監(jiān)控程序”所占用,用戶不能再使用這些資源。 圖 2.3 調(diào)試狀態(tài)下存儲空間分配圖 6.2.3.3 調(diào)試前的準備工作 1. 硬件環(huán)境 (1) 拿出隨機提供的串口通信電纜,一端連接 DP-51PRO 仿真器的 RS-232 串行通信口,而另一端則連接到 PC 機的串口上(COM1 或

11、 COM2)。 (2) 打開實驗儀的工作電源,此時即為仿真調(diào)試準備好了硬件環(huán)境。 (3)設(shè)置好跳線,并下載 MON51 監(jiān)控程序到實驗儀。 2. 軟件調(diào)試環(huán)境的設(shè)置 (1) 雙擊 Keil C51 快捷圖標,進入 Keil C51 集成開發(fā)環(huán)境,這時 Keil C51 集成環(huán)境自動打開上次正確退出時所編輯的工程項目文件,如圖 2.4 所示。 圖 2.4 Keil C51 集成開發(fā)環(huán)境界面(2) 點擊菜單欄上的 Project 項,會彈出下拉式菜單,這時選擇 Option for target target 1 將出現(xiàn)如圖 2.5 所示的調(diào)試環(huán)境設(shè)置界面。 圖 2.5 調(diào)試環(huán)境設(shè)置窗口(3) 第

12、 1 項 Target 屬性的設(shè)置,對于在 DP-51PRO 仿真器上進行的仿真、調(diào)試,由于 MON51 監(jiān)控程序已經(jīng)占用了從 0000H7FFFH 地址單元的程序存儲空間,因此用戶的應(yīng)用程序必須從 8000H 地址單元開始存放,即用戶應(yīng)設(shè)置 OffChip Code Memory 欄內(nèi)的 Eprom 選項。具體配置請見圖2.5,對于第 4 項“C51”的配置請按圖 2.6 進行設(shè)置。 圖 2.6 C51 屬性欄的設(shè)置(4) Debug 環(huán)境的設(shè)置:首先選擇 Debug 項,進入如圖 2.7 所示的設(shè)置畫面,這時就可以對其中的每項進行具體設(shè)置了,當然您完全可以按照圖 2.7 進行設(shè)置(要點:在

13、該選項中 Use Simulator 是軟件模擬仿真,它只能對程序的語法及其結(jié)構(gòu)做一般性的分析,與硬件沒有聯(lián)系;而 Use 選項則是硬件仿真,且根據(jù)所選用的驅(qū)動而使用不同的硬件仿真方式,對于 DP-51PRO 仿真器而言應(yīng)該選擇 Keil Monitor51 Driver 選項)。同時它的 Settings 項還為我們提供了一個串口通信設(shè)置環(huán)境,通過它我們可以靈活設(shè)置串行通信的端口和波特率,但請注意:由于在調(diào)試模式下,DP-51PRO 仿真器需要與上位機進行通信,因此它們的通信協(xié)議必須一致,波特率也必須相同且為 9600bps。當然要進入系統(tǒng)調(diào)試環(huán)境設(shè)置我們也可以點擊工具欄上的 快捷圖標進入到

14、環(huán)境設(shè)置窗口,Keil C51 集成開發(fā)環(huán)境為我們提供了很多這樣的快捷功能,好好利用往往能達到事半功倍的效果。 圖 2.7 Debug 調(diào)試環(huán)境設(shè)置 (5) 至于其它的選項用戶可按默認值進行設(shè)置或不用設(shè)置,最后點擊確定加以確認。 6.2.4.4 實戰(zhàn) 下面仍以 Led_Light.asm 為例,講述運用 DP-51PRO 仿真器在 Keil C51 集成開發(fā)環(huán)境下調(diào)試程序的步驟和方法。 (1) 打開示范程序的項目文件 Led_Light.V2,這時在 Keil C51 的 Project Window 項目觀察窗口中看到如圖 2.8 所示的工程項目結(jié)構(gòu)。在 Source Group 1 中可以

15、看到文件 Led_Light.asm,它就是該項目的核心用戶要調(diào)試的源程序文件。在此用戶應(yīng)特別注意:在 DP-51PRO 仿真器下調(diào)試時,用戶的程序代碼是從 8000H 單元開始存放的,因此用戶程序中定義程序塊存放的偽指令 ORG 0000H 應(yīng)該為ORG 8000H、偽指令 ORG 0100H 應(yīng)該為 ORG 8100H。若用戶需要調(diào)試 C 語言源程序,則還需要添加 Startup.a51 系統(tǒng)配置文件(用戶可以在KeilC51Lib 目錄下找到它,為了保證該文件不會被破壞,用戶可以把它拷貝到該工程目錄中),其主要功能是定義數(shù)據(jù)段、程序段和堆棧的大小及其起始地址、RAM 的初始化、程序重新定

16、位、初始化啟動代碼等等,用戶必須把 CSEG AT 0 代碼改為 CSEG AT 8000H,即用戶的應(yīng)用程序應(yīng)從 8000H 開始存放,當然中斷矢量地址也應(yīng)跳轉(zhuǎn)到相應(yīng)的高端地址單元,如外部中斷 0 的入口地址則應(yīng)該是 8003H。 圖 2.8 Led_Light 工程的結(jié)構(gòu) (2) 在使用 DP-51PRO 仿真器進行的調(diào)試是一種軟硬件相結(jié)合的綜合調(diào)試方法,因此用戶在使用DP-51PRO 仿真器進行仿真調(diào)試實驗前應(yīng)正確設(shè)置工程項目的軟硬件環(huán)境,在彈出的下拉菜單中選擇 Option for Target Target 1命令,對 hello.uv2 工程項目進行調(diào)試環(huán)境設(shè)置,具體設(shè)置方法請參考

17、前面內(nèi)容軟件調(diào)試環(huán)境設(shè)置。(3) 修改完畢執(zhí)行 Project 菜單中的 Rebuild all target files 命令對工程項目文件進行重新編譯、連接,此時會出現(xiàn)“編譯正確、連接成功”的提示信息。若編譯出錯,它將提示出錯的原因及所在的位置,更正后重新編譯直至完全正確為止,接下來點擊菜單欄內(nèi)的“Debug”菜單,在出現(xiàn)的下拉式菜單中選擇 Start/Stop Debug Session 調(diào)試命令,這樣即可把用戶程序就下載到 TKSMonitor51 仿真器的 SRAM 中。 (4) 此時出現(xiàn)調(diào)試畫面,若在您的調(diào)試界面中沒有看到變量觀察窗口,您可以點擊菜單欄中的 View 選項,在彈出的

18、下拉菜單中選擇 Watch & Call Stack Window 即可以打開變量觀察窗口,您可以使用同樣的方法打開其它相關(guān)窗口。 (5) 此時請注意注意:當您調(diào)試 C 語言程序時,應(yīng)在 Keil C 環(huán)境的 Command 輸入框下執(zhí)行 g g g g,mainmainmainmain 命令;而當您調(diào)試的是匯編語言程序時,在 Keil C 環(huán)境的下執(zhí)行 g g g g 命令進入程序調(diào)試狀態(tài)。這時程序指針 PC 已指向第一命令語句 AJMP MAIN 處,并等待用戶輸 Command 輸入框入各種調(diào)試命令。Keil C51 給出了許多調(diào)試快捷圖標和調(diào)試命令,如斷點設(shè)置、復(fù)位 CPU、單

19、步跟蹤(F11) 、單步運行(F10)、 執(zhí)行返回(Ctrl+F11)、全速運行(F5)、按鈕可以啟動/停止調(diào)試(Crtl+F5)。 (6) 由于 Led_light 程序使用了系統(tǒng)資源 P1 口,為了更好的觀察這些資源的變化,用戶可以打開它們的觀察窗口。點擊菜單欄 Peripherals 選項,在打開的下拉菜單中選擇 I/O-Ports 選項中的 Port 1 命令,即可打開并行 I/O 口 P1 的觀察窗口。 (7) 點擊菜單欄的 Debug 選項,在彈出的下拉菜單中執(zhí)行 Step 命令,觀察項目窗口的特殊功能寄存器區(qū)域,看看 PC 指針和堆棧指針的值有何變化。多次執(zhí)行單步運行指令 Ste

20、p,注意觀察 P1 觀察窗口和 DP-51PRO 單片機綜合仿真實驗儀上用邏輯筆檢測 P1 口狀態(tài)。最后選擇 Go 命令全速運行程序,此時 DP-51PRO 單片機綜合仿真實驗儀上看的 P1.0、P1.1、P1.2 電平在發(fā)生變化。 (8) 程序調(diào)試完畢可執(zhí)行 Debug 菜單欄中的 Start/Stop Debug Session 命令停止調(diào)試(當然您按一下 TKSMonitor51 仿真器的復(fù)位按鈕,即可較快地退出調(diào)試狀態(tài))。您會了嗎?即便還不太熟練,那也不要緊,在以后的章節(jié)中將有大量的實戰(zhàn)練習(xí)。在學(xué)習(xí)過程中,您千萬不能偷懶,要一行一行地老老在學(xué)習(xí)過程中,您千萬不能偷懶,要一行一行地老老實

21、實地將程序敲進去,只有這樣您才有可能慢慢地細心地體會到程序設(shè)計的思想。我們知道,單片機實實地將程序敲進去,只有這樣您才有可能慢慢地細心地體會到程序設(shè)計的思想。我們知道,單片機是一門實戰(zhàn)性很強的學(xué)科。即便您考試考了是一門實戰(zhàn)性很強的學(xué)科。即便您考試考了 100100 分,如果沒有大量的實戰(zhàn)訓(xùn)練,您終究可能還是個分,如果沒有大量的實戰(zhàn)訓(xùn)練,您終究可能還是個“門外漢門外漢” ,沒有辦法登堂入室成為一名真正的單片機應(yīng)用開發(fā)工程師,這是成千上萬開發(fā)人員多年來,沒有辦法登堂入室成為一名真正的單片機應(yīng)用開發(fā)工程師,這是成千上萬開發(fā)人員多年來積累的經(jīng)驗教訓(xùn),即使萬事開頭難積累的經(jīng)驗教訓(xùn),即使萬事開頭難,但是切

22、記:良好的開端等于成功一半!所以不要在學(xué)習(xí)方法上失敗,認真邁好您的第一步。 6.2.46.2.4 脫機運行之脫機運行之 FlashFlash 運行運行 您的項目工程經(jīng)過在 Keil C51 集成開發(fā)環(huán)境下的軟件模擬、DP-51PRO 單片機綜合仿真實驗儀上的硬件仿真,已基本實現(xiàn)和滿足用戶要求。但在實際的現(xiàn)場工作環(huán)境中它是否仍然符合我們的要求,這就需要制作樣機脫機運行。脫機運行用戶程序是指用戶把經(jīng)過調(diào)試、仿真后生成的目標代碼文件(*.hex)下載(編程、固化)到 DP-51PRO 仿真器上的單片機內(nèi)部 Flash 程序存儲器中,系統(tǒng)復(fù)位后 DP-51PRO 仿真器將全速執(zhí)行用戶程序,這樣 DP-

23、51PRO 單片機綜合仿真實驗儀就相當于用戶的一個樣機了。 DP-51PRO 仿真器具有下載固化用戶程序的功能,與上位機 DPFLASH 軟件配合使用,把程序下載到實驗儀自帶的 FLASH 存儲區(qū)中運行。 一、 如何進入運行狀態(tài) 首先,如 6.2.3 節(jié)的第一段所說的設(shè)置好實驗儀。然后如 6.2.3 節(jié)所說的把項目修改一下配置,并生成 HEX 文件,然后使用 DPFLASH 軟件把 HEX 文件下載,最后把 DP-51PRO 仿真器上的開關(guān)切換到 RUN 模式然后按 RESET 按鍵即可。具體操作見 6.2.3 節(jié)。 二、 運行狀態(tài)的存貯器模型 當 DP-51PRO 仿真器處于運行狀態(tài)時,將全

24、速執(zhí)行實驗儀內(nèi)部 Flash 中的用戶程序。運行狀態(tài)下,DP-51PRO 單片機綜合仿真實驗儀的存儲器模型如圖 2.9 所示。 圖 2.9 運行狀態(tài)下存儲器模型 6.3 實驗項目指導(dǎo)實驗項目指導(dǎo)實驗一實驗一 5151 匯編指令練習(xí)匯編指令練習(xí)一、實驗?zāi)康囊?、實驗?zāi)康?. 熟悉 Keil C51 軟件使用2. 學(xué)習(xí)簡單程序的調(diào)試方法,學(xué)習(xí)匯編程序結(jié)構(gòu)3. 掌握 51 匯編指令的運用二、實驗設(shè)備及器件二、實驗設(shè)備及器件微型計算機 1 臺 ,KEIL C51 集成開發(fā)軟件三、實驗內(nèi)容要求三、實驗內(nèi)容要求1、按照本書的附錄 A 內(nèi)容,進行 Keil C51 集成開發(fā)環(huán)境的安裝和使用練習(xí);2、閱讀與理解

25、給定實驗程序,然后按照以下內(nèi)容建立文件并編譯產(chǎn)生 HEX 文件;3、熟悉和掌握軟件調(diào)試的基本方法(編輯,修改,編譯,單步、連續(xù)執(zhí)行等) ;4、通過跟蹤調(diào)試熟悉 51 單片機的內(nèi)部資源(RAM/寄存器/IO)及單片機的工作原理。四、參考程序及流程圖四、參考程序及流程圖;實驗一:51 匯編指令練習(xí) 參考程序 ORG 0000H ;注:將每條指令的執(zhí)行結(jié)果以適當方式標注在指令后,將每條指令的執(zhí)行結(jié)果以適當方式標注在指令后, LJMP MAIN ;對于堆棧操作指令,還要寫出執(zhí)行前后對于堆棧操作指令,還要寫出執(zhí)行前后 SPSP 的值的值 ORG 100H MAIN: ;舉例: MOV A,#55H ;執(zhí)

26、行前(A)=00H,執(zhí)行后 (A)=55H MOV 30H,A MOV 31H,30H MOV RO,#31H MOV P1,A MOV B,R0 ADD A,#20H ADD A,30H MOV A,#55H CPL A RR A SETB C RRC A ANL A,0FH CLR C RLC A MOV SP,#20H PUSH ACC PUSH 30H MOV A,#00H POP 40H POP ACC MOV R2,#09HLOOP9: CPL A DJNZ LOOP9 AJMP $ END .參考程序 2ORG 0000HLJMP MainSTART EQU 30HMain: M

27、OV R0, #START ;起始地址 MOV R2, #10 ;設(shè)置 10 字節(jié)計數(shù)值 MOV A,#01hLoop: MOV R0,A INC R0 DJNZ R2,Loop NOP LJMP $ END 五、實驗步驟五、實驗步驟1. 啟動 PC 機,打開 KEIL 軟件,軟件設(shè)置為模擬調(diào)試狀態(tài)。在所建的項目文件中輸入源程序,進行編譯,編譯無誤后,執(zhí)行程序,點擊全速執(zhí)行快捷按鈕,點擊暫停按鈕,觀察存儲塊數(shù)據(jù)變化情況,點擊復(fù)位按鈕,可再次運行程序(KEIL 軟件使用詳見附錄) 。2.打開 CPU 窗口,選擇單步或跟蹤執(zhí)行方式運行程序,觀察 CPU 窗口各寄存器的變化,可以看到程序執(zhí)行的過程,

28、加深對實驗的了解。六、預(yù)習(xí)要求六、預(yù)習(xí)要求1、做本實驗前要求學(xué)生完成課本關(guān)于 MCS 51 單片機指令部分和簡單匯編語言編程學(xué)習(xí)。2、認真閱讀本指導(dǎo)書的第 2 章的 2.1 節(jié)到 2.5 節(jié)內(nèi)容。 七七 實驗思考題實驗思考題 (1)請寫出能完成以下操作的指令或指令序列。將 R0 的內(nèi)容傳送到 R1。將內(nèi)部 RAM 20H 單元的內(nèi)容傳送到 R7。將外部 RAM 1000H 單元的內(nèi)容傳送到內(nèi)部 RAM 30H 單元。將外部 RAM 1000H 單元的內(nèi)容傳送到 R1(2)比較 AJMP、LJMP、 JZ、DJNZ 指令編譯后機器碼中操作數(shù)(跳轉(zhuǎn)地址)的不同八、實驗報告要求八、實驗報告要求(一)

29、實驗報告要用學(xué)校統(tǒng)一的紙。(二)實驗內(nèi)容應(yīng)包括,實驗題目、實驗原理、實驗?zāi)康?、步驟簡述、試驗調(diào)試過程中出現(xiàn)的問題、結(jié)果和分析以及程序清單并給程序做注釋。(三)每個實驗后的思考題必須完成。(四)對實驗中發(fā)現(xiàn)的問題應(yīng)加以討論,并提出自己的改進意見和要求、希望等。實驗二實驗二 匯編語言程序設(shè)計(一)匯編語言程序設(shè)計(一)一、實驗?zāi)康囊弧嶒災(zāi)康?. 熟悉 Keil C51 軟件使用。2. 掌握 51 匯編程序設(shè)計,鞏固掌握程序的調(diào)試方法。3. 掌握 RAM 中的數(shù)據(jù)操作。二、實驗設(shè)備及器件二、實驗設(shè)備及器件微型計算機 1 臺 ,KEIL C51 集成開發(fā)軟件。三、實驗內(nèi)容三、實驗內(nèi)容1、讀下面的程序

30、,說出程序功能(參考圖、讀下面的程序,說出程序功能(參考圖 3.1 的算法)的算法) 參考程序ORG 0000H LJMP MAINORG 0100HMAIN: MOV R2, #10H MOV R3,#00H MOV R4,#20H MOV R5,#00H MOV R7,#20H MOV R6,#00HMAIN1: MOV DPL,R3MOV DPH,R2MOVX A,DPTRMOV DPL,R5MOV DPH,R4MOVX DPTR,ACJNE R3,#0FFH,LO42開始源地址內(nèi)容送A( ) A 送目的地址源地址加1目的地址加1結(jié)束?字節(jié)數(shù)到了嗎 NY圖 3.1 數(shù)據(jù)區(qū)傳送流程圖INC

31、 R2LO42:INC R3CJNE R5,#0FFH,LO43INC R4LO43:INC R5CJNE R7,#00H,LO44LOOP: SJMP LOOPNOPLO44:DEC R7SJMP MAIN1END 2、按下面要求編寫程序、按下面要求編寫程序?qū)⒁阎?0H)=12H,(21H)=34H,編程計算(20H)+(21H) (40h)中。設(shè)有 50 個工作單元, 其首址為外部存儲器 8000H 單元, 編程使其工作單元清零。編程將片內(nèi) RAM 的一個字節(jié)二進制數(shù)轉(zhuǎn)換成 3 位非壓縮型 BCD 碼。 試編寫程序,查找在內(nèi)部 RAM 的 20H50H 單元中出現(xiàn) 00H 的次數(shù),并將查

32、找的結(jié)果存入51H 單元。四、預(yù)習(xí)要求四、預(yù)習(xí)要求(一)熟悉實驗軟件環(huán)境和程序調(diào)試方法。(二)進一步熟悉外部數(shù)據(jù)存儲器的訪問方法和堆棧指針的應(yīng)用。(三)對照試驗內(nèi)容,編寫程序。五、思考題五、思考題(1)試寫一條把片內(nèi) RAM 50H59H 單元清零的程序。 (2) 試寫一個把片外 RAM 從 2000H 單元開始的 16 個字節(jié)寫入片內(nèi) RAM 50H 開始的單元的程序。(3)如果使 10001010H 中內(nèi)容與 20002010H 內(nèi)容完全一致,如何編寫程序?六、實驗報告要求六、實驗報告要求(一)實驗報告要用學(xué)校統(tǒng)一的紙。(二)實驗內(nèi)容應(yīng)包括,實驗題目、實驗原理、實驗?zāi)康?、步驟簡述、試驗調(diào)試

33、過程中出現(xiàn)的問題、結(jié)果和分析以及程序清單并給程序做注釋。(三)編寫程序完成實驗后的思考題。(四)對實驗中發(fā)現(xiàn)的問題應(yīng)加以討論,并提出自己的改進意見和要求、希望等。實驗三實驗三 匯編語言程序設(shè)計(二)匯編語言程序設(shè)計(二)一、實驗?zāi)康囊?、實驗?zāi)康氖煜?MCS-51 指令系統(tǒng),掌握匯編語言程序設(shè)計方法。二、預(yù)習(xí)要求二、預(yù)習(xí)要求(一)熟悉實驗軟件環(huán)境和程序調(diào)試方法,掌握 KEIL 用法。(二)進一步鞏固 51 匯編指令的用法。(三)掌握分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)程序設(shè)計方法。三、實驗內(nèi)容三、實驗內(nèi)容編寫程序完成下面要求:1、3 個無符號單字節(jié)整數(shù)分別存于 R1、 R2、 R3 中, 找出其中最大數(shù)放于 R0

34、 中。2、從 BLOCK 單元(片內(nèi) RAM)開始有一個無符號數(shù)數(shù)據(jù)塊, 其長度存于 LEN 單元,試求出數(shù)據(jù)塊中最大的數(shù)并存入 MAX 單元(BLOCK、LEN、MAX 均為自定義的片內(nèi) RAM 單元) 。3、編寫并調(diào)試一個排序子程序,其功能為用冒泡法將內(nèi)部 RAM 中幾個單字節(jié)無符號數(shù),按從小到大的次序重新排列。四、參考算法四、參考算法 見圖 3.2五、實驗參考程序五、實驗參考程序ORG 0000H ;冒泡排序法參考程序LJMP MAIN ORG 0100HMAIN: MOV R3,#50HQUE1: MOV A,R3MOV R0,AMOV R7,#0AHCLR 00HMOV A,R0QL

35、2:INC R0MOV R2,ACLR CMOV 22H,R0CJNE A,22H,QL3SETB CQL3:MOV A,R2JC QL1SETB 00HXCH A,R0DEC R0XCH A,R0INC R0QL1:MOV A,R0DJNZ R7,QL2開始清標志位()從 R0 取數(shù)A(R0)+1送R0( A)(R0)?長度減?1=0 ,標志置位 交換內(nèi)容NY?標志位=0 結(jié)束N圖 3.2 數(shù)據(jù)冒泡排序流程圖JB 00H,QUE1LOOP: SJMP LOOPEND六、思考題六、思考題1、編一程序,把 50H5AH 中內(nèi)容按從大到小排列。七、實驗報告要求七、實驗報告要求(一)報告中記錄試驗內(nèi)

36、容 1、2 的源程序及調(diào)試結(jié)果;記錄試驗內(nèi)容 3 的調(diào)試結(jié)果。(二)編寫思考題要求的程序,并要求在課后自己上機調(diào)試。(三)對實驗中發(fā)現(xiàn)的問題應(yīng)加以討論,并提出自己的改進意見和要求、希望等。實驗四實驗四 基于基于 KeilKeil C51C51 集成開發(fā)環(huán)境的仿真與調(diào)試集成開發(fā)環(huán)境的仿真與調(diào)試一一 實驗?zāi)康膶嶒災(zāi)康?熟悉 Keil C51 集成開發(fā)環(huán)境調(diào)試功能的使用和 DP-51PRO 單片機綜合仿真實驗儀的使用。 二二 實驗設(shè)備及器件實驗設(shè)備及器件 IBM PC 機 一臺 DP-51PRO 單片機綜合仿真實驗儀 一臺 三三 實驗內(nèi)容實驗內(nèi)容 1、按照本書的第 2 章的 2.5 節(jié)內(nèi)容進行 Ke

37、il C51 集成開發(fā)環(huán)境的仿真調(diào)試練習(xí):首先基于本試驗箱的 51 芯片:PHILIPS 的 P80/87C52X2 建立工程文件,然后按照以下內(nèi)容建立匯編文件并將源程序文件加入工程文件的 Source Group 1,再進行相關(guān)設(shè)置,編譯,最后進行仿真調(diào)試或運行。 ORG 8000H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0000HLJMP Main ORG 8100H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0100HMain: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJN

38、Z R7, Loop ;延時 CPL P1.0 ; P 1 .0 取反 CPL P1.1 ; P 1 .1 取反 CPL P1.2 ; P 1 .2 取反 CPL P1.3 ; P 1 .3 取反 CPL P1.4 ; P 1 .4 取反 CPL P1.5 ; P 1 .5 取反 CPL P1.6 ; P 1 .6 取反 CPL P1.7 ; P 1 .7 取反 SJMP Main END 2、修改上面的程序,將 Loop 到 DJNZ 部分用一個子程序代替。 3、修改實驗三實驗內(nèi)容 2(從 BLOCK 單元(片內(nèi) RAM)開始有一個無符號數(shù)數(shù)據(jù)塊, 其長度存于 LEN 單元,試求出數(shù)據(jù)塊中最

39、大的數(shù)并存入 MAX 單元(BLOCK、LEN、MAX 均為自定義的片內(nèi) RAM 單元) )的程序,使之在試驗箱上調(diào)試運行。四四 實驗要求實驗要求 熟練掌握結(jié)合 DP-51PRO 單片機綜合仿真實驗儀和 Keil C51 集成開發(fā)環(huán)境進行仿真調(diào)試。如果還有時間,可以把本書的第 2 章的 2.6 節(jié)內(nèi)容也看一下。 五五 實驗步驟實驗步驟 1 確認 40 針排線已經(jīng)將 DP-51PRO 實驗儀上的 A1 區(qū) J76 接口和 A2 區(qū) J79 接口相連,然后使用排線把 A2 區(qū)的 J61 接口與 D1 區(qū)的 J52 接口相連。如圖 3.3 所示。 圖 3.3 實驗四原理圖 2 對 DP-51PRO

40、實驗儀上電,然后按照本實驗指導(dǎo)第二節(jié)設(shè)置 DP-51PRO 仿真器和使用軟件 DPFLASH 把 MON51 監(jiān)控程序下載到 DP-51PRO 仿真器。 3 關(guān)閉 DPFlash 軟件。把 DP-51PRO 仿真器的工作模式選擇開關(guān)切換到 RUN 處,然后按一下復(fù)位鍵(RST),MON51 程序就開始運行了。此時,DP-51PRO 仿真器進入調(diào)試狀態(tài)。 4 用戶使用 Keil C51 集成開發(fā)環(huán)境建立工程、編輯與編譯“實驗內(nèi)容”所列的程序。然后按照本實驗指導(dǎo)第二節(jié)(軟件調(diào)試環(huán)境的設(shè)置)設(shè)置好,然后再編譯一次。 5 此時用戶就可以按照本實驗指導(dǎo)第二節(jié)所講述的方法進行仿真調(diào)試。如果用戶在退出仿真調(diào)

41、試模式后想再次進入仿真調(diào)試,可以先按一下 DP-51PRO 仿真器的復(fù)位鍵(RST) 。用戶可以在仿真調(diào)試環(huán)境下設(shè)置斷點,單步,全速運行等。在調(diào)試過程中用戶可以看見 D1 區(qū)的 LED 的亮滅是由用戶程序來控制的。 六六 實驗預(yù)習(xí)要求實驗預(yù)習(xí)要求 認真閱讀本書的第 2 章的 2.3、2.4 節(jié)內(nèi)容。 七七 實驗思考題實驗思考題 (1) 如何仿真和調(diào)試 C51 程序呢?(用戶可以把上面的實驗內(nèi)容 1 改寫為 C51 程序然后再編譯調(diào)試) ,注意調(diào)試方法的區(qū)別。注意:注意:當仿真運行時,在系統(tǒng)配置文件 Startup.a51 中,必須把 CSEG AT 0 代碼改為 CSEG AT 8000H,即

42、用戶的應(yīng)用程序應(yīng)從 8000H 開始存放。當然對應(yīng)的中斷矢量地址也應(yīng)跳轉(zhuǎn)到相應(yīng)的高端地址單元。實驗五實驗五 C51C51 程序設(shè)計程序設(shè)計一一 實驗?zāi)康膶嶒災(zāi)康?熟悉 Keil C51 集成開發(fā)環(huán)境調(diào)試功能的使用和 DP-51PRO 單片機綜合仿真實驗儀的使用。 掌握 C51 程序設(shè)計方法。 二二 實驗設(shè)備及器件實驗設(shè)備及器件 IBM PC 機 一臺 DP-51PRO 單片機綜合仿真實驗儀 一臺 三三 實驗內(nèi)容實驗內(nèi)容 1、實驗原理及實驗步驟同實驗四,在 Keil C51 集成開發(fā)環(huán)境下,練習(xí)使用 C51 編程,按照以下內(nèi)容建立文件并編譯仿真調(diào)試。 #include reg51.hsbit P

43、1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_4=P14;sbit P1_5=P15;sbit P1_6=P16;sbit P1_7=P17;main()unsigned char i,k;while(1)for (i=0;i200;i+)for (k=0;k100;k+);P1_0=P1_0;P1_1=P1_1;P1_2=P1_2;P1_3=P1_3;P1_4=P1_4;P1_5=P1_5;P1_6=P1_6;P1_7=P1_7;2、編程將十進制數(shù) 23 轉(zhuǎn)化為 BCD 碼并保存在某個字節(jié)單元中。參考程序:匯編程序: OR

44、G 8000H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0000H MOV A,#23 MOV B,#10 DIV AB MOV 22H,B SWAP A ORL 22H, A SJMP $ ENDC51 程序: # INCLUDE #DEFINE UCHAR UNSIGNED CHAR VOID MAIN() UCHAR A=23,T,B; T=A/10; B=A%10; T=4; B+=T FOR ( ; ; ): 注意:注意:在系統(tǒng)配置文件 Startup.a51 中,必須把 CSEG AT 0 代碼改為 CSEG AT 8000H,即用戶的應(yīng)用程序應(yīng)從 8000H 開始

45、存放。當然對應(yīng)的中斷矢量地址也應(yīng)跳轉(zhuǎn)到相應(yīng)的高端地址單元。四四 實驗預(yù)習(xí)要求實驗預(yù)習(xí)要求 認真閱讀關(guān)于 C51 程序設(shè)計的有關(guān)課外書,理解包含文件、頭文件含義,復(fù)習(xí) C 語言中關(guān)于數(shù)據(jù)類型、常量變量的知識。 五五 實驗思考題實驗思考題 (1) 如果要求將仿真器的 8 個 LED 輸出現(xiàn)象改為依次點亮,左移或右移,改如何修改程序? 實驗六實驗六 I/OI/O 口控制實驗口控制實驗一一 實驗?zāi)康膶嶒災(zāi)康?利用單片機的 P1 口作 IO 口,使用戶學(xué)會利用 P1 口作為輸入和輸出口。 二二 實驗設(shè)備及器件實驗設(shè)備及器件 IBM PC 機 一臺 DP-51PRO 單片機綜合仿真實驗儀 一臺 三三 實驗

46、內(nèi)容實驗內(nèi)容 1 編寫一段程序,用 P1 口作為控制端口,使 D1 區(qū)的 LED 輪流亮。 2 編寫一段程序,用 P1.0P1.6 口控制 LED,P1.7 控制 LED 的亮和滅(P1.7 接按鍵,按下時LED 亮,不按時 LED 滅。) 四四 實驗要求實驗要求 學(xué)會使用單片機的 P1 口作 IO 口,如果有時間用戶也可以利用 P3 口作 IO 口來做該實驗 五五 實驗步驟實驗步驟 1 用導(dǎo)線把 A2 區(qū)的 J61 接口與 D1 區(qū)的 J52 接口相連。原理如圖 3.4A 所示。 圖 3.4 實驗六原理圖(A:實驗內(nèi)容 1 連線圖,B:內(nèi)容 2 連線圖)2 先編寫一個延時程序。 3 將 LE

47、D 輪流亮的程序編寫完整并調(diào)試運行。 4 使用導(dǎo)線把 A2 區(qū)的 J61 接口的 P1.0P1.6 與 D1 區(qū)的 J52 接口的 LED1LED7 相連,另外A2 區(qū) J61 接口的 P1.7 與 D1 區(qū)的 J53 的 KEY1 相連。原理如圖 3.2B 所示。 5 編寫 P1.7 控制 LED 的程序,并調(diào)試運行。 (按下 K1 看是否全亮) 6 A2 區(qū) J61 接口的 P1.7 與 D1 區(qū)的 J54 的 SW1 相連。然后再運行程序,查看結(jié)果。 六六 實驗預(yù)習(xí)要求實驗預(yù)習(xí)要求 閱讀本書的 2.4 節(jié)內(nèi)容,理解該實驗的硬件結(jié)構(gòu)。還可以先把程序編好,然后在 Keil C51 環(huán)境下進行

48、軟件仿真。 七七 實驗參考程序?qū)嶒瀰⒖汲绦?程序 1: ORG 8000H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0000H LJMP Main ORG 8100H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0100H Main: MOV A,#0FFH CLR C MainLoop: CALL Delay RLC A MOV P1,A ;把 A 的值輸出到 P1 口 SJMP MainLoop Delay: MOV R7, #0 ;延時Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop RET END C5

49、1 程序:#include reg51.hmain()unsigned char i,k,temp;temp=0 xfe;while(1)P1=temp;if(temp=0 xff)temp=(temp1);elsetemp=(temp1)+1;for (i=0;i200;i+)for (k=0;k100;k+);程序 2: ORG 8000H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0000H LJMP Main ORG 8100H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0100H Main: JB P1.7,SETLED ;按鍵沒有按下時,跳轉(zhuǎn)到 SETL

50、ED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED: SETB P1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6 SJMP Main END C51 程序:#include reg51.hsbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_4=P14;sbit P1_5=P15;sbit P1_6=P16;sbi

51、t P1_7=P17;main()while(1)if(P1_7)P1_0=1;P1_1=1;P1_2=1;P1_3=1;P1_4=1;P1_5=1;P1_6=1;elseP1_0=0;P1_1=0;P1_2=0;P1_3=0;P1_4=0;P1_5=0;P1_6=0; 八八 實驗思考題實驗思考題 (1) 請想出幾個實現(xiàn)以上功能的編程方法。 (2) 請思考,第二個程序中如果使用 KEY1 作為外部中斷控制 LED 的亮和滅時,程序應(yīng)如何修改。 實驗七實驗七 中斷實驗中斷實驗一、實驗?zāi)康囊?、實驗?zāi)康?.掌握外部中斷技術(shù)的基本使用方法2.掌握中斷處理程序的編寫方法二、實驗說明及原理圖二、實驗說明及

52、原理圖1.外部中斷的初始化設(shè)置共有三項內(nèi)容:中斷總允許即 EA=1;外部中斷允許即 EXi=1(i=0 或 1) ,中斷觸發(fā)方式設(shè)置;中斷觸發(fā)方式設(shè)置,中斷請求信號由引腳 INT0(P3.2)和 INT1(P3.3)引入,本實驗由 INT0(P3.2)引入。2.中斷服務(wù)的關(guān)鍵:a、保護進入中斷時的狀態(tài)。堆棧有保護斷點和保護現(xiàn)場的功能,使用 PUSH 指令,把單片機中有關(guān)寄存單元的內(nèi)容保護起來。b、必須在中斷服務(wù)程序中設(shè)定是否允許中斷重入,即設(shè)置 EX0 位。c、用 POP 指令恢復(fù)中斷時的現(xiàn)場。3.中斷控制原理:中斷控制是提供給用戶使用的中斷控制手段。實際上就是控制一些寄存器,51 系列用于此

53、目的的控制寄存器有四個:TCON 、IE 、SCON 及 IP。4.中斷響應(yīng)的過程:參考教材。INT0 端接單次脈沖發(fā)生器。P1.0 接 LED 燈,以查看信號反轉(zhuǎn)。三、實驗內(nèi)容及步驟三、實驗內(nèi)容及步驟用一指示燈標識外中斷的觸發(fā)。本實驗需要用到 DP-51PRO 單片機實驗儀的 MCUZ 總線接口模塊(A2 區(qū))、單次脈沖源(D1 區(qū))和 LED 顯示(D1 區(qū))。1.使用單片機總線區(qū)得 P1.0 接 LED 顯示區(qū)的一個發(fā)光二極管(LED1) ,P3.2(INTO) (A2 區(qū) J58的 INTO)接單次脈沖源的輸出端(D1 區(qū)的 KEY1)。2.安裝好仿真器,用串行數(shù)據(jù)通信線連接計算機與仿

54、真器,試驗箱電源開關(guān)合上。3.打開 Keil uVision2 仿真軟件,首先建立本實驗的項目文件,接著建立源程序,編譯無誤后,全速運行程序,連續(xù)按動單次脈沖產(chǎn)生電路的按鍵,發(fā)光二極管每按一次狀態(tài)取反,即隔一次點亮。四、流程圖及參考程序四、流程圖及參考程序1.流程圖 圖 3.6 中斷實驗流程圖主程序框圖設(shè)置初始狀態(tài)設(shè)置中斷控制寄存器 中斷允許等待中斷 開始外部中斷子程序框圖保護現(xiàn)場狀態(tài)位取反狀態(tài)位輸出恢復(fù)現(xiàn)場中斷入口中斷返回 INLED1510VCCXTAL1A11.0592MHzC3A22pFC2A22pFP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST

55、9P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC4089C51U1FC3F10uFVCCVCCP3.0P3.1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4

56、P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2P3.3P3.4P3.5P3.6P3.7RESETR2F100R1F1K圖 3.5 51 中斷系統(tǒng)原理圖2.參考程序 LED EQU P1.0 LEDBUF BIT 0 ORG 8000H ;此為硬件仿真調(diào)試程序,使用軟件仿真或直接運行,應(yīng)改為 0000H LJMP START ORG 8003H LJMP INTERRUPT ORG 8100HSTART: CLR LEDBUF CLR LED MOV TCON, #01H ; 外部中斷 0 下降沿觸發(fā) MOV IE, #81H

57、; 打開外部中斷允許位(EX0)及總中斷允許位(EA)OK: LJMP OK ORG 8200HINTERRUPT: PUSH PSW ; 保護現(xiàn)場 CPL LEDBUF ; 取反 LED MOV C, LEDBUF MOV LED, C POP PSW ; 恢復(fù)現(xiàn)場 RETI END五、思考題五、思考題 1.簡述中斷處理的一般過程。2.試編寫中斷系統(tǒng)實驗程序,試驗儀的 P1.0-P1.7 與 的 LED1-LED8 相連,INT0 與 K1 連,要求:無中斷請求時, LED1-LED8 燈依次循環(huán)左移亮燈,K1 按下一下,LED1-LED8 燈依次循環(huán)右移亮燈,維持約 3 秒后恢復(fù)左移。3、

58、將上述參考程序用改寫成 C51 源程序,調(diào)試運行。4、讀下面的程序,理解程序的運行環(huán)境及運行結(jié)果#include #include #define uchar unsigned char sbit p10=0 x90 ; int i,j; void delay(uchar); void service_int0() interrupt 0 P1=0 xff; for(i=0;i=7;i+) delay(255); delay(255); P1=P1; void main() uchar a; EA=1; IT0=1; EX0=1; ; p10=0; while( 1 ) a=0 xfe; fo

59、r(i=0;i=7;i+) _nop_(); P1=ai; _nop_(); delay(255); delay(255); void delay(uchar x) / 延時,系統(tǒng)主頻為 11.0592MHz uchar k; while(x-) /延時大約 x 毫秒鐘 for(k=0;k125;k+) 實驗八實驗八 定時器計數(shù)器實驗定時器計數(shù)器實驗一、實驗?zāi)康囊?、實驗?zāi)康?.學(xué)習(xí) 89C51 內(nèi)部定時計數(shù)器的使用和編程方法2.進一步掌握中斷處理程序的編寫方法二、實驗說明及原理二、實驗說明及原理關(guān)于內(nèi)部計數(shù)器的編程主要是定時常數(shù)(初值)的設(shè)置和有關(guān)控制寄存器的設(shè)置。內(nèi)部計數(shù)器在單片機中主要有定

60、時器和計數(shù)器兩個功能。本實驗使用的是定時器,定時為一秒鐘。CPU 運用定時中斷方式,實現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn),即發(fā)光管每隔一秒鐘亮一次。定時器有關(guān)的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON。TMOD 用于設(shè)置定時器/計數(shù)器的工作方式 0-3,并確定用于定時還是用于計數(shù)。TCON 主要功能是為定時器在溢出時設(shè)定標志位,并控制定時器的運行或停止等。內(nèi)部計數(shù)器用作定時器時,是對機器周期計數(shù)。每個機器周期的長度是 12 個振蕩器周期。因為實驗系統(tǒng)的晶振是 12MHZ,本程序工作于方式 1,即 16 位方式定時器, 定時器 50mS 中斷一次, 所以定時常數(shù)的設(shè)置可按以下方法計算:機器周

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論