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条回答
aa511950071
1楼-- · 2019-07-16 08:29
我想知道这个1ms的延时是怎么算出来的  我用的晶振是12m的
yy251745080
2楼-- · 2019-07-16 12:41
aa511950071 发表于 2012-4-16 20:50
我想知道这个1ms的延时是怎么算出来的  我用的晶振是12m的

每运行一条指令会经过几个机器周期我忘了,反正1个机器周期等于12个晶振周期,
AVRdanpianji
3楼-- · 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微秒.
丫逸1
4楼-- · 2019-07-16 17:08
看看,学习学习
aa511950071
5楼-- · 2019-07-16 20:28
 精彩回答 2  元偷偷看……
无邪1
6楼-- · 2019-07-17 00:28
除了楼上说的那些,还有调用函数的机器周期,等。。

一周热门 更多>