单片机汇编语言实验教程(1).
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由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窗口双击Target1及Suorce Group1,将你的目标系统一直展开到看到源文件组,如图1(a所示。右击Suorce Group1,出现Add files选项, 选择它可打开一个标准的文件对话框,从对话框中选择你刚刚生成的文件dpj1.asm 。
(a
(b
图1Suorce Group1中的文件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中的数移入累加器MOV43H,22H;把地址22H
中的数移入地址43H中MOV02H,C;把Cy中的数移入位地址02H
中MOV42H,#18H;把立即数18移入地址42H中MOV0 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 MOV34H,
@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