16课:单片机定时器与计数器

发布者:MysticGarden最新更新时间:2020-07-02 来源: eefocus关键字:单片机  定时器  计数器 手机看文章 扫描二维码
随时随地手机看文章

一、计数概念的引入

从选票的统计谈起:画“正”。这就是计数,生活中计数的例程处处可见。例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例程,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的办法,用一个周长是1米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长1米嘛,所以只要记下轮转了多少圈,就能知道走过的线有多长了。


二、计数器的容量  

从一个生活中的例程看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴持续落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。录音机上的计数器最多只计到999….那么单片机中的计数器有多大的容量呢?8031单片机中有两个计数器,分别称之为T0和T1,这两个计数器分别是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536。


三、定时

8031中的计数器除了能作为计数之用外,还能用作时钟,时钟的用途当然很大,如打铃器,电视机定时关机,空调定时开关等等,那么计数器是如何作为定时器来用的呢?


一个闹钟,我将它定时在1个小时后闹响,换言之,也能说是秒针走了(3600)次,所以时间就转化为秒针走的次数的,也就是计数的次数了,可见,计数的次数和时间之间的确十分相关。那么它们的关系是什么呢?那就是秒针每一次走动的时间正好是1秒。


结论:只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定时器则是由单片机供给一个非常稳定的计数源。那么供给组定时器的是计数源是什么呢?看图1,原来就是由单片机的晶体震荡器经过12分频后获得的一个脉冲源。晶体震荡器的频率当然很准,所以这个计数脉冲的时间间隔也很准。问题:一个12M的晶体震荡器,它供给给计数器的脉冲时间间隔是多少呢?当然这很不难,就是12M/12等于1M,也就是1个微秒。结论:计数脉冲的间隔与晶体震荡器有关,12M的晶体震荡器,计数脉冲的间隔是1微秒。


四、溢出

让我们再来看水滴的例程,当水持续落下,盆中的水持续变满,最终有一滴水使得盆中的水满了。这个时候如果再有一滴水落下,就会发生什么现象?水会漫出来,用个术语来讲就是“溢出”。


水溢出是流到地上,而计数器溢出后将使得TF0变为“1”。至于TF0是什么我们稍后再谈。一旦TF0由0变成1,就是产生了变化,产生了变化就会引发事件,就象定时的时间一到,闹钟就会响一样。至于会引发什么事件,我们下次课再介绍,现在我们来研究另一个问题:要有多少个计数脉冲才会使TF0由0变为1。


五、任意定时及计数的办法    

刚才已研究过,计数器的容量是16位,也就是最大的计数值到65536,因此计数计到65536就会产生溢出。这个没有问题,问题是我们现实生活中,经常会有少于65536个计数值的要求,如包装线上,一打为12瓶,一瓶药片为100粒,怎么样来满足这个要求呢?


提示:如果是一个空的盆要1万滴水滴进去才会满,我在开始滴水之前就先放入一勺水,还需要10000滴嘛?对了,我们采用预置数的办法,我要计100,那我就先放进65436,再来100个脉冲,不就到了65536了吗。定时也是如此,每个脉冲是1微秒,则计满65536个脉冲需时65.536毫秒,但现在我只要10毫秒就能了,怎么办?10个毫秒为10000个微秒,所以,只要在计数器里面放进55536就能了。


关键字:单片机  定时器  计数器 引用地址:16课:单片机定时器与计数器

上一篇:高速SOC单片机C8051F
下一篇:17课:单片机定时器/计数器的方式控制字

推荐阅读最新更新时间:2024-10-24 20:36

