
第十四次课(共2学时)一、授课题目:STC15F2K60S2的定时/计数器(上)二、教学目标和任务:1.掌握STC15F2K60S2单片机定时/计数器(TO/T1)的结构和工作原理;2.掌握STC15F2K60S2单片机定时/计数器(TO/T1)的控制;3.掌握STC15F2K60S2单片机定时/计数器(TO/T1)的工作方式。三、教学重难点:重点:STC15F2K60S2单片机定时/计数器(TO/T1)的结构、工作原理、控制和工作方式。难点:STC15F2K60S2单片机定时/计数器(TO/T1)的结构和工作原理。四、授课过程:回顾:STC15F2K60S2的中断系统中断标志位管理、中断允许管理、中断优先级的管理;利用外部中断0、外部中断1编写程序实现简单的现象。0.引入单片机可选择的定时方式有以下三种:软件定时:时延函数硬件定时:(555时基电路)可编程定时器定时1
1 第十四次课(共 2 学时) 一、授课题目:STC15F2K60S2 的定时/计数器(上) 二、教学目标和任务: 1. 掌握 STC15F2K60S2 单片机定时/计数器(T0/T1)的结 构和工作原理; 2. 掌握 STC15F2K60S2 单片机定时/计数器(T0/T1)的控 制; 3. 掌握 STC15F2K60S2 单片机定时/计数器(T0/T1)的工 作方式。 三、教学重难点: 重点:STC15F2K60S2 单片机定时/计数器(T0/T1)的结构、 工作原理、控制和工作方式。 难点:STC15F2K60S2 单片机定时/计数器(T0/T1)的结构 和工作原理。 四、授课过程: 回顾: STC15F2K60S2 的中断系统中断标志位管理、中断 允许管理、中断优先级的管理;利用外部中断 0、外部中断 1 编写程序实现简单的现象。 0.引入 单片机可选择的定时方式有以下三种: 软件定时:时延函数 硬件定时:(555 时基电路) 可编程定时器定时

本节课将为大家介绍的定时方式为可编程定时器定时:STC15F2K60S2内部有三个16位可编程定时器/计数器(TO、T1、T2)。可以用于:定时、计数、可编程时钟输出。本课程重点讲授TO和T1。1.定时/计数器(TO/TI)的结构和工作原理定时计数器TO和T1的结构如图1所示。sysclk/127, P3.5sysclk/127P3.4≥1AUXRAUXR≥1sysclk/1-4sysclk/1THITHOTLOIL11CPUTCONTMOD图1定时/计数器(TO/T1)的结构讲解要点如下:1)核心电路为十六位加法计数器,由THx,TLx两个8位计数器组成。2)两个定时器/计数器都具有定时器和计数器2种工作模式3)计数器时,TO和T1的计数信号分别来自P3.4和P3.5的负跳变。(T2是P3.0)4)定时器时,频率有两种:时钟脉冲或者时钟脉冲的十二分频。可以通过特殊功能寄存器AUXR的特定位控制。默认为脉冲的十二分频信号。5)当计数器溢出时(16位计数器,计满到65536),引起2
2 本节课将为大家介绍的定时方式为可编程定时器定时; STC15F2K60S2 内部有三个 16 位可编程定时器/计数器(T0、 T1、T2)。可以用于:定时、计数、可编程时钟输出。本课程 重点讲授 T0 和 T1。 1. 定时/计数器(T0/T1)的结构和工作原理 定时计数器 T0 和 T1 的结构如图 1 所示。 图 1 定时/计数器(T0/T1)的结构 讲解要点如下: 1)核心电路为十六位加法计数器,由 THx,TLx 两个 8 位 计数器组成。 2)两个定时器/计数器都具有定时器和计数器 2 种工作模 式 3)计数器时,T0 和 T1 的计数信号分别来自 P3.4 和 P3.5 的负跳变。(T2 是 P3.0) 4)定时器时,频率有两种:时钟脉冲或者时钟脉冲的十 二分频。可以通过特殊功能寄存器 AUXR 的特定位控制。默认 为脉冲的十二分频信号。 5)当计数器溢出时(16 位计数器,计满到 65536),引起

