MCS-51单片机的定时器/计数器概念

发布者:心动代码最新更新时间:2017-01-20 来源: eefocus关键字:MCS-51  单片机  定时器  计数器 手机看文章 扫描二维码
随时随地手机看文章

一、MCS-51单片机的定时器/计数器概念


单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,而花费的时间恰好是1微秒;只要相邻两个计数脉冲之间的时间间隔相等,则计数值就代表了时间的流逝;
因此,单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件;MCS-51单片机的晶振经过12分频之后提供给单片机的只有1MHZ的稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的,这个准确的时间间隔是1微秒;
MCS-51单片机外接的是12MHZ的晶振(实际上是11.0592MHZ),所以,MCS-51单片机内部的工作频率(时钟脉冲频率)是12MHZ/12=1MHZ=1000000次/秒=1000000条指令/秒=1000000次/1000000微秒=1次/微秒=1条指令/微秒;也就是说,晶振振荡一次,就会给单片机提供一个时钟脉冲,花费的时间是1微秒,此时,CPU会执行一条指令,经历一个机器周期;即:1个时钟脉冲=1个机器周期=1微秒=1条指令;
注:个人PC机上的CPU主频是晶振经过倍频之后的频率,这一点恰好与MCS-51单片机的相反,MCS-51单片机的主频是晶振经过分频之后的频率;
总之:MCS-51单片机中的时间概念就是通过计数脉冲的个数来测量出来的;1个脉冲=1微秒=1条指令=1个机器周期;
MCS-51单片机定时器/计数器的简单结构图:

 


8051系列单片机有两个定时器:T0和T1,分别称为定时器和定时器T1,这两个定时器都是16位的定时器/计数器;8052系列单片机增加了第三个定时器/计数器T2;它们都有定时或事件计数功能,常用于时间控制、延时、对外部时间计数和检测等场合;


二、定时器/计数器的结构


8051单片机的两个定时器T0和T1分别都由两个特殊功能寄存器组成;T0由特殊功能寄存器TH0和TL0构成,而T1则是由TH1和TL1构成;
作为定时器使用时,定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12;
作为计数器使用时,通过引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1;计数器的最高频率一般是时钟振荡频率的1/24;
由此可知,不论是定时器还是计数器工作方式,定时器T0和T1均不占用CPU的时间,除非定时器/计数器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序;所以说,定时器/计数器是单片机中效率高而工作灵活的部件;

 

三、定时器/计数器的工作模式


除了可选择定时器和计数器的这两种工作方式外,每个定时器/计数器都有4种工作模式;
在模式0、1和2时,T0和T1的工作模式相同;在模式3时,两个定时器/计数器的工作模式不同;
工作模式0:
由TL0的低5位和TH0的全部8位共同构成一个13位的定时器/计数器;定时器/计数器启动后,定时或计数脉冲个数加到TL0上,从预先设置的初值(时间常数)开始累加,不断递增1;当 TL0计满后,向TH0进位,直到13位寄存器计满溢出;溢出时,定时器/计数器硬件会自动地把13位的寄存器值清0,中断标记TF0置1;如果需要进一步定时/计数,需要使用相关指令重置时间常数,并把定时器/计数器的中断标记TF0置0;工作模式0的结构如下图:

 

工作模式1:


模式1与模式0几乎完全相同,唯一的区别就是,模式1中的寄存器TH0和TL0共同构成的是一个16位定时器/计数器来参与操作,因此比模式0中的定时/计数范围更大;工作模式1的结构如下图:

 

工作模式2:


这种模式又称为自动再装入预置数模式;当定时器/计数器的寄存器TH0/TL0的值溢出时,定时器/计数器硬件设备会自动把寄存器TH0/TL0的值清0,以重新开始操作;但是有时候,我们的定时/计数操作是需要多次重复定时/计数的,如果溢出时不做任何处理,那么,在第二轮定时/计数时就是从0开始定时/计数了,而这并不是我们想要的;所以,要保证每次溢出之后,在重新开始定时/计数的操作是我们想要的,那就要把预置数(时间常数)重新装入某个地方;而重新装入预置数的操作是硬件设备自动完成的,不需要人工干预所以,这种工作模式就叫自动再装入预置数方式;既然需要重新装入预置数,那么预置数就必须要存放在某个地方,才能保证重装操作成功;在工作模式2中,把自动重装入的预置数存放在定时器/计数器的寄存器的高8位中,也就是存放在TH0中,而只留下TL0参与定时/计数操作;显然,定时/计数的方位小了很多;


