教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

哈工大单片机实验报告(上传)(2)

来源:网络收集 时间:2026-09-08
导读: 实验四 数据区传送子程序 一、实验目的 掌握RAM中的数据操作。 二、实验内容 把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。 三、程序框图 四、实验过程 实验要求将一段内存中数据移动到另一段内存

实验四 数据区传送子程序

一、实验目的

掌握RAM中的数据操作。

二、实验内容

把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。

三、程序框图

四、实验过程

实验要求将一段内存中数据移动到另一段内存中,本次实验通过寄存器内容截图显示,是把0000H单元开始20H个字节的内容送到1000H开始的连续数据单元中。先把初始地址分别放入源地址寄存器和目的地址寄存器,然后利用一组寄存器作为需转移数据区长度计数器,开始数据转移循环。每进行一次转移地址寄存器向下加一,计数寄存器内容减一,计数寄存器内容为0退出循环移动结束。由于计数以及地址寄存器是由两个八位寄存器组成,需要在加一减一时对其高字节和低字节进行判断。加一时若低字节加一变为0,则高字节加一,否则低字节加一高字节不变。减一时若低字节已是0则高字节减一,同时低字节变为0FFH,否则低字节减一高字节不变。

五、实验结果及分析

寄存器内容 源内存段中内容

-5-

目的内存段中移动前内容 目的内存段中移动后内容

【问题回答】如图R4、R5定义的目的地址单元中转移之前为随机数,转移后内容与以R2、R3开始的的源地址单元中20个字节内容相同,即实现了数据的传送。

六、实验源程序

ORG 0000H AJMP MAIN ORG 07B0H MAIN: MOV R7, #20H MOV R6, #00H MOV R2, #00H MOV R3, #00H MOV R4, #10H MOV R5, #00H LOOP: MOV DPL,R3 MOV DPH, R2 MOVX A, @DPTR MOV DPL, R5 MOV DPH, R4 MOVX @DPTR, A CJNE R3, #0FFH, LOOP1 INC R2 LOOP1: INC R3

CJNE R5, #0FFH, LOOP2 INC R4 LOOP2: INC R5

CJNE R7, #00H, LOOP3 CJNE R6, #00H, LOOP4 SJMP $ LOOP3: DEC R7 SJMP LOOP LOOP4: DEC R6 DEC R7 SJMP LOOP

-6-

SJMP $ END

实验六 查找相同数个数

一、实验目的

熟悉汇编语言编程。

二、实验内容

在2000~200Fh中查出有几个字节是零,把个数放在2100h中。

三、程序框图

四、实验过程

实验中利用R0放置需查找段长度,即从2000H单元开始,每次检查完一个单元R0减一,指针下移,直到R0等于0结束循环。R1存放等于零数据的个数,程序中利用等于零跳转指令JZ,实现找到0则R1加一计数的功能。循环终止后,将R1内容存入2100H中即可。

五、实验结果及分析

2000H到200FH中的内容

2100H显示找6个0

【问题回答】若需查找0FFH,只需将语句JZ LOOP1改为CJNZ R0, #0FFH, LOOP1即可,即数据等于0FFH时跳转到计数+1的程序段进行计数。

六、实验源程序

ORG 0000H

LJMP MAIN

-7-

ORG 0AA0H

MAIN: MOV DPL, #00H

MOV DPH, #20H MOV R0, #10H MOV R1, #00H

LOOP: MOVX A, @DPTR JZ LOOP1

DEC R0 INC DPTR SJMP LOOP2

LOOP1: INC R1

DEC R0 INC DPTR

LOOP2: CJNE R0, #00H, LOOP

MOV DPL, #00H MOV DPH, #21H MOV A, R1 MOVX @DPTR, A

SJMP $ END

实验七 无符号双字节快速乘法子程序

一、实验目的

掌握MCS-51汇编语言程序设计方法。

二、实验内容

将(R2 R3)和(R6 R7)中双字节无符号整数相乘,乘积送R4 R5 R6 R7中。

三、程序框图

-8-

四、实验过程

本程序是利用单字节的乘法指令MUL,根据下面的公式实现双字节数的乘法。

(R2 R3)×(R6 R7)

= ((R2)×28+(R3))×((R6)×28+(R7))

= (R2)×(R6)×216+(R2)×(R7)+(R3)×(R6)×28+(R3)*(R7)

将乘数与被乘数高低字节拆开分别相乘,然后再将每个高字节因子向前移动8位进行调整,进行加权求和。利用ADDC语句可实现带进位的加法运算。得到的最终结果存入R4、R5、R6、R7寄存器中。

五、实验结果及分析

相乘后寄存器内容

Answer:寄存器R2、R3、R6、R7分别输入01、10、11、10,运行程序,即进行0110H×1110H的运算,得到结果为00122100H存放在R4、R5、R6、R7寄存器中,故R4、R6中的内容是00H和21H。

六、实验源程序

ORG 0000H

LJMP MAIN ORG 0970H

MAIN: MOV R2, #01H MOV R3, #10H MOV R6, #11H MOV R7, #10H MOV A, R3 MOV B, R7 MUL AB XCH A, R7 MOV R5, B

-9-

…… 此处隐藏:402字,全部文档内容请下载后查看。喜欢就下载吧 ……
哈工大单片机实验报告(上传)(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/445188.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)