單片機存儲器填充程序實驗報告_第1頁
單片機存儲器填充程序實驗報告_第2頁
單片機存儲器填充程序實驗報告_第3頁
單片機存儲器填充程序實驗報告_第4頁
單片機存儲器填充程序實驗報告_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一 單片機存儲器填充程序 一、實驗目的1、了解單片機匯編語言程序的基本結構2、了解單片機匯編語言程序的設計和調試方法3、掌握幾個的基本的傳送類、控制類指令的使用方法二、實驗儀器單片機開發(fā)板、萬利仿真機、穩(wěn)壓電源、計算機三、實驗原理1、 單片機存儲器的結構51系列單片機數據存儲器分為內部直接尋址存儲器(工作寄存器區(qū),位尋址區(qū)),內部間接尋址存儲器,外部存儲器。如圖3-1所示。00H-07FH0000H-0FFFFH外部數據存儲器,需要擴展,有些單片在內部擴展一部分80H0FFH直接尋址區(qū),用于特殊功能,有很多沒有用80H0FFH間接尋址區(qū),保存一般數據,52單片機內部有高128B存儲器通用存

2、儲器30H-7FH位尋址寄存器20H-2FH工作寄存器00H-1FH圖3-1 單片機存儲器結構2、 單片機內部存儲器操作指令51單片機內部將數據存儲器劃分成多個區(qū)域,每個區(qū)域用的存儲器訪問指令也不相同(操作碼或操作數不同)。a、內部直接尋址通用存儲器訪問指令MOVA ,40H;將內部直接尋址存儲器中的40H單元內容復制到累加器AMOVR2 ,30H;將內部直接尋址存儲器中的40H單元內容復制到寄存器R2MOV30H,40H;將內部直接尋址存儲器中的40H單元內容復制到30HMOVA ,R0;將R0指向的內部直接尋址存儲器的內容復制到累加器APUSHACC;將累加器A的內容復制到堆棧棧頂POPA

3、CC;將堆棧指針SP指向的內部直接尋址存儲器內容復制到Ab、內部間接尋址通用存儲器訪問指令MOVA ,R0;將R0指向的內部間接尋址存儲器的內容復制到累加器AMOVA ,R0;將累加器A的內容復制到R0指向的內部間接尋址存儲器PUSHACC;將累加器A的內容復制到系統(tǒng)堆棧棧頂POPACC;將堆棧指針SP指向的內部間接尋址存儲器內容復制到Ac、內部位尋址區(qū)存儲器訪問指令MOVC ,00H;位尋址區(qū)的00H位內容復制到C標志MOV01H,C;將C標志內容復制到位尋址區(qū)的00H3、 單片機外部數據存儲器操作指令MOVXA ,DPTR;將DPTR指向的外部存儲器的內容復制到累加器AMOVXDPTR ,

4、A;將累加器A的內容復制到由DPTR指向的外部存儲器四、實驗內容1、單片機內部RAM填充程序開始裝備輸入參數填充一字節(jié)指向下一字節(jié)完成?完成,退出圖3-2 區(qū)域填充程序流程圖YN把單片機片內30H50H的單元全部清零。流程圖如圖3-2所示。ORG0LJMPSTARTORG100START:MOVA,#00H;填充的內容MOVR0,#30H;填充的區(qū)域的首地址MOVR7,#32;填充的區(qū)域的字節(jié)數RamClear:MOVR0,A;填充數據INCR0;下一單元DJNZR7,RamClear;沒有完成,則返回SJMP$;填充完成2、采用輸入參數的方式設計的程序ORG0LJMPSTARTORG100S

5、TART:MOVA,#00HMOVR0,#30HMOVR7,#32LCALLRamClearSJMP$-3;-;RAM區(qū)域填充;輸入:A:填充內容,R7:填充字節(jié)數,R0:填充指針(加計數);輸出:無;-RamClear:MOVR0,AINCR0DJNZR7,RamClearRET3、采用宏匯編結構設計的程序在萬利集成開發(fā)環(huán)境中建立項目文件,并建立兩個文件,添加到項目中,文件內容如下:File:Init.asmPUBLIC RamClearMiscCodeSEGMENTCODERSEGMiscCodeRamClear:MOVR0,AINCR0DJNZR7,RamClearRETEND在主程序中

6、調用另一個文件中的子程序,要在調用之前聲明是引用外部程序。File:mainpro.asmEXTRNCODE(RamClear)MOVR7,#32MOVA,#00HMOVR0,#30HLCALLRamClearSJMP$-3END五、實驗步驟及調試信息(1)、新建實驗項目xuefenghai(2)、輸入實驗程序并補充完整(3)、編譯下載實驗程序,并修改錯誤(按附錄說明)1、編譯出錯:提示:MISSING 'END' STATEMENT 原因:文件結尾處沒有寫END。修改后正確:2、全速運行程序出現以下現象:原因:驅動器的選擇出現錯誤。(4)全速運行程序,查看實驗現象。實驗前的數

7、據內容1運行后的數據內容2運行數據如下:6、單步執(zhí)行,分析各程序的功能特點。若單步執(zhí)行,則實驗結果會從30H逐步執(zhí)行,實現逐步清零。同時R0從30H逐漸遞增到3CH,R7從0CH逐漸遞減到00H。7、整理實驗設備六、實驗思考題1、實驗內容1對哪些單元進行清零,程序是否執(zhí)行正確?答:實驗1從30H到3CH進行清零,程序執(zhí)行正確。2、說明MOV、MOVX、MOVC三條指令的區(qū)別。答:MOV: 單片機內部的寄存器或者存儲器之間相互傳遞數據(內部RAM),MOVX: 單片機內部的A累加器與片外的數據存儲器(片外RAM)或I/O傳送數據的指令,MOVC:  單片機內部的A累加器向ROM(程序存儲器)讀取數據,因為程序存儲器是固定的不可以寫的,所以,A只能讀數據,卻不能向它寫數據。 3、如果要在單片機內部填充N個雙字節(jié)數,請寫出相關程序?ORG 0 LJMP START ORG 100START: MOV DPTR,#0001H;填充的內容 MOV R0,#30H ;填充的區(qū)域的首地址 MOV R7,#N ;填充的區(qū)域的字節(jié)數RamClear: MOV R0,DPH ;填充數據 INC R0 MOV R0,DPL INC R0; ;下一單元 DJNZ R7,RamClear ;沒有完成,則返回 SJMP $ ;填

溫馨提示

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

評論

0/150

提交評論