您的位置 首页 软件

51单片机定时器计数器中止总结

一TMOD:定时器计数度器模式寄存器M1M0:定时计数器一共有四种工作方式,就是用M1M0来控制的,2位正好是四种组合。1工作方式1工作方式1

一.TMOD:守时器计数度器形式寄存器

M1M0:守时/计数器一共有四种作业方法,便是用M1M0来操控的,2位正好是四种组合。

1. 作业方法1

作业方法1是16位的守时/计数方法,将M1M0设为01即可,其它特性与作业方法0相同。

作业方法2
在介绍这种式方法之前先让咱们考虑一个问题:上一次课咱们提到过恣意计数及恣意守时的问题,比方我要计1000个数,可是16位的计数器要计到65536才满(若初值为0,记数1后变成0001H,计数65535后变成0FFFFH,再计数1次变成65536,溢出了,各位都为0了,然后恳求中止。所以是能计数65536个的,尽管最终一次溢出了。),怎样办呢?咱们评论后得出的方法是用预置数,先在计数器里放上64536,再来1000个脉冲,不就行了吗?是的,可是计满了之后咱们又该怎样办呢?要知道,计数总是不断重复的,流水线上计满后立刻又要开端下一次计数,下一次的计数仍是1000吗?当计满并溢出后,计数器里边的值变成了0(为什么,能够参阅前面课程的阐明),因而下一次即将计满65536后才会溢出,这可不符合要求,怎样办?当然方法很简单,便是每次一溢出时履行一段程序(这一般是需求的,要不然要溢出干吗?)能够在这段程序中做把预置数64536送入计数器中的作业。所以选用作业方法0或1都要在溢出后做一个重置预置数的作业,做作业当然就得要时间,一般来说这点时间不算什么,可是有一些场合咱们仍是要计较的,所以就有了第三种作业方法主动再装入预置数的作业方法。

已然要主动得新装入预置数,那么预置数就得放在一个当地,要不然装什么呢?那么预置数放在什么当地呢?它放在T(0/1)的高8位,那么这样高8位不就不能参加计数了吗?是的,在作业方法2,只需低8位参加计数,而高8位不参加计数,用作预置数的寄存,这样计数规模就小多了,当然做任可事总有价值的,关键是看值不值,假如我底子不需求计那么大都,那么就能够用这种方法。看图4,每逢计数溢出,就会翻开T(0/1)的高、低8位之间的开关,计预置数进入低8位。这是由硬件主动完结的,不需求由人工干预。

一般这种式作方法用于波特率发生器(咱们将在串行接口中解说),用于这种用处时,守时器便是为了供给一个时间基准。计数溢出后不需求做作业,要做的只是只需一件,便是从头装入预置数,再开端计数,并且中心不要任何推迟,可见这个使命用作业方法2来完结是最妙不过了。

作业方法3
这种式作方法之下,守时/计数器0被拆成2个独立的守时/计数器来用。其间,TL0能够构成8位的守时器或计数器的作业方法,而TH0则只能作为守时器来用。咱们知道作守时、计数器来用,需求操控,计满后溢出需求有溢出符号,T0被分红两个来用,那就要两套操控及、溢出符号了,从何而来呢?TL0仍是用本来的T0的符号,而TH0则借用T1的符号。如此T1不是无符号、操控可用了吗?是的。

一般状况处,只需在T1以作业方法2运转(当波特率发生器用)时,才让T0作业于方法3的。

守时器/计数器的守时/计数规模

作业方法0:13位守时/计数方法,因而,最多能够计到2的13次方,也便是8192次。

作业方法1:16位守时/计数方法,因而,最多能够计到2的16次方,也便是65536次。

作业方法2和作业方法3,都是8位的守时/计数方法,因而,最多能够计到2的8次方,也说是256次。

预置值核算:用最大计数量减去需求的计数次数即可。

C/T:前面咱们说过,守时/计数器即可作守时用也可用计数用,究竟作什么用,由咱们根据需求自行决定,也说是决定权在咱们编程者。假如C/T为0便是用作守时器(开关往上打),假如C/T为1便是用作计数器(开关往下打)。趁便提一下:一个守时/计数器同一时间要么作守时用,要么作计数用,不能一起用的,这是个极一般的知识,几乎没有教材会提这一点,但许多初学者却会有此困惑。

GATE:看图,当咱们挑选了守时或计数作业方法后,守时/计数脉冲却不一定能抵达计数器端,中心还有一个开关,明显这个开关不合上,计数脉冲就无法曩昔,那么开关什么时候曩昔呢?有两种状况

1. GATE=0,剖析一下逻辑,GATE非后是1,进入或门,或门总是输出1,和或门的另一个输入端INT1无关,在这种状况下,开关的翻开、合上只取决于TR1,只需TR1是1,开关就合上,计数脉冲得以四通八达,而假如TR1等于0则开关翻开,计数脉冲无法经过,因而守时/计数是否作业,只取决于TR1。

GATE=1,在此种状况下,计数脉冲通路上的开关不只要由TR1来操控,并且还要遭到INT1引脚的操控,只需TR1为1,且INT1引脚也是高电平,开关才合上,计数脉冲才得以经过。这个特性能够用来丈量一个信号的高电平的宽度,想想看,怎样测?

二.TCON: 守时器计数度器操控寄存器

1. 中止恳求源:

(1)外部中止恳求源:即外中止0和1,经由外部引脚引进的,在单片机上有两个引脚,名称为INT0、INT1,也便是P3.2、P3.3这两个引脚。在内部的TCON中有四位是与外中止有关的。

IT0:INT0触发方法操控位,可由软件进和置位和复位,IT0=0,INT0为低电平触发方法,IT0=1,INT0为负跳变触发方法。这两种方法的差异将在今后再谈。

IE0:INT0中止恳求标志位。当有外部的中止恳求时,这位就会置1(这由硬件来完结),在CPU呼应中止后,由硬件将IE0清0。

IT1、IE1的用处和IT0、IE0相同。

(2)内部中止恳求源

TF0:守时器T0的溢出中止符号,当T0计数发生溢出时,由硬件置位TF0。当CPU呼应中止后,再由硬件将TF0清0。

TF1:与TF0相似。

TI、RI:串行口发送、接纳中止

三.中止答应寄存器IE

在MCS-51中止体系中,中止的答应或制止是由片内可进行位寻址的8位中止答应寄存器IE来操控的。见下表

EA

总开关
X
X
ES

串行口中止答应
ET1

守时器1中止答应

EX1

外中止1中止答应
ET0

守时器0中止答应
EX0

外中止0中止答应

其间EA是总开关,假如它等于0,则一切中止都不答应。

ES-串行口中止答应

ET1-守时器1中止答应

EX1-外中止1中止答应。

ET0-守时器0中止答应

EX0-外中止0中止答应

四.中止优先级寄存器IP

中止优先级中由中止优先级寄存器IP来高置的,IP中某位设为1,相应的中止便是高优先级,不然便是低优先级。

X
X
X
PS

串口
PT1

守时器1
PX1

外中止1
PT0

守时器0
PX0

外中止0

五个中止源的恳求地址

外中止0:0003H

守时器0:000BH

外中止1:0013H

守时器1:001BH

串口 :0023H

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部