精华内容
下载资源
问答
  • 单片机定时器工作模式TMOD设置 TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER) 定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。
  • 51 TMOD、TCON设置定时

    千次阅读 2019-11-29 14:15:45
    1、TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计数模式还是定时模式的,如:TMOD = 0X01,就说明定时器0工作方式1。...

    定时器工作的流程可以按照这个顺序(以51为例用定时器0方式一产生50毫秒的定时) 

    1、TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计数模式还是定时模式的,如:TMOD = 0X01,就说明定时器0工作在方式1。

    2、接下来就要设置定时的时间,用定时器定时50毫秒,可以用这种方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以这样理解:因为这是定时器的初值,也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断,至于为什么是对256取整,和取余的话楼主自己先琢磨吧, 不懂再hi我;

    3、第三步就要打开中断了,使用IE寄存器,我一般是对各个位进行单独设置,这样看起来感觉更好,首先打开总中断EA = 1,这一步是所有中断所必须的,然后打开定时器0中断,ET0 =1;

    4、这时准备工作都准备好了就要开始启动定时器了,使用TCON寄存器,TR0 = 1,到现在为止就实现了一个50毫秒的定时了;

    总结一下:TMOD = 0X01; TH0 = (65535 - 5000) / 256; TL0 = (65535 - 50000) % 256; EA = 1; ET0 = 1; TR0 = 1,至于那个中断函数我就不写了,要注意的是方式0 ,1, 3是不能自动重装的,所以得在中断函数中重新对TH0 ,TL0赋初值,楼主说的那个SCON寄存器就是用于串口的,定时器会用了的话,串口也就会了的,希望能够帮助楼主了

     

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

    单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,只要相邻两个计数脉冲之间的时间间隔相等,则计数值就代表了时间的流逝,因此,单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件;MCS-51单片机的晶振经过12分频之后提供给单片机稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的。

    51单片机定时/计数器详解(工作原理及模式、应用)

    51单片机的定时/计数器的工作原理

    加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。

    作为定时器使用时,定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12;

    作为计数器使用时,通过引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2微秒。;计数器的最高频率一般是时钟振荡频率的1/24;

    由此可知,不论是定时器还是计数器工作方式,定时器T0和T1均不占用CPU的时间,除非定时器/计数器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序。所以说,定时器/计数器是单片机中效率高而工作灵活的部件。

     

    由上图可见与定时器相关的寄存器主要有下面这几个:TMOD、 TCON、 TL0、TH0、TL1、TH1。下面介绍一下这几个寄存器

    16位加法计数器:

    51单片机定时/计数器详解(工作原理及模式、应用)

    是定时计数器的核心,其中 TL0、TH0、是定时计数器0的底八位和高八位;TL1、TH1是定时计数器1的底八位和高八位;并且高八位和底八位可单独使用。16位加法计数器主要是在设置定时计数器的初值时候使用

    TMOD定时器工作模式及方式寄存器

    51单片机定时/计数器详解(工作原理及模式、应用)

    GATE :定时操作开关控制位

    当GATE=1时,INT0或INT1引脚为高电平,同时TCON中的TR0或TR1控制位为1时,计时/计数器0或1才开始工作。

    若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1就开始工作。

    C/T :定时器或计数器功能的选择位。C/T=1为计数器,通过外部引脚T0或T1输入计数脉冲。C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。

    M1 M0:T0、T1工作模式选择位

    51单片机定时/计数器详解(工作原理及模式、应用)

    TCON定时器控制寄存器

    51单片机定时/计数器详解(工作原理及模式、应用)

    TF1:定时器T1溢出标志,可由程序查询和清零,TF1也是中断请求源,当CPU响应T1中断时由硬件清零。

    TR1:T1充许计数控制位,为1时充许T1计数(定时)。

    TF0:定时器T0溢出标志,可由程序查询和清零,TF0也是中断请求源,当CPU响应T0中断时由硬件清零。

    TR0:T0充许计数控制位,为1时充许T0计数(定时)。

    IE1:外部中断1请示源(INT1,P3.3)标志。IE1=1,外部中断1正在向CPU请求中断,当CPU响应该中断时由硬件清“0”。

    IT1:外部中断源1触发方式控制位。此位为1设置为底电平触发,为0设置为下降沿触发。

    IE0:外部中断0请示源(INT0,P3.2)标志。IE0=1,外部中断1正在向CPU请求中断,当CPU响应该中断时由硬件清“0”。

    IT0:外部中断源0触发方式控制位。此位为1设置为底电平触发,为0设置为下降沿触发。

     

    51单片机定时器4种工作模式

    工作模式0:

    由TL0的低5位和TH0的全部8位共同构成一个13位的定时器/计数器,定时器/计数器启动后,定时或计数脉冲个数加到TL0上,从预先设置的初值(时间常数)开始累加,不断递增1,当 TL0计满后,向TH0进位,直到13位寄存器计满溢出,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。并且定时器/计数器硬件会自动地把13位的寄存器值清0,如果需要进一步定时/计数,需要使用相关指令重置时间常数,并把定时器/计数器的中断标记TF0置0。

    工作模式1:最常用的定时器工作模式

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

    51单片机定时/计数器详解(工作原理及模式、应用)

    工作模式2: 工作方式2特别适合于用作较精确的脉冲信号发生器。

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

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

    51单片机定时/计数器详解(工作原理及模式、应用)

    工作模式3:

    方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数由于定时器/计数器T1没有工作模式3,如果把定时器/计数器T0设置为工作模式3,那么TL0和TH0将被分割成两个相互独立的8位定时器/计数器。

    51单片机定时/计数器详解(工作原理及模式、应用)

    在这里介绍一下定时器初值的设定:

    工作方式0:13位定时器/计数器工作模式,最多可计数2的13次方次,即:8192次

    工作方式1:16位定时器/计数器工作模式,最多可计数2的16次方次,即:65536次

    工作方式2:8位定时器/计数器工作模式,最多可计数2的8次方次,即:256次,

    工作方式3:8位定时器/计数器工作模式,最多可计数2的8次方次,即:256次

     

     

     

    展开全文
  • 一,TMOD的配置 1.定时模式(不受INT0/1影响) ...

    一,TMOD的配置 

     

     

                                                                                                                                                                     1.定时模式GATE=0                                                                                                        TMOD=0X01(T0工作方式1)                                                                                                      TMOD=0X02(T0工作方式2)                                                                                                      TMOD=0X10  (T1工作方式 1)                                                                                                            TMOD=0X20  (T1工作方式2)

     2.计数模式GATE=0                                                                                                                            TMOD=0X05(T0工作方式1)                                                                                                      TMOD=0X06(T0工作方式2)                                                                                                          TMOD=0X50(T1工作方式1)                                                                                                       TMOD=0X60(T1工作方式2)

    二. 赋初值

    注:51单片机定时器常用方式1或方式 2                                                                                                    方式一可以装入总数65536                                                                                                                方式二二可以装入总数256

    赋值举例 

                                                                                                                                                                                                                                                               

     使用51定时器计算软件可以节省时间1.

    1.采用方式1                                                                                                                                             使用定时器0方式1,定时 1ms。1ms=1000us,所以65536-1000=64536。转换为16禁进制为0XFC18;

     

    TH0=(65536-1000)/256;
    TL0=(65536-100)%256;

     或

    TH0=OXFC;
    TL0=0X18;

    2.采用方式2                                                                                                                                                 使用定时器0的方式2,定时0.1ms,0.1ms=100us,所以256-100=246,转换为16进制为9C;                                                                                                                                                    

    TH0=0X9C;
    TL0=0X9C;

     

    展开全文
  • 51单片机:定时器/计数器TMOD设定

    千次阅读 2021-10-20 22:12:23
    51单片机:定时器/计数器TMOD设定 上图为TMOD格式,8位分为两组,高四位控制T1,低四位控制T0 GATE :为门控位,GATE=0时,只要在编写...M1,M0:用来选择定时计/计数器的工作方式,一般使用都是采用16位的计时计数器。

    51单片机:定时器/计数器TMOD设定

    在这里插入图片描述

    上图为TMOD格式,8位分为两组,高四位控制T1,低四位控制T0
    GATE :为门控位,GATE=0时,只要在编写程序时,使TCON中的TRO或TR1为1,就可以启动定时器/计数器工作。
    GATE=1时,不仅要在编写程序时,使TCON中的TRO或TR1为1,且需要外部引脚也为高电平,才能工作。
    C/T :定时/计数模式切换,C/T=0时为定时模式,C/T=1时为计数模式。
    M1,M0:用来选择定时计/计数器的工作方式,一般使用都是采用16位的计时计数器。
    在这里插入图片描述

    几种TMOD设置:
    定时器工作模式下,GATE = 0:

    • TMOD = 0X01 (T0工作在方式1)
    • TMOD = 0X02 (T0工作在方式2)
    • TMOD = 0X10 (T1工作在方式1)
    • TMOD = 0X20 (T1工作在方式2)

    1.方式0时,N=13(此为TH为8位,TL为5位)
    2.方式1时,N=16(此为TH为8位,TL为8位

    展开全文
  • 单片机C语言请教——有关TMOD关注:83答案:4手机版解决时间 2021-01-27 04:12提问者时光易老2021-01-26 05:11void system_Ini(){TMOD|= 0x11;TH0=0xDC; //11.0592MTL0=0x00;IE = 0x8A;TR0 = 1;}大侠帮忙把上面程序的...

    单片机C语言请教——有关TMOD

    关注:83  答案:4  手机版

    解决时间 2021-01-27 04:12

    提问者时光易老

    2021-01-26 05:11

    void system_Ini()

    {

    TMOD|= 0x11;

    TH0=0xDC; //11.0592M

    TL0=0x00;

    IE = 0x8A;

    TR0 = 1;

    }

    大侠帮忙把上面程序的意思讲解一下!

    定时中断延时 *

    ************************************************/

    void Tzd(void) interrupt 1

    {

    TH0 = 0xfe; //11.0592

    TL0 = 0x33;

    if( CT++==speed)

    {TIM=1;

    CT=0;

    }

    }

    把上面的讲解一下,谢谢啦!

    最佳答案

    二级知识专家会有一股神秘感

    2021-01-26 05:33

    1.system_Ini()为定时器T0初始化子程序,功能是设置定时器工作方式为方式1,TH0=0xDC--寄存器TH0初值为220,TL0=0x00--寄存器TL0初值为0,IE = 0x8A--允许外部中断1和定时器T0中断,TR0=1--定时器T0启动,晶振频率为11.0592MHz;

    2.Tzd()为定时器T0中断服务子程序,当定时器T0溢出时,进入Tzd(),TH0 = 0xfe--寄存器TH0重置为254,TL0 = 0x33--寄存器TL0重置为51, 每进入一次定时器T0中断,CT就加1,CT++==speed--当CT的值加到speed时,执行TIM=1和CT=0。

    全部回答

    1楼笑尽沧桑

    2021-01-26 09:20

    sbit 是c51拓展出来的关键字,是对byte的位进行定义

    sbit ip_2 = ip^2就是把 中断优先级寄存器ip的第三位(从0开始的)定义成ip_2这个名称,以后你操作ip的第三位就可以直接用ip_2的这个名字了。另外sbit只能用在可被位寻址的寄存器上,也就是地址可以被8整除的寄存器,否则编译器报错。

    c51有异或的命令,但是在sbit后面的这个^表示的是位,不是异或的意思。

    sbit还可以这么用

    char temp

    sbit temp_2 = temp^2

    int temp

    sbit temp_14 = temp^14

    但是不支持float的,不可以用,会报错,其他均可,比如long

    2楼敌不过时间逃不过距离

    2021-01-26 07:45

    void system_Ini()//定时器设置函数

    {

    TMOD|= 0x11; //设置TMOD的方式,可变化的方式,即TMOD=TMOD|0x11

    TH0=0xDC; //11.0592M下装入初值

    TL0=0x00; //11.0592M下装入初值

    IE = 0x8A; //设置中断允许寄存器 IE 的状态

    TR0 = 1; //设置本程序要用到的中断即打开

    }

    void Tzd(void) interrupt 1 //定时器0中断函数

    {

    TH0 = 0xfe; //11.0592M晶振下重新设置初值

    TL0 = 0x33; //11.0592M晶振下重新设置初值

    if( CT++==speed) //CT==speed的判断,然后CT=CT+1,

    {TIM=1; //是就执行TIM=1;

    CT=0; //并且把CT归零

    }

    }

    3楼凊搽蒗囝

    2021-01-26 06:46

    void system_Ini()

    {

    TMOD|= 0x11;设置TMOD的方式,定时器一,定时器零都设定成方式1。

    TH0=0xDC; //11.0592M给定时器零装入初值。

    TL0=0x00;

    IE = 0x8A; 设置中断(打开总中断,允许定时器一,定时器零的溢出中断)

    TR0 = 1;启动定时器零。

    }

    我要举报

    如以上信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!

    推荐资讯

    大家都在看

    展开全文
  • #include #include unsigned char flag,a,num,num1;
  • 4.1.3 定时器/计数器的工作方式---51系列单片机设计实例教程定时器/计数器的工作方式有以下四种:1.方式0当TMOD中的M0=0,M1=0时,为13位计数或定时方式,其中TLi使用低5位,其结构如图4.2所示。图4.2 方式0时T0、T1...
  • 至于那些书上都有的理论知识我就不说了,就简单的说一下吧,楼主可以想简单点 ...1、确定使用哪个定时器,使用哪种方式,这一步通过TMOD设置TMOD的低四位是设置定时器0的,高四位是用来设置定时...
  • 定时器工作模式2

    千次阅读 2021-05-22 00:52:30
    1.工作模式2的使用这里我们顺便讲解一下定时器0的工作模式2,也就是使用“小试管”的方式TMOD的初始化就为“TMOD=0x02;”。我们知道工作模式2的最长溢出时间仅为256*(12/11059200)=0.000277秒=277微秒。我们想实现...
  • 在前面的学习中,我们已经知道通过设置TMOD的M1、M0两位,可以选择定时/计数器的四种工作方式。T0和T1在使用前三种工作方式时,除使用的寄存器和控制位不同外,其他操作相似。另外,T1没有工作方式3。下面以T0为例来...
  • TMOD 计时器 计数器

    2021-07-10 19:56:17
    二、工作原理 其中低四位(即D0 ~ D3)定义定时器/计数器T0,高四位(即D4 ~ D7)定义定时器/计数器T1。 Ⅰ,GATE——门控制。 ●GATE=1时,“与门”的输出信号K由INTx输入电平和TRx位的状态一起决定(即此时K=TRx·...
  • TMOD控制寄存器

    千次阅读 2019-07-20 20:00:34
    TMOD控制寄存器 TMOD是定时器、计数器模式控制寄存器,它是一个逐位定义的8为寄存器,但只能使用字节寻址。 其各位是: 由上图我们就可以看出,这个寄存器控制了两个定时器/计数器 寄存器的高四位控制定时器1,低四...
  • 工作方式1: ①设置TMOD的 M0=1 M1=0 C/T=0 GATE=0 下面低位全为0 , 这样TMOD =0x01; ②然后TH0 TL0 分别为高四位和低四位,赋予一个初值,这个初值就是延时多长的意思,比如要延时50ms,则65536-50000=15536,再...
  • 定时器工作模式

    2021-05-22 00:52:34
    1.两种“试管” 这种“试管”有65535个刻度的型号,也有255个刻度的型号,不过我们的导管水流流速是永远不变的。... 我们把使用“大试管”称为定时器的工作模式1,使用“小试管”称为定时器的工作模式2。
  • 单片机定时器TMOD与TCON

    千次阅读 多人点赞 2019-05-30 15:09:03
    TMOD:定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。 D7 D6 D5 D4 D3 D2 D1 ...
  • 定时器0工作方式1

    千次阅读 2019-09-29 17:29:26
    #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit led1=P1^0; uchar num;...TMOD=0X01;...//设置定时器0为工作方式1(M1M0为01) TH0=(65536-45872)/256; //装...
  • 功能: 设置T0,T1的运行模式与工作方式 字节地址为0x89,无位地址,只能用整字节方式访问,不能用位访问方式对TMOD的某一位进行单独操作。 对应位的含义: 其中M1,M0的取值组合与定时/计数器的工作方式之间关系 ...
  • 1、方式0 : 方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。   一共13位,空着的3位忽略不用管,TL0一直...
  • TCON控制字及TMOD寄存器

    万次阅读 2015-03-07 17:45:46
     M1M0 工作方式 计数器模式 TMOD(设置定时器模式)  0 0 方式0 13位计数器 TMOD=0x00  0 1 方式1 16位计数器 TMOD=0x01  1 0 方式2 自动重装8位计数器 TMOD=0x02  1 1 方式...
  • 定时器TR0置1,开始工作,每个机器周期时间标记加1(TH0,TL0),到溢出点产生溢出标记,TH0TL0都是归0;根据定时的时间长短修改TH0,TL0. 如果一个机器周期的采样为高电平,后一个机器周期的采样位低电平,即为一...
  • TMOD是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。定时器/计数器的工作原理计数器输入的计数脉冲源系统的时钟振荡器输出脉冲经12分频后产生;T0或...
  • TMOD TCON SCON

    千次阅读 2011-08-30 16:33:28
    TMOD:定时器/计数器T0¦T1的方式寄存器  方式寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址的寄存器,字节地址为89H。  其格式为:   TMOD结构图  ======================================
  • 单片机定时器TMOD与TCON详解!

    万次阅读 多人点赞 2019-08-15 18:45:09
    TMOD:定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。 D7 D6 D5 D4 D3 D2 D1 ...
  • 51单片机之TMOD寄存器

    千次阅读 2020-07-14 11:38:46
    51单片机之TMOD寄存器TMOD格式图GATE(门控位)C/T( 定时/计数模式选择位)M1M0(工作方式设置位) TMOD格式图 TMOD(定时器/计数器工作方式寄存器)低4位用于T0,高4位用于T1 GATE(门控位) 用于控制定时器启动...
  • TMOD、TCON、SCON、PCON、SBUF寄存器说明

    千次阅读 多人点赞 2021-01-06 13:39:23
    TMOD:定时器/计数器工作方式寄存器 TCON:定时器/计数器控制寄存器   SCON:串行口控制寄存器 串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等,其位...
  • 从上面定时器/计数器的结构图中我们可以看出,16位的定时/...此外,其内部还有一个8位的定时器方式寄存器 TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要...
  • #include<reg51.h>... TMOD=0x01;// 使用定时器 T0 的模式 1 TH0=(65536-46083)/256; // 定时器 T0的高 8 位赋初值 TL0=(65536-46083)%256; // 定时器 T0的低 8 位赋初值 TR0=1; // 启动定时器 T...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,639
精华内容 1,855
关键字:

tmod工作方式设置