合肥工业大学单片机鲁昌华PPT第五章模板课件.pptxVIP

  • 3
  • 0
  • 约5.63千字
  • 约 34页
  • 2022-11-10 发布于四川
  • 举报

合肥工业大学单片机鲁昌华PPT第五章模板课件.pptx

第5章 MCS-51的定时器/计数器5.1 定时器/计数器的结构5.2 定时器/计数器的工作原理5.3 定时器/计数器的控制5.4 定时器/计数器的工作方式5.5 定时器/计数器的精度5.6 定时器/计数器的程序设计及应用实例退出5.1 定时器/计数器的结构图5-1 定时器/计数器结构图特殊功能寄存器TH0、TL0、TH1、TL1、TMOD、TCON5.2 定时器/计数器的工作原理 两个16位的定时/计数器T0(TH0TL0)和T1 (TH1TL1),基本工作原理是加1计数,即对指定的脉冲信号进行加1操作,直到出现溢出。 (1)定时器,对机器周期加1计数,因此,计数周期固定为12/ (2)计数器,对单片机外部输入的脉冲信号加1计数,T0(P3.4),T1(P3.5) 5.3 定时器/计数器的控制5.3.1 定时器/计数器方式控制寄存器TMOD TMOD用于控制定时器/汁数器的工作模式及工作方式,其字节地址为80H,格式如下。其中,低4位用于决定T0的工作方式,高4位用于决定T1的工作方式。1、M1和M0工作方式控制位M0和M1为工作方式控制位,确定4种工作方式,如表5-1所示。2、定时器/计数器方式选择位 =0,定时方式,对机器周期进行计数; =1,计数方式,对外部信号进行计数,外部信号接至T0(P3.4)或T1(P3.5)引脚。3、GATE门控位GATE=0时,只要用软件使TR0(或TR1)置1就能启动定时器T0(或T1);GATE=1时,只有在INT0(或INT1)引脚为高电平的情况下,且由软件使TR0(或TR1)置1时,才能启动定时器T0(或T1)工作5.3.2 定时器/计数器的控制寄存器TCON控制寄存器TCON的位地址是88H,可以对它进行位寻址。其功能:(1)启动:设定好了定时器/计数器的工作方式后,通过设置控制寄存器TCON中的相应位来启动。(2)停止:要使定时器/计数器停止运行,也通过设置TCON中的相应位来实现。(3)标志:TCON能标明溢出和中断情况。1. TR0:定时器T1运行控制位。可由软件置1(或清零)来启动(或关闭)定时器T0,使定时器T0开始计数。。 2. TF0:定时器T0溢出标志位。当定时器T0溢出时,由硬件自动使TF1置1,并向CPU申请中断。CPU响应中断后,自动对TF0清零。TF0也可以用软件查询和清零。3. TR1 :定时器T1运行控制位。功能与TR0 相同。4. TF0 :定时器T0溢出标志位。功能与TF0相同。 IE1:外部中断1请求标志位。 IT1:外部中断1触发方式控制位。 IE0:外部中断0请求标志位。 IT0:外部中断0触发方式控制位。 5.4 定时器/计数器的工作方式5.4.1 工作方式0(M1 M0:00) 定时器/计数器工作在方式0时,16位计数器只用了13位,即THx的高8位和TLx的低5位,组成一个13位定时器/计数器。(x=0或1)图5-2 定时器/计数器方式0结构框图 5.4.2 工作方式1 (M1 M0:01) 定时器/计数器工作在方式0时,16位计数器,即THx作为高8位,TLx作为低8位。 图5-3 定时器/计数器方式1结构框图5.4.3 工作方式2 (M1 M0:10) 自动重装初值8位计数器。TLx作为8位计数器, THx用作常数寄存器。 TLx计数满产生溢出时,一方面置1溢出标志TFx;另一方面自动将THx中的内容送至TLx ,使8位定时器/计数器从所装初值开始更新开始计数。 图5-4 定时器/计数器方式2结构框图5.4.4 工作方式3 (M1 M0:11)将16位的计数器T0分为两个独立的8位计数器TH0和TL0。定时器T1只能工作在方式0~2,不需中断的场合。 图5-5 定时器/计数器方式3结构框图5.5 定时器/计数器的精度 定时: 对机器周期(即12/ fosc )计数。精度取决于输入脉冲的周期,因此当需要高分辨率的定时时,应尽量选用频率较高的晶振(MCS-51最高为12MHz)。 如:fosc=12MHz时,机器周期1微秒,计数脉冲周期间隔为1微秒,误差为1微秒。 fosc=6MHz时,机器周期2微秒,计数脉冲周期间隔为2微秒,误差为2微秒。 注:在使用中断情况下,如果有其它中断服务正在执行,延迟取决于其它中断服务程序执行的时间。 计数:由于确认一次下跳变要花两个机器周期的时间,因此外部输入的计数脉冲的最高频率为振荡器频率的1/24。且高低电平至少保持一个机器周期Tcy 。 Tcy:一个机器周期另外,在读取运行中的定时器/计数器时,需要加以注意,否则读取的计数值有可能出错。原因是不可能在同一时刻同时读取THx和TLx的内容。一种解决读错问题的方法是:先读(THx),后读(TLx),再读(THx),若

文档评论(0)

1亿VIP精品文档

相关文档