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

 我来答
百度网友78939ef
2019-06-10 · TA获得超过493个赞
知道答主
回答量:27
采纳率:0%
帮助的人:4154
展开全部

单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期

扩展资料:

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++);

}  

}

valkyrie1107
2011-11-25 · TA获得超过479个赞
知道答主
回答量:181
采纳率:100%
帮助的人:174万
展开全部
看你用什么语言计算了,汇编延时准确,知道单片机工作周期和循环次数即可算出,但不具有可移植性,在不同种类单片机中,汇编不通用。用c的话,由于各种软件执行效率不一样,不会太准,通常用定时器做延时或做一个不准确的延时,延时短的话,在c中使用汇编的nop做延时
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敲黑板划重点_
2019-12-21 · TA获得超过3.8万个赞
知道大有可为答主
回答量:9370
采纳率:77%
帮助的人:329万
展开全部
单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
葡萄干_红蛋
2011-11-26
知道答主
回答量:74
采纳率:0%
帮助的人:36.4万
展开全部
演示程序。如果用汇编就根据指令的指令周期算时间。如果C语言,同样是看反汇编。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zph565210
推荐于2017-12-16 · TA获得超过2152个赞
知道小有建树答主
回答量:732
采纳率:50%
帮助的人:451万
展开全部
如果用循环语句实现的循环,没法计算,但是可以通过软件仿真看到具体时间,但是一般精精确延时是没法用循环语句实现的。
如果想精确延时,一般需要用到定时器,延时时间与晶振有关系,单片机系统一般常选用11.059 2 MHz、12 MHz或6 MHz晶振。第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确延时。本程序中假设使用频率为12 MHz的晶振。最长的延时时间可达216=65 536 μs。若定时器工作在方式2,则可实现极短时间的精确延时;如使用其他定时方式,则要考虑重装定时初值的时间(重装定时器初值占用2个机器周期)。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式