发 帖  
张飞软硬开源基于STM32 BLDC直流无刷电机驱动器开发视频套件, 👉戳此立抢👈

[经验] 单片机中的定时计数器的四种工作方式详解

2019-4-30 06:30:00  767 单片机 计数器
分享
2
单片机中的定时/计数器都能有多种用途,要通过定时/计数器的方式控制字来设置,需要的用途。
在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称,我们在写程序时就能直接用这个名称来指定它们,当然也能直接用它们的地址89H和88H来指定它们(其实用名称也就是直接用地址,汇编软件帮你翻译一下而已)。
pIYBAFvf_RKAR9q-AABW59mY_sg653.jpg
TMOD被分成两部份,每部份4位。分别用于控制T1和T0。TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断(TF1、0在这)。TR0(1)称之为运行控制位,为1,开关才能合上,计数脉冲才能过来,可用指令SETB和CLR来置位以启动/关闭计数器/定时器。


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

方式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次。
预置值计算:用最大计数量减去需要的计数次数即可。

no100no1 2019-4-30 11:17:02
复习复习,温故知新
回复

举报

王栋春 2019-4-30 12:52:59
感谢楼主分享  学习一下
回复

举报

七彩猫猫 2019-4-30 17:08:18
谢谢楼主分享,这个必须的
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

发经验
课程
    关闭

    站长推荐 上一条 /8 下一条

    快速回复 返回顶部 返回列表