【48812】51单片机守时器计数器的结构和原理
2024-07-15 01:54:52 商用炉灶
T0由2个守时寄存器TH0和TL0构成,T1则由TH1和TL1构成,它们都别离映射在特别功用寄存器中,然后可以经过对特别功用寄存器中这些寄存器的读写来完成对这两个守时器的操作。作守时器时,每一个机器周期守时寄存器主动加l,所以守时器也可看作是计量机器周期的。因为每个机器周期为12个时钟振动周期,所以守时的分辨率是时钟振动频率的1/12。作计数器时,只需在单片机外部引脚T0(或T1)有从1到0电平的负跳变,计数器就主动加1。计数的最高频率一般为振动频率的l/24。
T0或T1不管用作守时器或计数器都有4种作业方法:方法0、方法1、方法2和方法3。除方法3外,T0和T1有完全相同的作业状况。下面以T1为例,分述各种作业方法的特色和用法。
13位方法由TL1的低5位和TH1的8位构成13位计数器(TL1的高3位无效)。作业方法0的结构见下图:
图中,C/T为守时/计数挑选:C/T=0,T1为守时器,守时信号为振动周期12分频后的脉冲;C/T=l,T1为计数器,计数信号来自引脚T1的外部信号。
守时器T1能否发动作业,还受到了R1、GATE和引脚信号INT1的操控。由图中的逻辑电路可知,当GATE=0时,只需TR1=1就可翻开操控门,使守时器作业;当GATE=1时,只要TR1=1且INT1=1,才可翻开操控门。GATE,TR1,C/T的状况挑选由守时器的操控寄存器TMOD,TCON中相应位状况确认,INT1则是外部引脚上的信号。
在一般的运用中,一般使GATE=0,然后由TRl的状况操控Tl的开闭:TRl=1,翻开T1;TRl=0,封闭T1。在特别的运用场合,例如运用守时器丈量接于INT1引脚上的外部脉冲高电平的宽度时,可使GATE=1,TRl=1。当外部脉冲呈现上升沿,亦即INT1由0变1电平常,发动T1守时,丈量开端;一旦外部脉冲呈现下降沿,亦即INT1由l变O时就封闭了T1。
守时器发动后,守时或计数脉冲加到TLl的低5位,从预先设置的初值(时间常数)开端不断增1。TL1计满后,向THl进位。当TL1和THl都计满之后,置位T1的守时器回零标志TFl,以此标明守时时间或计数次数已到,以供查询或在翻开中止的条件下,可向CPU恳求中止。如需进一步守时/计数,需用指令重置时间常数。
16位方法。与作业方法0根本相同,差异仅在于作业方法1的计数器TL1和TH1组成16位计数器,然后比作业方法0有更宽的守时/计数规模。作业方法1的结构见下图。
8位主动装入时间常数方法。由TLl构成8位计数器,THl仅用来寄存时间常数。发动T1前,TLl和THl装入相同的时间常数,当TL1计满后,除守时器回零标志TFl置位,具有向CPU恳求中止的条件外,THl中的时间常数还会主动地装入TLl,偏重新开端守时或计数。所以,作业方法2是一种主动装入时间常数的8位计数器方法。因为这种方法不需要指令重装时间常数,因此操作快捷,在答应的条件下,应尽量用这种作业方法。当然,这种方法的守时/计数规模要小于方法0和方法1。作业方法2的结构见下图.
2个8位方法。作业方法3只适用于守时器0。假如使守时器1为作业方法3,则守时器1将处于封闭状况。
当T0为作业方法3时,THo和TL0分红2个独立的8位计数器。其间,TL0既可用作守时器,又可用作计数器,并运用原T0的一切操控位及其守时器回零标志和中止源。TH0只能用作守时器,并运用T1的操控位TRl、回零标志TFl和中止源,见下图。
一般情况下,T0不运转于作业方法3,只要在T1处于作业方法2,并不要求中止的条件下才或许运用。这时,T1往往用作串行口波特率发生器(见1.4),TH0用作守时器,TL0作为守时器或计数器。所以,方法3是为了使单片机有1个独立的守时器/计数器、1个守时器以及1个串行口波特率发生器的运用场合而特别供给的。这时,可把守时器l用于作业方法2,把守时器0用于作业方法3。