好玩的51单片机——中断与定时器的运用

来源:互联网 发布:6s电信4g卡显示3g网络 编辑:程序博客网 时间:2024/06/15 07:15

一:中断的概念 

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。

二:中断系统的结构



       
  引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。

三:中断源

51单片机共5个中断源:

INT0:外部中断0,由P3.2端口引入,低电平或下降沿引起。
INT1:外部中断1,由P3.3端口引入,低电平或下降沿引起。

T0    :定时器0(计数器0)中断,由T0计数器计满引起。
T1    :定时器1(计数器1)中断,由T1计数器计满引起

四:定时/计数器的结构

定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

五:定时/计数器的工作原理

加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。
    可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。

设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期)。
振荡周期(时钟周期)=1/晶振振荡频率
机器周期=12X振荡周期


对于12M晶振:
振荡周期=1/12000000
机器周期=12 ×振荡周期=1us
对于11.0592M晶振:
振荡周期=1/11059200
机器周期=12 ×振荡周期=1.09us

计数值N=定时时间t/机器周期T
定时器模式时有:N=t/ T 
N:需要计数次数
t:需要定时的时间
T:机器周期

若要  定时50ms,晶振为12 MHz
那么机器周期:T=12 X(1/12000000)=0.000001s=1us
计数个数:N=t/ T =50000/1=50000

若要  定时50ms,晶振为11.0592MHz
那么机器周期T=12× (1/11059200) ≈1.09us
计数个数:N=t/ T=50000/1.09=45872
4 0