定时/计数器的初始化步骤如下: 1)根据实际任务确定定时/计数器工作方式、操作模式以及启动控制方式,然后将控制字写入TMOD。 2)根据实际任务要求计算出定时/计数器的计数初值,并将初值写入相应的计数器T0或T1。 3)根据需要确定是否采用中断方式,并设置中断允许控制寄存器中的相关位。
4)根据前面设定的启动控制模式启动定时/计数器工作。
2.定时/计数器初值的计算方法。
计数方式下的初值X计算方法如下:
式中n为所选的计数器位数,N为要求的计数值。
定时方式下的初值X计算方法如下:
式中n为所选的计数器位数,T为要求的定时时间,Te为单片机的机器周期。
3.应用实例。
【例1】在P1.0口输出周期为200μs的连续方波,设晶振频率为6MHz。
输出200us的方波,可由P1.0脚上的电平每100us取反一次实现;可用T0来完成100μs的延时。
由于需要重复定时,选用T0工作方式2,M1Mo=10;使用定时/计数器的定时功能,因而CT=0。定时/计数器T1不用,相关设置为0。
晶振频率为6MHz,一个机器周期为2μs,初值X为:
查询方式的程序如下:
【例2】8051单片机只有两个外部中断源,当不能满足实际需要时,将定时/计数器用作外部中断源。
定时/计数器在用作外部信号计数时,相当于一个延缓了的中断。只要将延缓缩短到最小,便成了即时中断。方法如下1)将定时/计数器设置为计数模式。该模式下定时/计数器引脚连接外部设备,可对外部中断源发出的中断请求作出响应。
2)设定定时/计数器在工作在方式2。定时/计数器在方式2工作时,是一个8位自动重装计数器,溢出(中断响应)后可自动“复位”,为下次中断请求做好准备。
3)将预设的计数初值设为满程。使计数器的“延缓”减至最小,即外部中断源向引脚输入一个下降沿信号,计数器就会溢出(响应中断)。
当外部信号由高电平跳变为低电平时,该定时/计数器即响应中断。