[信息与通信]chap6 MCS-51的定时计数器.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[信息与通信]chap6 MCS-51的定时计数器

第6章 MCS-51单片机的 定时/计数器 第6章内容: 6.1 定时/计数器的结构 6.2 有关的特殊功能寄存器 6.3 定时器的4种工作模式 6.4 定时/计数器的应用举例 6.1 定时/计数器的结构 单片机通常具有2~4个定时/计数器 内部电路为二进制计数器 从单片机引脚输入时钟——计数器,用于累计外部输入的脉冲个数,如果输入时钟周期固定,也可以用于定时 从单片机内部振荡器输入时钟——定时器,用于精确地确定某一段时间间隔 6.1 定时/计数器的结构 定时器/计数器的基本概念 6.1 定时/计数器的结构 MCS-51单片机有2个16位的可编程定时/计数器 定时器0(T0) 定时器1(T1) 它们既可用做定时器、又可用做计数器: 用于定时控制、延时、对外部事件计数和检测等场合。 两种工作方式 1、定时工作方式 定时工作方式是在计数器的输入端输入周期固定的脉冲信号,根据计数器中累计的脉冲个数可计算出所定时间。 8051的定时器是对片内振荡器输出的时钟信号经12分频后的脉冲计数,即每过一个机器周期使定时器(T0或T1)的数值加1,直至加满溢出 两种工作方式 2、计数工作方式 对引脚T0(P3.4)和T1(P3.5)来的外部脉冲信号计数。当输入脉冲信号产生由高电平至低电平的下降沿时,计数器的值加1。 为了确保某个电平在变化之前至少被采样一次,要求外部计数脉冲的高电平与低电平保持时间至少为一个完整的机器周期。 两种工作方式 无论定时还是计数工作方式,T0或T1在对内部时钟或对外部事件计数时都不占用CPU时间,只有定时器/计数器计满产生溢出时才可能中断CPU的当前操作。 6.2 有关的特殊功能寄存器 T0的计数寄存器—— TH0、TL0; T1的计数寄存器—— TH1、TL1; 与T0、T1有关的SFR除TH0、TL0、TH1、TL1外,还有2个: TMOD 工作模式寄存器:定义T0、T1的工作模式及有关功能 TCON 控制寄存器:存放T0、T1的启、停、溢出标志和中断标志 M1、M0控制的4种模式 例:设T1为定时方式,按模式2工作 设T0为计数方式,按模式1工作 请确定模式寄存器TMOD的值: 定义模式寄存器TMOD的指令为: MOV TMOD, #25H TMOD不能位寻址,只能用字节传送指令 TCON —控制寄存器(88H) 6.3 定时器的四种工作模式 定时器/计数器有4种工作模式,由TMOD控制。工作模式的特点和用法如下: 模式0 当M1M0=00时,为模式0。此时,16位计数器只用了13位 以T1为例,由TH1的8位和TL1的低5位组成一个13位计数器,TL1高三位未用 T1 模式0逻辑电路结构 定时时间t的计算 定时时间t:从初值开始计数到计满溢出的时间。 计数初值x:当工作模式和定时时间确定后,由软件预置。 对于模式0,计数初值为x,时钟频率为fosc,则定时时间t为: t=(213-x)×12/ fosc(us) 模式1 模式2 定时/计数器T0工作模式3 6.4 定时/计数器的应用举例 使用定时器/计数器前都要对其初始化,主要是设置4个SFR: TMOD-设置工作方式(定时或计数)、 工作模式等 TH1 TL1(TH0 TL0 )-设置计数初值 TCON-启动工作 若开放定时器的中断,还要设置: IE、IP-设置定时器中断的开放/禁止、优先级 定时/计数器初值的计算 t=(2n-x)×12/ fosc(us) t-定时时间 x-计数初值 fosc-时钟频率 模式0: 213 = 8192 模式1: 216 = 65536 模式2: 28 = 256 6.4.1 初始化程序举例 例: 设时钟振荡频率fosc=6MHz。T1作定时器,以模式1工作,定时时间为10ms;T0作计数器,以模式2工作,收到一个外部脉冲就溢出中断。 6.4.1 初始化程序举例 确定初值x: T1:定时,模式1,定时10ms, fosc=6MHz t =10ms =(216-x)×12/fosc =(216-x)×2(us) x =60536= EC 78H(TH1=0ECH,TL1=78H) T0:计数,模式2,计数1次 x + 1 = 28 x = 28 - 1 = 255 = FFH TH0=TL0=0FFH 6.4.1 初始化程序举例 初始化程序如下: MOV TMOD,#16H MOV TL1 ,#78H MOV TH1 ,#0ECH MOV TL0 ,#0FFH MOV TH0 ,#0FFH SETB TR1 ;启动T1 SETB TR0 ;启动T0 MOV IE , #82H ;CPU

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档