有关汇编程序延时计算的问题,请教各位高人:

先看一下这样一段常见的延时程序:YANSHI:;延时子程序1,精确延时882微秒MOVR4,#20D1:MOVR5,#20DJNZR5,$DJNZR4,D1RET已知晶振... 先看一下这样一段常见的延时程序:
YANSHI: ;延时子程序1,精确延时882微秒
MOV R4,#20
D1: MOV R5,#20
DJNZ R5,$
DJNZ R4,D1
RET
已知晶振12M,执行一次DJZN操作为2μs,延时时间是(20×20)次×2μs/次=800μs,我也知道这样计算时间有误差,是粗略算法。
问题是:精确算法怎么计算的?另外84微秒如何算出来的?
请留下您的详解,感激不尽。
展开
 我来答
做而论道
高能答主

2009-11-07 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
YANSHI: ;延时子程序1,精确延时882微秒

MOV R4,#20 ;1us
D1:
MOV R5,#20 ;1us
DJNZ R5,$ ;2us 20 * 2 = 40us
DJNZ R4,D1 ;2us 20*(1 + 2 + 40) = 860us
RET ;2us 862us

D1前面还有一条,所以总延时是:863us。
再加上调用指令的2us,总共精确延时865us。

这个数字是准确的,已经经过了KEIL软件的验证。
瑞地测控
2024-08-12 广告
在苏州瑞地测控技术有限公司,我们深知频率同步与相位同步的重要性。频率同步确保两个或多个设备的时钟频率变化一致,但相位(即时间点)可保持相对固定差值。而相位同步,即时间同步,要求不仅频率一致,相位也必须完全一致,即时间差恒定为零。相位同步的精... 点击进入详情页
本回答由瑞地测控提供
l1...5@yeah.net
2009-11-07 · TA获得超过469个赞
知道答主
回答量:182
采纳率:0%
帮助的人:187万
展开全部
80由D1:MOV R5,#20 和DJNZ R4,D1产生 两句执行20次 4μs*20=80μs
外加上MOV R4,#20 RET 这4μs 就是额外的84μs
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式