【手把手教程】keil5 c51使用汇编将数据从片外传输至片内RAM

您所在的位置:网站首页 keil单片机存储结构操作实验 【手把手教程】keil5 c51使用汇编将数据从片外传输至片内RAM

【手把手教程】keil5 c51使用汇编将数据从片外传输至片内RAM

2024-07-07 01:05| 来源: 网络整理| 查看: 265

目录 Intro快速上手参考资料

Intro

本片文章将介绍如何使用汇编将片外数据传到片内,并使用debug展示数据在register中的流转。我们将以将片外2010H ~ 201FH单元的内容设置为 40H~4FH ,然后将 2010H ~ 201FH单元中的内容送到片内50H ~ 5FH单元中 如下图所示,下面进行此示例的讲解。

在这里插入图片描述

图为demo示意图 快速上手 环境配置

首先你需要确保自己安装好了keil5的环境,并知道如何创建一个简单的项目,使用汇编编写代码,这里可以参考- 51单片机数据传送——片内到片外(汇编语言实现) -csdn

代码编写

在你知道如何创建环境之后,就可以开始编写相关的汇编代码了,在这里我们默认你已经掌握了常用的几种简单的汇编指令,如MOV执行,DJNZ循环等指令,这里可以参考51单片机汇编语言指令汇总 -csdn

最后实现如下所示:

ORG 0000H MOV DPTR,#2010H ;外部RAM地址 MOV A,#40H ;初值送入累加器A MOV R2,#10H ;循环次数 LOOP1: MOVX @DPTR,A ;将累加器A中的数送入外部RAM INC DPTR ;外部地址自增1 INC A ;累加器A中的数自增1 DJNZ R2,LOOP1 ;循环,R2减1不等于0,则继续,否则结束循环 MOV DPTR,#2010H ;外部RAM地址 MOV R1,#50H ;内部RAM地址 MOV R3,#10H ;循环次数 LOOP2: MOVX A,@DPTR ;外部RAM传送到累加器A MOV @R1,A ;累加器A传送到内部RAM INC DPTR ;外部地址自增1 INC R1 ;内部地址自增1 DJNZ R3,LOOP2 ;循环,R3减1不等于0,则继续,否则结束循环 END 程序调试

在调试过程中,如果想要看到数据及其流转,可以在打开debug之后,开启一个memory窗口,并在memory窗口输入“x:2010H”即可查看片外数据存储器从2010H开头往后的地址对应的数据。

现在我们通过debug来展示数据的流转,数据是由一个循环代码段放入片外的,所以在最开始程序未执行的时候,片外和片内memory都是空的,如下图所示。 在这里插入图片描述 接下来设置一个断点,使得程序在第一个循环这里停下。 在这里插入图片描述 此时已经通过第一个循环就把数据写入片外了,这就是我们的数据源,如下图所示。在这里插入图片描述

运行后的结果 同样通过debug,我们可以在debug的时候在memory窗口用“i:50H”来查看以50H地址往后的片内数据存储器的内容。 在这里插入图片描述 参考资料 Keil 5的第一个汇编程序C51(包括Debug)51单片机数据传送——片内到片外(汇编语言实现)51单片机Proteus仿真+Keil工程-实验6-单片机扩展RAM6264实验51单片机数据传送——片内到片外(汇编语言实现) -csdn


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3