定时器初值计算_定时器的定时初值计算 - CSDN
  • 定时器初值计算

    千次阅读 2019-07-31 15:28:14
    1. 定时器初值计算: (1)计算出机器周期------每次定时计算器加1所用的时间。 (2)根据你要定时的时间去算出初值:  假设你要定时Xms(X<65.535ms),计数次数C: Xms/机器周期。  用65535-C=定时计数器...

    1. 定时器初值的计算:

    (1)计算出机器周期------每次定时计算器加1所用的时间。

    (2)根据你要定时的时间去算出初值:

        假设你要定时Xms(X<65.535ms),计数次数C: Xms/机器周期。

        用65535-C=定时计数器的初值(方式1).

        TH0=(定时计数器初值)/256

        TL0= (定时计数器初值)%256.

    2. 定时器的设置

    (1)设置TMOD

    (2)计算出初值

    (3)启动定时计数器

    (4)设置中断程序

     

    转载于:https://www.cnblogs.com/rolingball-creation/p/10648790.html

    展开全文
  • 51单片机定时器初值计算

    万次阅读 多人点赞 2017-08-08 09:56:58
    **菜鸟关于51类单片机的定时器初值计算问题的计算**首先先来介绍单片机的几个周期: 1、时钟周期,也称为振荡周期:定义为时钟脉冲的倒数,在单片机中也就等于晶振的倒数。 51单片机中把一个时钟周期定义为一个...
                   **菜鸟关于51类单片机的定时器初值计算问题的计算**
    
    首先先来介绍单片机的几个周期:   
    

    1、时钟周期,也称为振荡周期:定义为时钟脉冲的倒数,在单片机中也就等于晶振的倒数。
    51单片机中把一个时钟周期定义为一个节拍(用P表示),2个节拍定义为状态周期(用S表示)
    时钟周期是单片机中最小的时间单位。
    eg:12M晶振的单片机,时钟周期=振荡周期=1/12 us。

    2、机器周期:定义为完成一项基本操作所需要的时间,称为机器周期。
    在计算机中,为了方便管理,把一条指令的执行过程分为若干个阶段,每个阶段去执行一项基本操作。
    如:取指令,存储器读,存储器写等。
    在51单片机中1个机器周期由6个状态周期组成,也就是12个时钟周期=12 x 1/12 us =1 us
    定义机器周期是因为时钟周期时间太短,根本做不了什么。

    3、指令周期:定义为执行一条指令所需的时间。
    通常,包含一个机器周期的指令称为单周期指令,比如 MOV指令,CLR指令等。
    包含两个机器周期的指令称为双周期指令。
    另外还有四周期指令。

    小伙伴们看完了上面的周期是不是看懵了………hahahahahahaha

    不要慌,其实我们这节课要用到的就一句话—— 在51单片机中1个机器周期由6个状态周期组成,也就是12个时钟周期=12 x 1/12 us =1 us

    这里我们知道了一个机器周期的时间是1us,所以如果我们要延时1ms就是1000个机器周期;
    可能大家我们刚开始了解定时器的时候都会与疑惑,为什么要用定时器这么麻烦的东西,自己用delay()慢慢调一个合适的参数就可以了。 其实如果深入了解定时器真的比delay() 强大太多我先列举几点:
    1.就如上面所说用定时器定时1ms,这里就要注意了,这个1ms不是和delay延时1ms一样哦,这个1ms是精确的1ms哦,越往后学需要的定时就要求越高,所以定时器是一定要搞定的。

    2.相比于delay计时,delay是要直接让单片机做空循环,死等。而定时器则是利用定时器的溢出间隔,如果时间上不够,可以在溢出中断中配合软件计数器来实现。 前者浪费cpu,后者更高效。
    

    言归正传,现在来计算初值了,直接用例子说明,就比如用定时器0延时50ms

    一言不合,先上代码

    void main()
    {
    TOMD|=0x01;         //设置TMOD工作方式寄存器的M0M1为01,对照表格即为定时器/计数器的4种模式中的16位定时器/计数器模式
        TH0=(65536-46080)/256; //装初值11.0592M晶振定时50ms数为46080
        TL0=(65536-46080)%256;
        EA=1;    //中断总开关
        ET0=1;   //开启定时器/计数器的中断允许位置为1
        TR0=1;   //
        return 0;
    }
    void T0_time() interrupt 1
    {
        TH0=(65536-46080)/256;
        TL0=(65536-46080)%256;
        num++;
        if(num==20)
        {
            num=0;
        }
    }
    首先一个机器周期=12*一个时钟周期=12*(1/晶振)  一般的51晶振频率为11.0592M
    
        则一个机器周期= 1.085069444444444 us     单位是微秒
    

    所以如果要定时50ms 则要50 000/1.085069444444444~=46080个机器周期

        又因为TOMD|=0x01选择了16位的模式,就是TH0高八位 TL0低八位,所以最大到溢出就是65536
    
        故初值设为65536-46080即程序运行了大约46080个机器周期即50ms
    
        而后面的/256 %256就是划分低八位和高八位的
    

    这是我的第一篇博客,就是希望大家有所帮助(虽然有些地方都可以有问题haha),自己的对玩单片机更加的理解,利己利彼。学单片机学acm的都知道,一个点想不清楚的时候网上找到一个好的解答是多么的珍贵。所以希望大家一起加油,在单片机中找到更多的乐趣。。。。。。

    展开全文
  • 51单片机定时器初值计算

    千次阅读 2018-04-12 16:46:46
    51单片机定时器初值计算: 二、50MS定时器初值计算: 1.晶振12M 12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。 65536-50000=15536(3cb0) TH0=0x3c,TL0=0xb0 2.晶振...

    51单片机定时器初值的计算:

    二、50MS定时器初值的计算:

       1.晶振12M 
             12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次 机器周期。   
    
             65536-50000=15536(3cb0) 
    
             TH0=0x3c,TL0=0xb0
    
       2.晶振11.0592M 
    
            11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。 
    
            65536-46080=19456(4c00) 
                TH0=0x4c,TL0=0x00 
    

    https://blog.csdn.net/looksun/article/details/38471213

    http://www.21ic.com/jichuzhishi/mcu/timer/2014-06-06/541406.html

    展开全文
  • 定时器初值计算方法

    千次阅读 2012-07-31 13:12:36
    定时器初值计算方法 1:定义  用户时间:Tuser 寄存器位数:Rn (n 为 8、16、32分别代表 0xFF、0xFFFF、0xFFFFFFFF)  初始值:TCONH/L 指令周期:Fc (根据实际文档计算器指令周期,如PIC18 Fc=Fosc/4 ...

    定时器初值的计算方法

    1:定义

            用户时间:Tuser              寄存器位数:Rn  (n 为 8、16、32分别代表 0xFF、0xFFFF、0xFFFFFFFF)

            初始值:TCONH/L          指令周期:Fc (根据实际文档计算器指令周期,如PIC18  Fc=Fosc/4 )

            分频倍数:Fn                   计数值:conut

    2:推算

              由于定时器寄存器是从初始值的基础上递增后为0,产生中断

            递增次数 count = Rn - Tcon

            递增单位时间 1 / ( Fc * 1 / Fn) = Fn / Fc

            可以得出: Tuser = 递增单位时间 * 递增次数 = ( Rn - Tcon )* Fn / Fc

    3:结果

            Tcon = Rn - Tuser * Fc / Fn

     

     

    展开全文
  • 51单片机定时器初值计算详解

    千次阅读 2019-10-26 12:32:29
    学习完毕,又顺手利用刚学到定时器的相关知识写了一个“定时器初值计算”控制台程序,能够实现:51定时器三种不同工作方式下的初值计算输出,既实用,又能加深对所学知识的理解。 软件使用VS2012编写,实现效果...
  • PIC单片机 定时器初值计算

    千次阅读 2011-02-25 11:25:00
    定时器0初值计算
  • pic定时器初值计算

    2014-12-24 11:05:13
    所谓定时功能就是通过来自单片机内部的时钟脉冲作计数脉冲,使计数器计数,即每个机器周期计数器加1 ,计数值达到予置值后,定时/计数... 对8 位定时器TMR0 来说,不使用分频器时,定时时间的计算公式为:(28 -计数
  • STC89C52单片机波特率初值计算器和定时器初值计算器。
  • 51波特率初值设置;51定时器初值计算;51单片机串口调试
  • 2、8位模式和16位模式下定时器初值计算公式。 3、如果不使用类型转换,结果将会错误。 备注: //对于毫秒定时器,时间不能大于71ms,如需更大的定时,需要在定时中断函数里累加计算 //对于微妙定时器,时间不能...
  • 1 机器周期  在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间...
  • 本文主要讲了单片机定时器初值计算公式,下面一起来学习一下
  • 最近在看51单片机的定时器与中断,作为51单片机比较重点的内容,很多人也花费了很长时间在这上面,有些问题网上的资料方法各不相同,也看得云里雾里,比如定时器初值计算问题,在此我想以此篇作为学习笔记,希望...
  • 计算单片机定时器初值

    千次阅读 2018-04-09 09:39:05
    如果单片机的晶振是12MHz时,假设你要定时50ms,采用定时器0,方式1时,此时为16位定时,最大值为65536。 设X,由X*12/fsoc=50000us(50ms),算出X=50000,用65536-50000=15536,把十进制15536转换为16进制得3CB0。...
  • 2.定时器的溢出率定义:定时器记满溢出的频率;单位:HZ 例:定时器每溢出一次的时间为T,则溢出率就是1/T;每50s溢出一次,则溢出率 = 1/50 = 20HZ; 3.PCON:电源管理寄存器 不可位寻址 D7 D6 D5 ...
  • 单片机小软件,可计算定时器初值,串口通信的波特率,非常有用
1 2 3 4 5 ... 20
收藏数 3,545
精华内容 1,418
关键字:

定时器初值计算