
第8章定时器计数器的工作原理及应用
第8章 定时器/计数器的工 作原理及应用 1

定时方式:软件定时硬件定时可编程定时器定时STC15F2K60S2内部有三个16位可编程定时器/计数器(T0、T1、T2)。可以用于:定时、计数、可编程时钟输出。重点讲解TO和T1
定时方式: 软件定时 硬件定时 可编程定时器定时 STC15F2K60S2内部有三个16位可编程定时器/计数器(T0、 T1、T2)。可以用于:定时、计数、可编程时钟输出。 重点讲解T0和T1. 2

8.1定时器/计数器T0与T1的结构定时器TO和T1结构见图7-1,定时器/计数器TO由特殊功能寄存器THO、TL0构成,T1由特殊功能寄存器TH1、TL1构成。sysclk/12sysclk/12P3.5P3.4.AUXRAUXR≥1≥1sysclk/1sysclk/1TH1TL1TLOTHOCPUTCONTMOD图8-1定时器/计数器结构框图3
3 8.1 定时器/计数器T0与T1的结构 定时器T0和T1结构见图 7-1,定时器/计数器T0由特殊功能寄存器TH0、 TL0构成,T1由特殊功能寄存器TH1、TL1构成。 图8-1 定时器/计数器结构框图

工作过程说明1、两个定时器计数器都具有定时器和计数器2种工作模式(定时器模式和计数器模式),均为十六位加法计数器,由THx,TLx两个8位计数器组成。2、计数器时,T0和T1的计数信号分别来自P3.4和P3.5的负跳变。计数信号的速率没有要求,但必须保证电平信号的变化可以被准确采样。(T2是P3.0)3、定时器时,计数脉冲来自系统时钟,频率有两种:时钟脉冲或者时钟脉冲的十二分频。可以通过特殊功能寄存器AUXR的特定位控制。默认为脉冲的十二分频信号,一般用此信号即可4、当计数器溢出时(16位计数器,计满到65536),引起中断,T0、T1、T2对应的中断号分别为1,3,12。思考:16位计数器,共可以满足多少次计数,假设定时模式用12MHz的晶振一次最长可以计时多久,计时一次多长时间
工作过程说明 1、两个定时器/计数器都具有定时器和计数器2种工作模式(定时器模式和计 数器模式),均为十六位加法计数器,由THx,TLx两个8位计数器组成。 2、计数器时, T0和T1的计数信号分别来自P3.4和P3.5的负跳变。计数信号的 速率没有要求,但必须保证电平信号的变化可以被准确采样。(T2是P3.0) 3、定时器时,计数脉冲来自系统时钟,频率有两种:时钟脉冲或者时钟脉冲 的十二分频。可以通过特殊功能寄存器AUXR的特定位控制。默认为脉冲的十二 分频信号,一般用此信号即可 4、当计数器溢出时(16位计数器,计满到65536),引起中断,T0、T1、T2 对应的中断号分别为1,3, 12。 思考:16位计数器,共可以满足多少次计数,假设定时模式用12MHz的晶振, 一次最长可以计时多久,计时一次多长时间

8.1.2定时器/计数器控制寄存器TCONTCON字节地址88H。格式见图8-3。D5D4D3D2D1D7D6DOIE1IT1TF1TR1TFOTROIEOITO88HTCON图8-3TCON格式(1)TF1、TF0一计数溢出标志位当计数器计数溢出时,该位置“1”。使用查询方式时,此位可供CPU查询,但应注意查询后,用软件及时将该位清“0”。使用中断方式时,作为中断请求标志位,进入中断服务程序后由硬件自动清“0”。(2)TR1、TRO一计数运行控制位TR1位(或TRO)=1,启动计数器计数的必要条件。TR1位(或TRO)=O,停止计数器计数。该位可由软件置“1”或清“0”。5
8.1.2 定时器/计数器控制寄存器TCON TCON字节地址88H。格式见图8-3。 5 图8-3 TCON格式 (1)TF1、TF0—计数溢出标志位 当计数器计数溢出时,该位置“1”。使用查询方式时,此位可供CPU 查询,但应注意查询后,用软件及时将该位清“0”。使用中断方式时,作为 中断请求标志位,进入中断服务程序后由硬件自动清“0”。 (2)TR1、TR0—计数运行控制位 TR1位(或TR0)=1,启动计数器计数的必要条件。 TR1位(或TR0)=0,停止计数器计数。 该位可由软件置“1”或清“0

