zoukankan      html  css  js  c++  java
  • 单片机定时/计数工作方式

          单片机中的定时/计数器都能有多种用途,要通过定时/计数器的方式控制字来设置,需要的用途。

          在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。

        

    TMOD被分成两部份,每部份4位。分别用于控制T1和T0。TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(TF1、0在这)。TR0(1)称之为运行控制位,为1,开关才能合上,计数脉冲才能过来,可用指令SETB和CLR来置位以启动/关闭计数器/定时器。

                                        

                                                                        方式0框图

    定时/计数器的四种工作方式

    方式0

    为13位计数器,由TL(1/0)的低5位和TH(0/1)的8位组成,,此时TL(1/0)的高3位未用。

    M1、M0:定时/计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。

    C/T:C/T为0就是用作定时器(开关往上打),如果C/T为1就是用作计数器(开关往下打)。

    GATE:GATE后非门后是一或门,GATE=0时只要TR1=0则开关闭合

               GATE=1时,开关合闭不仅要由TR1,而且还受到INT1管脚控制,两个都为高电平计数脉冲才能通过。

    方式1

    工作方式1是16位的定时/计数方式,将M1、M0设为01即可,其它特性与工作方式0相同。

    方式2

    自动装入预置数的工作方式。当溢出后,T(0/1)高、低八位之间的开关打开,放在高八位的预置数进入低八位,开始第二轮,由硬件完成。代价是计数范围少一半。

    方式3

    定时/计数器被拆成2个独立的定时/计数器来用。

                                (最下是TR1)

    TL0能组成8位的定时器或计数器的工作方式,而TH0则只能作为定时器来用。

    TLO使用T0状态控制位C/T、GATE、TR0、INT0,而TH0使用T1的状态控制位TR1,一般只有T1以方式2运行(当波特率发生器用),才能让T0以方式3工作。

    定时器/计数器的定时/计数范围

     

    工作方式0:13位定时/计数方式,因此,最多能计到2的13次方,也就是8192次。

    工作方式1:16位定时/计数方式,因此,最多能计到2的16次方,也就是65536次。

    工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多能计到2的8次方,也说是256次。

    预置值计算:用最大计数量减去需要的计数次数即可。

  • 相关阅读:
    Ubuntu安装deb软件包错误(依赖关系问题)解决
    scrapy抓取的中文结果乱码解决办法
    删除Git记录里的大文件
    Ubuntu18.04 修改DNS
    linux实现ssh免密码登录
    Vim进阶指南
    查找相同图片并重命名
    Markdown进阶指南
    一眼看穿flatMap和map的区别
    Java8简明指南
  • 原文地址:https://www.cnblogs.com/Real-Ying/p/4606040.html
Copyright © 2011-2022 走看看