单片机 数据块传送 软件实验3.docx
- 文档编号:14264268
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:23
- 大小:1.19MB
单片机 数据块传送 软件实验3.docx
《单片机 数据块传送 软件实验3.docx》由会员分享,可在线阅读,更多相关《单片机 数据块传送 软件实验3.docx(23页珍藏版)》请在冰点文库上搜索。
单片机数据块传送软件实验3
实验二数传指令和算数运算指令编程设计
一、实验目的
1.掌握数据块的传送操作和算术运算指令的应用。
2.进一步掌握汇编语言设计和调试方法。
3.掌握观察窗口的使用方法。
4.学会给存储单元赋初值的方法。
二、实验内容
1.数据区传送
(1)把内部RAM40H~4FH置初值0A0H~0AFH;
(2)而后把40H~4FH内容传送到外部RAM9800H~980FH中;
(3)再把9800H~980FH内容传送到50H~5FH中。
2.多字节十进制加法
加数放在30H开始的单元中(最低位放在30H,按从小到大的顺序存放),被加数和结果存放在20H开始的单元(最低位在20H中),字节数放在2FH中,最高进位位放在位地址7FH单元中。
三、实验步骤
1.分别用单步和连续运行方式,调试上述两个程序;
2.在执行第二个程序之前,给被加数和加数单元赋初值;
3.在观察窗口中观察结果。
四、实验程序清单
1.数据块传送程序:
命令行
命令结果
备注
MAIN
MOVR0,#40H
MOVR2,#10H
MOVA,#0A0H
A1
MOV@R0,A
INCR0
INCA
DJNZR2,A1
循环判定命令,重复执行A1共R2次,,DPTR指针递增,PC指针循环0x0006---0x0009
MOVR0,#40H
MOVDPTR,#9800H
MOVR2,#10H
A2
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR2,A2
循环判定命令,重复执行A2共R2次,DPTR指针递增,PC指针循环0x0012---0x0016
MOVR0,#50H
MOVDPTR,#9800H
MOVR2,#10H
A3
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
DJNZR2,A3
循环判定命令,重复执行A3共R2次,DPTR指针递增,PC指针循环0x001F---0x0023
2.多字节十进制加法:
初始赋值:
20H
21H
22H
23H
24H
41
25
50
24
37
30H
31H
32H
33H
34H
23
27
13
12
40
命令行
命令结果
MAIN
MOVR0,#30H
MOVR1,#20H
MOV2FH,#04H
CLRC
DA1
MOVA,@R0
ADDCA,@R1
DAA
没有进位,因此调整命令没有引起变化
MOV@R1,A
INCR0
INCR1
DJNZ2FH,DA1
循环判定命令,PC指针循环0x0008---0x0011
MOV7FH,C
五、思考题
1若两个数据块都在外部数据存储器中,如何实现数据块的传送?
答:
选择R0和DPTR两个指针,用MOVX命令经过A累加器进行数据块传输。
2在调试第一个程序时,若不用程序给40H~4FH赋初值,而用键盘在CPUDATA区给40H~4FH单元预赋初值,如何做?
答:
在存储器窗口d:
0x00处键入d:
0x40然后键入所需要的初值。
3若把第二个程序改为无符号数的减法,怎样修改程序?
答:
将ADDC命令改为SUBB命令,去掉DA命令行
4在第二个程序中,若两数的和存放到从40H开始的单元,如何修改程序?
答:
ORG0000H
MAIN:
MOVR0,#30H
MOVR1,#20H
MOVR3,#40H
MOV2FH,#04H
CLRC
DA1:
MOVA,@R0
ADDCA,@R1
DAA
MOV@R3,A
INCR0
INCR1
INCR3
DJNZ2FH,DA1
MOV7FH,C
SJMP$
END
程序修改处如绿字
v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 数据块传送 软件实验3 数据 传送 软件 实验