辅助寄存器AUXR(8EH)B7B5B4B2B6B3B1B0T1x12T2RT2x12T0x12T0x12:用来设置定时器/计数器T0作为定时器时的计数脉冲T0x12=0时,计数脉冲为系统时钟十二分之一,一次计数12TT0x12=1时,计数脉冲为系统时钟,一次计数1T。T1x12:用来设置定时器/计数器T1作为定时器时的计数脉冲T1x12=0时,计数脉冲为系统时钟十二分之一,一次计数12T。T1x12=1时,计数脉冲为系统时钟,一次计数1T。不可位寻址,请思考如何实现置1和置0。如:AUXR=AUXR0x40AUXR=0x80AUXR|=0xC0
辅助寄存器AUXR(8EH) B7 B6 B5 B4 B3 B2 B1 B0 T0x12 T1x12 - T2R - T2x12 - - T0x12:用来设置定时器/计数器T0作为定时器时的计数脉冲, T0x12=0时,计数脉冲为系统时钟十二分之一,一次计数12T。 T0x12=1时,计数脉冲为系统时钟,一次计数1T。 T1x12:用来设置定时器/计数器T1作为定时器时的计数脉冲, T1x12=0时,计数脉冲为系统时钟十二分之一,一次计数12T。 T1x12=1时,计数脉冲为系统时钟,一次计数1T。 不可位寻址,请思考如何实现置1和置0。 如:AUXR=AUXR|0x40 AUXR|=0x80 AUXR|=0xC0

8.1.1工作方式控制寄存器TMODTMOD用于选择定时器/计数器的工作模式和工作方式,字节地址为89H2不能位寻址,格式见图8-2。D7D6DSD4D3D2DIDOCFTCTMIMOMITMODGATEGATEMO89HT1方式字段TO方式字段图8-2寄存器TMOD格式8位分两组,高4位控制T1,1低4位控制TO
7 8.1.1 工作方式控制寄存器TMOD TMOD用于选择定时器/计数器的工作模式和工作方式,字节地址为89H ,不能位寻址,格式见图8-2。 图8-2 寄存器TMOD格式 8位分两组,高4位控制T1,低4位控制T0

TMOD各位说明如下。(1)GATE—门控位定时器是否计数,由控制位TRO(TO)或者TR1(T1)来控GATE=0.制。TRx等于1时启动。GATE=1,定时器是否计数,由外中断引脚P3.2(T0)或者P3.3(T1)上的高电平与运行控制位TRx共同控制。这样设定的意义在于,可以在P3.2上加脉冲信号,测试脉宽,请思考如何实现。8
TMOD各位说明如下。 (1)GATE—门控位 GATE=0,定时器是否计数,由控制位TR0(T0)或者TR1(T1)来控 制。TRx等于1时启动。 GATE=1,定时器是否计数,由外中断引脚P3.2(T0)或者P3.3(T1 )上的高电平与运行控制位TRx共同控制。 这样设定的意义在于,可以在P3.2上加脉冲信号,测试脉宽,请思考如 何实现。 8

(2)C/T*一计数器模式和定时器模式选择位C/T*=0,定时器模式,对系统时钟或系统时钟12分频后的脉冲进行计数。C/T*=1,计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。·
(2)C/T* —计数器模式和定时器模式选择位 C/T*=0,定时器模式,对系统时钟或系统时钟12分频后的脉冲进行计 数。 C/T*=1,计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5 )的外部脉冲(负跳变)计数。 9

(3)M1、MO一工作方式选择位M1、MO4种编码,对应于4种工作方式的选择,见表8-1。表8-1M1、MO工作方式选择M1MO方式和功能说明00方式0:自动重装初始值的16位定时/计数器10方式1:16位定时计数器01方式2:自动重装8位定时/计数器11方式3:定时器0分成两个八位定时/计数器定时器1停止工作10
(3)M1、M0—工作方式选择位 M1、M0 4种编码,对应于4种工作方式的选择,见表8-1。 表8-1 M1、M0工作方式选择 10 M1 M0 方式和功能说明 0 0 方式0 :自动重装初始值的16位定时/计数器 0 1 方式1:16位定时计数器 1 0 方式2:自动重装8位定时/计数器 1 1 方式3:定时器0分成两个八位定时/计数器 定时器1停止工作