您的位置 首页 厂商

MCS51单片机的定时器/计数器概念 非常好的寄存器联系图

一、MCS-51单片机的定时器/计数器概念单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接…

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

单片机中的守时器和计数器其实是同一个物理的电子元件,只不过计数器记载的是单片机外部产生的作业(承受的是外部脉冲),而守时器则是由单片机本身供给的一个十分安稳的计数器,这个安稳的计数器便是单片机上衔接的晶振部件;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):

六、守时器/计数器的初始化
注:我们8051单片机的守时器/计数器运用的时钟脉冲是外部晶振(12MHZ)通过12分频(12MHZ/12=1MHZ)之后的频率,所以,一个时钟脉冲便是1微秒;所以,8192个脉冲=8192微秒=8.192毫秒; 65536个脉冲=65536微秒=65.536毫秒; 256个脉冲=256微秒=0.256毫秒;

1、设置守时器/计数器的作业形式TMOD(常用的是形式1:TMOD=0x01);
2、装入预置数到THx和TLx中(THx=TLx=MAX(8192/65536/256)-计数次数);
3、假如作业在中止方法,则需求开守时器/计数器的中止TCON中的标志位:TF0/TF1=0/1;
4、发动守时器/计数器:TR0/TR1=1;

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/263718.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部