计时器用。定时器/计数器在硬件上由双字节加法计数器TH和TL组成。作定时器使用时,计数脉冲由单片机内部振荡器提供,计数频率为fOSC/12,每个机器周期加1。
STC12C5A60S2单片机定时器/计数器的工作方式由特殊功能寄存器TMOD编程决定,定时器/计数器的启动运行由特殊功能寄存器TCON编程控制。不论用作定时器还是计数器,每当产生溢出时,都会向CPU发出中断请求。单片机的定时器的工作原理是利用了寄存器的溢出来触发中断的,所以在写定时器的时候就要去算计数的增量,再根据单片机的晶振的频率就可以算出确定的时间了。定时器主要用到了2个寄存器,一个为TCON,另一个为TMOD。TCON是用来控制定时器的启动与停止的。TMOD是用来设置定时器的模式的。
STC12C5A60S2单片机的定时器/计数器是可编程的,在进行定时或计数操作之前要进行初始化编程。通常8051单片机定时器/计数器的初始化编程包括如下几个步骤:1.确定工作方式,即给方式控制寄存器TMOD写入控制字。2.计算定时器/计数器初值,并将初值写入TH和TL。3.根据需要对中断控制寄存器IE置初值,决定是否开放定时器中断。4.使运行控制寄存器TCON中的TR0或TR1置“1”,启动定时器/计数器。
在初始化过程中,要设置定时或计数的初始值,这时需要进行一点运算。由于计数器是加法计数,并在溢出时产生中断,因此初始值不能是所需要的计数模值,而是要从最大计数值减去计数模值所得才是应当设置的计数初始值。假设计数器的最大计数值为M(根据不同工作方式,M可以是2、2或2),则计算初值X的公式如下:
计数方式:X=M-要求的计数值 (2-2)
要求的计数值
12/fOSC
13
16
8
定时方式:X=M- (2-3)
2.3.3 外部中断
外部中断:对某个中央处理机而言,它的外部非通道式装置所引起的中断称为外部中断。
STC12C5A60S2单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。