中断,T0、T1、T2对应的中断号分别为1,3,12。思考:16位计数器,共可以满足多少次计数,假设定时模式用12MHz的晶振,一次最长可以计时多久,计时一次多长时间。2.定时/计数器(TO/T1)的管理2.1TCON字节地址88HD7D6D5D4D3D2D1DOIE1IT1IEOTCONTF1TR1TFOTROITO88H(1)TF1、TFO一计数溢出标志位当计数器计数溢出时,该位置“1”。(2)TR1、TRO一计数运行控制位TR1位(或TRO)=1,启动计数器计数的必要条件。TR1位(或TRO)=O,停止计数器计数。该位可由软件置“1”或清“0”2.2工作方式控制寄存器TMODTMOD用于选择定时器/计数器的工作模式和工作方式,字节地址为89H,不能位寻址,格式如下。DSD4D7D6D3D2DIDOC/TMIC/TMITMODGATEMOGATEMo89HTI方式字段TO方式字段8位分两组,高4位控制T1,低4位控制TO。(1)GATE-门控位GATE=O,定时器是否计数,由控制位TRO(TO)或者TR1(T1)来控制。TRx等于1时启动。3
3 中断,T0、T1、T2 对应的中断号分别为 1,3, 12。 思考:16 位计数器,共可以满足多少次计数,假设定时模 式用 12MHz 的晶振,一次最长可以计时多久,计时一次多长时 间。 2.定时/计数器(T0/T1)的管理 2.1 TCON 字节地址 88H (1)TF1、TF0—计数溢出标志位 当计数器计数溢出时,该位置“1”。 (2)TR1、TR0—计数运行控制位 TR1 位(或 TR0)=1,启动计数器计数的必要条件。 TR1 位(或 TR0)=0,停止计数器计数。 该位可由软件置“1”或清“0”。 2.2 工作方式控制寄存器 TMOD TMOD 用于选择定时器/计数器的工作模式和工作方式,字 节地址为 89H,不能位寻址,格式如下。 8 位分两组,高 4 位控制 T1,低 4 位控制 T0。 (1)GATE-门控位 GATE=0,定时器是否计数,由控制位 TR0(T0)或者 TR1 (T1)来控制。TRx 等于 1 时启动

GATE=1,定时器是否计数,由外中断引脚P3.2(TO)或者P3.3(T1)上的高电平与运行控制位TRx共同控制。(2)C/T*-计数器模式和定时器模式选择位C/T*=0,定时器模式,对系统时钟或系统时钟12分频后的脉冲进行计数。C/T*=1,计数器模式,计数器对外部输入引脚TO(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。(3)工作方式选择位-M1和MOMOM1工作方式00方式0:自动重装16位定时计数器01方式1:16位定时计数器10方式2:自动重装8位定时计数器11方式3:只有TO有,T1停止工作注意:本部分强调自动重装16位定时计数器时STC15系列特有的功能,是在89系列芯片上的一个重要的改进。2.3辅助寄存器AUXRR(8EH)B7B6B5B3B1BOB4B2T0x12T1x12T2RT2x12-1)TOx12:用来设置定时器/计数器TO作为定时器时的计数脉冲,TOx12=0时,计数脉冲为系统时钟十二分之一,一次计数12T。TOx12=1时,计数脉冲为系统时钟,一次计数1T。2)T1x12:用来设置定时器/计数器T1作为定时器时的计数脉冲,T1x12=0时,计数脉冲为系统时钟十二分之一,一次计数12T。T1x12=1时,计数脉冲为系统时钟,:一次计数1T。4
4 GATE=1,定时器是否计数,由外中断引脚 P3.2(T0)或者 P3.3(T1)上的高电平与运行控制位 TRx 共同控制。 (2)C/T*-计数器模式和定时器模式选择位 C/T*=0,定时器模式,对系统时钟或系统时钟 12 分频后 的脉冲进行计数。 C/T*=1,计数器模式,计数器对外部输入引脚 T0(P3.4) 或 T1(P3.5)的外部脉冲(负跳变)计数。 (3)工作方式选择位-M1 和 M0 M1 M0 工作方式 0 0 方式 0:自动重装 16 位定时计数器 0 1 方式 1:16 位定时计数器 1 0 方式 2:自动重装 8 位定时计数器 1 1 方式 3:只有 T0 有,T1 停止工作 注意:本部分强调自动重装 16 位定时计数器时 STC15 系 列特有的功能,是在 89 系列芯片上的一个重要的改进。 2.3 辅助寄存器 AUXR(8EH) 1)T0x12:用来设置定时器/计数器 T0 作为定时器时的计 数脉冲,T0x12=0 时,计数脉冲为系统时钟十二分之一,一次 计数 12T。T0x12=1 时,计数脉冲为系统时钟,一次计数 1T。 2)T1x12:用来设置定时器/计数器 T1 作为定时器时的计 数脉冲,T1x12=0 时,计数脉冲为系统时钟十二分之一,一次 计数 12T。T1x12=1 时,计数脉冲为系统时钟,一次计数 1T

