s7-1定时器工作原理_第1页
s7-1定时器工作原理_第2页
s7-1定时器工作原理_第3页
s7-1定时器工作原理_第4页
s7-1定时器工作原理_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、定时定时/计数器计数器(Timer/Counter) 定时计数的概念- 一个定时/计数的形象实例假假如如有有一一个个水水容容器器1000滴水刚好装满滴水刚好装满初始时已经装入初始时已经装入500滴水滴水问:还需滴入多少滴水才能将其问:还需滴入多少滴水才能将其 装满?装满?答:还需滴入答:还需滴入500滴水才能将其滴水才能将其 装满,装满,501滴溢出。滴溢出。答:还需答:还需500秒时间才能将其装秒时间才能将其装满,满,501秒溢出。秒溢出。问:如果每秒滴入问:如果每秒滴入1滴水,还需多滴水,还需多 长时间才能将其装满?长时间才能将其装满?这就是这就是“计数计数”这就是这就是“定时定时”这就是

2、这就是“计数初值计数初值”目目 录录1基本原理基本原理 2相关寄存器相关寄存器 3定时器定时器/计数器模式计数器模式 触发器触发器1 触发器触发器2 触发器触发器n 触发器触发器n + 1 定时器/计数器的原理时钟源时钟源 在在数字电路数字电路中,学习了触发器构成计数器的原理,定时中,学习了触发器构成计数器的原理,定时/计数器实质是计数器实质是由一系列时钟源驱动的由一系列时钟源驱动的触发器触发器构成。构成。 Fclk / 21 Fclk / 22 Fclk / 2n Fclk 第第n级触发器输出时钟频率是级触发器输出时钟频率是第第1级触发器输入时钟的级触发器输入时钟的 1 / 2n 11111

3、11111111111可以使用软件查询其状态,可以使用软件查询其状态,可以设置当其由可以设置当其由0变为变为1时触发中断时触发中断016位定时器位定时器/计数器计数器 溢出标志溢出标志 1再来一个再来一个时钟脉冲时钟脉冲 当定时器的值当定时器的值为为0 xFFFF时时 标志位标志位置位置位 定时器定时器清清0 0000000000000000定时器/计数器应用定时器定时器/计数器可以用于定时、计数和波特率发生器。计数器可以用于定时、计数和波特率发生器。 定时器(模式)可用于测量事件之定时器(模式)可用于测量事件之间的时间间隔,如脉冲宽度。间的时间间隔,如脉冲宽度。 123计数器(模式)可用于测

4、定某个事计数器(模式)可用于测定某个事件发生的次数,如脉冲个数。件发生的次数,如脉冲个数。 定时器(模式)还可以给串行端口定时器(模式)还可以给串行端口提供波特率时钟信号。提供波特率时钟信号。 ?UART?个正脉冲 51单片机的定时器/计数器标准标准8051 16位定时器位定时器/计数器计数器0 16位定时器位定时器/计数器计数器1 P89V51RB2 16位定时器位定时器/计数器计数器0 16位定时器位定时器/计数器计数器1 16位定时器位定时器/计数器计数器2 看门狗定时器看门狗定时器 标准的标准的80C51有有2个个16位定时器位定时器/计数器计数器0和和1,P89V51RB2在此之上增

5、加了在此之上增加了16位定时器位定时器/计数器计数器2,以及看门狗定时器。,以及看门狗定时器。 本小节讲述本小节讲述 读者参考数据读者参考数据手册自行学习手册自行学习 与定时器与定时器/计数器计数器0相相同,不讲述同,不讲述 定时器与计数器标准标准80C51 外部外部T0/T1功能功能引脚的时钟源引脚的时钟源 定时器定时器/计数器计数器 内部内部时钟源时钟源 计数周期未知,计数周期未知,甚至不具有周期性甚至不具有周期性 计数周期固定为计数周期固定为一个机器周期一个机器周期 当选择外部引脚时钟源,称作计数器当选择外部引脚时钟源,称作计数器 当选择内部时钟源(默认)时,称作定时器当选择内部时钟源(

6、默认)时,称作定时器 计数器功能注意事项在实现在实现“计数器计数器”功能时,计数器在每个机器周期对外部管脚采样一次,功能时,计数器在每个机器周期对外部管脚采样一次,现假设计数器现假设计数器0对下降沿计数。对下降沿计数。 1个机器周期个机器周期 机器时钟机器时钟 T0外部引脚外部引脚 情况情况1:正常检测:正常检测 情况情况2:漏检:漏检 T0外部引脚外部引脚 T1时检测到高电平时检测到高电平 计数管脚的计数高计数管脚的计数高/低脉冲宽度必须低脉冲宽度必须至少至少保持一个机器周期保持一个机器周期,否则就有可能漏检。,否则就有可能漏检。 !T2T0T1T3T4判断为无下降沿,判断为无下降沿, 即漏

