您的位置 首页 开关

8051单片机准确延时程序

各种教材都喜欢用for循环再嵌套一个for循环来实现延时,下列是通过定时器来延时;delay(t)表示延时tms;也可以通过定时器中断的方式来延时

各种教材都喜爱用for循环再嵌套一个for循环来完成延时,下列是经过守时器来延时;

delay(t)表明延时t ms;

也能够经过守时器中止的方法来延时,可是每次延时的时刻十分有限,关于11.0592MHz的晶振,每次中止延时只有约71ms.

延时函数

void delay(unsigned int t)//延时t ms

{

TMOD=0x01;//设置作业形式

TR0=1; //发动守时器0

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; //发动守时器0

ET0=0x00;//制止守时中止

while(t!=0)//循环次数t

{

TH0=0xFC;

TL0=0x66;//设置计数初值

while(TF0!=1);//查询计数器溢出标志位

TF0=0;//溢出后清零

t–;

}

}

此外,还用excel制作了一个核算计数初值的的小工具,输入晶振和需求延时的最小单位,就主动核算出核算初值,并转换为16进制(用DEC2HEX函数)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/259950.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部