当前位置:文档之家› 微处理器实验报告1

微处理器实验报告1

POPACC;SP=60HA=33H
MOV@R1,A;(40H)=33H
NOP
SJMP$
END
3)选择Project下的Rebuild all target files对工程文件进行汇编和连接,如果出错,系统会提示出错并指出出错地方和出错类型,请按照提示返回程序进行修改,直到系统提示0 warnings,0 errors,表明程序没有语法错误,成功完成了汇编过程,就可以进行动态调试了。
4)选择Project下的Options for target ‘Target1’进行动态调试的参数设置,点击debug,再点击Use Simulator,最后点击完成。
5)对程序进行动态调试,学会查看和修改相关寄存器(左边的register窗)、内部和外部存储器的内容。常用的工具条上的命令有开始/暂停动态调试 ,单步执行 或 ,执行到光标处 等。查看存储器内容的方式是在存储区(View/memory窗)的地址栏内写上要查看的初始地址就可以了。比如看内部存储器用D:0000H,程序存储器用C:0000H,外部存储器用X:0000H。将每行程序执行后的结果写到该行程序的注释部分。
2、编写一个数据填充和数据块搬移程序。仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,查看和验证数据区的内容是否正确。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVR0,#30H; R0指向30H单元
MOVR2,#16; R2作循环计数器
NEXT1:MOV@R0,#'*';填充当前单元
MOVA,@R0;A=33H
PUSHACC;SP=61H(61H)=33H;PUSH为SP→(SP)+1,(SP)←MOVA,@R1;A=44H ACC
PUSHACC;SP=62H(62H)=44H
NOP
POPACC;SP=61HA=44H;把44H送进SP=62中,然后再把SP减1
MOV@R0,A;(30H)=44H
二、实验仪器
PC机一台
三、实验内容与分析
1、编写程序,完成内存中两个字节内容的交换。
1)建立工程文件。双击桌面的Keil快捷图标,进入Keil集成开发环境。点击工具栏的Project选项,在弹出的下拉菜单中选择New Project命令,建立一个新的µVision2工程,为工程取一个名字,并选择将要使用的器件的型号(Philips公司的P80/P87C52X2 CPU)。
MOVX@DPTR,A
INCR1
INCDPTR
DJNZR3,NEXT2
SJMP$
END
3、编写一个多字节的算术运算程序。仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,将运行结果写到程序的注释部分。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVSP,#60H
MOVR1,#12H
电子科技大学中山学院学生实验报告
院别:电子信息学院课程名称:微处理器实验
班级:10电信A姓名:陈水船学号:2010010302042
实验名称:集成开发环境的熟悉与程序设计练习实验时间:
成绩:教师签名:石建国批改时间:
一、实验原理与目的
目的:
1熟悉Keil C51集成开发环境的使用方法;
2熟悉Keil C51集成开发环境仿真条件下调试功能的使用;
ADDCA,R3;高8位相加R1和R3两个高字节相加,并加上来自低字节
MOVR5,A的进位CY,并存入R5
MOVA,#0
ADDCA,#0
MOVR6,A
NOP
;下面是乘法运算
NOP
MOVAOVR4,A
MOVR5,B
MOVA,R1
MOVB,R2
MULAB
ADDA,R5
MOVR5,A
ORG0000H
LJMPMAIN
ORG0100H
MAIN:MOVSP,#60H;SP=60H
MOVR0,#30H;R0=30H
MOVR1,#40H;R1=40H;SP,R0,R1为立即寻址,由程序可直接得出
MOV@R0,#55H;(30H)=55H;指令MOV @Ri,#data为data值赋值给Ri
INCR0;指针下移一个单元
DJNZR2,NEXT1;未填完16个单元,继续
;把30H赋给R0,R2作为计数器,循环赋值把30H到3FH上的值填充‘*’。
;以下程序将30H开始的16个字节内容送到100H开始的外部存储器中
MOVR1,#30H
MOVDPTR,#0100H
MOVR3,#10H
NEXT2:MOVA,@R1
MOVR0,#34H;R1R0=1234H;指令MOV Rn,#data,实现(data)→Rn
MOVR2,#21H
MOVR3,#0EFH;R3R2=EF21H;分别把各地址送入R1,R0,R2,R3中
MOVA,R0
ADDA,R2;低8位相加R0和R2两个低字节相加,并存到R4
MOVR4,A;
MOVA,R1
MOV@R1,#0AAH;(40H)=AAH
MOVA,@R1;A=AAH;指令MOV A,@Ri,即Ri→A
XCHA,@R0;A=55H(30H)=AAH;引入中间变量,实现R0,R1互换
XCHA,@R1;A=AAH(40H)=55H
;下面是另一种方法
MOV@R0,#33H;(30H)=33H
MOV@R1,#44H;(40H)=44H
3学会程序存储器、寄存器、片上存储器、片外存储器内容的查看和修改。
原理:
Keil集成开发环境为我们提供了强大的学习、调试和开发工具。我们可以利用这套工具在计算机上直接进行汇编语言的编辑、连接和调试。
在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过修改相关寄存器和存储器的内容来改变程序,再执行,来修改和验证程序。
2)编写程序,加入到刚才建立工程文件中。在File下采用New命令,建立新文件,送入程序内容,并保存为ASM类型文件。在Project Windos窗口内,选中Source Group1后点击鼠标右键,在弹出的快捷菜单中选择Add files to Group “Source Group1”(向工程中添加源程序文件)命令,选择刚才创建单击Add命令即可把源程序文件添加到项目中。
MOVA,B
ADDCA,#00H ;将高位字节与进位相加,送到R6中,实现了数据的低位字节
MOVR6,A乘于两字节数据
NOP
MOVA,R0
MOVB,R3
MULAB
ADDA,R5
MOVR5,A
MOVA,B
ADDCA,R6
MOVR6,A
MOVA,R1
MOVB,R3
MULAB
ADDA,R6
MOVR6,A
MOVA,B
ADDCA,#00H
MOVR7,A;R7R6R5R4=1100E4B4H
SJMP$
END
四、实验心得
相关主题