单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17550|回复: 39
打印 上一主题 下一主题
收起左侧

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

  [复制链接]
跳转到指定楼层
楼主
admin 发表于 2013-5-21 03:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  • 单片机数据传递类指令
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中的值为12HDPL中的值为34H。反之,如果我们分别向DPHDPL送数,则结果也一样。如有下面两条指令:MOV DPH#35HMOV DPL#12H。则就相当于执行了MOV DPTR#3512H
数据传递类指令综合练习:

  • 给出每条指令执行后的结果
  • 上机练习:   
    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单元中的值。


  • 进入DOS状态,进入WAVE所在的目录,例D:\WAVE
  • 键入MCS51,出现如下画面
    <单片机数据传递指令>图1
  • File->Open,出现对话框后,在Name处输入一个文件名(见图2),如果是下面列表中已存在的,则打开这个文件,如果不存在这个文件,则新建一个文件(见图3
    图2
  • 在空白处将上面的程序输入。见图4。用ALT+A汇编通过。用F8即可单步执行,在执行过程中注意观察屏幕左边的工作寄存器及A累加器中的值的变化。
    图4

  • 内存中值的变化在此是看不到的,可以用如下方法观察(看图5):将鼠标移到DATA,双击,则光标进入此行,此时可以键盘上的上下光标键上下翻动来观察内存值的变化。本行的最前面DATA后面的数据代表的是“一段”的开始地址,如现在为20H,再看屏幕的最上方,数字从0F,显示两者相加就等于真正的地址值,如现在图上所示的内存20H21H22H23H中的值分别是FBH 0EHE8H30H 图5
    6、当运行完程序后,即进入它的反汇编区,不是我们想要的东西。为了再从头开始,可以用CTRL+F2功能键复位PC值。注意此时不会看到原来的窗口,为看到原来的窗口,请用ALT+4ALT+5等来切换。当然以上操作也可以菜单进行。CTRL+F2是程序复位,用RUN菜单。窗口用WINDOWS菜单。

此次大家就用用熟这个软件吧,说实话,我并不很喜欢它,操作起来不方便,但给我的机器只能上这个,没办法,下次再给网友单独介绍一个好一点的吧。现在最好的是keil 这个软件本站有详细的教程请看:    keil教程  单片机c语言教程

评分

参与人数 5黑币 +24 收起 理由
2019--stop + 4 很给力!
@小黑屋 + 5 绝世好帖!
yida1698 + 5 赞一个!
zwtuestc + 5 很给力!
chen_zhouge + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播 分享分享 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
阿格拉瑞 发表于 2013-5-25 22:03 | 只看该作者

回帖奖励 +1

这是什么软件截的图
回复

使用道具 举报

板凳
莫问纷飞 发表于 2013-5-26 11:19 | 只看该作者
功力太浅,界面都没看懂
回复

使用道具 举报

地板
danpianji889 发表于 2013-8-13 15:24 | 只看该作者
看不懂得,软件在什么地方
回复

使用道具 举报

5#
无效楼层,该帖已经被删除
6#
隆威 发表于 2014-2-7 20:35 | 只看该作者
很难哦  老师
回复

使用道具 举报

7#
jiajun678 发表于 2014-4-4 22:21 | 只看该作者
没太懂
回复

使用道具 举报

8#
雪中梅花 发表于 2014-5-20 08:55 | 只看该作者
谢谢楼主我还用努力学习。
回复

使用道具 举报

9#
93mxt 发表于 2014-7-16 20:42 | 只看该作者
界面都没看懂
回复

使用道具 举报

10#
浅墨画青梅 发表于 2014-8-29 16:13 | 只看该作者
这个是什么意思?
回复

使用道具 举报

11#
耿慈熙 发表于 2014-9-10 12:47 | 只看该作者
努力学习
回复

使用道具 举报

12#
yongxiang6091 发表于 2014-9-10 20:26 | 只看该作者
谢谢楼主分享!!!!
回复

使用道具 举报

13#
yingtn 发表于 2014-9-17 10:23 | 只看该作者
MOV R1,12H 是否是寫錯了,應該是MOV R1,#12H
回复

使用道具 举报

14#
忘川 发表于 2014-12-17 21:15 | 只看该作者
界面是什么
回复

使用道具 举报

15#
山一样的男人 发表于 2015-1-5 17:17 | 只看该作者
为什么我在这个网站上下载的东西下来都是一些乱码啊
回复

使用道具 举报

16#
dimozun 发表于 2015-3-31 15:47 | 只看该作者
功力太浅,界面都没看懂
回复

使用道具 举报

17#
b4082 发表于 2015-4-6 14:13 | 只看该作者
感谢分享!
回复

使用道具 举报

18#
yit1268 发表于 2015-9-1 09:43 | 只看该作者
有点难,看不懂啊
回复

使用道具 举报

19#
黑牛奶 发表于 2016-1-6 10:48 | 只看该作者
16位数输入输出介绍那里:如有下面两条指令:MOV DPH,#35H,MOV DPL,#12H。中的35H打错了吧
回复

使用道具 举报

20#
haquanquan 发表于 2016-3-24 22:18 | 只看该作者
学到了很多,超级感谢楼楼
回复

使用道具 举报

21#
阿小哥 发表于 2016-4-14 14:29 | 只看该作者
请问一下:经MOV12H,#34H后12H单元的值为34H,那接着,MOVR1,12H后,R1的值不是等于12H的值
回复

使用道具 举报

22#
阿小哥 发表于 2016-4-14 14:34 | 只看该作者
请问一下:经MOV12H,#34H后,12H的值等于34H,那接着,MOVR1,12H后,R1的值不是等于12H的值#34吗?为什么等于12H?
回复

使用道具 举报

23#
无效楼层,该帖已经被删除
24#
阿小哥 发表于 2016-4-14 14:54 | 只看该作者
以间接地址为目的操作数的指令看不懂,望老师耐心讲解,辛苦!谢谢!
回复

使用道具 举报

25#
阿小哥 发表于 2016-4-24 00:26 | 只看该作者
快看懂啦!
回复

使用道具 举报

26#
无效楼层,该帖已经被删除
27#
凯撒320 发表于 2016-12-27 12:51 | 只看该作者
给力,学到了!
回复

使用道具 举报

28#
comC 发表于 2017-3-13 15:00 | 只看该作者
9课:单片机数据传递类指令
回复

使用道具 举报

29#
Jhonas 发表于 2017-7-20 09:08 | 只看该作者
上机练习中R1应该等于34H。
回复

使用道具 举报

30#
guysxpf 发表于 2017-8-15 12:30 | 只看该作者
我感觉MOVE R1,12H那句是直接寻址,不是立即寻址,结果应该是34H
回复

使用道具 举报

31#
繁华笙歌 发表于 2017-10-24 11:15 | 只看该作者
新手,不太明白
回复

使用道具 举报

32#
tiance 发表于 2017-10-27 11:07 | 只看该作者
MOV 20H,A
MOV 20H,R1
MOV 20H,30H
MOV 20H,@R1
MOV 20H,#34H


MOV @R0,A
MOV @R1,20H
请问老师这些各是什么意思  是地址还是数据?哪些是地址?详细说一下,还有用keil 可以直接把这些语句写上去编译么?
回复

使用道具 举报

33#
tiance 发表于 2017-10-27 11:15 | 只看该作者
老师,怎么将单片机内部RAM  30H~40H单元的数据一次储存到内部RAM的 60H~70H单元中? 在keil中该怎样写代码?你讲的数据传递课 我不知道那里面是数据还是地址?还有30H~40H可以用循环吧  怎样写?
回复

使用道具 举报

34#
hsyxyz123 发表于 2017-11-23 15:39 | 只看该作者
数据传送指令和微机原理中的基本上都一样呀。
回复

使用道具 举报

35#
liuzclzc 发表于 2018-1-16 20:31 | 只看该作者
这节了解了单片机的十六进制
回复

使用道具 举报

36#
heron 发表于 2018-2-26 20:47 来自手机 | 只看该作者
有一点汇编基础看起来很轻松,也就没详细看。如果没有基础的话,看这些会很头疼吧
回复

使用道具 举报

37#
1261867136qq 发表于 2018-6-12 16:27 | 只看该作者
MOV R7,#22H
MOV R1,12H  

加不加#有啥区别 啊
回复

使用道具 举报

38#
无效楼层,该帖已经被删除
39#
keneng 发表于 2018-6-25 16:29 | 只看该作者
今天学习到这了,明天继续,,,
回复

使用道具 举报

40#
xxd3w 发表于 2018-6-29 07:17 | 只看该作者
谢谢楼主的分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|单片机论坛 |51黑电子论坛技术交流 QQ 管理员QQ:125739409;技术交流QQ群636986012

Powered by 单片机教程网

快速回复 返回顶部 返回列表