單片機(jī)存儲器填充程序?qū)嶒?yàn)報(bào)告_第1頁
單片機(jī)存儲器填充程序?qū)嶒?yàn)報(bào)告_第2頁
單片機(jī)存儲器填充程序?qū)嶒?yàn)報(bào)告_第3頁
單片機(jī)存儲器填充程序?qū)嶒?yàn)報(bào)告_第4頁
單片機(jī)存儲器填充程序?qū)嶒?yàn)報(bào)告_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論