3)不可位寻址,请思考如何实现置1和置0。如:AUXR=AUXR0x40AUXR=0x80AUXR=0xC0注意:本部分强调传统89系列芯片用作定时时,技术脉冲位系统时钟的十二分之一,可将定时脉冲设置为系统时钟本身为STC15系列芯片的一个重大的改进。3.工作方式TO有四种工作方式0、1、2、3。T1有三种工作方式0、1、2。TO和T1的0、1、2三种工作方式时完全相同的,以TO为例做介绍。3.1方式0工作与方式0时结构如图2所示。+12AUXR.7=0SYSclk-TOCLKOCLKOUTAUXR.7=C/T=0TFO>Interup(8Bits)(8bits)CT=1P3. 4 TO Pincontrolt+IROGATERLTLORL_THO(8 Bits) (8 bits)INTO图2方式0示意图自动重装计数实现方式如下:通过两个特殊功能寄存器THO和TLO和两个隐含计数器RL_THO和RL_TLO完成。a、THO和TLO构成的16位加法计数器。b、RLTHO和RLTLO中保存着初值。C、THO和RL_THO共用地址,RL_TLO和TLO共用地址。5
5 3)不可位寻址,请思考如何实现置 1 和置 0。 如:AUXR=AUXR|0x40 AUXR|=0x80 AUXR|=0xC0 注意:本部分强调传统 89 系列芯片用作定时时,技术脉 冲位系统时钟的十二分之一,可将定时脉冲设置为系统时钟本 身为 STC15 系列芯片的一个重大的改进。 3. 工作方式 T0 有四种工作方式 0、1、2、3。T1 有三种工作方式 0、 1、2。T0 和 T1 的 0、1、2 三种工作方式时完全相同的,以 T0 为例做介绍。 3.1 方式 0 工作与方式 0 时结构如图 2 所示。 图 2 方式 0 示意图 自动重装计数实现方式如下: 通过两个特殊功能寄存器 TH0 和 TL0 和两个隐含计数器 RL_TH0 和 RL_TL0 完成。 a、TH0 和 TL0 构成的 16 位加法计数器。 b、RL_TH0 和 RL_TL0 中保存着初值。 c、TH0 和 RL_TH0 共用地址,RL_TL0 和 TL0 共用地址

d、设置好初值后,满足计数条件TRO=1或者TRO&P3.2=1时,开始计数或者计时。e、计数溢出后产生中断(TO中断号为1,T1中断号为3)溢出后RLTHO和RLTLO中的数值自动存入THO和TLO重新开始计数。f、在计数和计时过程中如果进行初值重置,则RLTHO和RLTLO值发生变化,下一次溢出后,重置时置数为新的初值。g、定时器工作模式时、工作与方式0时,可以通过TOCLK(INTCLKO.O)和TOCLK(INTCLKO.1)来设置进行可编程时钟输出。TO的时钟从3.5输出,T1的时钟从3.4引脚输出。设置好初值后:定时时间=(65536-定时器初始值)×系统时钟周期×12(1-ToX12)3.2方式1结构如图3所示,有了方式0后,方式1很少使用了,方式1不具备自动重装功能,当定时计数器计满溢出进入中断函数后,需要重新设置初值。AUXR. 7=0SYSclkAUXR7=C/T=0-Interrup(8Bits)CT-P3.4TOPincontrolTROGATEINTO图3方式1结构图3.3方式26
6 d、 设置好初值后,满足计数条件 TR0=1 或者 TR0&P3.2=1 时,开始计数或者计时。 e、 计数溢出后产生中断(T0 中断号为 1,T1 中断号为 3)溢出后 RL_TH0 和 RL_TL0 中的数值自动存入 TH0 和 TL0 重 新开始计数。 f、在计数和计时过程中如果进行初值重置,则 RL_TH0 和 RL_TL0 值发生变化,下一次溢出后,重置时置数为新的初值。 g、定时器工作模式时、工作与方式 0 时,可以通过 T0CLK(INT_CLKO.0)和 T0CLK(INT_CLKO.1)来设置进行可编程 时钟输出。T0 的时钟从 3.5 输出,T1 的时钟从 3.4 引脚输出。 设置好初值后: 定时时间=(65536-定时器初始值)×系统时钟周期×12(1-T0X12) 3.2 方式 1 结构如图 3 所示,有了方式 0 后,方式 1 很少使用了,方 式 1 不具备自动重装功能,当定时计数器计满溢出进入中断函 数后,需要重新设置初值。 图 3 方式 1 结构图 3.3 方式 2

