求解单片机计算延时子程序的延长时间

若8051的晶振频率为6MHz,试计算延时子程序的延时时间。DELAY:MOVR7,#0F6HLP:MOVR6,#0FAHDJNZR6,$DJNZR7,LPRET(150... 若8051的晶振频率为6MHz,试计算延时子程序的延时时间。
DELAY: MOV R7,#0F6H
LP: MOV R6,#0FAH
DJNZ R6,$
DJNZ R7,LP
RET
(150*2+1)*2*146*2+146*2+2
要求一步步详细讲解,小弟才疏学浅,感激各位大侠。
展开
 我来答
lzz506
2010-06-15
知道答主
回答量:14
采纳率:0%
帮助的人:8.1万
展开全部

0XFA=250    0XF6=246

即内循环为250次,外循环为246次

 

从图可以看出 

内循环:指令(3)需要周期 250*2

外循环:由指令(2)、(4)、(3)组成,外循环次数为246

所以所需周期:(1+250*2+2)*246

还需加上指令(1)和(5)所需周期

所以总共周期为T=1+(1+250*2+2)*246+2   T=123741

晶振为6M一个机器周期为2us

t=2*T=2*123741=247482us

赛恩科仪
2025-08-07 广告
广州赛恩科学仪器有限公司(原中大科仪)始创于2053年,是全球领先的精密测量仪器供应商和微弱信号检测方案提供商。公司以锁相放大器为核心产品,陆续推出光学斩波器、源表、功率放大器、电化学工作站、电流源等一系列产品。赛恩科仪推出的锁相放大器,覆... 点击进入详情页
本回答由赛恩科仪提供
xiaowu191
2010-06-14 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2252
采纳率:100%
帮助的人:1274万
展开全部
那个不对吧

DELAY: MOV R7,#0F6H 1指令周期1
LP: MOV R6,#0FAH 1指令周期1*246
DJNZ R6,$ 2指令周期2*250*246
DJNZ R7,LP 2指令周期2*246
RET 2指令周期2

一个单周期指令包含一个机器周期,即12个时钟周期,所以一条单周期指令被执行所占时间为12*(1/6000000)=2us。

即(1+(250*2+1)*246+246*2+2)*2

你可以搜索“单片机汇编延时程序算法分析”
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式