预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验三指令寻址方式认知实验 一、实验目的 1.了解单片机基本指令及其寻址方式; 2.掌握在µVision环境中查看指令操作结果的技巧。 Keil软件;THKSCM-2综合实验装置(实验装置) 二.实验内容 1.示例及相关设置 (1)建立一个文件夹:lx31。 (2)利用菜单File的New选项进入编辑界面,输入下面的源文件,以lx31.asm文件名存盘到lx31文件夹中。 ORG0000H MAIN:MOVR7,#16 MOVA,#00H MOVR0,#30H LP:MOV@R0,A INCR0 INCA DJNZR7,LP SJMP$ END (3)在lx31文件夹下建立新工程,以文件名lx31存盘(工程的扩展名系统会自动添加)。 (4)在Project菜单的下拉选项中,单击OptionsforTarget‘Target1’,在弹出的窗口中要完成一下设置: eq\o\ac(○,1)单片机芯片选择AT89C51选择完器件,按“确定”后会弹出一个提示信息框,提示“CopyStartupCodetoProjectFolderandAddFiletoProject?”,选择“是”。 eq\o\ac(○,2)晶振频率设为11.0592MHz。 eq\o\ac(○,3)Output标签下的CreateHEXFile前小框中要打钩。 eq\o\ac(○,4)在Debug标签选择UseSimulator(软件模拟)。 (5)在Project菜单的下拉选项中,单击buildTarget选项完成汇编,生成目标文件(.HEX)。利用单步、执行到光标处两种方法运行程序,观察程序运行的结果。 (6)分析程序的功能,研究观察以下指令的寻址方式及其操作效果。 2.示例及相关设置 (1)建立一个文件夹:lx32。 (2)利用菜单File的New选项进入编辑界面,输入下面的源文件,以lx32.asm文件名存盘到lx32文件夹中。 ORG0000H MOVR0,#20H MOVR1,#22H MOVA,@R0 ADDA,@R1 MOV24H,A INCR0 INCR1 MOVA,@R0 ADDCA,@R1 MOV25H,A SJMP$ END (3)在lx32文件夹下建立新工程,以文件名lx32存盘(工程的扩展名系统会自动添加)。 (4)在Project菜单的下拉选项中,单击OptionsforTarget‘Target1’,在弹出的窗口中要完成一下设置: eq\o\ac(○,1)单片机芯片选择AT89C51选择完器件,按“确定”后会弹出一个提示信息框,提示“CopyStartupCodetoProjectFolderandAddFiletoProject?”,选择“是”。 eq\o\ac(○,2)晶振频率设为11.0592MHz。 eq\o\ac(○,3)Output标签下的CreateHEXFile前小框中要打钩。 eq\o\ac(○,4)在Debug标签选择UseSimulator(软件模拟)。 (5)在Project菜单的下拉选项中,单击buildTarget选项完成汇编,生成目标文件(.HEX)。利用单步、执行到光标处两种方法运行程序,观察程序运行的结果。 (6)分析程序的功能,说明指令ADDCA,@R1与ADDA,@R1的异同。 (7)设计小程序,观察以下几组指令的操作效果: ADD、ADDC; AJMP、SJMP; MOV、MOVC; XCD、XCHD、SWAP; ANL、ORL; DJNZ; JZ、JC; RL、RLC等。 (8)设计小程序,研究一下指令,观察堆栈的操作效果: PUSH、POP; ACALL、RET。 三.数据分析 ORG0000H//PC起始地址为0000HMAIN:MOVR7,#16//将立即数16送到寄存器RO中MOVA,#00H//将00送到A中MOVR0,#30H//将30送到R0中LP:MOV@R0,A//将A中的00送到R0表示的地址空间里INCR0//R0加1INCA//A加1DJNZR7,LP//R7减1,若不为0,则执行循环,跳到LP处,否则结束循环SJMP$//程序停留在$处ENDORG0000H//PC起始地址为0000HMOVRO,#20H//将立即数20送到寄存器R0中MOVR1,#22H//将立即数21送到寄存器R1中MOVA,@R0//将R0指的20H单元中的数据复制到累加器A中ADDA,@R1//将R1指的22H单元中的数据与累加器A中的数据相加后送到累加器A中MOV24H,A//将A中的内容传送到24H单元中INCR0//R0加1送到R0中INCR1//R1加1送到R1中MOVA,@R0//将R0所指的地址中的数据复制到A中ADDCA,@R1//