一、基本原理:
-  定时器的作用: - 定时器是一种用于产生精确时间延时的模块,可以在程序中用来进行时间控制、计时等操作。
 
-  定时器的工作原理: - 51单片机的定时器是通过内部的计数器来实现的,计数器每隔一个固定的时间周期自动加1,当计数器的值达到设定的目标值时,会触发定时器中断。
 
-  定时器的控制寄存器: - 在51单片机中,定时器的工作通过控制寄存器来实现,包括定时器的工作模式、计数器的初始值、中断使能等。
 
二、应用:
-  延时函数: - 利用定时器可以实现精确的延时函数,用于控制程序中的时间间隔。
 
-  定时中断: - 可以利用定时器中断来定时执行某些任务,例如定时采集传感器数据、定时发送数据等。
 
-  PWM波形生成: - 定时器可以用来生成PWM波形,用于控制电机速度、LED亮度等。
 
-  计时功能: - 可以利用定时器来实现计时功能,例如秒表、计时器等。
 
三、寄存器



四、思维导图

五、示例代码
//定时器TO初始化
void Init_Timer0()
{//定时器计数器初值设置:50msTH0 = (0 - 50000) / 256;TH0 = (0 - 50000) % 256;TMOD = 0x01;       //T0的定时模式1:16位不可重装模式ET0 = 1;           //使能定时器0EA = 1;            //打开总中断TR0 = 1;           //启动定时器0
}//定时器T0的中断服务函数
void Service_Timer0() interrupt 1
{}初始化定时器T0,并设置了定时器T0的中断服务函数框架,可以根据实际需求在中断服务函数中添加具体的处理逻辑。
-  void Init_Timer0():定义了一个函数Init_Timer0(),用于初始化定时器T0。
-  TH0 = (0 - 50000) / 256;:设置定时器计数器的高8位,计算公式为(0 - 计数值) / 256。这里设置了定时器初值为50000,对应50ms的定时。
-  TH0 = (0 - 50000) % 256;:设置定时器计数器的低8位,计算公式为(0 - 计数值) % 256。
-  TMOD = 0x01;:设置定时器T0的工作模式为定时模式1,即16位定时器模式,不可重装模式。
-  ET0 = 1;:使能定时器T0的中断功能,允许定时器T0产生中断。
-  EA = 1;:打开总中断,允许中断嵌套。
-  TR0 = 1;:启动定时器T0,定时器开始工作。
-  void Service_Timer0() interrupt 1:定义了一个中断服务函数Service_Timer0(),用于处理定时器T0的中断。interrupt 1表示该中断函数对应定时器T0的中断。