各种教材都喜爱用for循环再嵌套一个for循环来完成延时,下列是经过守时器来延时;
delay(t)表明延时t ms;
也能够经过守时器中止的方法来延时,可是每次延时的时刻十分有限,关于11.0592MHz的晶振,每次中止延时只有约71ms.
延时函数
void delay(unsigned int t)//延时t ms
{
TMOD=0x01;//设置作业形式
TR0=1;
ET0=0x00;//制止守时中止
while(t!=0)//循环次数t
{
TH0=0xFC;
TL0=0x66;//设置计数初值
while(TF0!=1);//查询计数器溢出标志位
TF0=0;//溢出后清零
t–;
}
}
此外,还用excel制作了一个核算计数初值的的小工具,输入晶振和需求延时的最小单位,就主动核算出核算初值,并转换为16进制(用DEC2HEX函数)
各种教材都喜爱用for循环再嵌套一个for循环来完成延时,下列是经过守时器来延时;
delay(t)表明延时t ms;
也能够经过守时器中止的方法来延时,可是每次延时的时刻十分有限,关于11.0592MHz的晶振,每次中止延时只有约71ms.
延时函数
void delay(unsigned int t)//延时t ms
{
TMOD=0x01;//设置作业形式
TR0=1;
ET0=0x00;//制止守时中止
while(t!=0)//循环次数t
{
TH0=0xFC;
TL0=0x66;//设置计数初值
while(TF0!=1);//查询计数器溢出标志位
TF0=0;//溢出后清零
t–;
}
}
此外,还用excel制作了一个核算计数初值的的小工具,输入晶振和需求延时的最小单位,就主动核算出核算初值,并转换为16进制(用DEC2HEX函数)