搜索
当前位置: 三分彩网站 > 端点编码 >

单片机延时汇编语言计算方法

gecimao 发表于 2019-06-07 00:36 | 查看: | 回复:

  10ms的程序(用的是12MHz晶振的 MCS-51),可以编写下面的程序来实现:

  这个延时程序共有七条指令,现在就每一条指令执行的次数和所耗时间进行分析:

  第一条, MOV R5,#5 在整个程序中只执行一次,且为单周期指令,所以耗时1s,

  第二条, MOV R6,#4 看⑥的指令可知,只要R5-1不为0,就会返回执行这条指令,共执行了R5次,共耗时5s,

  第三条, MOV R7,#248 同第二条类似,只要R6-1不为0,就会返回执行这条指令,同时受到外部循环R5的控制,共耗时R5*R6*1=20s,

  第四条, DJNZ R7,$ 只要R7-1不为0,就执行这条指令,同时受到外部循环的控制,由于该指令是双周期指令,共耗时为R7*R6*R5*2=9920s,

  第五条, DJNZ R6,D2 只要R6-1不为0,就反复执行此条指令(内循环R6次),又受外循环R7的控制,共耗时R6*R5*2=40s,

  第六条, DJNZ R5,D1 只要R5-1不为0,就反复执行此条指令,耗时为R5*2=10s,

  我们也要考虑在调用子程序时用到LCALL指令,耗时2s,最后可以得到总的延时为:1+5+20+9920+40+10+2=9998s=10ms

  延时总时间=[(2*一层循环次数+3)*二层循环次数+3]*三层循环次数+3

本文链接:http://dogayoga.net/duandianbianma/394.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部