单片机定时计数器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Baidu Nhomakorabea
1.3
GATE —— 门控位
GATE=0时,只要用软件使TR0(或TRl)置1就 启动了定时器,而不管INT0(或INT1)的电平 是高还是低。 GATE=l时,只有当INT0(或INT1)引脚为高电 平且由软件使TR0(或TRl)置1时,才能启动 定时器工作。 TMOD不能位寻址,只能用字节设置定时器工 作方式; 低半字节设定T0,高半字节设定T1。
4.模式3
★操作模式3对T0和T1是大不相同的。 ★若将T0设置为模式3,TL0和TH0被分成为两个互 相独立的8位计数器。 其中TL0用原T0的各控制位、引脚和中断源。 即C/T、GATE、TR0、TF0和T0 (P3.4)引脚、 (P3.2)引脚。 ★ TL0除仅用8位寄存器外,其功能和操作与模式 0(13位计数器)、模式1(16位计数器)完全相同。 TL0也可工作为定时器方式或计数器方式。 ★ TH0只可用作简单的内部定时功能,它占用了定时 器T1的控制位TR1和T1的中断标志位TF1,其启动 和关闭仅受TRl的控制。 ★ 定时器T1无操作模式3状态。
1.模式0
★模式0是选择定时器(T0或T1)高8位加低5 位的—个13位定时器/计数器。 ★在这种模式下,16寄存器(TH0和TL0)只 用13位,其中TL0的高3位末用,其余位 占整个13位的低5位,TH0占高8位。 ★当TL0的低5位溢出时向TH0进位而TH0 溢出时向中断标志位TF0进位(硬件置位 TF0),并申请中断。 ★ T0溢出否可查询TF0是否置位,以产生 T0中断。
3.模式2
★模式2把T0(或T1)配置成—个可以自动重 装载的8位定时器/计数器。 ★ TL0计数溢出时,不仅使溢出中断标志 位TF0置1,而且还自动把TH0中的内容 重装载到TL0中。 ★这时16位的计数器被拆成两个8位; TL0用作8位计数器,TH0用以保持初值。
★在程序初始化时,TL0和TH0由软件赋予相同 的初值。 ★—旦TL0计数溢出,置位TF0,并将TH0中的初 值再自动装入TL0,继续计数,循环重复。 ★用于定时器工作方式时,其定时时间(TF0溢出 周期)为; t=(28—TH0初值)×振荡周期×12 ★用于计数器工作方式时,最大计数长度(TH0 初值=0)为: 28=256(个外部脉冲)。 ★这种工作方式可省去用户软件中重装常数的 程序,并可产生相当精度的定时时间。特别适 用作串行口波待率发生器。
四、定时器/计数器的编程和应用
例1:假设利用定时器T0模式1产生一个 50Hz的方波,由P1.0输出,采用 12MHz时钟定时器,CPU不作其它工作。
定时器不作其它工作,因而可以采用查询 的方式进行控制。初值可由下式算得: (216一x)×1×10-6=(1/50)×(1/2) 得:x=55536=0D8F0H。
2. 控制寄存器TCON(88H)
TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON各位的作用如下: TF1: T1溢出标志位。当T1溢出时由硬件自动使中断触 发器TF1置1,并向CPU申请中断。当CPU响应进入中 断服务程序后,TF1又被硬件自动清0。TF1也可以用软 件清0。 TF0: T0溢出标志位。其功能和操作情况如TF1。 TR1: T1运行控制位。可由软件置1或清0来启动或关闭 T1。指令(SETB TRl)使TR1位置1,定时器T1便开始计 数。 TR0: T0运行控制位。其功能及操作情况同TRl。
二、定时计数器的控制字
★定时器共有两个控制字: 定时器控制寄存器TCON(88H) 定时器工作模式寄存器TMOD(89H) ★由软件写入TMOD和TCON两个八位寄存器, 用来设置T0或T1的工作模式和控制功能。 ★定时器控制寄存器TCON除可字节寻址外, 各位还可位寻址 ★当8051系统复位时.两个寄存器都被清0。
13位计数器
共有四种工作模式
工作方式
模式0
0 1 1 0
1 1
模式1 模式2
模式3
16位计数器 自动再装入8位计数器
T0:分成两个8位计数器 T1:停止计数
1.2 C/T 计数器方式/定时 器方式选择位
★ C/T=0,设置为定时方式。 定时器计数 805l片内脉冲,亦即对 机器周期计数。 ★ C/T=1,设置为计数方式, 计数器的输入是来自T0(P3.4)或 Tl(P3.5)端的外部脉冲。
T0在模式0时的逻辑电路结构
★ C/T=0时,控制开关接通振荡器十二分 频输出端,就是定时工作方式。其定时 时间为: t=(213一T0初值)×振荡周期×12 ★当C/T=1时,控制开关使引脚T0(P3.4) 与13位计数器相连,外部计数脉冲由引 脚T0〔P3.4〕输入,当外部信号电平 发生“1”到“0”跳变时.计数器加1,这 时,T0成为外部事件计数器。这就是计 数工作方式。
原理:
门控制位GATE使定时器/计数器T1的 启动计数受INT1的控制; 当GATE为1,TR1为1时,只有INT1引 脚输入高电平时,T1才允许计数, 利用GATE的这个功能,可测试INT1引 脚(P3.3)上正脉冲的宽度(机器周期数)
程序如下:
MOV MOV MOV JB SETB JNB JB CLR TMOD,#90H TH1, #00H TL1, #00H P3.3, $ TR1 P3.3, $ P3.3, $ TR1 ;定时器T1模式1、定时 ;设定初值 ; ;等待INT1变低 ;启动T1 ; 等待INT1变高 ;开始计数,等待变低 ; 停止计数
MCS—51
单片机原理与接口应用
8051定时/计数器
一、8051定时/计数器概述
★ 8051单片机片内有二个十六位定时器/计 数器:定时器0(T0)和定时器1(T1)。 ★都有定时或事件计数的功能,可用于定时控 制、延时、对外部事件计数和检测等场合。 ★ 2个16位定时器实际上都是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由TH1和TL1构成。 ★每个定时器都可由软件设置为定时工作方式 或计数工作方式。 ★这些功能都由特殊功能寄存器TMOD设置和 TCON所控制。
1. 工作模式寄存器TMOD(89H)
TMOD用于控制T0和T1的操作模式。其各 位的定义格式如下: 定时器T1
TMOD (89H) D7 D6 D5 D4 D3
定时器T0
D2 D1 D0
GATE C/T M1 M0 GATE C/T M1 M0
1.1 M1 M0
M1 M0
00
工作模式选择位
功能描述
1. 定时工作方式
★ 设置为定时工作方式时,定时器计数的 脉冲是由8051片内振荡器输出经12分频 后产生的。 ★每个机器周期使定时器(T0或T1)的数值 加1直至计计数满产生溢出。 如:当8051采用12MHz晶体时,每个机器 周期为1μs,计数额率为1MHz。
2. 计数工作方式
★设置为计数工作方式时,通过引脚T0(P3.4)和 T1(P3.5)对外部脉冲信号计数。 ★当输入脉冲信号产生由1至0的下降沿时,定时器 的值加1, 在每个机器周期的S5P2期间采样T0和T1的输 入电平。若前一个机器周期采样值为1,下一个 机器周期采样值为0,则计数器加1。此后的机器 周期S3P1期间,新的数值装入计数器。 ★检测一个1至0的跳变需要二个机器周期,故最高 计数频率为振荡频率的二十四分之一。
三、定时器的四种工作模式
★ 8051单片机的定时器/计数器T0和T1可由 软件对特殊功能寄存器TMOD中控制位 C/T的设置,以选择定时功能或计数功能。 ★对M1、M0位的设置,可选择四种工作模式, 即模式0、模式1、模式2和模式3。 ★在模式0、I和2时,T0与T1的工作模式相同; 在模式3时,两个定时器的工作模式不同。
程序如下:
MOV SETB L0: MOV MOV L1: JNB CLR CPL SJMP TMOD,#01H TR0 TH0,#0D8H TL0,#0F0H TF0,L1 TF0 P1.0 L0 ;定时器T0模式0 ;启动T0 ;置初值 ; ;等待溢出 ;清标志 ;取反
例2:测量在(P3.3)端出现的正 脉冲的宽度
★ GATE=0时,使或门输出A点电位为常“1”,或门 被封锁,于是,引脚INT0输入信号无效。这时或门 输出的常“1”打开与门,B点电位取决于TR0状态, 于是由TR0一位就可控制计数开关K开启或关断T0。 若软件使TR0置1,便接通计数开关K,启动T0在 原值上加1计数,直至溢出。溢出时,13位寄存器 清0,TF0置位,并申请中断,T0仍从0重新开始计 数。 若TR0=0。则关断计数开关K,停止计数。 ★当GATE =1时,A点电位取决于(P3.4)引脚的输入电 平。仅当(P3.4)输入高电平时TR0=l时,B点才是高 电平,计数开关K闭合T0开始计数,当INT0由1变0 时,T0停止计数。这一特性可以用来测量在(P3.4) 端出现的正脉冲的宽度。
★输入脉冲信号的基本要求
虽然对输入信号 的占空比无特殊 要求,但为了确 保某个电平在变 化之前至少被采 样一次,要求电 平保持时间至少 是一个完整的机 器周期。
★不管是定时工作方式还是计数方式,定时器 T0或T1在对内部时钟或对外部事件计数时, 不占用CPU的时间,除非定时器/计数器溢 出,才可能中断CPU的当前操作。 ★由此可见,定时器是单片机中效率高而且工 作灵活的部件。 ★除了可以选择定时器或计数器工作方式外, 每个定时器/计数器还有四种工作模式,也 就是每个定时器可构成四种电路结构模式。 其中,模式0一模式2对T0和T1是一样的,模 式3对两者是不同的。
请看下一节
2.模式1
★该模式是一个16位定时器/计数器。 其结构与操作几乎与模式0完全相同,唯 一的差别是:在模式1中,寄存器TH0和 TL0是以全16位参与操作, ★用于定时工作方式时,定时时间为: t=(216一T0初值) ×时钟周期×12 ★用于计数工作方式时,计数长度为216= 65536(个外部脉冲)
1.3
GATE —— 门控位
GATE=0时,只要用软件使TR0(或TRl)置1就 启动了定时器,而不管INT0(或INT1)的电平 是高还是低。 GATE=l时,只有当INT0(或INT1)引脚为高电 平且由软件使TR0(或TRl)置1时,才能启动 定时器工作。 TMOD不能位寻址,只能用字节设置定时器工 作方式; 低半字节设定T0,高半字节设定T1。
4.模式3
★操作模式3对T0和T1是大不相同的。 ★若将T0设置为模式3,TL0和TH0被分成为两个互 相独立的8位计数器。 其中TL0用原T0的各控制位、引脚和中断源。 即C/T、GATE、TR0、TF0和T0 (P3.4)引脚、 (P3.2)引脚。 ★ TL0除仅用8位寄存器外,其功能和操作与模式 0(13位计数器)、模式1(16位计数器)完全相同。 TL0也可工作为定时器方式或计数器方式。 ★ TH0只可用作简单的内部定时功能,它占用了定时 器T1的控制位TR1和T1的中断标志位TF1,其启动 和关闭仅受TRl的控制。 ★ 定时器T1无操作模式3状态。
1.模式0
★模式0是选择定时器(T0或T1)高8位加低5 位的—个13位定时器/计数器。 ★在这种模式下,16寄存器(TH0和TL0)只 用13位,其中TL0的高3位末用,其余位 占整个13位的低5位,TH0占高8位。 ★当TL0的低5位溢出时向TH0进位而TH0 溢出时向中断标志位TF0进位(硬件置位 TF0),并申请中断。 ★ T0溢出否可查询TF0是否置位,以产生 T0中断。
3.模式2
★模式2把T0(或T1)配置成—个可以自动重 装载的8位定时器/计数器。 ★ TL0计数溢出时,不仅使溢出中断标志 位TF0置1,而且还自动把TH0中的内容 重装载到TL0中。 ★这时16位的计数器被拆成两个8位; TL0用作8位计数器,TH0用以保持初值。
★在程序初始化时,TL0和TH0由软件赋予相同 的初值。 ★—旦TL0计数溢出,置位TF0,并将TH0中的初 值再自动装入TL0,继续计数,循环重复。 ★用于定时器工作方式时,其定时时间(TF0溢出 周期)为; t=(28—TH0初值)×振荡周期×12 ★用于计数器工作方式时,最大计数长度(TH0 初值=0)为: 28=256(个外部脉冲)。 ★这种工作方式可省去用户软件中重装常数的 程序,并可产生相当精度的定时时间。特别适 用作串行口波待率发生器。
四、定时器/计数器的编程和应用
例1:假设利用定时器T0模式1产生一个 50Hz的方波,由P1.0输出,采用 12MHz时钟定时器,CPU不作其它工作。
定时器不作其它工作,因而可以采用查询 的方式进行控制。初值可由下式算得: (216一x)×1×10-6=(1/50)×(1/2) 得:x=55536=0D8F0H。
2. 控制寄存器TCON(88H)
TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON各位的作用如下: TF1: T1溢出标志位。当T1溢出时由硬件自动使中断触 发器TF1置1,并向CPU申请中断。当CPU响应进入中 断服务程序后,TF1又被硬件自动清0。TF1也可以用软 件清0。 TF0: T0溢出标志位。其功能和操作情况如TF1。 TR1: T1运行控制位。可由软件置1或清0来启动或关闭 T1。指令(SETB TRl)使TR1位置1,定时器T1便开始计 数。 TR0: T0运行控制位。其功能及操作情况同TRl。
二、定时计数器的控制字
★定时器共有两个控制字: 定时器控制寄存器TCON(88H) 定时器工作模式寄存器TMOD(89H) ★由软件写入TMOD和TCON两个八位寄存器, 用来设置T0或T1的工作模式和控制功能。 ★定时器控制寄存器TCON除可字节寻址外, 各位还可位寻址 ★当8051系统复位时.两个寄存器都被清0。
13位计数器
共有四种工作模式
工作方式
模式0
0 1 1 0
1 1
模式1 模式2
模式3
16位计数器 自动再装入8位计数器
T0:分成两个8位计数器 T1:停止计数
1.2 C/T 计数器方式/定时 器方式选择位
★ C/T=0,设置为定时方式。 定时器计数 805l片内脉冲,亦即对 机器周期计数。 ★ C/T=1,设置为计数方式, 计数器的输入是来自T0(P3.4)或 Tl(P3.5)端的外部脉冲。
T0在模式0时的逻辑电路结构
★ C/T=0时,控制开关接通振荡器十二分 频输出端,就是定时工作方式。其定时 时间为: t=(213一T0初值)×振荡周期×12 ★当C/T=1时,控制开关使引脚T0(P3.4) 与13位计数器相连,外部计数脉冲由引 脚T0〔P3.4〕输入,当外部信号电平 发生“1”到“0”跳变时.计数器加1,这 时,T0成为外部事件计数器。这就是计 数工作方式。
原理:
门控制位GATE使定时器/计数器T1的 启动计数受INT1的控制; 当GATE为1,TR1为1时,只有INT1引 脚输入高电平时,T1才允许计数, 利用GATE的这个功能,可测试INT1引 脚(P3.3)上正脉冲的宽度(机器周期数)
程序如下:
MOV MOV MOV JB SETB JNB JB CLR TMOD,#90H TH1, #00H TL1, #00H P3.3, $ TR1 P3.3, $ P3.3, $ TR1 ;定时器T1模式1、定时 ;设定初值 ; ;等待INT1变低 ;启动T1 ; 等待INT1变高 ;开始计数,等待变低 ; 停止计数
MCS—51
单片机原理与接口应用
8051定时/计数器
一、8051定时/计数器概述
★ 8051单片机片内有二个十六位定时器/计 数器:定时器0(T0)和定时器1(T1)。 ★都有定时或事件计数的功能,可用于定时控 制、延时、对外部事件计数和检测等场合。 ★ 2个16位定时器实际上都是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由TH1和TL1构成。 ★每个定时器都可由软件设置为定时工作方式 或计数工作方式。 ★这些功能都由特殊功能寄存器TMOD设置和 TCON所控制。
1. 工作模式寄存器TMOD(89H)
TMOD用于控制T0和T1的操作模式。其各 位的定义格式如下: 定时器T1
TMOD (89H) D7 D6 D5 D4 D3
定时器T0
D2 D1 D0
GATE C/T M1 M0 GATE C/T M1 M0
1.1 M1 M0
M1 M0
00
工作模式选择位
功能描述
1. 定时工作方式
★ 设置为定时工作方式时,定时器计数的 脉冲是由8051片内振荡器输出经12分频 后产生的。 ★每个机器周期使定时器(T0或T1)的数值 加1直至计计数满产生溢出。 如:当8051采用12MHz晶体时,每个机器 周期为1μs,计数额率为1MHz。
2. 计数工作方式
★设置为计数工作方式时,通过引脚T0(P3.4)和 T1(P3.5)对外部脉冲信号计数。 ★当输入脉冲信号产生由1至0的下降沿时,定时器 的值加1, 在每个机器周期的S5P2期间采样T0和T1的输 入电平。若前一个机器周期采样值为1,下一个 机器周期采样值为0,则计数器加1。此后的机器 周期S3P1期间,新的数值装入计数器。 ★检测一个1至0的跳变需要二个机器周期,故最高 计数频率为振荡频率的二十四分之一。
三、定时器的四种工作模式
★ 8051单片机的定时器/计数器T0和T1可由 软件对特殊功能寄存器TMOD中控制位 C/T的设置,以选择定时功能或计数功能。 ★对M1、M0位的设置,可选择四种工作模式, 即模式0、模式1、模式2和模式3。 ★在模式0、I和2时,T0与T1的工作模式相同; 在模式3时,两个定时器的工作模式不同。
程序如下:
MOV SETB L0: MOV MOV L1: JNB CLR CPL SJMP TMOD,#01H TR0 TH0,#0D8H TL0,#0F0H TF0,L1 TF0 P1.0 L0 ;定时器T0模式0 ;启动T0 ;置初值 ; ;等待溢出 ;清标志 ;取反
例2:测量在(P3.3)端出现的正 脉冲的宽度
★ GATE=0时,使或门输出A点电位为常“1”,或门 被封锁,于是,引脚INT0输入信号无效。这时或门 输出的常“1”打开与门,B点电位取决于TR0状态, 于是由TR0一位就可控制计数开关K开启或关断T0。 若软件使TR0置1,便接通计数开关K,启动T0在 原值上加1计数,直至溢出。溢出时,13位寄存器 清0,TF0置位,并申请中断,T0仍从0重新开始计 数。 若TR0=0。则关断计数开关K,停止计数。 ★当GATE =1时,A点电位取决于(P3.4)引脚的输入电 平。仅当(P3.4)输入高电平时TR0=l时,B点才是高 电平,计数开关K闭合T0开始计数,当INT0由1变0 时,T0停止计数。这一特性可以用来测量在(P3.4) 端出现的正脉冲的宽度。
★输入脉冲信号的基本要求
虽然对输入信号 的占空比无特殊 要求,但为了确 保某个电平在变 化之前至少被采 样一次,要求电 平保持时间至少 是一个完整的机 器周期。
★不管是定时工作方式还是计数方式,定时器 T0或T1在对内部时钟或对外部事件计数时, 不占用CPU的时间,除非定时器/计数器溢 出,才可能中断CPU的当前操作。 ★由此可见,定时器是单片机中效率高而且工 作灵活的部件。 ★除了可以选择定时器或计数器工作方式外, 每个定时器/计数器还有四种工作模式,也 就是每个定时器可构成四种电路结构模式。 其中,模式0一模式2对T0和T1是一样的,模 式3对两者是不同的。
请看下一节
2.模式1
★该模式是一个16位定时器/计数器。 其结构与操作几乎与模式0完全相同,唯 一的差别是:在模式1中,寄存器TH0和 TL0是以全16位参与操作, ★用于定时工作方式时,定时时间为: t=(216一T0初值) ×时钟周期×12 ★用于计数工作方式时,计数长度为216= 65536(个外部脉冲)