7、检即漏检 T2时检测到低电平时检测到低电平 判断为下降沿判断为下降沿 T2时检测到高电平时检测到高电平 T1时检测到高电平时检测到高电平 以上寄存器均为SFR中单元 AT89C52定时/计数器结构 功能选择12 TL0、TH0 串行口串行口时钟时钟 TF0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON(88H) T1模式模式2 中断中断 OSC T0 INT00 1 C/T = 0 TMOD(89H) T1 T0 GATE M1 M0 GATE M1 M0 C/ T C/T P3.4 P3.2C/T = 1时,对外部引脚输入脉冲计数,用做计数器时,对外部引脚输入脉冲

8、计数,用做计数器 C/T = 0时(时(默认默认),对内部时钟计数,用做定时器),对内部时钟计数,用做定时器 G3 G2 G1 1 0 C/T :功能选择位。:功能选择位。 计数器启停控制01 0 1 1 GATE = 0时,时, GATE = 1时,时, 12 TL0、TH0 串行口串行口时钟时钟 TF0 TF1TF0IE1IT1IE0IT0TR1TR0TCON(88H) T1模式模式2 中断中断 OSC T0 INT0 0 1 1 C/T = 0 TMOD(89H) T1 T0 M1 M0 M1 M0 C/ T C/T GATE GATE P3.4 P3.2 G3 G2 G1 0 GATE

9、:门控位;:门控位;TRx :启停控制位。:启停控制位。 G2输出为输出为1,INT0引脚不控制计数器的启停,由引脚不控制计数器的启停,由TR0单独控制单独控制 G2输出为输出为INT0状态,状态,INT0引脚和引脚和TR0共同控制计数器的启停共同控制计数器的启停 INT0 举例:测量脉冲宽度此时模型可简化为:此时模型可简化为: 12MHz 1 0 1 12 TL0、TH0 串行口串行口时钟时钟 TF0 TF1 TF0 IE1 IT1 IE0 IT0 TR1 TR0 TCON(88H) T1模式模式2 中断中断 OSC T0 INT0 0 1 1 C/T = 0 TMOD(89H) T1 T0

10、 M1 M0 M1 M0 C/ T C/T GATE GATE P3.4 P3.2 G3 G2 G1 0 INT0 TR0 = 1, GATE = 1, T0设置为模式设置为模式1,即,即16位定时器模式,位定时器模式, TL0/TH0 = 0 x0000, 且外部晶振且外部晶振12MHz, 当当C/T = 0, G1输出为输出为INT0状态,状态,INT0单独控制计数器启停。单独控制计数器启停。 INT0 举例:测量脉冲宽度TL0、TH0 0 1 时钟源时钟源1MHz P3.2 INT0 开始计数开始计数 停止计数停止计数 16位的寄存器值位的寄存器值(以(以us为单位)为单位) 脉冲脉冲

11、宽度宽度 时钟周期时钟周期1us 模式控制M0和和M1决定决定T0/1的模式,共的模式,共4种种: 为模式为模式0、1和和2时:仅仅是时:仅仅是THx和和TLx组合方式不同;组合方式不同; 为模式为模式3时时 :T0/1在结构上有所不同。在结构上有所不同。 12 TL0、TH0 串行口串行口时钟时钟 TF0 TF1 TF0 IE1 IT1 IE0 IT0 TR1 TR0 TCON(88H) T1模式模式2 中断中断 OSC T0 INT0 0 1 1 C/T = 0 TMOD(89H) T1 T0 C/ T C/T GATE GATE M1 M0 M1 M0 P3.4 P3.2 G3 G2 G

