单片机延时程序是怎么实现的?

比如DELAYMOVR2,#0FAHL1:MOVR3,#0FAHL2;DJNZR3,L2DJNZR2,L1RET这个延时是什么意思或者说怎么实现延迟的,没看懂能不能给个详... 比如DELAY MOV R2,#0FAH
L1:MOV R3,#0FAH
L2;DJNZ R3,L2
DJNZ R2,L1
RET
这个延时是什么意思或者说怎么实现延迟的,没看懂能不能给个详细点的解释,初学者求教!
展开
 我来答
linnjing
推荐于2016-06-16 · TA获得超过2632个赞
知道大有可为答主
回答量:1230
采纳率:91%
帮助的人:513万
展开全部
延时是靠CPU执行无关指令,把时间浪费掉。
具体来说,DJNZ指令需要2个周期,循环250次就是500个周期,两层循环就是500*500个周期,你调用一次DELAY子程序,CPU就空转250000个周期(注意这个计算不精确),如果晶振是12MHz,那就意味着时间过去了250ms,也就是延时250ms
追问
那250ms怎么从250000变过来的,麻烦你再说一下
追答
标准51单片机12分频的。
使用12MHz晶振,12分频以后,实际运行使用的时钟频率是1MHz。
频率1MHz,即1个周期是1us。
250,000个周期,就是250,000us,也就是250ms。
siduestc
2014-01-15 · TA获得超过527个赞
知道小有建树答主
回答量:655
采纳率:100%
帮助的人:143万
展开全部
for(R3=250;(R3-1)!=0;R3--)
{
   for(R2=250;(R2-1)!=0;R2--)
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式