《單片機(jī)應(yīng)用基礎(chǔ)》實(shí)驗(yàn)報(bào)告_第1頁(yè)
《單片機(jī)應(yīng)用基礎(chǔ)》實(shí)驗(yàn)報(bào)告_第2頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

7/7《單片機(jī)應(yīng)用基礎(chǔ)》實(shí)驗(yàn)報(bào)告華北水利水電大學(xué)機(jī)械學(xué)院

《單片機(jī)應(yīng)用基礎(chǔ)》

指導(dǎo)老師:

專(zhuān)業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化

學(xué)號(hào):

姓名

機(jī)械設(shè)計(jì)制造系

2015年4月

實(shí)驗(yàn)一匯編語(yǔ)言源程序編輯

一、實(shí)驗(yàn)?zāi)康模?/p>

了解軟件keilμVision的安裝,熟悉在keilμVision軟件環(huán)境下進(jìn)行單片機(jī)匯編源程序的編輯和修改,學(xué)會(huì)使用利用keilμVision軟件監(jiān)控單片機(jī)各個(gè)寄存器以及存儲(chǔ)器的數(shù)據(jù)變化等。

二、實(shí)驗(yàn)內(nèi)容:

1、軟件的安裝和使用

keilμVision軟件的詳細(xì)安裝過(guò)程和使用說(shuō)明請(qǐng)參考提供資料。

2、匯編源程序的編輯

編輯和運(yùn)行下面源程序,并按要求完成實(shí)驗(yàn)報(bào)告。

實(shí)驗(yàn)A存儲(chǔ)器塊清零S1.ASM

BLOCKEQU6000h

MAIN:MOVDPTR,#BLOCK;起始地址

MOVR0,#10H;存儲(chǔ)塊長(zhǎng)度

CLRA

LOOP:MO@DPTR,A

INCDPTR;指向下一個(gè)地址

DJNZR0,LOOP;記數(shù)減一

LJMP$

END

實(shí)驗(yàn)B二進(jìn)制到ASCII碼轉(zhuǎn)換S2.ASM

;將A拆為二個(gè)ASCII碼,并存入Result開(kāi)始的二個(gè)單元

RESULTEQU20H

ORG0000H

MAIN:MOVSP,#40H

MOVA,#1AH

CALLBinToHex

LJMP$

BinToHex:

MOVDPTR,#ASCIITab

MOVB,A;暫存A

SWAPA

ANLA,#0FH;取高四位

MOVCA,@A+DPTR;查ASCII表

MOVRESULT,A

MOVA,B;恢復(fù)A

ANLA,#0FH;取低四位

MOVCA,@A+DPTR;查ASCII表

MOVRESULT+1,A

RET

ASCIITab:303132

333435

363738

394142

434445

46DB'0123456789ABCDEF';定義數(shù)字對(duì)應(yīng)的ASCII表

END

實(shí)驗(yàn)C內(nèi)存塊移動(dòng)S3.ASM

ORG0000H//起始地址從000H開(kāi)始

MAIN:MOVR0,#30h//將30h賦予R0

MOVR1,#00h//將00h賦予R1

MOVR2,#40h//將40h賦予R2

MOVR3,#00h//將00h賦予R3

MOVR7,#0//將0賦予R7

LOOP:MOVDPH,R0//將(R0)賦予(DPH)

MOVDPL,R1//將(DFL)賦予R1

MOA,@DPTR//將DPTR內(nèi)容給A

MOVDPH,R2//將(R2)賦予(DPH)

MOVDPL,R3//將(R3)賦予(DPL)

MO@DPTR,A//將A內(nèi)容寫(xiě)入外部RAM的DPTR中

CJNER1,#0FFH,GO1//若R1不等于0FFH,轉(zhuǎn)至G01,

若R1等于0FFH,程序順利執(zhí)行

INCR0//R0=R0+1

GO1:INCR1//R1=R1+1

CJNER3,#0FFH,GO2//若R1不等于0FFH,轉(zhuǎn)至G02,

若R1等于0FFH,程序順利執(zhí)行

INCR2//R2=R2+1

GO2:INCR3//R3=R3+1

DJNZR7,LOOP//R7=R7-1,若R7不等于0,執(zhí)行LOOP,否則順利執(zhí)行LJMP$//程序跳動(dòng)執(zhí)行

END//程序結(jié)束

注意:源文件生成之后注意分別保存為s1.asm、s2.asm、s3.asm的文件名

三、實(shí)驗(yàn)報(bào)告

1、記錄詳細(xì)實(shí)驗(yàn)步驟