结构如图4所示,方式2为自动重装初值的8位定时计数器,工作时TLi负责计数,THi中存放初值。设置初值时T1i=THi.+12AUXR.7=0SYSclkCLKOUTOTAUXR.7=1C/T=00IntermupTFO(8BitsCT-1P3.4TOPincontrolTRTHOGATE[(8Bits)INTO图4方式2结构图3.4方式3TO被分成了两个独立的8位不可重装定时/计数器TLO和THO,结构如图5所示,12AUXR.7=0SYSclkTAUXR_7=1C/T-0TLOInterrupTFO7(8Bis)CT=!P3.4TOPincontrolTROGATEXINTO+12AUXR.7=0SYSclk-THOInterruptTF1(8Bits)TAUXR.7=1controlTR1图5方式3结构图7
7 结构如图 4 所示,方式 2 为自动重装初值的 8 位定时计 数器,工作时 TLi 负责计数,THi 中存放初值。设置初值时 Tli =THi。 图 4 方式 2 结构图 3.4 方式 3 T0 被分成了两个独立的 8 位不可重装定时/计数器 TL0 和 TH0,结构如图 5 所示。 图 5 方式 3 结构图

其中,TLO占用TO原来的控制位、引脚和中断标志位,GATA、P3.2、TRO、C/T、P3.4、TFO。THO只作为定时器使用、仅用TR1控制工作与否、溢出后置位TF1。T1此时可以工作手方式0、1、2,可以通过C/T切换其定时或是计数方式,但是,由于TR1控制位被占用,一日设置好工作方式就启动了,需在之前设置好计数初值、工作方式、工作模式,溢出时,溢出标志送往串口,作为串口波特率发生器。此时如果想让T1停止工作需要将其设置为方式3。五、作业175页习题1.1~1.8、2.1~2.7、3.1~3.6。六、参考文献1.丁向荣编,单片机微机原理与接口技术(第2版),北京:电子工业出版社,20182.张毅刚编,单片机原理及应用:C51编程+Proteus仿真(第2版),北京:高等教育出版社,20163.丁元杰编,单片微机原理及应用(第三版),北京:机械工业出版社,20114.郭文川编,MCS-51单片机原理接口及应用,北京:电子工业出版社,20135.周航慈编,单片机应用程序设计技术(修订版),北京:北京航天航空大学出版社,20026.严洁编,单片机原理及其接口技术,北京,机械工业出版社,2010.8
8 其中,TL0 占用 T0 原来的控制位、引脚和中断标志位, GATA、P3.2、TR0、C/T、P3.4、TF0。 TH0 只作为定时器使用、仅用 TR1 控制工作与否、溢出后 置位 TF1。 T1 此时可以工作于方式 0、1、2,可以通过 C/T 切换其定 时或是计数方式,但是,由于 TR1 控制位被占用,一旦设置好 工作方式就启动了,需在之前设置好计数初值、工作方式、工 作模式,溢出时,溢出标志送往串口,作为串口波特率发生器。 此时如果想让 T1 停止工作需要将其设置为方式 3。 五、作业 175 页习题 1.1~1.8、2.1~2.7、3.1~3.6。 六、参考文献 1. 丁向荣编,单片机微机原理与接口技术(第 2 版),北京:电子 工业出版社,2018. 2. 张毅刚编, 单片机原理及应用:C51编程+Proteus仿真(第2版), 北京:高等教育出版社,2016. 3. 丁元杰编,单片微机原理及应用(第三版),北京:机械工业出 版社,2011. 4. 郭文川编,MCS-51 单片机原理接口及应用,北京:电子工业出 版社,2013. 5. 周航慈编, 单片机应用程序设计技术(修订版),北京:北京航 天航空大学出版社,2002. 6. 严洁编, 单片机原理及其接口技术,北京,机械工业出版社, 2010

七、课后记定时/计数器为重要的单片机内部资源,有中断和查询两种使用方式。本节课在介绍时,应充分结合实际,引导学生理解,讲解过程中,注意循序渐进9
9 七、课后记 定时/计数器为重要的单片机内部资源,有中断和查询两 种使用方式。本节课在介绍时,应充分结合实际,引导学生理 解,讲解过程中,注意循序渐进