9.3 定时器/计数器工作模式1的C51程序设计

51系列单片机的定时器/计数器工作模式1是16位计数器,由TH0(或TH1)的高8位(0~7)和TL0(或TL1)的低8位(0~7)组成。工作模式1与模式0的区别在于计数的位数不同。

9.3.1 定时器/计数器工作模式1

在工作模式1中,定时器/计数器T1和T0的组成结构与功能完全相同。当置寄存器TMOD的M1=0、M0=1时,T0和T1就工作在模式1状态。这里以T0为例进行介绍,T1的使用类似。

在工作模式1下,当TL0的计数溢出时,向TH0进位;当TH0计数器溢出时,计数器清零,并向溢出控制位TF0进位置1,同时向8051 CPU发出中断请求。无论工作于计数方式还是定时方式,其运行原理都是相同的。

在工作模式1状态下,门控制位GATE和工作方式选择位figure_0280_0107决定了其工作状态,原理如下。

figure_0280_0108时,计数时钟由晶体振荡器12分频产生,16位计数器对机器周期进行计数,即为定时器工作方式,其定时时间=(216-T0初值)×时钟周期×12。16位计数器的计数范围更大,因此实际中多数采用工作模式1。

figure_0280_0109时,外部计数脉冲由P3.4输入。当计数脉冲发生负跳变时,计数器加1,即为计数器工作方式。

当GATE=0时,由TR0控制开启T0;当TR0=1时,启动计数器T0工作,直至溢出,溢出时计数器清零,TF0=1,向CPU申请中断;当TR0=0时,计数器停止工作。一般情况常使用这种方式。

当GATE=1时,T0的开启由figure_0281_0110和TR0共同控制。当TR0=1时,外部中断信号通过figure_0281_0111直接控制定时/计数器的启动和停止,当figure_0281_0112由0变为1时,启动计数;当figure_0281_0113由1变为0时,停止计数。当figure_0281_0114启动计数,而figure_0281_0115停止计数,这样也可以用来测量脉冲宽度。