7224|7

25

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

教你认识单片机汇编语言写的延迟函数意义 [复制链接]

首先我们要温习下:51单片机内有R0-R7,8个通用寄存器。
         1秒=1000毫妙       1S=1000ms
         1毫妙=1000微妙     1ms=1000us


DELAY:         MOV R5,#20 ;                     延时子程序,延时0.2秒
D1:         MOV R6,#20           寄存器R6装入20      消耗的时间为:2个机器周期               
D2:         MOV R7,#248           寄存器R7装入248,   消耗的时间为:2个机器周期       
        DJNZ R7,$                                 寄存器R7自减一,如果不为0继续执行,减到0后执行下一行程序,由上一行可知R7被装入了248,那么就要减248次才能为0.那么消耗的时间为:2个机器周期*248次=496机器周期                       
        DJNZ R6,D2           将标号D2处的结果减R6,即20次 消耗的时间为:2个机器周期
总共就是2+2+2*248=500毫秒*20=10000微秒加上本次2个机器周期=10002微秒                               
        DJNZ R5,D1          将D1处的结果自减R5即20次,上面得D1处为10.002毫秒,20*10.002=200.04毫秒=0.2S                               
        RET                 RET是子程序的返回指令


只是适合初学汇编的看下,如有不对的地方,请多多指教,献丑了。我也是刚学,才起步,花了一天的时间才把这么个延迟子函数弄明白,书籍都没有这么详细说明,一笔带过,注释也是寥寥无几,我这里写出来只是希望对初学者有帮助,少走弯路,其实汇编并不是想象中的那么难。
此帖出自单片机论坛

最新回复

R6是通用寄存器  详情 回复 发表于 2011-1-19 15:48

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 

Re: <a href=

帮顶
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 

回复

64

帖子

0

TA的资源

纯净的硅(初级)

板凳
 
虽然看不懂汇编,但还是顶一下
此帖出自单片机论坛
 
 
 

回复

31

帖子

0

TA的资源

纯净的硅(初级)

4
 
我也是初学者,顶一下!
此帖出自单片机论坛
 
 
 

回复

1715

帖子

0

TA的资源

裸片初长成(中级)

5
 
楼主的精神很好啊,自己学会了不忘给大家分享。赞一个。
延时多久还要看你的晶振频率啊。楼主这个也要和初学者说一下啊。
有的地方如果给新手看的话,感觉楼主应该在通俗一点的表达,当学的时候很多人都感觉很吃力的。
再一次赞一个。
此帖出自单片机论坛
 
 
 

回复

1715

帖子

0

TA的资源

裸片初长成(中级)

6
 
又打错字了。。。最近总是手误。。。
是刚学的时候很多人都会感觉有点吃力。
此帖出自单片机论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

7
 
MOV R6,#20 寄存器R6装入20 消耗的时间为:2个机器周期
你这个我也看不懂
我们老师教我们是说MOV 后面那个立即数是代入到前面的R6里的,你怎么是从寄存器代入20的呢?汗
还有机器周期和秒有什么关系呢?
此帖出自单片机论坛
 
 
 

回复

2

帖子

0

TA的资源

禁止发言

8
 

回复 7楼 咬死萝卜的兔子 的帖子

R6是通用寄存器
此帖出自单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表