一、定时/计数器的结构原理
MCS-51单片机中有2个可编程的16位定时/计数器T0和T1,他们内部都是由“加1”计数寄存器、工作方式寄存器TMOD和控制寄存器TCON三个部分组成。
其中,
(1)“加1”计数器分为高8位和低8位;
(2)TMOD寄存器主要用于控制定时或者计数功能选择、工作方式设置以及启动方式的控制等;
(3)TCON寄存器主要用于控制T0或T1的启动/暂停、溢出标志的设置等。
定时/计数器工作时,每来一个脉冲(即过1个机器周期),“加1”计数寄存器会加1,当其为全1的时候,在输入一个脉冲,这时计数寄存器产生溢出。与此同时,计数寄存器值会被清零,同时TCON寄存器的溢出标志位被置为1,并向单片机CPU发出定时中断信号。
若此时工作在定时模式,则代表设定的时间到;若工作于计数模式,则表示计数值已满。
1.工作于定时模式
定时/计数器工作于定时模式时,“加1”计数寄存器是对单片机内部产生的机器周期进行计数,其频率为系统晶振频率的1/12,此时定时时间T = Tp * N(Tp是每个机器周期的时间,N为累计的机器周期脉冲个数)
2.工作于计数模式
定时/计数器工作于计数模式时,它用于对外部事件的计数,其值由单片机T0或T1引脚输入,脉冲的下降沿计数。输入值从一个高电平到低电平,至少需要2个机器周期,(1个机器周期 = 12晶振周期),因此计数频率最大为系统晶振频率的1/24。
二、定时/计数器方式控制字设置
1.定时/计数器控制寄存器TCON(可以进行位寻址)
TCON为定时/计数器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源。
2.定时/计数器工作模式寄存器TMOD(不能进行位寻址)
定时和计数功能由特殊功能寄存器TMOD的控制位C/T'进行选择。2个定时/计数器有4种操作模式,通过TMOD的M0和M1选择。
三、定时/计数器的工作方式
1.方式0:13位定时/计数器
13位定时/计数器 ,由TH0的高8位和TL0的低5位(高3位未用)构成,TL0溢出时向TH0进位;TH0溢出时,溢出标志位TF置1。
定时时间T = Tp*N(Tp为每个机器周期的时间,N为累计的机器周期脉冲的个数),Tp = 12Tosc = 12/fosc。
(1)做定时器使用时,定时初值。
(2)做计数器使用时,计数初值(M为T0或T1引脚输入的计数脉冲个数)。
2.方式1:16位定时/计数器
16位定时/计数器,由TH0作为高8位、TL0作为低8位构成。
(1)做定时器使用时,定时初值。
(2)做计数器使用时,计数初值(M为T0或T1引脚输入的计数脉冲个数)。
3.方式2:8位自动重装载定时/计数器
8位自动重装载定时/计数器,TL0作为计数寄存器,当TL0溢出后,TL0初值自动重装入TH0的值。
(1)做定时器使用时,定时初值。
(2)做计数器使用时,计数初值(M为T0或T1引脚输入的计数脉冲个数)。