首页 理论教育 定时器/计数器初始化方法|典型设计实例

定时器/计数器初始化方法|典型设计实例

时间:2023-10-23 理论教育 版权反馈
【摘要】:定时器初始化是对定时器中断有关参数的设定,包括定时工作方式设定、定时器初值设定、定时器中断设定等。定时器工作在工作方式1时,16位计数初值分高8位和低8位两次写入对应的计数器,并且中断服务函数中需再次写入初值;工作在方式2时,只在初始化过程中装入初值即可,高8位写入初值作为缓存。

定时器/计数器初始化方法|典型设计实例

定时器初始化是对定时器中断有关参数的设定,包括定时工作方式设定、定时器初值设定、定时器中断设定等。

1.初始化的步骤

(1)确定定时器工作方式

这主要是对TMOD寄存器进行设置操作。如只利用定时器T0,工作方式1,则可设定TMOD=0x01;如果不影响T1的工作方式,则有TMOD=TMOD&0xF1;TMOD不能位操作,因此只能对整个寄存器赋值

(2)设置定时或计数器的初值

可直接将初值写入TH0、TL0或TH1、TL1中。定时器工作在工作方式1时,16位计数初值分高8位和低8位两次写入对应的计数器,并且中断服务函数中需再次写入初值;工作在方式2时,只在初始化过程中装入初值即可,高8位写入初值作为缓存

(3)根据要求是否采用中断方式

如果启用定时器中断,直接对IE位赋值,首先EA=1,然后设置定时对应的中断允许位,如允许T0中断,则ET0=1。(www.xing528.com)

(4)启动定时器

T0或T1若设置为软启动,即GATE设置为0时,单片机内部两个定时器可使用TR0=1或者TR1=1启动,指令执行后,定时器即可开始工作。若GATE设置为1时,且当INT0或978-7-111-43463-4-Chapter04-45.jpg引脚电平为高时,以上指令执行后定时器方可启动工作。

2.计数初值的计算

若设最大计数值为2nn为计数器位数,则方式0:n=13,2n=8192;方式1:n=16,2n=65536;方式2:n=8,2n=256;方式3:n=8,2n=256,定时器T0分成两个独立的8位计数器,所以TH0、TL0的最大计数值均为256。

单片机中的T0、T1定时器均为加1计数器,当加到最大值0xFF或0xFFFF时,再加1计数就会产生溢出,定时器溢出会将中断标志位TF0或者TF1位置1,同时发出溢出中断。

1)计数工作方式。计数工作方式时,对外部脉冲进行计数,其计数初值:X=2n-计数值

2)定时工作方式。定时工作方式时,对机器周期进行计数,故计数脉冲频率为机器周期的倒数或等于fcontfosc/12,计数周期T=1/fcont,定时工作方式的计数初值X等于:X=2n-计数值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