单片机延时子程序

DELAY:MOVR7,#200L1:MOVR6,#250L2:MOVR5,#10L3:DJNZR5,L3DJNZR6,L2DJNZR7,L1RET它是如何实现延时一秒的... DELAY:MOV R7,#200
L1:MOV R6,#250
L2:MOV R5,#10
L3:DJNZ R5,L3
DJNZ R6,L2
DJNZ R7,L1
RET
它是如何实现延时一秒的?DJNZ Rn,*为两个机器周期,MOV Rn,#*为一个机器周期。晶振为12MHz。这些都知道,不过就是想不通为什么要200*250*10。望高手指点迷津!Thanks!
展开
 我来答
罗门大佬
推荐于2018-03-29 · TA获得超过1523个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:463万
展开全部
你可以粗略这样看,在上面的指令中,执行次数最多的是DJNZ rn,那么可以延时就是DJNZ指令执行时间。这里运用了嵌套,所以要×。
它的顺序是先执行DJNZ R5,L3 ;10次,执行DJNZ R6,L2 250次
但是当R6减1那么就赋予R5初值10,所以R5又得运行10次,而每减一次1都要重复10次。同理,执行R7减一要重复前面的DJNZ指令10×250次,所以就有了
10×250×200×2us=1s
上海实邦电子科技
2025-08-04 广告
联系方式:13671592388上海实邦电子科技有限公司是一家专业电子产品开发与ODM/OEM/电子制造服务(EMS)企业,具有多年基于消费电子产品、工业自动化产品、机电控制产品的PCBA开发与生产经验,更有多年的单片机开发及工业控制电路设... 点击进入详情页
本回答由上海实邦电子科技提供
旺盛还顺当的小焰火07
2008-11-02 · 超过16用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:39.1万
展开全部
这个其实不是实现200*250*10的 这个是实现200*250*10*2的 因为一条指令执行的时间是2纳秒 程序刚开始给R7副职200 R6副职 250 R5副职10 等到L3那条指令的时候是循环R5的 R5副职10 所以R5循环10次 然后顺序执行 循环R6 执行R6的时候跳到L2 重新给R5副职 然后再次R5循环10次 执行 DJNZ R6,L2 这句 因为已经减一了 所以R6 变成了 249 再次减一循环 R7也是这样 所以最后的时间就是200*250*10*2 也就是十秒的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caogos
2008-11-03 · TA获得超过185个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:219万
展开全部
执行上面的指令要用(1+(1+R5)*R6)*R7=(1+(1+10)*250)*200个机械周期,
一个机械周期=12/晶振频率=1us

注意:DJNZ Rn,#data ;寄存器Rn减1,不为零则转移。
例:DJNZ R6,L2
每执行一次这条指令R6就减一,如果减一后R6不为零,则跳转到L2(即L2:MOV R5,#10 )处开始往下顺序执行
首先执行L2:MOV R5,#10
然后执行L3:DJNZ R5,L3
最后又遇到DJNZ R6,L2
又减一判断R6是否为零,不为零则跳转到L2:MOV R5,#10 继续往下执行。

这就是循环的原理

参考资料: 单片机原理与应用

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尼欧赵
2008-11-03 · TA获得超过823个赞
知道大有可为答主
回答量:1597
采纳率:0%
帮助的人:1288万
展开全部
主要是200*250*10是最简单的数字,另外需要说明的是,这只是一个近似值,实际延时时间大于1秒(约1.1秒)。如果要更精确的话,肯定不是这三个数字。
当R5=10,R6=202,R7=225,可以精确到0.35毫秒,精确度提高3个数量级。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北海飞雪
2008-11-02 · TA获得超过119个赞
知道答主
回答量:35
采纳率:0%
帮助的人:45.9万
展开全部
DJNZ Rn,*为两个机器周期 12M的晶振执行一次就是2微秒,L3:DJNZ R5,L3
这个指令指行10次就是20微秒,这个延时程序所延的时间最后计算方法应该是200*250*20=1000000微秒,也就是1秒(应该是把MOV Rn,#*为一个机器周期忽略不计了)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式