c51延时程序 没看懂 求高手进来看一哈!!!!!!!!!!!

2019-07-16 06:02发布

void Delay(unsigned int t)
{
while(--t);
}
void DelayMs()
{
while(--t)
{
  //大致延时1ms
  Delay(245);
  Delay(245);
}
}


我想知道这个1ms的延时是怎么算出来的  我用的晶振是1m的
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
AVRdanpianji
2019-07-16 12:59
首先,你用的是12M的晶振,时钟周期也就是每一次的晶振时间是1/12微秒,而一个机器周期包括12个时钟周期。其次,单片机每执行一条指令的时间称为指令周期,它包括1~4个机器周期,你的单片机指令周期应该是两个机器周期。最后,1/12微秒 x 12 x 2 x 245(第一条指令) + 1/12微秒 x 12 x 2 x 245(第二条指令)=490+490=980微秒.

一周热门 更多>