
速回 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 展开
DEL: MOV R7,#20; 单周期1s
DEL1:MOV R6,#125; 单周期1s
DEL2:DJNZ R6,DEL2; 双周期2s
DJNZ R7,DEL1; 双周期2s
RET; 单周期1s 展开
5个回答
展开全部
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毫秒
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毫秒
展开全部
给楼上的推荐答案修正一下:
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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。
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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
20*125*2=5000 us=5 ms
如果精确的话应该是 5.022 ms ,其中2us是执行org 和del的时间,20us是执行20次del1的时间。
如果精确的话应该是 5.022 ms ,其中2us是执行org 和del的时间,20us是执行20次del1的时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询