9.2 定时器/计数器工作模式0的C51程序设计
51系列单片机的定时器/计数器工作模式0是13位计数器,由一个高8位(0~7)计数器(TH0或TH1)和一个具有32位分频的低8位计数器中的(TL0或TL1)的低5位(0~4)组成。
注意工作模式0使用的13位计数器是TL0(或TL1)的低5位和TH0(或TH1)的8位组成,不是TH0(或TH1)的低5位和TL0(或TL1)的8位组成。
9.2.1 定时器/计数器工作模式0
在工作模式0中,定时器/计数器T1和T0的组成结构与功能完全相同,当置寄存器TMOD的M1=0、M0=0时,T0和T1就工作在模式0状态。这里以T0为例进行介绍,T1的使用类似。
在工作模式0下,当TL0的低5位计数溢出时,向TH0进位,当TH0计数器溢出时,计数器清零,并向溢出控制位TF0进位置1,同时向8051 CPU发出中断请求。无论工作于计数方式还是定时方式,其运行原理都是相同的。
在工作模式0状态下,门控制位GATE和工作方式选择位决定了其工作状态,原理如下。
当时,计数时钟由晶体振荡器12分频产生,13位计数器对机器周期进行计数,即为定时器工作方式,其定时时间=(213-T0初值)×时钟周期×12。
当时,外部计数脉冲由P3.4输入。当计数脉冲发生负跳变时,计数器加1,即为计数器工作方式。
当GATE=0时,由TR0控制T0的开启;当TR0=1时,启动计数器工作,直至溢出,溢出时计数器清零,TF0=1,向CPU申请中断;当TR0=0时,计数器停止工作。一般情况常使用这种方式。
当GATE=1时,T0的开启由和TR0共同控制。当TR0=1时,外部中断信号通过
直接控制定时/计数器的启动和停止,当
由0变为1时,启动计数;当
由1变为0时,停止计数。当
启动计数,
停止计数,这样就记录了一个脉冲的宽度,这种方法常用来测量在
引脚出现的正脉冲的宽度。