借鉴:郭天祥《新概念51单片机C语言教程》
一、原理
51单片机,拥有两个定时器,用来中断计数,分别是T0和T1。而52单片机和51单片机的定时器是一样的,只是52比51多了一个定时器/计数器T2,它们的设置都大同小异,下面我来总结各个定时器的用法。定时器T0与T1不同之处在于它们的工作方式3不同,方式0、1、2相同。首先我们看要使用定时器T0应该设置的东西:
1、对中断寄存器和定时器进行初始化:
初始化函数里的内容也可以写在头文件里,但是为了美观和好查阅,就把它单独写出来,后面在头文件里直接调用就行。那么应该要进行初始化的设置:
①设置定时器的工作方式
单片机内,有其中一个特殊寄存器叫TMOD,这是用来设置定时器工作方式的寄存器,通过软件,将其寄存器内的D0~D7位置0或1,从而达成对定时器的操作。
寄存器TMOD
如表格,这是定时器的工作方式寄存器TMOD,要更改定时器的工作方式,我们只用到M1、M2所以其他位一般置0,又因为我们使用的是T0的定时器,所以就有:控制M1、M0将它们置1或0,即可达成操作控制方式的目的,然后转换成16进制即方便查阅。
同理,使用定时器1时也是这么设置。注意,有时候也有使用两个定时器T0、T1的时候,那么就是0001 0001两个都是工作方式1。请大家举一反三。