嵌入式学习笔记10——51单片机之中断定时器中断
2016-05-16 来源:eefocus
(1)振荡周期:为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡周期)。
(2)状态周期:2个振荡周期为1个状态周期,用S表示。振荡周期又称S周期或时钟周期。
(3)机器周期:1个机器周期含6个状态周期,12个振荡周期(使用计时器时,每隔一个机器周期计时器加1)。
(4)指令周期:完成1条指令所占用的全部时间,它以机器周期为单位。
2. 学习定时器前须明白:
(1)51单片机有2组定时器/计数器(52单片机有三组),可定时或计数。
(2)定时器/计数器和单片机的CPU是相互独立的,定时器/计数器工作的过程是自动完成的,不需要CPU的参与。
(3)51单片机中的定时器/计数器是根据机器内部的时钟或者外部的脉冲信号对寄存器(即TH0、TL0和TH1、TL1)中的数据加1。
3. TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标识。
GATE:门控位,用于控制定时器的启动是否受外部中断源信号的影响。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作。 GATE=1时,用软件置TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时,才能启动定时/计数器工作。
C/T:C/T=0为定时模式;C/T=1为计数模式。
M1M0:工作方式设置位,共四种工作方式。
00——13位定时/计数器
01——16位定时/计数器
10——8位自动重装定时/计数器
11—— T0分成两个独立的8位定时/计数器;T1此方式停止计数。
TF0、TF1:T0、T1溢出时,由硬件自动将TF0、TF1置1,CPU响应中断后TF0、TF1由硬件自动清0;也可用软件将TF0、TF1置1或清0,效果同硬件一样。
4. 使用定时器,该做哪些工作?
(1)对TMOD赋值,以确定T0和T1的工作方式,TMOD各位如上面的图片所示;
(2)计算初值,并将其写入TH0、TL0或TH1、TL1;
(3)开EA,开放定时器中断(IE寄存器如下图)。
(4)使TR0或TR1置位,启动定时/计数器定时或计数(在 TCON寄存器中)。
(5)写中断服务程序,注意对应的中断号。