速回 8051单片机的晶振为12MHz,下面是一段延时子程序,计算出该延时子程序的延时时间,并列出计算过程

ORG1000HDEL:MOVR7,#20;单周期1sDEL1:MOVR6,#125;单周期1sDEL2:DJNZR6,DEL2;双周期2sDJNZR7,DEL1;双周期... ORG 1000H
DEL: MOV R7,#20; 单周期1s
DEL1:MOV R6,#125; 单周期1s
DEL2:DJNZ R6,DEL2; 双周期2s
DJNZ R7,DEL1; 双周期2s
RET; 单周期1s
展开
 我来答
zhxiufan
2012-07-07 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38398
国家科技进步奖

向TA提问 私信TA
展开全部
ORG 1000H
DEL: MOV R7,#20; 单周期1s ①这里没有循环,1T
DEL1:MOV R6,#125; 单周期1s ②这里循环20次,20T
DEL2:DJNZ R6,DEL2; 双周期2s ③这里循环20*125次,1000T
DJNZ R7,DEL1; 双周期2s ④这里循环20次,40T
RET; 单周期1s ⑤这里没有循环,1T
总共延时周期数=①+②+③+④+⑤=1062T
12M晶振时1T=1us,所以总延时时间=1062微妙=1.062毫秒
新小无1X
2012-07-07 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1436
采纳率:11%
帮助的人:773万
展开全部
给楼上的推荐答案修正一下:
ORG 1000H
DEL: MOV R7,#20; 单周期1uS ( 晶振为12MHz)
DEL1:MOV R6,#125; 单周期1uS
DEL2:DJNZ R6,DEL2; 双周期2uS*125=250uS
DJNZ R7,DEL1; 双周期(2us+250+1)*20=5060uS
RET; 不是单周期指令 应该是 双周期2uS
延时时间t=1uS +(1us+250uS)×20+20×2uS+2uS=5063uS=5.063ms
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GUEL86
推荐于2018-03-14 · TA获得超过5859个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:3068万
展开全部
ORG 1000H
DEL: MOV R7,#20; 单周期1uS ( 晶振为12MHz)
DEL1:MOV R6,#125; 单周期1uS
DEL2:DJNZ R6,DEL2; 双周期2uS*125=250uS
DJNZ R7,DEL1; 双周期(2us+250+1)*20=5060uS
RET; 单周期1s = 5.06 mS
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2012-07-07 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.2万
采纳率:86%
帮助的人:8822万
展开全部
DEL: MOV R7, #20 ;1T
DEL1: MOV R6, #125 ;1T
DEL2: DJNZ R6, DEL2 ;2T 125 * 2 = 250
DJNZ R7, DEL1 ;2T 20 * (1 + 250 + 2) = 5060
RET ;2T 1 + 5060 + 2 = 5063

加上调用指令,共用 5065 T。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wykisagod
2012-07-07 · TA获得超过7539个赞
知道大有可为答主
回答量:1290
采纳率:66%
帮助的人:1605万
展开全部
20*125*2=5000 us=5 ms
如果精确的话应该是 5.022 ms ,其中2us是执行org 和del的时间,20us是执行20次del1的时间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式