1 / 22
文档名称:

单片机实验报告.docx

格式:docx   大小:20KB   页数:22页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机实验报告.docx

上传人:12345 2022/3/29 文件大小:20 KB

下载得到文件列表

单片机实验报告.docx

相关文档

文档介绍

文档介绍:第一部分软件实验
实验一 熟悉伟福模拟仿真软件的使用

INDEX EQU 20H
SUM EQU 21H
ORG 0000H
START:MOV INDEX,#5 答: 修改A,将相应的位取0即可。

执行前: 2010H 0B 执行后:2010H 0B
2011H 2D 2011H 85
思考题:如何对指定单元内容左移一位?
程序如下:
ORG 0000H
MOV DPTR,#2010H
MOVX A,***@DPTR
RL A
INC DPTR
MOVX ***@DPTR,A
SJMP $
END

执行结果:
执行前:2040H 3A 执行后:2040H 3A
2041H FF 2041H 0A
2042H FF 2042H 03
思考题:执行后,原始数据(2040H的内容)有没有变化?为什么?
答:没有变化,因为程序在进行逻辑运算后都是把结果保存在另外的存储单元中,没有覆盖原来的值。

源程序执行结果:
执行前:2040H 58 执行后:2040H 58
2041H 4A 2041H 4A
2042H 3D 2042H A8
思考题:结果单元2042H中的高4位是哪个单元的低4位,如果要将此单元的低4位放在结果单元的低4位上,结果单元的高4位放另一单元的低4位,请修改程序。
答:结果单元2040H的高4位是2041H单元的低4位。
修改后程序如下:
ORG 0000H
MOV DPTR,#2041H
MOVX A,***@DPTR
ANL A,#0FH
MOV R0,A
MOV DPTR,#2040H
MOVX A,***@DPTR
SWAP A
ANL A,#0F0H
ORL A,R0
INC DPTR
INC DPTR
MOVX ***@DPTR,A
SJMP $
END

实验三 编程实验(一)

实验结果:
X(2100H) Y(2101H)
24 29
19
83 83
结果与设想相符。
循环程序
程序流程图如下:
开始
DPTR 2010
A (***@DPTR)
R1 A
R0 00
DPTR DPTR+1
A (***@DPTR)

=1?

R0 R0+1
R1 R1-1

R1=0?

A R0
DPTR 2100
(***@DPTR) A
结束
执行结果:将初始值设定好后,运算得2100H单元为02,与手算结果相同,改变初值,再次运行,结果依然正确。
子程序调用
实验结果:
PC值的变化:
SP值的变化:
思考题:子程序中PUSH ACC的作用是什么?如果将这条指令去掉,执行程序会出现什么情况?
答:指令PUSH ACC的作用:使得返回时的堆栈指针不变,保证调用完子程序后能够正确返回。如果将这条指令去掉,则程序调用完子程序后返回出错,会跳到别的地方。
查表程序:
问题:验证查找次数是否正确,读懂程序,给程序加上注释。
答:赋初值执行,查找次数正确。程序注释如下:
ORG 0000H
MOV DPTR,#2100H
MOVX A,***@DPTR
MOV B,A ;将2100H单元的值赋给B
MOV R0,#00H ;R0用于计量查找次数,初始化
MOV DPTR,#KYTRL ;赋数据区的起始地址给DPTR
KEY1:CLR A
MOVC A,***@A+DPTR
CLR C ;将C清零,便于A,B的比较