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 name Address bit B7 B6 B5 B4 B3 B2 B1 B0
TCON 88H name TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

(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

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

  1. 51单片机之定时器\计数器的工作原理

    51单片机之定时器\计数器的工作原理 定时器/计数器的结构: 何时处于计数器方式?何时处于定时器方式? TCON和TMOD特殊功能寄存器: 定时器/计数器工作方式: 方式0:13位的定时器/计数器 方 ...

  2. 【51单片机】定时器/计数器的工作原理和结构(一)

    [51单片机]定时器/计数器的工作原理和结构 回看下单片机中断系统内部结构: 分析内部中断触发: 先看图 TCON:和外部中断相比少了IT位设置触发方式 :1跳沿触发 0电平触发:此处我的理解是:就好 ...

  3. 51单片机笔记:定时器/计数器

    单片机笔记 定时器/计数器 定时器/计数器的结构 AT89S51内部两个16位定时器/计数器:T0(P3.4),T1(P3.5),定时器/计数器T0由特殊寄存器TH0,TL0构成,T1由特殊功能寄存器 ...

  4. 51单片机之定时器/计数器应用实例(方式0、1、2、3)

    硬件:STC89C52RC 开发工具:Keil uVision4 对于刚接触单片机的同学来说可能会对定时器/计数器的应用很蒙圈,特别是初值的计算和各种定时方式的选择.下面希望能给你带来一个清晰的思路. ...

  5. 51单片机计算定时器初值

    51单片机计算定时器初值 前言 理论分析 工作方式寄存器 TMOD GATE 门控位 C/T' 计数器模式和定时器模式选择位 M1 M0 工作方式选择位 定时器/计数器控制寄存器 TCON TCON补 ...

  6. 51单片机内部定时器/计数器实验

    51单片机内部定时器/计数器实验 一.实验内容 使用MCS-51内部定时/计数器,定时1秒钟,CPU运用定时中断方式,实现每1秒钟输出状态发生一次反转,即发光管每隔1秒钟亮一次(P1.7接LED). ...

  7. (六)51单片机基础——定时器

    定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成. 定时器主要作用: 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作. 替代长时间的Dela ...

  8. 51单片机学习--定时器--中断--串口通信

    51单片机学习–定时器–中断–串口通信 定时器–中断–串口通信 中断分类 定时器中断 外部中断 串口中断 基本概念 对于单片机来讲, 中断是指 CPU 在处理某一事件 A 时, 发生了另一事件 B, ...

  9. 基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s

    基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s (程序+仿真+参考报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J011 目录标题 基于5 ...

最新文章

  1. C语言 复制文件内容粘贴到另一个文件中
  2. python 实现简单查询页面_python web 实现简易天气查询
  3. [python] LDA处理文档主题分布及分词、词频、tfidf计算
  4. protobuf入门教程(一):简介和安装
  5. vb.net 如何文件指定打印机打印文件_使用Dropbox文件请求配合Canon Inkjet实现多用户文件打印...
  6. Leetcode贪心 验证回文字符串
  7. 手机相机里面的m_荣耀V30 PRO详细评测:Matrix Camera相机矩阵开启5G视频时代
  8. 软件设计师考c语言,软件设计师教程考点精讲之C语言三大定律
  9. 虚拟化与Docker
  10. iOS ffmpeg + libfdk-aac
  11. 数据结构图之三(最短路径--迪杰斯特拉算法)
  12. 洛神云网络 SLB 负载均衡新姿势
  13. -个很个性的二本人计时
  14. html实现飞机小游戏(源码)
  15. 转载-如果你不熟悉Material Design,请一口吃下这篇干货!
  16. VS2015镜像安装教程
  17. 如何根据关键字批量获取淘宝联盟中的商品图片
  18. jsp和jspx的区别
  19. Linux下禁用笔记本触摸板
  20. excel数据可视化

热门文章

  1. 利用python对本地数据进行操作
  2. 警告:No archetype found in remote catalog. Defaulting to internal catalo在远程目录中没有找到原型。默认为内部编录
  3. 【SQL】轻松判断什么时候用inner join 什么时候用left/right join
  4. 开发工程师的自我评价_给排水工程师-简历范文,【工作经历+项目经验+自我评价】怎么写...
  5. 【MDK KIEL】KEIL PACK软件包镜像下载教学(自己尝试下载才是最好)
  6. java 渐变橡皮擦_java 的画板上面的一个橡皮檫功能
  7. 利用jQuery制作简易弹幕效果
  8. “零极限”的方法为什么如此神奇?
  9. python的枚举和for循环_python学习笔记4---分支、循环、条件与枚举
  10. 文献管理——文献检索篇(五)