内容发布更新时间 : 2025/1/9 18:45:41星期一 下面是文章的全部内容请认真阅读。
本文由zaoangy贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。
实验一 熟悉 MCS-51 寻址方式及传送类指令
一.实验目的: 1. 熟悉 uVision2 集成调试环境 2. 熟悉 MCS-51 寻址方式及 传送类指令 二.uVision2 集成调试环境的使用 uVision2 是德国 Keil Software 公 司用于多种嵌入式微处理器的一个理想、 快速、 可靠的 程序调试器。此调试器包含 一个高速模拟器,能够让你模拟整个 8051 系统,包括片上外围 ... .. 器件和 外部硬件。 1.创建项目 uVision2 是以项目来管理你的任务,它可以使你的 8051 应用系统设计变得简单。要创 建一个应用,你需要按下列步骤进行操作: ①第一次 使用,首先为我们编写的实验程序在 D 盘上新建一个文件夹 D:\\单片机实验; ②启 动 uVision2,新建一个项目文件并从器件库中选择一个器件,操作步骤如下: 直接 在桌面上点击 uVision2 程序图标就可以启动它。要新建一个项目文件,从 uVision 2 的 Project 菜单中选择 New Project,这将打开一个标准的 Windows 对话框,此 对话框要求你输入项目文件名,例如为实验一新建项目:D:\\单片机实验\\ex1.vu2。 紧接着,Select Device for Target,即为你的项目选择一个 CPU。我们选择 Gene ric 下的 8032。 2.新建一个源文件 你可以用菜单选项 File-New 来新建一个源文 件。这将打开一个空的编辑窗口让你输入 你的源代码。编辑后,我们把我们的实验程 序保存为 D:\\单片机实验\\dpj1.asm。 3. 将你的源文件加入到你的项目中 在你的 P roject Workspace 窗口双击 Target 1 及 Suorce Group 1,将你的目标系统一直展开 到看到源文件组,如图 1(a所示。右击 Suorce Group 1,出现 Add files 选项, 选择它可打开 一个标准的文件对话框,从对话框中选择你刚刚生成的文件 dpj1.asm 。
(a (b
图1 Suorce Group 1 中的文件 STARTUP.A51 是大多数不同的 8051CPU 准备的 启动代码。 我 们暂且先不用它,用右键点击删除它(Remove File ?STARTUP.ASM? 。 现在你的项目中只包含一个源文件:dpj1.asm,如图 1(b。 4.编译(或汇 编你的源程序 依次点击 Project、Build Target 即可编译(或汇编你的源程序 (留意一下,在工具栏 上可找到相应快捷按钮 。
在下面的输出窗口 Output Window(如图 2可看到编译(汇编的结果,应该 没有错 误才可继续下面实验。否则修改你的源程序,直到没有错误为止。
如图 2 4.调试你的程序 依次点击 Debug,Start/Stop Debug Session 进入调 试模式(也可利用快捷按钮,并且 如再按一次该按钮,则又切回到程序编辑状态 。 你现在就可以采用指令单步、函数单步、运行到光标处行、连续运行等命令调试你的 程 序(这些命令在 Debug 下 Step、Step over,Run to Cursor line、Go。也可利 用快捷按钮 。 你也可以设置断点后,连续执行程序进行调试。如程序运行到中间 想从头再来,只要按 RST 按钮即可。 常用调试快捷按钮 符号 Rst 说明 复位 连续 运行 指令单步 函数单步 Go Step into Step over Run to Cursor line 运行到光标 处行 Start/Stop Debug Session 调试模式/ 编辑模式 切换
5.存储器、寄存器的查看、修改 在调试程序时,经常需要查看存储器内容,你 可以查看 80C52 内的 4 个存储器逻辑空 间的任一个。 在调试模式下,依次点击 V iew,Memory Window,你可以看到包含 4 个存储器空间的窗 口,你在第一个存储器空 间的 Address 栏内输入 C:0,即可看到从 0000H 开始的一段程序存 储内容;你也可 以在其它 Address 栏内分别填入 X:0、D:0、I:0 就可以查看外部数据存储器 空间、 直接寻址的片内存储空间(包括片内 00-7FH 的 RAM,及 80H-0FFH 的 SFR 、间接 寻址 的片内存储空间(包括片内 00-7FH 的 RAM,及 8032 的 80H-0FFH 的数据 RAM 。 如要修改 Memory Window 内存储单元内容,可用鼠标右键点击选定存储单元, 根据提 示即可修改。 在 Project Workspace 窗口,你还可以看到 8031 的所
有寄存 器,这对调试程序也很重 要。 如要查看单片机的外围部件,像端口 P0-P3,定时器 T0、T1 等,可点击 Peripherals。 三.传送类指令练习 MCS-51 单片机的存储空间 如表所示:
数据空间 片内/ 片内 片外 寻址 方式 空间 范围 表示 方法 RAM 直接 间接 00-7FH DATA 片内 SFR 直接 寻址 80-FFH SFR RAM 间接 寻址 80H-FFH IDATA 片外 RAM 间接 寻址 0000-FFFFH XDATA 片内 ROM 间接 寻址 0000-0FFFH CODE
程序空间 片外 ROM 间接 寻址 0000-0FFFH CODE ROM 间接 寻址 1000H-0FFFF H CODE
1.直接寻址只能在DATA 区和SFR 中进行,如下例 MOV A, 03H ; 把地址03H 中 的数移入累加器 MOV 43H, 22H ; 把地址22H 中的数移入地址43H 中 MOV 02H, C ; 把Cy中的数移入位地址02H 中 MOV 42H, #18H ; 把立即数18 移入地址42H 中 MOV 0 9H, P1 ; 把端口1中的数移入地址09H 中 2.间接寻址要使用DPTR,PC ,R0, R1 寄 存器作为指针访问各存储器。可访问的空 间为CODE、IDATA、XDATA存储区,对DATA 存储区也可进行间接寻址。只能用直接寻 址方式对位地址进行寻址。 DATA和IDATA 区寻址: MOV R1, #22H ; 设置R1 为指向DATA 区内的地址22H 的指针 MOV R0, #0A9 H ; 设置R0 为指向IDATA 区内的地址0A9H 的指针 MOV A, @R1 ; 读入地址22H 的数 据 MOV @R0, A ; 将累加器中的数据写入地址A9H INC R0 ; RO 中的地址变为AAH IN C R1 ; R1 中的地址变为23H MOV 34H, @R0 ; 将地址AAH 中的数据写入34H MOV @R1 , #67H ; 把立即数写入地址23H XDATA 区寻址: MOV DPTR, #3048H ; DPTR 指向外部 存储区 MOVX A, @DPTR ; 读入外部存储区地址3048H 中的数 INC DPTR ; 指针加一 MOV A, #26H ; 立即数26H 写入A 中 MOVX @DPTR, A ; 将26H 写入外部存储区地址3 049H 中 MOV R0, #87H ; R0 指向外部存储区地址87H MOVX A, @R0 ; 将外部存储区 地址87H