定时计数器的控制寄存器是哪两个(计数器的特殊功能寄存器Ⅱ--TCON)
定时计数器的控制寄存器是哪两个(计数器的特殊功能寄存器Ⅱ--TCON)而当计数溢出的时候,TCON的溢出标志位TF0表示有中断请求,同时复位为0。前面我们使用的是工作方式1,有16位定时器,即TH0的8位和TL0的8位,一共计数值就是65536。当定时器/计数器工作产生溢出时,会将TF1或TF0位置1,表示定时器/计数器有中断请求。TR1或TR0:定时器/计数器T1和T0的启动/停止位。在设计程序的时候,若将TR1或TR0置为1,那么定时器/计数器就开始工作;若为0,定时器/计数器就停止工作。
TCON的字节地址是88H,也有8位,同时它也是一个特殊功能寄存器,其中高四位用于控制定时器/计数器的启动和中断申请,低四位与外部中断有关。
如图:
我们这个设计主要讲的是启动和中断申请。所以以高四位为例介绍一下它们的功能:
TF1和TF0:定时器/计数器T1和T0的溢出标志位。
当定时器/计数器工作产生溢出时,会将TF1或TF0位置1,表示定时器/计数器有中断请求。
TR1或TR0:定时器/计数器T1和T0的启动/停止位。
在设计程序的时候,若将TR1或TR0置为1,那么定时器/计数器就开始工作;若为0,定时器/计数器就停止工作。
前面我们使用的是工作方式1,有16位定时器,即TH0的8位和TL0的8位,一共计数值就是65536。
而当计数溢出的时候,TCON的溢出标志位TF0表示有中断请求,同时复位为0。
但是我们一般不需要用到计数那么久因此就需要给一个初值。
例如:计时1秒的时候,只要用65536-60000就可以了。但是由于一共有16位,所以需要对其进行取位,即对高8位取位就是/256,对低8位取位就是%6。
TH0=(65536-50000)/256;//高8位赋初值
TL0=(65536-50000)%6;//低8位赋初值
我们平时对存储器进行赋初值的公式就是如此来的。