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 位的定时器的功能