注:这个工作模式常用于波特率发生器(串口通讯),T1工作在串口模式2;用于这种方式时,定时器就是为了提供一个时间基准;计数溢出之后,不需要做太多的事情,只做一件事就可以,就是重新装入预置数,再开始重新计数,而且中间不需要任何延时;工作模式2的结构如下图:

 

工作模式3:


由于定时器/计数器T1没有工作模式3,如果把定时器/计数器T0设置为工作模式3,那么TL0和TH0将被分割成两个相互独立的8位定时器/计数器;工作模式3的结构如下图:

 

四、定时器/计数器的定时/计数范围


工作方式0:13位定时器/计数器工作模式,最多可计数2的13次方次,即:8192次,[0,8191];
工作方式1:16位定时器/计数器工作模式,最多可计数2的16次方次,即:65536次,[0,65535];
工作方式2:8位定时器/计数器工作模式,最多可计数2的8次方次,即:256次,[0,255];
工作方式3:8位定时器/计数器工作模式,最多可计数2的8次方次,即:256次,[0,255];
预置数的计算公式:预置数=最大值-需要计数的次数;
五、定时器/计数器的控制寄存器
8051单片机设计了两个8位的特殊功能寄存器来控制定时器/计数器的工作状态;这两个特殊功能寄存器分别是TMOD和TCON;它俩都在特殊功能寄存器区;
1、工作模式控制寄存器TMOD(89h):


2、工作状态控制寄存器TCON(88H):

 

六、定时器/计数器的初始化


1、设置定时器/计数器的工作模式TMOD(常用的是模式1:TMOD=0x01);
2、装入预置数到THx和TLx中(THx=TLx=MAX(8192/65536/256)-计数次数);
3、如果工作在中断方式,则需要开定时器/计数器的中断TCON中的标志位:TF0/TF1=0/1;
4、启动定时器/计数器:TR0/TR1=1;
注:由于8051单片机的定时器/计数器使用的时钟脉冲是外部晶振(12MHZ)经过12分频(12MHZ/12=1MHZ)之后的频率,所以,一个时钟脉冲就是1微秒;所以,8192个脉冲=8192微秒=8.192毫秒; 65536个脉冲=65536微秒=65.536毫秒; 256个脉冲=256微秒=0.256毫秒;


关键字:MCS-51  单片机  定时器  计数器 引用地址:MCS-51单片机的定时器/计数器概念

上一篇:Keil C51 的printf
下一篇:51单片机时钟与周期

推荐阅读最新更新时间:2024-03-16 15:31

