您的位置:首页 > 其它

嵌入式学习笔记(10)——51单片机之中断(定时器中断)

2013-05-19 22:30 555 查看
1. CPU时序的有关知识

(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位定时/计数器【TL0或TL1的低5位(高3位未用)和TH0或TH1的8位组成,TL0或TL1的低5位溢出时向TH0或TH1进位,TH0或TH1溢出时,置位TCON中的TF0或TF1标志,向CPU发出中断请求,CPU响应中断后,TF0或TF1自动清0。初始值=2^13 - 定的时间或计的数】

01——16位定时/计数器【初始值=2^16 - 定的时间或计的数】

10——8位自动重装定时/计数器【TH0、TH1保存初始值,TL0、TL1从初始值开始加1,溢出后TH0、TH1中的初始值又重新装入TL0、TL1。初始值=2^8 - 定的时间或计的数,特别适用于较精确的脉冲信号发生器。】

11—— T0分成两个独立的8位定时/计数器;T1此方式停止计数。【TL0溢出时TF0置1,TH0溢出时TF1置1。】



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【如晶振12MHz,定时50ms,TH0=(65536-50000)/256,TL0=(65536-50000)%256 】;

(3)开EA,开放定时器中断(IE寄存器如下图)。

(4)使TR0或TR1置位,启动定时/计数器定时或计数(在 TCON寄存器中)。

(5)写中断服务程序,注意对应的中断号。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: