8051单片机内部有两个定时/计数器T0及T1,具有定时和计数两种功能。T0及T1在计数过程中不需要CPU参与,也不影响CPU的其他工作。当计数溢出后,定时/计数器给出中断信号,申请CPU停止当前的工作,去处理预先设定的中断事件。
一、T1内部结构
定时器工作模式:对内部时钟信号计数。由于时钟频率是定值,所以可根据计数值计算出定时时间。
计数器工作模式:是对加在T1(P3.5)引脚上的外部脉冲进行计数。
二、计数功能
计数器用于统计从TO(P3.4)和Tl(P3.5)两个引脚输入脉冲的负跳变数量。负跳变是指前一个机器周期采样为高电平,后一个机器周期为低电平。每输入一个脉冲负跳变,计数器加1。
输入脉冲的高电平与低电平至少应保持一个机器周期时间,以确保正确采样,因此输入脉冲的频率最高为单片机内部脉冲频率的一半。如果内部脉冲频率为1 MHZ,则最高计数频率为0.5 MHz。
三、定时功能
定时功能是单片机通过对内部机器脉冲信号计数实现的,计数值乘以机器周期就是相应的时间。例如,如果单片机采用12 MHz的晶振,则机器内部脉冲频率为1 MHz,则机器周期为1us,若共计数1000,则用时为1ms时间。
四、工作方式
工作方式寄存器TMOD
工作方式寄存器TMOD用于控制定时/计数器的工作方式和工作模式,长度为一个字节,只能按字节整体赋值。
(1)Ml和M0用于设置TO(T1)的工作方式。
(2)C/T用于设置TRO(TR1)是工作于计数器或定时器模式。
C/T—计数器模式和定时器模式选择位
0:定时器工作模式,对单片机的晶体振荡器12分频后的脉冲