8.2定时器/计数器的4种工作方式T0有四种工作方式0、1、2、3。T1有三种工作方式0、1、2。T0和T1的0、1、2三种工作方式时完全相同的,以T0为例做介绍。方式0:十六位可重装定时计数器。+12AUXR.7=0SYSclkTOCLKO CLKOUTO+1AUXR.7=1C/T=0TLOTHOTFOInterrup(8Bits)(8bits)CT=1P3.4TOPin个control←TROGATERLTLORL_THO(8Bits)(8bits)INTO
8.2 定时器/计数器的4种工作方式 T0有四种工作方式0、1、2、3。T1有三种工作方式0、1、2。T0和T1的 0、1、2三种工作方式时完全相同的,以T0为例做介绍。 方式0:十六位可重装定时计数器。 11
自动重装计数:通过两个特殊功能寄存器THO和TLO和两个隐含计数器RLTHO和RLTLO完成。a、THO和TLO构成的16位加法计数器。b、RLTHO和RLTLO中保存着初值。C、THO和RLTHO共用地址,RLTLO和TLO共用地址。d、设置好初值后,满足计数条件TR0=1或者TR0&P3.2=1时,开始计数或者计时。e、计数溢出后产生中断(T0中断号为1,T1中断号为3)。溢出后RL_THO和RL_TLO中的数值自动存入THO和TLO重新开始计数。f、在计数和计时过程中如果进行初值重置,则RLTHO和RLTLO值发生变化,下一次溢出后,重置时置数为新的初值。设置好初值后:定时时间=(65536-定时器初始值)X系统时钟周期X12(1-TOX12)
◼ 自动重装计数: ◼ 通过两个特殊功能寄存器TH0和TL0和两个隐含计数器RL_TH0和RL_TL0 完成。 ◼ a、TH0和TL0构成的16位加法计数器。 ◼ b、RL_TH0和RL_TL0中保存着初值。 ◼ c、TH0和RL_TH0共用地址,RL_TL0和TL0共用地址。 ◼ d、 设置好初值后,满足计数条件TR0=1或者TR0&P3.2=1时,开始 计数或者计时。 ◼ e、 计数溢出后产生中断(T0中断号为1,T1中断号为3)。溢出后 RL_TH0和RL_TL0中的数值自动存入TH0和TL0重新开始计数。 ◼ f、在计数和计时过程中如果进行初值重置,则RL_TH0和RL_TL0值 发生变化,下一次溢出后,重置时置数为新的初值。 ◼ ◼ 设置好初值后: ◼ 定时时间=(65536-定时器初始值)X系统时钟周期X12(1-T0X12)
4、定时器工作模式时、工作与方式O时,可以通过TOCLK(INTCLKO.O)和TOCLK(INTCLKO.1)来设置进行可编程时钟输出。TO的时钟从3.5输出,T1的时钟从3.4引脚输出。一般情况下:晶振为12MHZ我们会将T0x12和T1x12设置为0,定时器脉冲周期为1uS。最多可以实现65535us的定时。当定时要求为xus(小于65535),则初值为65535-x。TH0=(65535-x)/256TL0=(65535-x)%256
◼ 4、定时器工作模式时、工作与方式0时,可以通过T0CLK(INT_CLKO.0) ◼ 和T0CLK(INT_CLKO.1)来设置进行可编程时钟输出。T0的时钟从3.5输 出,T1的时钟从3.4引脚输出。 ◼ 一般情况下:晶振为12MHz ◼ 我们会将T0x12和T1x12设置为0,定时器脉冲周期为1μs。 ◼ 最多可以实现65535us的定时。 ◼ 当定时要求为xus(小于65535),则初值为65535-x。 ◼ TH0=(65535-x)/256 ◼ TL0=(65535-x)%256
练习:1.1~1.82.1~2.73.1~3.6
◼ 练习: ◼ 1.1~1.8 ◼ 2.1~2.7 ◼ 3.1~3.6
定时器/计数器的编程方式有两种:11、中断方式,利用中断函数进行编程,此时需要设置TMOD,Tix12、THi、TLxiA,ETi,TRi。计数或者定时满了以后的操作写在中断函数里,中断号1(TO)或3(T1)02、查询方式,此时需要设置TMOD,THx、TLX,TRx。无需打开中断。查询中断标志TFx即可。语句为if(TFx==1))下面通过例题来说明这两种编程方式
◼ 定时器/计数器的编程方式有两种: ◼ 1、中断方式,利用中断函数进行编程,此时需要设置 TMOD,Tix12、THi、TLxiA,ETi,TRi。计数或者定时满 了以后的操作写在中断函数里,中断号1(T0)或3(T1) 。 ◼ 2、查询方式,此时需要设置TMOD,THx、TLx,TRx。无 需打开中断。查询中断标志TFx即可。语句为if(TFx==1){ } ◼ 下面通过例题来说明这两种编程方式