C51延时函数delay的编写

2023-11-09

例如,要写一个延迟10ms的delay函数:(12M晶振)

void delay_10ms()
{
     unsigned char i,j,k;
     for(i=5;i>0;i--)
     {
           for(j=4;j>0;j--)
           {
                   for(k=248;j>0;j--);
            }
      }
}
原理:3层for循环,循环次数是 NUM = 4X5X248 = 4960次,由每次循环都有条件判断(如 i >0)和自减语句(如 i--),因此每次循环又耗费两个机器周期

     所以,总耗费的机器周期为 SUM = NUM x 2 = 9920个

     又因为 12M 晶振频率,每一个机器周期为 1us,所以 这个函数话费的时间 为9920us = 9.920 ms 约等于10ms,而把赋值语句,压栈出栈操作计算在内,加起来差不多10ms

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C51延时函数delay的编写 的相关文章

  • 无我编程:你的工作不代表你

    原文作者 Jeff Atwood Johanna Rothman是这么描述 无我编程 这个概念的 25年前 Gerald M Weinberg写了 程序开发心理学 我在1977年发现了这本书 然后做了一个决定 放弃在电台做DJ的工作 打算做

随机推荐