六、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 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单片机之定时器/计数器_理论相关推荐
- 51单片机之定时器\计数器的工作原理
51单片机之定时器\计数器的工作原理 定时器/计数器的结构: 何时处于计数器方式?何时处于定时器方式? TCON和TMOD特殊功能寄存器: 定时器/计数器工作方式: 方式0:13位的定时器/计数器 方 ...
- 【51单片机】定时器/计数器的工作原理和结构(一)
[51单片机]定时器/计数器的工作原理和结构 回看下单片机中断系统内部结构: 分析内部中断触发: 先看图 TCON:和外部中断相比少了IT位设置触发方式 :1跳沿触发 0电平触发:此处我的理解是:就好 ...
- 51单片机笔记:定时器/计数器
单片机笔记 定时器/计数器 定时器/计数器的结构 AT89S51内部两个16位定时器/计数器:T0(P3.4),T1(P3.5),定时器/计数器T0由特殊寄存器TH0,TL0构成,T1由特殊功能寄存器 ...
- 51单片机之定时器/计数器应用实例(方式0、1、2、3)
硬件:STC89C52RC 开发工具:Keil uVision4 对于刚接触单片机的同学来说可能会对定时器/计数器的应用很蒙圈,特别是初值的计算和各种定时方式的选择.下面希望能给你带来一个清晰的思路. ...
- 51单片机计算定时器初值
51单片机计算定时器初值 前言 理论分析 工作方式寄存器 TMOD GATE 门控位 C/T' 计数器模式和定时器模式选择位 M1 M0 工作方式选择位 定时器/计数器控制寄存器 TCON TCON补 ...
- 51单片机内部定时器/计数器实验
51单片机内部定时器/计数器实验 一.实验内容 使用MCS-51内部定时/计数器,定时1秒钟,CPU运用定时中断方式,实现每1秒钟输出状态发生一次反转,即发光管每隔1秒钟亮一次(P1.7接LED). ...
- (六)51单片机基础——定时器
定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成. 定时器主要作用: 用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作. 替代长时间的Dela ...
- 51单片机学习--定时器--中断--串口通信
51单片机学习–定时器–中断–串口通信 定时器–中断–串口通信 中断分类 定时器中断 外部中断 串口中断 基本概念 对于单片机来讲, 中断是指 CPU 在处理某一事件 A 时, 发生了另一事件 B, ...
- 基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s
基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s (程序+仿真+参考报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J011 目录标题 基于5 ...
最新文章
- C语言 复制文件内容粘贴到另一个文件中
- python 实现简单查询页面_python web 实现简易天气查询
- [python] LDA处理文档主题分布及分词、词频、tfidf计算
- protobuf入门教程(一):简介和安装
- vb.net 如何文件指定打印机打印文件_使用Dropbox文件请求配合Canon Inkjet实现多用户文件打印...
- Leetcode贪心 验证回文字符串
- 手机相机里面的m_荣耀V30 PRO详细评测:Matrix Camera相机矩阵开启5G视频时代
- 软件设计师考c语言,软件设计师教程考点精讲之C语言三大定律
- 虚拟化与Docker
- iOS ffmpeg + libfdk-aac
- 数据结构图之三(最短路径--迪杰斯特拉算法)
- 洛神云网络 SLB 负载均衡新姿势
- -个很个性的二本人计时
- html实现飞机小游戏(源码)
- 转载-如果你不熟悉Material Design,请一口吃下这篇干货!
- VS2015镜像安装教程
- 如何根据关键字批量获取淘宝联盟中的商品图片
- jsp和jspx的区别
- Linux下禁用笔记本触摸板
- excel数据可视化
热门文章
- 利用python对本地数据进行操作
- 警告:No archetype found in remote catalog. Defaulting to internal catalo在远程目录中没有找到原型。默认为内部编录
- 【SQL】轻松判断什么时候用inner join 什么时候用left/right join
- 开发工程师的自我评价_给排水工程师-简历范文,【工作经历+项目经验+自我评价】怎么写...
- 【MDK KIEL】KEIL PACK软件包镜像下载教学(自己尝试下载才是最好)
- java 渐变橡皮擦_java 的画板上面的一个橡皮檫功能
- 利用jQuery制作简易弹幕效果
- “零极限”的方法为什么如此神奇?
- python的枚举和for循环_python学习笔记4---分支、循环、条件与枚举
- 文献管理——文献检索篇(五)