单片机交流
直播中

张宇

7年用户 1648经验值
私信 关注
[问答]

51单片机中断以及定时器是怎么使用的?

51单片机中断以及定时器是怎么使用的?

回帖(1)

杨红

2021-10-14 14:37:01

      中断和定时器是51中最为重要的部分,下面就来详细的讲一下中断以及定时器(计数器)的使用。  首先我们先来说一下中断,很多人都会把中断和定时器混淆,这里要强调的是,中断可以采用定时器(计数器)溢出的方式进行中断,这只是中断的一种方式,我们以89C52为例,可供选取的中断源一共有五个
  




  INT0为外部中断,中断序号为0
  T0为定时器(计时器)0中断,中断序号为1
  INT1为外部中断,中断序号为2
  T1为定时器(计时器)1中断,中断序号为3
  TI /RI为串行口中断,中断序号为4
  T2为定时器(计时器)2中断,中断序号为5
  下面以外部中断0为例,介绍一下中断(一定要结合上图)
      EA=0;
      EX0=1;
      IT0=1;
  其中EA为全局中断,控制各个中断的响应
  EX0为外部中断申请
IT0为外部中断0触发方式选择位,若IT0=0,表示低电平触发;IT0=1,表示跳变沿触发
图中IE0由硬件自动置1或清0,不需人为操作
以上就是外部中断的设置




继续介绍采用定时器(计数器)中断,它的实质是一个16位加1寄存器,由高8位和低8位两个寄存器组成,它们的结构框图如下












我们还是以继续介继续介绍采用定时器(计数器)中断,它的实质是一个16位加1寄存器,由高8位和低8位两个寄存器组成,它们的结构框图如下


我们还是以定时(计数)器0为例,TH0为高8位, TL0为低8位,具体工作方式为先累计第八位(一直到0xff),低8位清0,向高8位进1,直到高8位和低8位全记满(均为0xff),此时若再检测到一个有效脉冲,计数器就将清0,形成中断。
定时器和计数器有两个寄存器(如上图),分别为TCON(控制寄存器)和TMOD(方式选择寄存器),具体含义和操作请看结构图(这里以方式1为例)

首先图右侧为TMOD,主要选择计数的方式,高4位控制定时器1,低4位控制定时器0.
GATE为门控位
C/T为模式选择位,C/T=0为定时器模式,C/T=1为计数器模式
M1M0为工作方式选择位,每个定时器(计数器)都有4种工作方式

下面就介绍中断的申请,在此之前,还要确定定时器初值计算方法
设机器周期为T,定时器产生一次中断的时间为t,需要计数的个数N=t/T,装入TH0和TL0中的数为:TH0=(65536-N)/256 TL0=(65536-10000)%256,其中要说明的是计算机器周期需要知道单片机晶振频率。
具体代码如下
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
TMOD=0x01;表示GATE为0,C/T为0,工作方式为方式1(01),具体工作流程:
GATE=0,取反变为1,经过或门威廉希尔官方网站 (无论INT0为何值),最后都输出1,再经过或门威廉希尔官方网站 ,则需要TR0为1才能使威廉希尔官方网站 导通,当定时器记满溢出则产生中断。
绍采用定时器(计数器)中断,它的实质是一个16位加1寄存器,由高8位和低8位两个寄存器组成,它们的结构框图如下


我们还是以定时(计数)器0为例,TH0为高8位, TL0为低8位,具体工作方式为先累计第八位(一直到0xff),低8位清0,向高8位进1,直到高8位和低8位全记满(均为0xff),此时若再检测到一个有效脉冲,计数器就将清0,形成中断。
定时器和计数器有两个寄存器(如上图),分别为TCON(控制寄存器)和TMOD(方式选择寄存器),具体含义和操作请看结构图(这里以方式1为例)

首先图右侧为TMOD,主要选择计数的方式,高4位控制定时器1,低4位控制定时器0.
GATE为门控位
C/T为模式选择位,C/T=0为定时器模式,C/T=1为计数器模式
M1M0为工作方式选择位,每个定时器(计数器)都有4种工作方式

下面就介绍中断的申请,在此之前,还要确定定时器初值计算方法
设机器周期为T,定时器产生一次中断的时间为t,需要计数的个数N=t/T,装入TH0和TL0中的数为:TH0=(65536-N)/256 TL0=(65536-10000)%256,其中要说明的是计算机器周期需要知道单片机晶振频率。
具体代码如下
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
TMOD=0x01;表示GATE为0,C/T为0,工作方式为方式1(01),具体工作流程:
GATE=0,取反变为1,经过或门威廉希尔官方网站 (无论INT0为何值),最后都输出1,再经过或门威廉希尔官方网站 ,则需要TR0为1才能使威廉希尔官方网站 导通,当定时器记满溢出则产生中断。
定时(计数)器0为例,TH0为高8位,     TL0为低8位,具体工作方式为先累计第八位(一直到0xff),低8位清0,向高8位进1,直到高8位和低8位全记满(均为0xff),此时若再检测到一个有效脉冲,计数器就将清0,形成中断。


定时器和计数器有两个寄存器(如上图),分别为TCON(控制寄存器)和TMOD(方式选择寄存器),具体含义和操作请看结构图(这里以方式1为例)









首先图右侧为TMOD,主要选择计数的方式,高4位控制定时器1,低4位控制定时器0.


GATE为门控位


C/T为模式选择位,C/T=0为定时器模式,C/T=1为计数器模式


M1M0为工作方式选择位,每个定时器(计数器)都有4种工作方式









下面就介绍中断的申请,在此之前,还要确定定时器初值计算方法


设机器周期为T,定时器产生一次中断的时间为t,需要计数的个数N=t/T,装入TH0和TL0中的数为:TH0=(65536-N)/256   TL0=(65536-10000)%256,其中要说明的是计算机器周期需要知道单片机晶振频率。


具体代码如下


       TMOD=0x01;


       TH0=(65536-45872)/256;


       TL0=(65536-45872)%256;


EA=1;


ET0=1;


TR0=1;


TMOD=0x01;表示GATE为0,C/T为0,工作方式为方式1(01),具体工作流程:


GATE=0,取反变为1,经过或门威廉希尔官方网站 (无论INT0为何值),最后都输出1,再经过或门威廉希尔官方网站 ,则需要TR0为1才能使威廉希尔官方网站 导通,当定时器记满溢出则产生中断。







   
举报

更多回帖

发帖
×
20
完善资料,
赚取积分