9课:单片机数据传递类指令

2020-03-10来源: eefocus关键字:单片机  数据传递类指令  直接地址
  1. 单片机数据传递类指令


(3)以直接地址为目的操作数的指令

MOV direct,A 例: MOV 20H,A

MOV direct,Rn MOV 20H,R1

MOV direct1,direct2 MOV 20H,30H

MOV direct,@Ri MOV 20H,@R1

MOV direct,#data MOV 20H,#34H

(4)以间接地址为目的操作数的指令

MOV @Ri,A 例:MOV @R0,A

MOV @Ri,direct MOV @R1,20H

MOV @Ri,#data MOV @R0,#34H

(5)十六位数的传递指令

MOV DPTR,#data16

8051是一种8位机,这是唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H,则执行完了之后DPH中的值为12H,DPL中的值为34H。反之,如果我们分别向DPH,DPL送数,则结果也一样。如有下面两条指令:MOV DPH,#35H,MOV DPL,#12H。则就相当于执行了MOV DPTR,#3512H。

数据传递类指令综合练习:


  1. 给出每条指令执行后的结果


  2. 上机练习:


    MOV 23H,#30H

    MOV 12H,#34H

    MOV R0,#23H

    MOV R7,#22H

    MOV R1,12H

    MOV A,@R0

    MOV 34H,@R1

    (23h)=30h

    (12h)=34h

    (R0)=23H

    (R7)=22H

    (R1)=12H

    (A)=30H

    (34H)=34H

    MOV 45H,34H

    MOV DPTR,#6712H

    MOV 12H,DPH

    MOV R0,DPL

    MOV A,@R0

    (45H)=34H

    (DPTR)=6712H

    (12H)=67H

    (R0)=12H

    (A)=67H

    说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。



  1. 进入DOS状态,进入WAVE所在的目录,例D:WAVE



  2. 键入MCS51,出现如下画面


    <单片机数据传递指令>图1


  3. 按File->Open,出现对话框后,在Name处输入一个文件名(见图2),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个文件(见图3)


    图2


  4. 在空白处将上面的程序输入。见图4。用ALT+A汇编通过。用F8即可单步执行,在执行过程中注意观察屏幕左边的工作寄存器及A累加器中的值的变化。


    图4


  5. 内存中值的变化在此是看不到的,可以用如下方法观察(看图5):将鼠标移到DATA,双击,则光标进入此行,此时可以键盘上的上下光标键上下翻动来观察内存值的变化。本行的最前面DATA后面的数据代表的是“一段”的开始地址,如现在为20H,再看屏幕的最上方,数字从0到F,显示两者相加就等于真正的地址值,如现在图上所示的内存20H、21H、22H、23H中的值分别是FBH 、0EH、E8H、30H。



    图5

    6、当运行完程序后,即进入它的反汇编区,不是我们想要的东西。为了再从头开始,可以用CTRL+F2功能键复位PC值。注意此时不会看到原来的窗口,为看到原来的窗口,请用ALT+4或ALT+5等来切换。当然以上操作也可以菜单进行。CTRL+F2是程序复位,用RUN菜单。窗口用WINDOWS菜单。


关键字:单片机  数据传递类指令  直接地址 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic491078.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:8课:单片机寻址方式与指令系统
下一篇:10课:单片机数据传送类指令

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430单片机写Info Memory
MSP430F5438A单片机在写Info Memory时,需要先把整页数据擦除,才能写进去。否则写失败。而且还得设置下载程序时不要擦除 Info memory, 否则存储数据失败。因为没此下载时都给你擦除了。
发表于 2020-05-08
MSP430单片机写Info Memory
51单片机实验8:led点阵(1):点亮一个点
开发板led点阵模块电路图如下:74HC595:74HC595是一个8位串行输入、并行输出的位移缓存器。芯片第11角为数据输入时钟线,上升沿有效。芯片第12脚为输出存储器锁存时钟线,上升沿有效。芯片第13脚为输出有效(低电平)。芯片第14脚为串行数据输入。为表示出输入74HC595的8位二进制数,开发板加入了led模块(图一中绿色所示)。若要使led发光,则需将JP595接vcc。OE为输出有效控制端,低电平有效,所以务必将JOE短接片短接到GND端。_nop_();函数为延时一个机器周期,所对应头文件为intrins.h#include<reg52.h>#include<intrins.h>#define
发表于 2020-05-08
51单片机实验8:led点阵(1):点亮一个点
51 单片机:在 P0 口接上 8 个 LED,实现每次亮两个灯的流水灯
要求:每次亮相邻两个灯,分别闪烁五次后,移动一位,汇编。做而论道编程如下:;------------------------    ORG   0000H    LJMP  MAIN    ORG   0100HMAIN:    MOV   R2, #0FCH    MOV   A, #1;------------------------LOOP:    MOV   P0, R2   ;
发表于 2020-05-08
51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)
}}void main(){while(1){key();}}四、运行程序后成功后,打开proteus右键单击单片机AT89C51,找到编辑,然后添加hex文件
发表于 2020-05-08
51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)
单片机实例---定时器控制点阵显示0~9
显示状态:点阵上每隔1s显示一个数字,显示到9又重头显示不断循环#include<reg52.h>#include<intrins.h> typedef unsigned int u16;typedef unsigned char u8; u8 flag=0;   //时间标志位 #define lie_io P0    //定义P0端口 sbit RCLKK = P3^5;    sbit SRCLK = P3^6;sbit SER = P3^4;   //串行输入 u
发表于 2020-05-08
51单片机课程设计——led点阵广告牌程序设计
上学期期末的课设题目是led点阵广告牌,当时的要求如下:(1)能够显示不同字符的LED点阵广告牌;(2)按键切换不同的显示效果(如闪烁,静止,平移等);(3)按键切换不同的显示内容;(4)能够显示图形或自定义字符;(5)其他功能(创新部分);(6)系统调试、分析、总结与功能实现。当时用的是我用是的普中科技的STC90C51RD+的单片机,不过只要是51单片机,换哪个51内核的芯片都可以,只要电路和程序匹配就可以。我用的那款普中科技的51单片机可以直接连线决定线路的布置,不需要自己去重新焊一个电路板。然后我根据任务要求连接了电路,写了对应的程序,还有proteus仿真。另外,觉得有趣可以点个赞;有什么有趣的想法可以评论一下,我感兴趣
发表于 2020-05-08
51单片机课程设计——led点阵广告牌程序设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved