文本描述
第6章 MCS - 51单片机内部定时器/
计数器 及串行接口
6.1 定时器/计数器的结构及工作原理
6.2 方式和控制寄存器
6.3 工作方式
6.4 定时器/计数器应用举例
6.5 MCS - 51单片机的串行接口
6.6 串行口的应用
6.1 定时器/计数器的结构及工作原理
图 6.1 定时器/计数器结构框图
加法计数器是计满溢出时才申请中断, 所以在给计数器赋初值时, 不能直接输入所需的计数值, 而应输入的是计数器计数的最大值与这一计数值的差值, 设最大值为 M, 计数值为 N, 初值为 X, 则 X的计算方法如下:
计数状态: X=M-N
定时状态: X=M-定时时间/T
而 T=12÷晶振频率
6.2 方式和控制寄存器
一、 定时器/计数器的方式寄存器TMOD
图 6.2 TMOD各位定义
1. M1M0工作方式控制位
表 6.1 工作方式选择表
2. C/T 定时器方式或计数器方式选择位
若C/T=1时, 为计数器方式; C/T = 0时, 为定时器方式。 3. GATE 定时器/计数器运行门控标志位
当GATE=1时, 只有INT0 (或INT1)引脚为高电平且TR0(或TR1 )置 1 时, 相应的定时器 /计数器才被选通工作, 这时可用于测量在INTx端出现的正脉冲的宽度。若GATE=0, 则只要 TR0 (或 TR1)置 1, 定时器 /计数器就被选通, 而不管 INT0 (或 INT1)的电平是高还是低。
二、 定时器/计数器控制寄存器TCON
TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放来决定。
TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器 /计数器才开始工作, 在系统复位时被清 0。
6.3 工作方式
一、 方式 0 图6.3 方式 0(13位计数器)
二、 方式1
图 6.4 方式 1(16位计数器)
三、方式 2
图 6.5 方式 2(初始常数自动重装载)
四、 方式 3
图 6.6 方式 3(两个 8 位独立计数器)
6.4 定时器/计数器应用举例
一、 方式 0 的应用
例 1 利用定时器输出周期为 2 ms的方波, 设单片机晶振频率为 6 MHz。
选用定时器 /计数器T0 作定时器, 输出为P1.0 引脚, 2 ms 的方波可由间隔 1 ms的高低电平相间而成, 因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波。
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
N= 1 ms÷2 μs = 500