(1)雙擊uvision4安裝軟件,同意條款,安裝指定硬盤(pán),完成后打開(kāi)uvision4,在file下拉菜單中找到序號(hào)打開(kāi)破解機(jī)進(jìn)行破解。

(2)先在桌面建立一個(gè)空文件夾“yis”。

(3)點(diǎn)擊“projectNewuVisionProject”新建一個(gè)工程。

(4)在對(duì)話(huà)框,選擇放在剛才建立的“yjs”文件夾下,給這個(gè)工程取個(gè)名后保存,不需要填后綴。

(5)彈出一個(gè)框,在CPU類(lèi)型下我們找到并選中“Atmel”下的AT89S51。

(6)點(diǎn)開(kāi)file菜單,點(diǎn)擊new,輸入程序a,點(diǎn)擊保存s1.asm。

(7)在project選項(xiàng)中點(diǎn)擊“projectfortarget‘target1’”晶振頻率設(shè)為12MHZ,“output”中打上“CreateHEXFile”選項(xiàng),在debug

中選擇simulator,確定。

(8)在projectworkspace對(duì)話(huà)框右擊target1,選擇addfiletotarget選項(xiàng),在project中點(diǎn)擊rebuildalltargetfiles,若無(wú)誤,在debug

選項(xiàng)中點(diǎn)擊start/stopdebugsession選項(xiàng),然后進(jìn)行運(yùn)行。觀(guān)察PC

值,再點(diǎn)擊start/stopdebugsession選項(xiàng),返回回編輯界面。

(9)在s1.hex用記事本打開(kāi)觀(guān)察記錄。

(10)再次點(diǎn)擊“projectNewuVisionProject”命名為s2.asm,按以上步驟操作,輸實(shí)驗(yàn)程序B,保存運(yùn)行,發(fā)現(xiàn)錯(cuò)誤進(jìn)行修改。定義

0-F的ASCII碼表“DB”類(lèi)型,進(jìn)行修改。

(11)再次點(diǎn)擊“projectNewuVisionProject”命名為s3.asm,運(yùn)行無(wú)誤后添加解釋。

1.列寫(xiě)實(shí)驗(yàn)A中源程序的PC值和機(jī)器碼。

PC值:$0x00003$0x00005$0x00006

$0x00007$0x00008$0x0000A

機(jī)器碼:0D0000009060007810E4F0A3D8FC02000A24

00000001FF

2、找出實(shí)驗(yàn)B中的錯(cuò)誤語(yǔ)句,并改正。

實(shí)驗(yàn)B中的錯(cuò)誤語(yǔ)句為下劃線(xiàn)部分,將實(shí)驗(yàn)B程序中下劃線(xiàn)改為如下部分:ASCIITab:DB30H,31H,32H

33H,34H,35H

36H,37H,38H

39H,40H,41H

42H

3、實(shí)驗(yàn)C添加解釋。

見(jiàn)實(shí)驗(yàn)程序C后的解釋。

4、實(shí)驗(yàn)總結(jié):

通過(guò)這次試驗(yàn),我大致了解了uVision的基本功用和操作方法,它可以顯示各個(gè)寄存器的存儲(chǔ)及各個(gè)寄存器工作原理,同時(shí),他還可以進(jìn)行程序調(diào)試,主要解決軟件開(kāi)發(fā)編輯過(guò)程中的各類(lèi)問(wèn)題。

實(shí)驗(yàn)二匯編語(yǔ)言源程序調(diào)試

一、實(shí)驗(yàn)?zāi)康模?/p>

1、掌握MCS-51指令系統(tǒng)傳送指令的匯編語(yǔ)言程序設(shè)計(jì)和調(diào)試方法;

2、熟悉用keilμVision匯編調(diào)試軟件及在線(xiàn)仿真調(diào)試。

二、實(shí)驗(yàn)內(nèi)容:

1、編寫(xiě)多字節(jié)數(shù)據(jù)的傳送程序,把內(nèi)部RAM的30H--37H單元賦值為10H-17H,然后傳送到外部的RAM的0100H--0107H單元;再將0100H--0107H單元逐一求反后送到內(nèi)部RAM的38H—3FH單元。

2、程序結(jié)構(gòu)采用循環(huán)結(jié)構(gòu)

程序用R0作內(nèi)部RAM指針,用DPTR作外部RAM指針,R7作為計(jì)數(shù)初值N,本實(shí)驗(yàn)N=8。

3、用keilμVision對(duì)程序進(jìn)行匯編,產(chǎn)生目標(biāo)代碼文件,文件的類(lèi)別為HEX。

4、參考程序

