哈爾濱工業大學單片機實驗報告圖文精_第1頁
哈爾濱工業大學單片機實驗報告圖文精_第2頁
哈爾濱工業大學單片機實驗報告圖文精_第3頁
哈爾濱工業大學單片機實驗報告圖文精_第4頁
哈爾濱工業大學單片機實驗報告圖文精_第5頁
已閱讀5頁,還剩21頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 H a r b i n I n s t i t u t e o f T e c h n o l o g y單片機原理與應用實驗報告學生姓名:學號:班級:通信工程專業:任課教師:所在單位:電子與信息工程學院2013年5月軟件實驗在軟件實驗部分,通過實驗程序的調試,使學生熟悉MCS-51的指令系統,了解程序設計過程,掌握匯編語言設計方法以及如何使用實驗系統提供的調試手段來排除程序錯誤。實驗一清零程序一、實驗目的掌握匯編語言設計和調試方法,熟悉鍵盤操作。二、實驗內容把200020FFh的內容清零。三、程序框圖 四、實驗過程1、LED環境在“P.”狀態下按“0EV/UN”,裝載實驗所需的代碼程序。在

2、“P.”狀態下鍵入0640,然后按“STEP”或“EXEC”進入實驗項目的調試與運行。2、PC環境在與PC聯機狀態下,編譯、連接、下載PH51se01.asm,用連續或單步方式運行程序。3、運行結果檢查在單步運行時,每走一步可觀察其運行結果。在連續運行狀態下,應按“暫停圖標”或實驗箱上的“暫停按鈕”,使系統無條件退出用戶運行狀態返回監控,然后再用相應的命令鍵觀察與檢查200020FFH中執行程序前后的內容變化。五、實驗結果及分析實驗前截圖: 實驗后截圖: 實驗源程序:ORG 0640HSE01: MOV R0,#00HMOV DPTR,#2000H ;(2000H送DPTRLOO1: MOVX