12、1 0 溢出标志 TFx是计数器溢出标志,同时也是中断请求标志;是计数器溢出标志,同时也是中断请求标志; 在进入中断时由硬件清除,也可用软件清除。在进入中断时由硬件清除,也可用软件清除。 12 TL0、TH0 串行口串行口时钟时钟 TF0 IE1 IT1 IE0 IT0 TR1 TR0 TF1 TF0 TCON(88H) T1模式模式2中断中断 OSC T0 INT00 1 1 C/T = 0 TMOD(89H) T1 T0 C/ T C/T GATE GATE M1 M0 M1 M0 P3.4 P3.2G3 G2 G1 0 目目 录录1基本原理基本原理 2相关寄存器相关寄存器 3定时器定时器

13、/计数器模式计数器模式 模式寄存器TMOD功能说明Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 位号位号 位名位名 GATE M1 M0 GATE M1 M0 T1 T0 设置设置INT0是否参与是否参与T0的启停的启停0:禁止:禁止 1:使能:使能 选择选择T0的功能的功能0:定时器功能:定时器功能 1:计数器功能:计数器功能 T0模式选择模式选择高、低位高、低位 00:模式:模式001:模式:模式110:模式:模式211:模式:模式3 功能与低功能与低4位相同,但用于设置位相同,但用于设置T1 地址:地址:89H(不能被(不能被8整除,也即不能被位寻址),

14、复位值:整除,也即不能被位寻址),复位值:0 x00 模式寄存器TMOD设置举例现需要设置现需要设置T0具有以下功能:具有以下功能: 选择模式选择模式1 选择定时器功能选择定时器功能 INT0引脚不参与启停控制引脚不参与启停控制 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 位号位号 位名位名 GATE M1 M0 GATE M1 M0 1 0 0 1 MOV 0 x89, #05H 或或 MOV TMOD, #05H 0 x05 设置的汇编指令是:设置的汇编指令是: 如何设置如何设置TMOD ?控制寄存器TCON功能说明Bit7 Bit6 Bit5 Bit4

15、 Bit3 Bit2 Bit1 Bit0 位号位号 位名位名 TF1 TF0 TR0 IE1 TR1 IE0 IT0 IT1 T1 外部中断外部中断 T0 定时器定时器/计数器计数器0运行启停位运行启停位0:T0停止停止 1:T0启动启动 定时器定时器/计数器计数器0溢出标志。溢出标志。计数溢出时由硬件置位,计数溢出时由硬件置位,中断响应时由硬件清零中断响应时由硬件清零0:T0未溢出未溢出 1:T0溢出溢出 与与TR0原理相同原理相同 与与TF0原理相同原理相同 TCON的复位值:的复位值:0 x00,地址:,地址:88H(可被(可被8整除,可以进行按位寻址)整除,可以进行按位寻址) 设置举例

16、:设置举例:SETB TR0 或或 SETB 0 x8C ; 启动启动T0计数计数 CLR TR0 或或 CLR 0 x8C ; 停止停止T0计数计数 TLx和THx(x = 0或1)THx(高(高8位)和位)和TLx(低(低8位):位): 描述描述 复位值复位值名称名称 地址地址定时器定时器/计数器计数器0低低8位位 00H TL0 8AH 定时器定时器/计数器计数器1低低8位位 00H TL1 8BH 定时器定时器/计数器计数器0高高8位位 00H TH0 8CH 定时器定时器/计数器计数器1高高8位位 00H TH1 8DH 按照按照M1和和M0的值组成加法定时的值组成加法定时/计数器;

17、计数器; 对时钟源脉冲进行计数,在时钟源的下降沿时计数器加对时钟源脉冲进行计数,在时钟源的下降沿时计数器加1; 计满时,在下一个脉冲下降沿清零,并产生溢出,计满时,在下一个脉冲下降沿清零,并产生溢出,TFx置位。置位。 目目 录录1基本原理基本原理 2相关寄存器相关寄存器 3定时器定时器/计数器模式计数器模式 定时/计数器模式0当当M1M0 = 00时,定时时,定时/计数器工作于模式计数器工作于模式0,使用,使用TLx的低的低5位和位和THx构成构成13位的加法计数器。位的加法计数器。 13位加法计数器,最大计数值为:位加法计数器,最大计数值为:0 x1FFF,当计数到达,当计数到达0 x1F

18、FF时,在下一个时,在下一个脉冲下降沿时刻清零,并置位脉冲下降沿时刻清零,并置位TFx。 THx TLx b0 b7 b8 b15 b4 12 中断中断 OSC Tx INTx 0 1 C/T = 0 GATE TRx TFx TLx低低5位位 THx 定时器设置举例假设:假设: 定时器设置为模式定时器设置为模式0 禁止禁止INT0引脚控制引脚控制 外部晶振频率外部晶振频率11.0592MHz 12 外部晶振外部晶振11.0592MH TRx 计数器计数值计数器计数值 计数器初值计数器初值 THx TLx b0 b15 0 0 01 1 0 0 0 1 1 10 1 1 0 0问:问: 要定时

