定时器就是用来进行定时的,定时器内部有一个寄存器,我们让它开始计数后,这个寄存器的值每经过一个机器周期就会自动加 1,因此,我们可以把机器周期理解为定时器的计数周期。就像我们的钟表,每经过一秒,数字自动加 1,而这个定时器就是每过一个机器周期的时间,也就是 12/11059200 秒,数字自动加 1。还有一个特别注意的地方,就是钟表是加到 60 后,秒就自动变成 0 了,这种情况在单片机或计算机里我们称之为溢出。
关于定时器的基础知识前面的推文已经进行了详细地介绍,这里再介绍一下其四种工作方式:
1、方式0
方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。
2、方式1
方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器 。
3、方式2
方式2为自动重装初值的8位计数方式。
4、方式3
方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。
工作方式3将T0分成为两个独立的8位计数器TL0和TH0。
利用“定时器计算工具”就能够实时计算出定时时间初值,例如,晶振频率设置为12MHz,定时时间为0.1ms。
定时器0采用定时器方式0时,定时器初值:TL0 = 0x9C; TH0 = 0x1F;
定时器0采用定时器方式1时,定时器初值:TL0 = 0x9C; TH0 = 0xFF;
定时器0采用定时器方式2时,定时器初值:TL0 = 0x9C;
定时器0采用定时器方式3时,定时器初值:TL0 = 0x9C;
“定时器计算工具”百度云下载链接:
链接:https://pan.baidu.com/s/1YgTrpwvb27sIEyoAURwdzA
提取码:wvki