STC89C51程序如何算出延时10毫秒呢
时间:10-02
整理:3721RD
点击:
以下程序如何算出延时10毫秒呢,请各位教教!晶振12M
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a, b;
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a, b;
//--c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了--//
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
计算每个时钟周期的时间,再去计算了
当然使用定时器了
要准确点的要使用定时器
定时器计数。
这个没有用定时器只是用了循环吧
这个程序时钟周期是1微妙吧,但是循环次数是多少啊,应该要5000次才能有50毫秒吧
这个程序是怎么得出10毫秒的时间?循环应该要10000次吧
要是想随便延时一下不用也可以
软件延时,不好,阻塞mian;要么用定时器,要么用软件计数器(程序设计严格非阻塞,否则误差很大);