ORG0000H

START:AJMPMAIN

ORG0030H

MAIN:MOVR1,#30H

MOV@R1,#10H

INCR1

MOV@R1,#11H

INCR1

MOV@R1,#12H

INCR1

MOV@R1,#13H

INCR1

MOV@R1,#14H

INCR1

MOV@R1,#15H

INCR1

MOV@R1,#16H

INCR1

MOV@R1,#17H

MOVR0,#30H

MOVDPTR,#0100H

MOVR7,#08H

LOOP:MOVA,@R0

MO@DPTR,A

INCR0

INCDPTR

DJNZR7,LOOP

MOVR0,#38H

MOVDPTR,#0100H

MOVR7,#08H

LOOP1:MOA,@DPTR

CPLA;求反

MOV@R0,A

INCR0

INCDPTR

DJNZR7,LOOP1

HERE:AJMPHERE;程序結(jié)束

END

5、仿真和調(diào)試

1)用單步執(zhí)行或斷點(diǎn)連續(xù)執(zhí)行,記下執(zhí)行指令后表格中相應(yīng)寄存器的數(shù)值:

表一LOOP循環(huán)執(zhí)行情況表

執(zhí)行LOOPAR0DPTRR7

MOVR7,#08H0x000x300x01000x08第一次循環(huán)MOVA,@R00x100x300x01000x08

第二次循環(huán)MOVA,@R00x110x310x01010x07

第三次循環(huán)MOVA,@R00x120x320x01020x06

第四次循環(huán)MOVA,@R00x130x330x01030x05

第五次循環(huán)MOVA,@R00x140x340x01040x04

第六次循環(huán)MOVA,@R00x150x350x01050x03

第七次循環(huán)MOVA,@R00x160x360x01060x02

第八次循環(huán)MOVA,@R00x170x370x01070x01

第一次循環(huán)MO@DPTR,A0x100x300x01000x08

第二次循環(huán)MO@DPTR,A0x110x310x01010x07

第三次循環(huán)MO@DPTR,A0x120x320x01020x06

第四次循環(huán)MO@DPTR,A0x130x330x01030x05

第五次循環(huán)MO@DPTR,A0x140x340x01040x04

第六次循環(huán)MO@DPTR,A0x150x350x01050x03

第七次循環(huán)MO@DPTR,A0x160x360x01060x02

第八次循環(huán)MO@DPTR,A0x170x370x01070x01

表二LOOP1循環(huán)執(zhí)行情況表

執(zhí)行LOOP1AR0DPTRR7

MOVR7,#08H0x170x380x01000x08第一次循環(huán)MOA,@DPTR0x100x380x01000x08

第二次循環(huán)MOA,@DPTR0x110x390x01010x07

第三次循環(huán)MOA,@DPTR0x120x3a0x01020x06

第四次循環(huán)MOA,@DPTR0x130x3b0x01030x05

第五次循環(huán)MOA,@DPTR0x140x3c0x01040x04

第六次循環(huán)MOA,@DPTR0x150x3d0x01050x03

第七次循環(huán)MOA,@DPTR0x160x3e0x01060x02

第八次循環(huán)MOA,@DPTR0x170x3f0x01070x01

第一次循環(huán)MOV@R0,A0xef0x380x01000x08

第二次循環(huán)MOV@R0,A0xee0x390x01010x07

第三次循環(huán)MOV@R0,A0xed0x3a0x01020x06

第四次循環(huán)MOV@R0,A0xec0x3b0x01030x05

第五次循環(huán)MOV@R0,A0xeb0x3c0x01040x04

第六次循環(huán)MOV@R0,A0xea0x3d0x01050x03

第七次循環(huán)MOV@R0,A0xe90x3e0x01060x02

第八次循環(huán)MOV@R0,A0xe80x3f0x01070x01

2)同時(shí)觀(guān)察相關(guān)存儲(chǔ)器的變化情況。

三.實(shí)驗(yàn)報(bào)告

1、寫(xiě)出本程序單步運(yùn)行后的調(diào)試過(guò)程(填寫(xiě)表一和表二)及38H至3FH單元的運(yùn)行結(jié)果;

相關(guān)運(yùn)行結(jié)果:

2、本程序如何修改為內(nèi)部RAM的30H--37H單元傳送到內(nèi)部RAM的38H—3FH單元并調(diào)試,寫(xiě)出過(guò)程和運(yùn)行結(jié)果

修改程序如下:

MOVR0,#38H

MOVR7,#08H

MOVR1,#30H

溫馨提示

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

評(píng)論

0/150

提交評(píng)論