微机原理(单片机汇编)实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件实验报告

软件实验一

一、实验目的

1.熟悉软件实验的基本步骤和汇编程序的调试方法;

2.了解内存块的移动方法;

3.了解将十六进制数转换成ASCII值的方法。

二、实验原理

用MOV和MOVX指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。

三、实验内容及步骤

1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开CPU窗口,观察CPU窗口各寄存器的变化。打开View菜单中的Memory Window,可以观察内部RAM、外部RAM的数据和程序存储器中的程序。在Address窗口输入X:8000H后回车,观察8000H-800FF起始的256个字节单元的内容。

2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。打开View菜单中的Memory Window,在Address 窗口的Memory#1输入X:3000H后回车,点击运行按钮后, 在Memory#2输入X:4000H后回车,观察外部RAM3000H和4000H中的内容。

3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观察比较30-3FH单元中的内容和片外1030H-103FH中的内容。

4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观察结果。

5、添加求内部RAM 30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观察39H,38H中的数字是否分别为02H,C3H。

四、实验结果

1.步骤1的结果为8000H-80FFH的内容都为1.

2.步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存储块各单元内数据对应相同。

3.步骤3的结果为片外1030H-103FH中的内容与片内30H-3FH单元的内容相同。

4.步骤4的结果为将30H、31H中的十六进制数转换成了ASCII码,并存入到40H 开始的4个单元中。

5.步骤5的结果为8个无符号数的和为02C3H。

五、思考题

1、如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。

答:程序修改如下:将MAIN修改如下即可:

MAIN: MOV DPTR, #START

MOV R0,#0

MOV A, #0FFH

2、若源块地址和目标块地址有重叠,程序该如何设计(用地址减1方法移动块)?假设源块地址2000H,目标块地址2050H,移动块长度80H。

答:程序修改如下:ORG 0000H

MOV DPTR, #2000H MOV A, #01H

MOV R5, #0 LOOP:

MOVX @DPTR, A INC DPTR

DJNZ R5, LOOP MOV R0, #20H MOV R1, #00H MOV R2, #20H MOV R3, #50H MOV R7, #7FH LOOP1:

MOV DPH, R0 MOV DPL, R3 MOVX @DPTR, A CLR C

MOV A, R1 SUBB A, #0

MOV R1, A

CLR C

MOV A, R3 SUBB A, #0

MOV R3, A

MOV A, R0 SUBB A, #0

MOV R0, A

MOV A, R2 SUBB A, #0

MOV R2, A

MOV DPL, R1

MOVX A, @DPTR

MOV DPH, R2

六、源程序

1、将片内30H-3FH单元的内容复制片外片外1030H~103FH中

ORG 0000H

MOV R0, #30H

MOV DPTR, #1030H

MOV R7,#10H

LOOP1:MOV A, #0FH

MOV @R0, A

INC R0

DJNZ R7, LOOP1

MOV R0, #30H

MOV R7,#10H

LOOP: MOV A,@R0

INC R0

MOVX @DPTR, A

INC DPTR

DJNZ R7, LOOP

SJMP $

END

2、将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中

ORG 0100H

MOV 30H, #0FH

MOV 31H, #11H

MOV R0, #41H

MOV @R0, #00H

MOV A, 30H

XCHD A, @R0

ORL 41H, #30H

SWAP A

ORL A, #30H

MOV 40H, A

MOV R0, #43H

MOV @R0, #00H

MOV A, 31H

XCHD A, @R0

ORL 43H, #30H

SWAP A

ORL A, #30H

MOV 42H, A

END

3、求内部RAM 30H—37H单元中8个无符号数的算术和ORG 0000H

MOV 30H, #25H

MOV 31H, #36H

MOV 32H, #4AH

MOV 33H, #65H

MOV 34H, #7FH

MOV 35H, #82H

MOV 36H, #9BH

MOV 37H, #1DH

MOV R0, #30H

MOV 39H, #0

MOV R7, #8H

CLR C

MOV A, @R0

Loop: INC R0

ADD A, @R0

MOV 38H, A

MOV A,39H

ADDC A, #0

MOV 39H, A

MOV A, 38H

CLR C

DJNZ R7, Loop

SJMP $

END

相关文档
最新文档