MCS-51单片机定时器/计数器常见习题解答
1、根据定时器/计数器0方式1逻辑结构图,分析门控位GATE取不同值时,启动定时器的工作过程。 答:当GATE=0:软件启动定时器,即用指令使TCON中的TR0置1即可启动定时器0。 GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR0置1时,只有外部中断INT0引脚输入高电平时才能启动定时器0。 2、当定时器/计数器的加1计数器计满溢出时, 溢出标志位TF1由硬件自动置1,简述对该标志位的两种处理方法。 答:一种是以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。
[单片机]
80C51单片机定时器/计数器介绍
定时器/计数器介绍 定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。 TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。 TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。 在现在很多新MCU中,不只有两个 定时/计数器,例如STC15系列就有四个定时/计数器,但是在使用上操作上是大同小异的。
[单片机]
80C51<font color='red'>单片机</font>的<font color='red'>定时器</font>/<font color='red'>计数器</font>介绍
51单片机定时器计数器
8051单片机内部有两个定时/计数器T0及T1,具有定时和计数两种功能。T0及T1在计数过程中不需要CPU参与,也不影响CPU的其他工作。当计数溢出后,定时/计数器给出中断信号,申请CPU停止当前的工作,去处理预先设定的中断事件。 一、T1内部结构 定时器工作模式:对内部时钟信号计数。由于时钟频率是定值,所以可根据计数值计算出定时时间。 计数器工作模式:是对加在T1(P3.5)引脚上的外部脉冲进行计数。 二、计数功能 计数器用于统计从TO(P3.4)和Tl(P3.5)两个引脚输入脉冲的负跳变数量。负跳变是指前一个机器周期采样为高电平,后一个机器周期为低电平。每输入一个脉冲负跳变,计数器加1。 输入脉冲的高电平与低电平至少应保持
[单片机]
51<font color='red'>单片机</font><font color='red'>定时器</font>和<font color='red'>计数器</font>
80C51单片机定时器/计数器详解(含工作方式)
80C51单片机要实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。下面我们将对80C51单片机定时器/计数器详解,并对定时/计数器的工作方式进行分析。   -------,无效位。   PS---串行口中断优先级控制位。   PS=1,串行口中断定义为高优先级中断。   PS=0,串行口中断定义为低优先级中断。   PT1---定时器/计数器1中断优先级控制位。   PT1=1,定时器/计数器1中断定义为高优先级中断。   PT1=0,定时器/计数器1中断定义为低优先级中断。   PX1---外部中断1中断优先级控制位。   PX1=1,外部中断1中断定义为高优先级中断。   PX1=0,外部中断1中断定义
[单片机]
80C51<font color='red'>单片机</font><font color='red'>定时器</font>/<font color='red'>计数器</font>详解(含工作方式)
80C51单片机内部定时器计数器的结构及原理解析
80C51单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。 定时器/计数器的结构: 图片1 从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过
[单片机]
80C51<font color='red'>单片机</font>内部<font color='red'>定时器</font>和<font color='red'>计数器</font>的结构及原理解析
51单片机中断机制(定时器/计数器
单片机中断简介 52单片机一共有6个中断源,它们的符号,名称以及各产生的条件分别如下: INT0 - 外部中断0,由P3.2端口线引入,低电平或下降沿引起 INT1 - 外部中断1,由P3.3端口线引入,低电平或下降沿引起 T0 - 定时器/计数器0中断, 由T0计数器计满回零引起 T1 - 定时器/计数器1中断, 由T1计数器计满回零引起 T2 - 定时器/计数器2中断, 由T2计数器计满回零引起 TI/RI - 串行口中断,串行端口完成一帧字符发送/接收后引起 其中T2是52单片机特有的。 中断允许寄存器IE 中断优先级寄存器IP 定时器中断 51单片机内部共有两个16位可编程的定时器/计
[单片机]
单片机定时器计数器的概念
前言 有接触过单片机开发的同学可能对定时器和计数器的使用很熟悉,但是定时器和计数器到底是什么东西呢? 文中涉及的模数电概念我都链接了百科知识,不明白的可以直接跳转观看。 正文 其实定时器和计数器底层原理是一个加法器,加法器对于输入的数字脉冲会进行计数,然后输出十六进制的值记录结果。 加法器可以加计数,当然也可以用来减计数,但是加计数用的的比较普遍,在单片机中大多数采用溢出判断。比如一个16位的计数器,最大值是65535,如果要实现100的计数,需要赋值给计数器初始值为65435,经过100个脉冲之后,计数器就会溢出,从而就会引发中断。 比如我们要计算1秒的时间,我们可以提前给加法器装入一个100的值,然后在脉冲输入
[单片机]
MCS-51 单片机定时器/计数器
MCS-51 单片机的定时器/计数器 主要内容:定时器/计数器的结构、定时器/计数器的4 种工作方式、对外部输入的计数信号的要求、定时器/计数器的编程和应用。 概述:两个可编程的定时器/计数器T1、T0。 两种工作模式: (1)计数器工作模式 (2)定时器工作模式 4种工作方式(方式0-方式3)。 6.1 定时器/计数器的结构 TMOD:选择定时器/计数器T0、T1的工作模式和工作方式。 TCON:控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。 单片机复位时,两个寄存器的所有位都被清0。 6.1.1 工作方式控制寄存器TMOD 8位分为两组,高4位控制T1,低4位控制T0。 (1)GATE——门控位
[单片机]
MCS-51 <font color='red'>单片机</font>的<font color='red'>定时器</font>/<font color='red'>计数器</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved