希望我的程序能对大家的实验起到帮助,下面我们就来说一说关于单片机延时1秒计算公式?我们一起去了解并探讨一下这个问题吧!
单片机延时1秒计算公式
用c语言写1s延时方法——定时器查询方式希望我的程序能对大家的实验起到帮助。
//*************定时器查询方式12MHz 1s延时
void DELAY(void)
{
unit i=0;
TMOD=0X00;//设置为定时器1(T1)工作于方式0
TH1=0X3C;//高4位
TL1=0XB0;//低4位
TR1=1;//启动定时器
while(i<20)
{
if(TF1==1)//查询T1溢出标志
{
TF1=0;
i ;
}
}
}
TMOD=0X00首先设置为定时器1(T1)工作于方式0
定时时间:t=(2^(16)-定时器的初始值)*系统时钟周期*12^(1-T1x12)
即当T1x12=0时系统为12分频计数脉冲周期系统时钟周期的12倍(12MHz时1个计数脉冲周期时间为t=1us)
当设置定时时间为50ms时:定时器的初始值T=2^(16)-50*(10^3)=15536。15536转换为16进制后为3CB0(h).设置定时器的初始值的方法TH1为高4位(TH1=0X3C),TL1为低4位(TL1=0XB0)。
每当定时器的值从15536(定时器的初始值)加到65536( 2^(16) )时会溢出,这时TF1=1,然后定时器从15536重新开始加。
while(i<20):while循环让定时器循环20次,每次循环时间为50ms,即定时时间为t=50*20=1000ms=1s.
15单片机定时器实验——查询方式
,