单片机晶振12MHZ,延时500us,怎么理解?

DELAY:MOVR6,#47HDL0:MOVR5,#02HDJNZR5,$DJNZR6,DL0RET... DELAY:
MOV R6,#47H
DL0:
MOV R5,#02H
DJNZ R5,$
DJNZ R6,DL0
RET
展开
 我来答
wolf_lhy
2013-04-03 · TA获得超过6607个赞
知道大有可为答主
回答量:1090
采纳率:66%
帮助的人:533万
展开全部
DELAY:
MOV R6,#47H ;这条指令耗时1个机器周期

DL0:

MOV R5,#02H;这条指令耗时1个机器周期
DJNZ R5,$;这条指令耗时2个机器周期,因为R5等于2,所以一共是2 X 2个机器周期
;加上上一条指令,这两个指令一共耗时5个机器周期

DJNZ R6,DL0;这条指令耗时2个机器周期,R6等于71(16进制的47),
;看一下这71管辖范围是哪里?答案是从MOV R5,#02H;这里开始的
;所以,一共是 (5+2)X 71 = 497个机器周期
RET ;这条指令耗时2个机器周期

所以,一共是 1 + 497 +2 = 500个机器周期
你的单片机是12M,所以一个机器周期是1us,所以一共是500us
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式