标题:
单片机定时器程序 TL1=TH1初值等于重载值 语句理解
[打印本页]
作者:
xnysfh
时间:
2023-6-12 10:14
标题:
单片机定时器程序 TL1=TH1初值等于重载值 语句理解
void ConfigUART(unsigned int baud)
{
SCON = 0x50; //配置串口为模式 1
TMOD &= 0x0F; //清零 T1 的控制位
TMOD |= 0x20; //配置 T1 为模式 2
TH1 = 256 - (11059200/12/32)/baud; //计算 T1 重载值
TL1 = TH1; //初值等于重载值
ET1 = 0; //禁止 T1 中断
ES = 1; //使能串口中断
TR1 = 1; //启动 T1
}
TL1 = TH1; //初值等于重载值?有谁知道这个怎么理解吗
作者:
coody_sz
时间:
2023-6-12 10:49
这是8位自动的初始化,TH1放的就是重装值,每次自动重装都是自动从TH1拷贝到TL1,所以初始化时拷贝一次,其实你写TL1=0也没关系,就是第一次溢出时间长一点而已。
作者:
angmall
时间:
2023-6-12 11:26
因为你配置定时器 T1 为模式 2,这个是8位定时器。
TL1 //设置定时初始值
TH1 //设置定时重载值
作者:
changhz
时间:
2023-6-12 12:05
TH1 = 256 - (11059200/12/32)/baud; //计算 T1 重载值
TL1 = TH1; //初值等于重载值
TL1和TH1值一样,同等于
TL1 = 256 - (11059200/12/32)/baud;
作者:
csmyldl
时间:
2023-6-12 13:23
定时计数器方式2为8位自动重装模式,即当TL1计数满后产生溢出中断,然后把TH1中的值自动赋值给TL1,所以只需一次给TH1和TL1一个初始值就行,上述程序是先把TH1计算出来,在启动定时计数器计数前要先给TL1一个初始值(此时未实现自动重装),于是就有了TL1=TH1
作者:
想成为有用的人
时间:
2023-6-12 13:25
应该不是,TL表示数的低位,TH表示数的高位。所以说数是分两端存储的。
作者:
王秋冬
时间:
2023-6-12 21:05
看手册也是一头雾水,哪位师傅能详细的讲解一下定时/计数器,万分感谢。
作者:
wys91203
时间:
2023-6-12 22:32
51定时器就是对机器周期定时,有方式1,2之分,如果定时器初值是0,每来个机器周期定时器加1,直到FF,方式是是16位的,TH0(1),TL0(1),如果想计一个数,就是设置定时器初值是65535,而定时器溢出后又从0计,所以要赋初值65535,而方式2不用,是8位的TL0计数,溢出后把TH0数装入TL0,不用程序里再设置初值
作者:
134670
时间:
2023-6-13 12:05
定时计数器方式2为8位自动重装模式,就是当TL1计数满后产生溢出中断,将TH1中的值自动赋值给TL1,所以只需一次给TH1和TL1一个初始值就行,上述程序是先把TH1计算出来,在启动定时计数器计数前要先给TL1一个初始值(此时未实现自动重装),于是就有了TL1=TH1
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1