瑞萨扩大RA系列微控制器生态合作伙伴
瑞萨电子宣布,基于Arm Cortex-M的32位RA微控制器周围生态系统已涵盖包括安全,机器学习等众多领域,伙伴包括了Arm,阿里巴巴,IAR,Qeexo,Qt,东芝和wolfSSL等,所提供的解决方案与现成的RA设备兼容。 RA生态系统中现在可用的重要模块包括: 云与设备管理: Arm的Pelion物联网平台,用于连接,设备和数据管理 阿里巴巴的阿里云,用于通过以太网或Wi-Fi将RA设备连接到云Web服务 连接性: AltoBeam 802.11b / g / n Wi-Fi芯片和模块,可通过SDIO接口连接到RA设备 Clarinox蓝牙,BLE和Wi-Fi协议栈 CS Lab的BACnet堆栈 G
[单片机]
基于单片机的MP3播放器设计
0 引言 随着电子技术的发展,MP3播放器是目前市场上流行的消费类数码产品之一,具有大容童、高音质、小巧便携等特点.而倍受广大消费者的青睐。本文采用ETC公司的微控制器STC89C58RD+,结合解码芯片VS1003、USB接口芯片CH375、LCD等外围设备设计并实现了MP3播放器。主要功能有:播放VS1003支持的所有音频文件,包括MP3,WMA,WAV文件,且音质非常好,具有按键控制播放上一首/下一首、音量增减等,可通过LCD显示歌曲名字和播放状态信息等功能。 1 硬件系统设计 系统工作原理框图如图1所示。系统启动后,单片机通过USB接口芯片CH375,从U盘中获取MP3格式文件的数据,并存入片内RAM进行缓冲,然
[单片机]
基于<font color='red'>单片机</font>的MP3播放器设计
单片机智能开发平台解决方案
一、单片机应用开发平台的意义   单片机是最初的大型计算机的一个分支,主要用于:工业自动化控制、智能仪器、仪表、航海、航天、智能家电等领域。单片机作为一种嵌入式产品应用的主流控制芯片,应用十分广泛,而支持它的开发手段国内还比较落后,目前我国单片机嵌入式产品的开发行业中,仍实行随意性个体的自然经济的落后方式,即便技术力量较强的公司,也仍在实行“板凳模式”的产品开发方法,大量低水平的重复劳动形成了顽症。采用平台开发模式实行“阶梯模式”的开发方式从根本上解决了“板凳模式”的弊端。 二、单片机开发平台简介   单片机应用智能开发平台是为单片机的应用开发提供的一套解决方案,包括有中文开发平台操作系统、基础平台、扩展功能函数库、仿真调试等
[应用]
51单片机产生串口中断的方式
首先,你要用软件允许中断, 即C语言中EA = 1; 允许总中断ES = 1; //允许串口中断汇编中可用 SETB EA ;允许总中断 SETB ES ;允许串口中断 当单片机接收到一帧数据后,RI会置1,向CPU申请中断,若之前有中断允许,则产生了中断,进入中断服务程序。 当然,单片机发送完一帧数据,TI也会置1,同样会产生中断! 一般我们在发送数据时要关中断,因为一般你不用在发送时不用处理数据;接收数据时要开中断,以便你在中断服务程序中将接收到的数据进行存储并处理。 补充:其实,不管你有没有允许中断,上位机(此时即给单片机发送信息的机器)只要给单片机发送数据,单片机就会自动接收数据,并把它放在
[单片机]
在MOTOROLAA68K系列MCU上移植μC/OS-II
以下介绍如何将μC/OS-II移植到MOTOROLA MC68K系列CPU上。 一、MC68K CPU简介 MC68K及68020、68040等的著名的MOTOROLA32位微处理器,和与之兼容的68K、CPU32、CPU32+等CPU扩充定时处理单元TPU、队列串行模块QSM、系统控制模块和RAM等组成MC683xx系列单片机。 CPU32内部有8个32位通用数据寄存器,8个32位通用地址寄存器。8个通用数据寄存器可作为累加器使用,也可看成C语言中各种类型的变量;8个通用地址寄存器,可作为变址寄存器使用,也可看成C语言中的指针型变量。CPU32有独立的用户堆栈指针和系统堆栈指针,可区分程序区、数据区、系统区、
[嵌入式]
PIC单片机定时器初值计算方法及几种周期小结
PIC定时器也用是蛮多的,据说网上还有计算初值的强力软件,不过我还是手动算下吧。总结了下————2013.8.27 PIC单片机定时器初值计算方法 PIC的指令周期是4个震荡周期,在没有使用分频器的情况下,TMR0 会在每个指令周期信号(等于晶体振荡器产生的主时钟周期的 4 倍)到来时自动加 1。在配置了分频器的情况下,TMR0 会在每次收到由分频器将指令周期信号分频一个固定倍数后产生的信号时自动加 1。如果 TMR0在累加计数的过程中,CPU 执行一条往 TMR0 中写入数据的指令,则累加计数器的加 1 操作将被推迟两个指令周期,重新开始计数。这两个指令周期的偏差在用户编写时间精度要求较高的程序时应引起注意,可以通过在每次写
[单片机]
PIC<font color='red'>单片机</font><font color='red'>定时器</font>初值计算方法及几种周期小结
单片机硬件电路设计的七个原则分享
一个单片机硬件系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。 系统的扩展和配置应遵循以下原则: 1、尽可能选择典型电路,并符合单片机硬件系统常规用法。为硬件系统的标准化、模块化打下良好的基础。 2、系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。 3、硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相
[单片机]
<font color='red'>单片机</font>硬件电路设计的七个原则分享
使用高集成度MCU实现网络支持的技术
  在过去 20 年中,许多工业和自动化系统的趋势是向单个节点添加越来越多的数字智能,以提高它们的响应速度。通过使用分布式智能将系统整合到系统系统(也称为“物联网”)中,系统可以变得更加灵活。通过网络控制,可以提供对设备的远程控制,让它们更智能地工作,以节省能源并提供状态和错误反馈。   使用从远程节点收集的数据,云中的服务器可以在警报开始出现时主动安排维护。这些服务器还可以通过使用增强的控制算法使设备协同工作,以获得更节能或更具成本效益的解决方案,这些算法不仅对来自一个设备的数据作出反应,而且还执行传感器融合以使用来自多个设备的输入。   自 1970 年代推出以来,以及随后在 1980 年代更新为使用低成本双绞线电缆,
[单片机]
使用高集成度<font color='red'>MCU</font>实现网络支持的技术
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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