
单片机应用技术 定时器计数器 3定时器/计数器工作方式 顾筠
定 时 器 / 计 数 器 单片机应用技术 3 定 时 器 / 计 数 器 工 作 方 式 顾 筠

定时器/计数器 定时与计数原理 定时器/计数器结构与功能 定时器/计数器江作方式 单片机定时器应用
定时器/计数器 1 定时与计数原理 2 定时器/计数器结构与功能 定时器/计数器工作方式 单片机定时器应用 3 4

3定附器/计数器工作方式 >定时器/计数器T0、T1通过对M0、M1的设置确定 四种工作方式。 ●方式0:13位定时器/计数器 ●方式1:16位定时器/计数器 ●方式2:自动重装初值的8位定时器/计数器 ·方式3:仅适合于T0,可分为两个8位计数器
3 定时器/计数器工作方式 Ø定时器/计数器T0、T1通过对M0、M1的设置确定 四种工作方式。 l方式0:13位定时器/计数器 l方式1:16位定时器/计数器 l方式2:自动重装初值的8位定时器/计数器 l方式3:仅适合于T0,可分为两个8位计数器

(1)工作方式0 >(以T0为例)方式0为13位计数,由TL0的低5位(高3位未用)和 TH0的8位组成加1计数器。TL0的低5位溢出时向TH0进位,TH0 溢出时,置位TCON中的TFO标志,向CPU发出中断请求。 TCON TMOD TF1 D7 T0引脚 申请 0M0 po ☐ 中断 TR1 溢出 0M1 TFO Tol网oc C/T TRO 0 8位 5位 机器周期 GATE MO 1 MI C/T 口 o INT0引脚 GATE D7
(1)工作方式0 Ø(以T0为例)方式0为13位计数,由TL0的低5位(高3位未用)和 TH0的8位组成加1计数器。TL0的低5位溢出时向TH0进位,TH0 溢出时,置位TCON中的TF0标志,向CPU发出中断请求

方式0计数初值计算 >定时器模式时 ●定时时间t=计数值N×机器周期T ●即N=t/T=12/fosc×t ●计数初值计算的公式为:x=213-N=213.12/fosc×t >定时器的初值还可以采用计数个数直接取补法获得。 >计数模式时 ●计数脉冲是Tx引脚上的外部脉冲
方式0计数初值计算 Ø定时器模式时 l定时时间 t = 计数值 N×机器周期 T l即 N = t / T = 12/fosc×t l计数初值计算的公式为:x = 213 - N = 213- 12/fosc×t Ø定时器的初值还可以采用计数个数直接取补法获得。 Ø计数模式时 l计数脉冲是Tx引脚上的外部脉冲

(2)工作方式1 >(以T0为例)方式1的计数位数是16位,由TL0作为低8位、TH0 作为高8位,组成了16位加1计数器。 TCON TMOD TFI D7 T0引脚 申请 MO DO □ 中断 TRI 溢出 18 0 TFO C/T TRO 8位 8位 机器周期 GATE MO M1 C/T DO INTO引脚 GATE D7
(2)工作方式1 Ø(以T0为例)方式1的计数位数是16位,由TL0作为低8位、TH0 作为高8位,组成了16位加1计数器

方式1计数初值计算 >定时器模式时 ●定时时间t=计数值N×机器周期T ●即N=t/T=12/foscxt ●计数初值计算的公式为:x=216-12/fosc×t 【例】方式1定时时间为10ms,晶振频率fosc=12MHz 则机器周期=12/fosc-1us,计数初值为: X=216-1/fosc×t =65536-12/(12×10-6)×10×10-3 =65536-10000=55536
方式1计数初值计算 Ø定时器模式时 l定时时间 t = 计数值 N×机器周期 T l即 N = t / T = 12/fosc×t l计数初值计算的公式为:x = 216 - 12/fosc×t 【例】方式1定时时间为10ms,晶振频率fosc=12MHz 则机器周期=12/fosc=1μs,计数初值为: x = 216 - 1/fosc×t = 65536 -12/(12×10-6)×10×10-3 = 65536-10000=55536

(3)工作方式2 >(以T0为例)方式2为自动重装初值的8位计数方式。当TL0计数 溢出时,将TH0中的值自动送入TL0,使TL0从初值开始重新计数, 而TH0的内容保持不变。 TCON TMOD TF1 D7 T0引脚 申请 0M0 ☐ 中断 TRI 溢出 1 MI TFO TLO 00 C/T TRO 0 机器周期 GATE THO MO M1 8位 C/T ☐ DO NTO引脚 GATE D7
(3)工作方式2 Ø(以T0为例)方式2为自动重装初值的8位计数方式。当TL0计数 溢出时,将TH0中的值自动送入TL0,使TL0从初值开始重新计数, 而TH0的内容保持不变

方式2计数初值计算 >方式2特别适合于用作较精确的脉冲信号发生器。 ●如:串行口波特率发生器的使用 ●方式2计数初值计算的公式为:x=28.12/foscxt 【例】方式2定时时间为100us,晶振频率fosc=12MHz 则机器周期=1μs,计数初值为: x=28.12/fosc×t =256-1*106×100×10-6 =256-100 =156
方式2计数初值计算 Ø方式2特别适合于用作较精确的脉冲信号发生器。 l如:串行口波特率发生器的使用 l方式2计数初值计算的公式为:x = 28 - 12/fosc×t 【例】方式2定时时间为100μs,晶振频率fosc=12MHz 则机器周期=1μs,计数初值为: x = 28 - 12/fosc×t = 256 –1*106×100×10-6 = 256-100 = 156

(4)工作方式3 >方式3只适用于定时/计数器T0。将T0分成为两个独立的8位计数 器TL0和TH0。 。TL0作为定时/计数 溢出 器:TL0占用原T0 申请 THO 机器周期 TCON 中断 8位 TMOD 控制位及相关引脚。 TFI T0引脚 1 MO DO 申请 其操作和功能与方 TR1 中 溢出 1 MI TFO TLO C/F 式0、1基本相同。 TRO 8位 01 & 机器周期 GATE 。TH0仅作定时器: MO TH0占用T1控制位 M1 C/T TR1、TF1及T1中断 INTO引脚 GATE D7 源标志
(4)工作方式3 Ø方式3只适用于定时/计数器T0。将T0分成为两个独立的8位计数 器TL0和TH0。 l TL0作为定时/计数 器:TL0占用原T0 控制位及相关引脚。 其操作和功能与方 式0、1基本相同。 l TH0仅作定时器: TH0占用T1控制位 TR1、TF1及T1中断 源标志