求单片机高手帮我算下这个延时程序的500ms是怎么算出来的

DELAY:MOVR7,#250D1:MOVR6,#250D2:NOPNOPNOPNOPNOPNOPDJNZR6,D2DJNZR7,D1... DELAY: MOV R7,#250
D1: MOV R6,#250
D2: NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
展开
 我来答
可轩163
推荐于2017-12-16 · TA获得超过1.3万个赞
知道大有可为答主
回答量:4824
采纳率:88%
帮助的人:1792万
展开全部
设51系列单片机晶振频率Fosc为12MHz
则第个机器周期 =12/Fosc =1μs
.
每条MOV Rn,#data指令耗用1个机器周期
6条NOP指令执行耗用6个机器周期
每条DJNZ Rn,rel指令耗用2个机器周期,
D2内循环耗用机器周期数N2=1+(6+2)250 =2001
D1外循环耗用机器周期数N1=1+(N2+2)250=500751
运行整段程序耗用机器周期数N=1+N1=500752
.
运行整段程序延时时间 =500752x1μs ≈500ms
毕康时益菡
游戏玩家

2019-07-06 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:834万
展开全部
根据外部晶振的不同,延时1毫秒的循环次数也不一样,一般12m晶振的话用
for(j=time;j>0;j--);延时时,1毫秒time大概为125左右,这里用110,大概晶振为11.0592m,所以这段程序,内部循环完成1毫秒延时,外部循环完成500毫秒延时。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2016-05-21 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
延时程序,所说的延时,是假的。

实际上,所延的,是机器周期。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式