19、要定时1ms(1000us),如),如 何设置何设置TL0和和TH0的初值?的初值? b0 b12 922 = 213 - 922 = 8192 - 922 = 7270 = 1C66H = 1000us (12 / 11.0592)us 先按位先按位“与与”清除低清除低4位位 TMOD &= 0 xF0 再按位再按位“或或”修改低修改低4位位 TMOD |= 0 x01 x x 0 1 0 0 0 1TMOD 直接赋值直接赋值 TMOD = 0 x01 0 0 0 0 0 0 0 1TMOD 写寄存器注意事项假设:假设: T1正在工作中,处于模式正在工作中,处于模式1,现在需要设置,现在需要

20、设置T0为模式为模式1 x x 0 1 x x x xTMOD初始状态初始状态 T1的模式控制位被的模式控制位被无意修改无意修改 T1的模式控制位的模式控制位不会被修改不会被修改 定时/计数器模式1当当M1M0 = 01时,定时时,定时/计数器工作于模式计数器工作于模式1,使用,使用TLx和和THx构成构成16位的加法计数器。位的加法计数器。 16位加法计数器,最大计数值为:位加法计数器,最大计数值为:0 xFFFF,当计数到达,当计数到达0 xFFFF时,在下一个脉冲时,在下一个脉冲下降沿时刻清零,并置位下降沿时刻清零,并置位TFx。 THxTLxb0b7b8b1512 中断中断 OSC T

21、xINTx0 1 C/T = 0 GATETRxTFx TLx THx 修正定时器溢出不同步由于中断响应时间会因不同的情况在由于中断响应时间会因不同的情况在38个机器周期内变化,导致相邻两个机器周期内变化,导致相邻两次定时器溢出中断不同步。次定时器溢出中断不同步。定时器溢出,定时器溢出,申请中断申请中断中断响应时间,中断响应时间,38个机器周期个机器周期中断处理中断处理时间时间TLx清清0停止定时器停止定时器TLx从清从清0后到停止定时器时的计数值,记为后到停止定时器时的计数值,记为N为了获得更高的定时精度,将为了获得更高的定时精度,将N叠加到计数初始值上。叠加到计数初始值上。修正重载值假设假

22、设T0工作在模式工作在模式1,fosc = 12 MHz,循环定时器周期为,循环定时器周期为1ms,则计数初始值,则计数初始值机器周期机器周期 CLR EA ; CLR EA ; 禁止禁止CPUCPU中断中断 CLR TR0 ; CLR TR0 ; 停止停止T0T0计数计数 1 MOV A, 0 x1F ; 1 MOV A, 0 x1F ; 将指令运行补偿后的初值低位送到将指令运行补偿后的初值低位送到A A 1 ADD A, TL0 ; 1 ADD A, TL0 ; 低位初值响应误差补偿低位初值响应误差补偿 1 MOV TL0, A 1 MOV TL0, A 1 MOV A, 0 xFC ;

23、1 MOV A, 0 xFC ; 将指令运行补偿后的初值高位送到将指令运行补偿后的初值高位送到A A 1 ADDC A, TH0 ; 1 ADDC A, TH0 ; 计数初值高位计算计数初值高位计算 1 MOV TH0, A ; 1 MOV TH0, A ; 装入计数初值高位装入计数初值高位 1 SETB TR0 ; 1 SETB TR0 ; 重新启动计数重新启动计数m = 216 - 12106 110-3 /12 = 64536 = 0 xFC18 假设假设T0的的ISR是:是:重载初始值时,还需要加上从重载初始值时,还需要加上从“CLR TR0”“SETB TR0”之间的之间的7个机器周期个机器周期0 xFC18 7 0 xFC1F 定时/计数器模式2当当M1M0 = 10时,定时时,定时/计数器工作于模式计数器工作于模式2,使用,使用TLx和和THx构成构成8位位的自动重装载加法计数器的自动重装载加法计数器。12中断中断OSCTxINTx01C/T = 0GATETRxTFxTLxTHx串行口串行口TCLK或或RCLKT1串行口串行口TCLK或或RCLKTHxTLxb0b7TLx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论