单片机延时程序的延时时间怎么算的?

 我来答
铁淑敏宁丙
2020-05-11 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:33%
帮助的人:1115万
展开全部
单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期
扩展资料:
1丶指令周期,是每种运算需要的时间,如加法、逻辑等,是每一步进行这种指令运算需要的时间,是机器周期的整数倍,这种周期不定。
2丶51单片机12M晶振,晶振周期1/12微妙,一个机器周期包含12个晶振周期,所以12M晶振时机器周期=12x(1/12)微妙=1微妙。
3丶1个毫秒延时子程序如下:
void
delay1ms(uint
ms)
{
uint
i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<110;j++);
}
}
戈傅香蓝婵
2020-05-11 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:35%
帮助的人:811万
展开全部
最长的延时时间可达216=65536μs、12mhz或6mhz晶振.0592mhz。第一种更容易产生各种标准的波特率:吴鉴鹰单片机开发板(视频教程详细,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期),后两种的一个机器周期分别为1μs和2μs。参考资料来源,延时时间与晶振有关系。本程序中假设使用频率为12mhz的晶振。若定时器工作在方式2,则可实现极短时间的精确延时,但是可以通过软件仿真看到具体时间:吴鉴鹰吧贡献文档:百度文库《吴鉴鹰单片机项目实战精讲》单片机开发板参考,资源丰富,便于精确延时,没法计算。如果想精确延时,单片机系统一般常选用11,一般需要用到定时器;如使用其他定时方式如果用循环语句实现的循环,但是一般精精确延时是没法用循环语句实现的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宫帅王耘志
2013-11-18 · TA获得超过3887个赞
知道大有可为答主
回答量:3237
采纳率:32%
帮助的人:188万
展开全部
直接这么计算时间是很难算的,
不同的单片机有不同的指令时间。
而且要看具体有几条指令需要看汇编。
最好是用示波器来测试时间。
另外,
这种延时会受到中断程序的影响。
要想要精确的时间,
最好使用定时器.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2020-06-04 · TA获得超过5250个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:636万
展开全部
首先,你应该问:执行一条指令,用多少时间。
然后,你自己,就可以算出,延时程序的延时时间。
 
别忘了采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式