个人技术分享

1.概念可以百度,这里只讲用法

        CPU对外设IO口和定时器的所有控制都要通过IO口

比如单片机 reg52.h

这里的 sfr 的意思是:Specail Function Register (特殊功能寄存器)

·TL0 表示低八位 ,TH0 表示高八位  两个相加是 16 位

·TCON  里面的 TF0 计算是否爆表  ,TR0给一个初始值就可以计算是否爆表

·在TL0 那里开始加 从 0000 000B开始数,

·在哪里加1,最大计数时间,也就是爆表了能计算多长

        在TL和TH寄存器中加1,默认是从0开始数数,最多能数65536下 ,也就是累计65536 x 1.085 =     71ms

·比如:定时器如何定时 10 毫秒

        10 ms = 10 000 us

        10 000 / 1.085 ≈ 9216 下

        寄存器比较笨,我们设置让它从 X ·······65536 (2^16)开始数

        65536 - 9216 = 56320

        X = 56320 开始数 ···56321,56322,... ,到65536  恰好经过 10 ms

        56320是多久呢 ?

        56320 = DC00    TL0 = 0x00 , TH0 = 0xDC (十六进制)

        怎么知道数到 65536 (爆表)呢,TF0 会告诉它 ,我们要读取 TF0的值

·总结:如何算出10ms定时器的初值

                就不让他从0开始数数,10ms需要数9216下,你让他从65536-9126=56320(16进制表示为0xDC00)开始数数

        这样TL0=0x00;TH0=0xDC
 

·怎么知道爆表

        TCON寄存器中bit5能显示爆表:当爆表的时候,硬件会修改bit5位上面的数据 ,改成1 (置1)如果不用中断,就用代码清零

·怎么开始计时

        TCON寄存器的bit4,通过编程让这个位为1的时候,开始计时,相当按下闹钟

·定时器使用是有很多种模式的

        定时器模式寄存器:TMOD来选择定时器模式,选择工作方式1,TMOD的bit0 bit1 配置成 0 1 :16 位的定时器的功能