第5章MCS51 单片机定时器/计数器 主要内容 定时/计数器的工作原理模式 定时/计数器的工作方式 定时/计数器的应用
1 第5章 MCS-51 单片机定时器/计数器 主要内容 ◼ 定时/计数器的工作原理模式 ◼ 定时/计数器的工作方式 ◼ 定时/计数器的应用
5.l概述 (1)定时器计数器的概念 内部计数器→定时器 定时/计数器 外部计数器→计数器 (2)MCS-51的定时器计数器简介 2个16位的定时分计数器,有多种工作方式。 定时汁计数器工作在定时模式时,计数脉冲信号来 自单片机的内部,计数速率是晶振频率的1/12,当计 数器启动后,每个机器周期计数器自动加1。 定时计数器工作在计数模式时,计数器对外部脉 冲进行计数,计数器计P34(T脚)P3.5(T1脚)负跳变 次数。每产生一次负跳变,计数器自动加1
2 (1) 定时器/计数器的概念 定时器 计数器 定时/计数器 内部计数器 外部计数器 (2) MCS-51的定时器/计数器简介 2个16位的定时/计数器,有多种工作方式。 定时/计数器工作在定时模式时,计数脉冲信号来 自单片机的内部,计数速率是晶振频率的1/12,当计 数器启动后,每个机器周期计数器自动加1。 定时/计数器工作在计数模式时,计数器对外部脉 冲进行计数,计数器计P3.4(T0脚)P3.5(T1脚)负跳变 次数。每产生一次负跳变,计数器自动加1。 5.1 概述
5.l概述 T外部计数脉冲 T0外部计数脉冲 P33‘II 定时/计数器T1 定时/计数器T0 THITIMERT TLI THO TIMERO TLO 启 式 单片机 动 方式 CPU 单片机内部总线 TCON TMOD 溢出中断请求 MCS-51定时器/计数器的逻辑结构
3 单片机内部总线 TH1 TL1 TH0 TL0 TCON TMOD 单片机 CPU 定时/计数器T1 定时/计数器T0 溢 出 溢 出 方 式 方 式 启 动 启 动 溢出中断请求 T1外部计数脉冲 T0外部计数脉冲 P3.5 P3.4 MCS-51定时器/计数器的逻辑结构 5.1 概述 TIMER1 TIMER0
5.2定时器/计数器的工作方式选择及控制 (一)定时计数器的工作方式寄存器(TMOD,89H) 定时/计数器T1 定时/计数器T0 D7 D6 D5 D4 D3 D2 D1 DO Gate TLMERI Mo GATE CTMER01 Mo 门控位 定时/计数器工作方式 定时器和计数器模式选择 定时器和计数器模式选择 定时/计数器工作方式门控位
4 GATE M0 GATE C/T M1 M0 C/T M1 D7 D6 D5 D4 D3 D2 D1 D0 定时/计数器工作方式 定时器和计数器模式选择 门控位 定时/计数器T1 定时/计数器T0 定时/计数器工作方式 定时器和计数器模式选择 门控位 5.2 定时器/计数器的工作方式选择及控制 (一) 定时/计数器的工作方式寄存器(TMOD, 89H ) TIMER1 TIMER0
5.2定时器/计数器的工作方式选择及控制 (一)定时叶数器的工作方式寄存器(TMOD,89H) TMOD各位的定义(以定时器/计数器T0为例) M1M0工作方式 说 明 13位定时器汁数器,由们0低五位和TH高八位组成 01116位定时器计数器,由∏低人位和∏高八位组成 0 28位定时器计数器,由L0低八位组成 30低八位和TH0高八位分别位8位定时器计数器 定时器和计数器模式选择位 C/T=0,定时器模式,每一个机器周期计数器自动加1。 C/T=1,计数器模式,在单片机T引脚上每发生一次负 跳变,计数器自动加1。 GATE=0,定时/计数器工作不受外部控制。 GATE=1,定时/计数器T0的起停受INT0引脚的控制。 5
5 定时器和计数器模式选择位 =0,定时器模式,每一个机器周期计数器自动加1。 =1,计数器模式,在单片机T0引脚上每发生一次负 跳变,计数器自动加1。 GATE=0,定时/计数器工作不受外部控制。 GATE=1,定时/计数器T0的起停受INT0引脚的控制。 TMOD各位的定义(以定时器/计数器T0为例) M1 M0 说 明 0 0 0 13位定时器/计数器,由TL0低五位和TH0高八位组成 工作方式 0 1 1 16位定时器/计数器,由TL0低八位和TH0高八位组成 1 0 2 8位定时器/计数器,由TL0低八位组成 1 1 3 TL0低八位和TH0高八位分别位8位定时器/计数器 5.2 定时器/计数器的工作方式选择及控制 (一) 定时/计数器的工作方式寄存器(TMOD, 89H ) C/T C/T 5.2 定时器/计数器的工作方式选择及控制 (一) 定时/计数器的工作方式寄存器(TMOD, 89H )
5.2定时器/计数器的工作方式选择及控制 (二)定时/计数器控制寄存器(TCON) 控制定时计数器的起停,反映定时/计数器是否计满。 D7 D6 D5 D4 D3 D2 DI DO TCON TFI TRI TFO TRO IE1 ITI IE0 ITO 定时器计数器1 的溢出标志 TR0=1启动定时/计数器T0 TR0=0定时/计数器T0停止计数 定时器计数器1 的起停控制位 TR1=1启动定时/计数器T1 定时器/计数器0 TR1=0定时/计数器T停止计数 的溢出标志 定时器计数器0 的起停控制位
6 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 定时器/计数器1 的溢出标志 TCON D7 D6 D5 D4 D3 D2 D1 D0 定时器/计数器0 的起停控制位 定时器/计数器1 的起停控制位 定时器/计数器0 的溢出标志 5.2 定时器/计数器的工作方式选择及控制 (二) 定时/计数器控制寄存器(TCON) 控制定时/计数器的起停,反映定时/计数器是否计满。 TR0 =1 启动定时/计数器T0 TR0 =0 定时/计数器T0停止计数 TR1 =1 启动定时/计数器T1 TR1 =0 定时/计数器T1停止计数
5.2定时器/计数器的工作方式选择及控制 (二)定时/计数器控制寄存器(TCON) 单片栩复位时,特殊功能寄存器TCON被漬0 TFX(x=0,1)和TRx(x=0,1)由软件方法置或 清0。既可按单元操作的方式,也可以按位操作方式。 如启动定时计数器T0和T1,清除溢出标志位TFO和 TF1操作如下 SETB TRO SETB TRI CLR TFO CLR TF1 或: MOV TCON,#01010003
7 (二) 定时/计数器控制寄存器(TCON) 单片机复位时,特殊功能寄存器TCON被清0。 TFx(x=0,1)和TRx(x=0,1)由软件方法置1或 清0。既可按单元操作的方式,也可以按位操作方式。 如启动定时/计数器T0和T1,清除溢出标志位TF0和 TF1操作如下: SETB TR0 SETB TR1 CLR TF0 CLR TF1 或: MOV TCON, #01010000B 5.2 定时器/计数器的工作方式选择及控制
5.2定时器/计数器的工作方式选择及控制 (二)定时/计数器控制寄存器(TCON) 注意:使用定时器/计数器时应注意以下几个方面: (1)MCS=5的定时器注数器为加计数器。 (2)定时器计数器T1的工作方式没有方式3 如果设置它为方式3(MM0=11),定时器计数器 T1停止工作 (3)一般情况下,定时器/计数器T溢出后, TF1自动置1,可以以此为判断标志,检测定时或计 数是否完成,但在定时器计数器T0设置为方式3时, TF1为1时意味着8位计数器TH0溢出,TFO为1表示8 位计数器TL0溢出。 (4)在计数器模式时,计数脉冲的频率不高于 振荡器频率的1/24
8 注意:使用定时器/计数器时应注意以下几个方面: (1)MCS-51的定时器/计数器为加1计数器。 (2)定时器/计数器T1的工作方式没有方式3, 如果设置它为方式3(M1M0=11),定时器/计数器 T1停止工作。 (3)一般情况下,定时器/计数器T1溢出后, TF1自动置1,可以以此为判断标志,检测定时或计 数是否完成,但在定时器/计数器T0设置为方式3时, TF1为1时意味着8位计数器TH0溢出,TF0为1表示8 位计数器TL0溢出。 (4)在计数器模式时,计数脉冲的频率不高于 振荡器频率的1/24. 5.2 定时器/计数器的工作方式选择及控制 (二) 定时/计数器控制寄存器(TCON)
5.3定时器/计数器的工作方式及工作原理 53.1方式0 OSC 12分频 C/T=O TLO THO (位)(3位) 中断请求 T0引脚 CT= CONTROL 计数器的高八位计数器的低五位 GAtE INT引脚 THO TLO 定时器/计数器T0工作方式0的逻辑结构
9 5.3.1 方式0 5.3 定时器/计数器的工作方式及工作原理 定时器/计数器T0工作方式0的逻辑结构 计数器的高八位 计数器的低五位 TH0 TL0
5.3定时器/计数器的工作方式及工作原理 53.1方式0 当GATE=0时,只要TR0为1,TL0及TH0组成的 13位计数器就开始计数; 当GATE=1时,仅当TR0为1,且INT0引脚输入信 号状态为1时,13位计数器开始计数。 计数器开始工作时,当13位计数器从初始值开始 加1计数,当13位计数器各位全1以后,再计数1次, 计数器就产生溢出,则TF0位由硬件自动置1,同时把 计数器清0。 在方式0下,计数器计数范围是1~8192(213) 定时时间范围为1~8192个机器周期
10 当GATE=0时,只要TR0为1,TL0及TH0组成的 13位计数器就开始计数; 当GATE=1时,仅当TR0为1,且INT0引脚输入信 号状态为1时,13位计数器开始计数。 计数器开始工作时,当13位计数器从初始值开始 加1计数,当13位计数器各位全1以后,再计数1次, 计数器就产生溢出,则TF0位由硬件自动置1,同时把 计数器清0。 在方式0下,计数器计数范围是1~8192(2 13)。 定时时间范围为1~8192个机器周期。 5.3 定时器/计数器的工作方式及工作原理 5.3.1 方式0