3、 DPTR,A ;0送(DPTRINC DPTR ;DPTR+1INC R0 ;字節數加1CJNE R0,#00H,LOO1 ;不到FF個字節再清SJMP $END實驗問題:2000H20FFh中的內容是什么?解答:實驗運行之前,2000H20FFh中的內容是隨機分配的;在執行完清零程序之后,2000H20FFh中的內容都變為0.實驗二拆字程序一、實驗目的掌握匯編語言設計和調試方法。二、實驗內容把2000h的內容拆開,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把數據送顯示緩沖區時用。三、程序流程 四、實驗步驟1、LED環境在“P.”狀態下按“0E

4、V/UN”,裝載實驗所需的代碼程序。在“P.”狀態下鍵入0660,然后按“STEP”或“EXEC”進入實驗項目的調試與運行。2、PC環境在與PC聯機狀態下,編譯、連接、下載PH51se02.asm,用連續或單步方式運行程序。3、運行結果檢查在單步運行時每走一步可觀察其運行結果。在連續運行狀態下,應按“暫停圖標”或實驗箱上的“暫停按鈕”,使系統無條件退出用戶運行狀態返回監控,然后再用相應的命令鍵觀察與檢查20002002h中內容變化情況。五、實驗結果及分析先保存2000H,在利用SWAP語句將2000H高低位交換;然后利用ANL語句把交換后的2000H單元的高位給屏蔽,將高低位交換后的2000H

5、單元的地位送給2001H,最后將2000H交換之前的高位屏蔽,低位送入2002H。實驗前后截圖如下: 六、實驗源程序ORG 0000;MOV DPTR,#2000H;MOVX A,DPTR;ANL A,#0FH;MOV R1,A;MOVX A,DPTR;SWAP A;ANL A,#0FH;INC DPTR;MOVX DPTR,A;INC DPTR;MOV A,R1;MOVX DPTR,A;END;如果將2001h、2002h高位置1,程序該如何修改?修改方法很多,例如在2001H、2002H單元中加上1100H。實驗三拼字程序一、實驗目的進一步掌握匯編語言設計和調試方法。二、實驗內容把2000

6、h、2001h的低位分別送入2002h高低位,一般本程序用于把顯示緩沖區的數據取出拼裝成一個字節。三、程序流程 四、實驗步驟1、LED環境在“P.”狀態下按"0EV/UN",裝載實驗所需的代碼程序。在“P.”狀態下鍵入0680,然后按“STEP”或“EXEC”進入實驗項目的調試與運行。2、PC環境在與PC聯機狀態下,編譯、連接、下載PH51se03.asm,用連續或單步方式運行程序。3、運行結果檢查在單步運行時每走一步可觀察其運行結果。在連續運行狀態下,應按“暫停圖標”或實驗箱上的“暫停按鈕”,使系統無條件退出用戶運行狀態返回監控,然后再用相應的命令鍵觀察與檢查2002h內

7、容變化情況。五、實驗結果及分析實驗前后截圖如下: 六、實驗源程序 ORG 0000H;MOV DPTR,#2000H; MOVX A,DPTR;ANL A,#0FH;SWAP A;MOV R1,A;INC DPTR;MOVX A,DPTR;ANL A,#0FH;ORL A,R1;INC DPTR;MOVX DPTR,A;END;七、實驗問答1、運行程序后2002h的最終內容是?從實驗后的截圖中可以看出為:06.實驗四數據區傳送子程序一、實驗目的掌握RAM中的數據操作。二、實驗內容把R2、R3源RAM區首址內的R6、R7字節數據傳送到R4、R5目的RAM區。三、程序流程 四、實驗步驟1、LED環

8、境在“P.”狀態下按“0EV/UN”,裝載實驗所需的代碼程序。對R2、R3所定義的源地址單元從首址開始依次寫入00、11、22、0FF。在“P.”狀態下鍵入07B0,然后按“STEP”或“EXEC”進入實驗項目的調試與運行。2、PC環境在與PC聯機狀態下,編譯、連接、下載PH51se04.asm,用連續或單步方式運行程序。3、運行結果檢查在單步運行時每走一步可觀察其運行結果。在連續運行狀態下,應按“暫停圖標”或實驗箱上的“暫停按鈕”,使系統無條件退出用戶運行狀態返回監控,然后再用相應的命令鍵檢查由R4、R5所定義的目的地址單元。五、實驗結果及分析實驗前后截圖如下: 六、實驗源程序ORG 07B

9、0HMOV R2,#20HMOV R3,#00HMOV R4,#20HMOV R5,#90HMOV R6,#00HMOV R7,#00HSTART: CLR CMOV DPL,R3MOV DPH,R2 ;建立源程序首址MOVX A,DPTR ;取數MOV DPL,R5MOV DPH,R4 ;目的地首址MOVX DPTR,AINC R3 ;源地址加1MOV A,R2ACALL ADBMOV R2,AINC R5 ;目的地址加1MOV A,R4ACALL ADBMOV R4,AINC R7 ;轉移數加1MOV A,R6ACALL ADBMOV R6,ACJNE R6,#00H,STARTCJNE

10、R7,#2FH,STARTADB: ADDC A,#00HCLR CRETEND七、實驗問答1、R4、R5所定義的目的地址單元內容是什么?從截圖中可以看出 R4、R5中為:01 、09.實驗六查找相同數個數一、實驗目的熟悉匯編語言編程。二、實驗內容在2000200Fh中查出有幾個字節是零,把個數放在2100h中。三、程序框圖 四、實驗步驟1、LED環境在“P.”狀態下按“0EV/UN”,裝載實驗所需的代碼程序。在2000200Fh的若干單元中填入零在“P.”狀態下鍵入0AA0,然后按“STEP”或“EXEC”進入實驗項目的調試與運行。2、PC環境在與PC聯機狀態下,編譯、連接、下載PH51se

11、06.asm,用連續或單步方式運行程序。3、運行結果檢查在單步運行時每走一步可觀察其運行結果。在連續運行狀態下,應按“暫停圖標”或實驗箱上的“暫停按鈕”,使系統無條件退出用戶運行狀態返回監控,然后再用相應的命令鍵觀察與檢查2100h中是幾個單元數。五、實驗結果及分析實驗前后截圖如下: 六、實驗源程序ORG 2000H;MOV R0,#0FH;MOV R1,#00H;MOV DPTR,#2000H;START:MOVX A,DPTR;JNZ LOOP;INC R1;LOOP:INC DPTR; DJNZ R0,START; MOV A,R1;MOV DPTR,#2100H; MOVX DPTR,

12、A; END;實驗七無符號雙字節快速乘法子程序一、實驗目的掌握MCS-51匯編語言程序設計方法。二、預備知識本程序是利用單字節的乘法指令,根據下面的公式進行乘法運算的:(R2 R3×(R6 R7= (R2×28+(R3×(R6×28+(R7= (R2×(R6×216+(R2×(R7+(R3×(R6×28+(R3*(R7三、實驗內容將(R2 R3和(R6 R7中雙字節無符號整數相乘,積送R4 R5 R6 R7中。四、程序框圖 五、實驗步驟1、LED環境在“P.”狀態下按“0EV/UN”,裝載實驗所需的代碼程

13、序。對R2、R3所定義的源地址單元從首址開始輸入無符號整數。在“P.”狀態下鍵入0970,然后按“STEP”或“EXEC”進入實驗項目的調試與運行。2、PC環境在與PC聯機狀態下,編譯、連接、下載PH51se07.asm,用連續或單步方式運行程序。3、運行結果檢查在單步運行時每走一步可觀察其運行結果。在連續運行狀態下,應按“暫停圖標”或實驗箱上的“暫停按鈕”,使系統無條件退出用戶運行狀態返回監控,然后再用相應的命令鍵檢查R4 R5 R6 R7中內容。五、實驗結果及分析實驗前后截圖如下: 六、實驗源程序ORG 0000H MOV A,R3 MOV B,R7MUL ABXCH A,R7MOV R5

14、,BMOV B,R2MUL ABADD A,R5MOV R4,ACLR AADDC A,BMOV R5,AMOV A,R6MOV B,R3MUL ABADD A,R4XCH A,R6XCH A,BADDC A,R5 MOV R5,AMOV F0,CMOV A,R2MUL ABADD A,R5MOV R5,ACLR AMOV ACC.0,CMOV C,F0ADDC A,BMOV R4,ASJMP $END七、實驗問答1、寄存器R2、R3、R6、R7分別輸入01、10、11、10,運行程序,R4、R6中的內容是什么?解答:0110H*1110H=122100H故R4:12 R6:00實驗八 多分支

15、程序 一、實驗目的 掌握匯編語言的編程。 二、實驗內容 編寫程序,根據送入的數據轉移運行。 三、程序框圖 四、實驗步驟 1、LED 環境 在“P.”狀態下按“0EV/UN” ,裝載實驗所需的代碼程序。 在 20H 中分次送入 00、01、02、03。 在“P.”狀態下鍵入 0A10,然后按“STEP”或“EXEC”進入實驗項目的調試與運行。 2、PC 環境 在與 PC 聯機狀態下,編譯、連接、下載 PH51se08.asm,用連續或單步方式運行程 序。 3、運行結果檢查 (1)在單步運行時每走一步可觀察其運行結果。 (2)在連續運行狀態下,應按“暫停圖標”或實驗箱上的“暫停按鈕” ,使系統無條

16、件 退出用戶運行狀態返回監控,然后觀察每次運行程序后,數碼管上數字循環情況。 六、實驗源程序 MAIN: MOV 20H,#00H MOV A,20H MOV DPTR,#SZ ;散轉首址 RL A ;(20*2 JMP A+DPTR ;轉到(20*2+DPTR AJMP LOOP0 AJMP LOOP1 AJMP LOOP2 AJMP LOOP3 -17- SZ: LOOP0: MOV 20H,#0C0H LJMP SOX0 LOOP1: MOV 20H,#0F9H LJMP SOX0 LOOP2: MOV 20H,#0A4H LJMP SOX0 LOOP3: MOV 20H,#0B0H L

17、JMP SOX0 SOX0: MOV A,20H MOV R0,#0DCH MOV R1,#0DDH MOVX R0,A MOV A,#01H MOVX R1,A ;MOV R2,#20H LCALL DELY RL A SJMP SOX1 ;0 字循環 ;1 字循環 ;2 字循環 ;3 字循環 SOX1: ;顯示子程序 DELY: MOV R5,#1AH LP0: MOV R6,#7DH LP1: NOP NOP DJNZ R6,LP1 DJNZ R5,LP0 RET END -18- 實驗十一 二進制轉換到 BCD 一、實驗要求 將給定的一個二進制數,轉換成二進制編碼的十進制(BCD)碼。 二、實驗目的 掌握簡單的數值轉換算法,基本了解數值的各種表達方法。 三、實驗說明 計算機中的數值有各種表達方式,這是計算機的基礎。掌握各種數制之間的轉換是一種 基本功。 四、程序框圖 五、實驗步驟 1、在實驗系統與 PC 聯機狀態下,編譯、連接、下載、運行 PH51se11.asm,將 ACC 拆為三個 BCD 碼。 2、運行結果檢查 在單步運

溫馨提示

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

評論

0/150

提交評論