六、51单片机之定时器/计数器_理论

1、什么是定时器、计数器

定时器就是单片机设定一个时间间隔,时间间隔到后通知单片机。例如设置100ms的定时器,100ms后定时器通知单片机时间到了。

(1)定时器是单片机的一种内部外设。(以前的单片机只有CPU,也就是只有运算器和控制器。伴随集成电路的发展,定时器、串口等也集成到单片机内部,所以定时器称为内部外设)。

(2)定时器就相当是单片机的"闹钟"。

(3)一定程度上定时器就是计数器,计数器就是定时器,往后看就能理解了。

(4)计数器用于记录外部脉冲产生的个数,如果外部脉冲产生的时间间隔是可知且固定的,就可以通过脉冲个数✖脉冲时间间隔得到定时时间。

2、定时器如何工作

定时器定时器本质上是计数时钟脉冲的个数。时钟脉冲一般由晶振和起振电路产生(这句话了解可)。

一般定时器的工作流程:

(1)第一步:设定定时器的时钟源(51单片机中不需要,因为这种简单的单片机只有一个时钟源,没得选)

(2)第二步:初始化时钟相关的寄存器

(3)第三步:设定定时时间(即设定脉冲计数个数)

(4)第四步:通过脉冲个数判断定时时间是否到了,但通常情况是设置中断,时间到后(计数值到后)会自动通知单片机。这一步也可以理解为设置中断处理程序。

(5)第五步:打开定时器

(6)运行时:定时器计数值到后产生中断,在中断中做想做的事。

3、软件控制硬件的关键——寄存器

3.1、什么是寄存器

(1)寄存器的英文是Register。

(2)寄存器,既可以往里面写内容,也可以把里面的内容读出来。一般按位定义。

(3)寄存器使用地址访问,编程上像内存一样。(了解即可)

3.2、寄存器的工作原理

(1)寄存器与硬件之间有双向影响,寄存器可能影响硬件,硬件也可能影响寄存器。

(2)硬件可以读写寄存器

(3)寄存器可以抽象理解为硬件和软件之间的桥梁。

(4)在复杂单片机中,IO口的输入输出功能,输出高低电平,也可以通过寄存器来配置。

(5)总结:寄存器是软件能够控制硬件的关键。

3.3、单片机学习的关键就是各种寄存器

(1)单片机学习主要包括2个:CPU和各种内部外设

(2)各种内部外设的编程就是操纵寄存器。

(3)熟悉一款单片机其实就是熟悉他的寄存器。

(4)寄存器会随着单片机的复杂而复杂。

4、51单片机定时器简介

细节可参照具体型号单片机数据手册/参考手册。

4.1、数据手册部分内容

在STC89C51RC单片机中手册部分内容:

(1)定时器/计数器的核心部件是一个加法(也有减法)的计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,此时的定时器/计数器每12个晶振时钟或者每6个晶振时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自单片机外部引脚,则为计数方式,每来一个脉冲加1。

(2)该单片机可工作在12T或6T工作模式下。当外部晶振频率为12MHz时,12T工作模式下相当于12分频,6T工作模式下6分频。分频后得到的时钟频率才是CPU的工作时钟。该单片机默认是12T工作模式,可通过stc-isp下载程序软件勾选是能6T(双倍速)模式,这样下载程序,单片机便工作在6T模式下。

(3)在STM32单片机中是外部晶振频率倍频后的时钟为CPU工作时钟。

4.2、51单片机相关周期知识补充

(1)兆赫兹是波动频率单位之一。波动频率的基本单位是赫兹,采千进位制;1兆赫相当于1000千赫(KHz),也就是10^6赫兹。

(2)赫兹是国际单位制中频率的单位,它是每秒钟的周期性变动重复次数的计量。 赫兹简称赫。每秒钟振动(或振荡、波动)一次为1赫兹,或可写成次/秒。

(3)单片机中的常见周期

晶振周期:晶振的振荡周期,也就是晶振震动一次所花的时间,比如1MHz晶振震荡周期是 1/1MHz(1/1000000)s,也就是1微妙。一般也称为振荡周期。

时钟周期:时钟周期,如果晶振的输出没有经过分频或倍频就直接作为cpu的工作时钟,则时钟周期就等于晶振的振荡周期;如果晶振的输出经过分频或倍频后作为cpu的工作时钟,则时钟周期就就是分频或倍频后的。即,时钟周期是CPU的实际工作频率的倒数,是时序中最小的时间单位。51单片机没有分频或倍频,而STM32中有。51单片机中晶振周期等于时钟周期。

注:学习51单片机经常看见时钟周期就是振荡周期这种说法是不够严谨的。

机器周期:机器周期也称为CPU周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个时钟周期组成。

5、51单片机定时器的主要寄存器

定时器/计数器0和1的相关寄存器。(STC89C52RC单片机数据手册)

(1)51单片机中寄存器可以按位访问。

5.1、定时器/计数器控制寄存器TCON

SFR nameAddressbitB7B6B5B4B3B2B1B0
TCON88HnameTF1TR1TF0TR0IE1IT1IE0IT0

(1)TF:Time Flag,定时器溢出标志位。

(2)8个位。名称后面带1的对应定时器1,名称带0的对应定时器0。

(3)定时器为加法定时器。

(4)IT位设置外部中断触发方式。外部中断触发方式一般就是:边沿触发和电平触发2种。边沿触发又分为:上升沿触发、下降沿触发、双边沿触发(上升沿下降沿都会触发);电平触发方式分为:高电平触发、低电平触发2种。

5.2、定时器/计数器工作模式寄存器TMOD

5.3、TL0

5.4、TL1

5.5、TH0

5.6、TH1

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码织梦师小猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值