事务连接中断_51单片机中断基础讲解

2bc9c38544908c7fcba301384f97c66a.gif

01

什么是中断

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg 46a156ad2d45bed52c1989d0036baf9b.png

中断的定义

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

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

  一般我们将中断分为外部中断和定时器中断

02

什么是寄存器

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg

  寄存器是单片机的核心部分,操作单片机其实就是在操作单片机内部的寄存器,对单片机可以说理解了寄存器的原理,就对整个单片机的工作原理有了一定的理解。

  单片机寄存器其实就相当于一个变量,只不过这个变量在固定的地址,有一个特殊的名称(当然也不强制),有特殊功能。
  单片机中存储器的资源是非常宝贵和有限的,所以要尽可能充分的使用这些存储资源,有多充分呢?就是把每一bit都用上。

03

51单片机的中断系统结构

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg 0e432f7a7a025aa712e9cd8047ea035b.png

中断的触发方式和申请中断的方式

1、可设置IT0(TCON.0)低电平有效或下降沿有效,当CPU检测到信号时,将IE0(TCON.1)置1

同时申请中断。

2、同理,设置IT1(TCON.2),可将IE1(TCON.3)置1,同时申请中断。

以上两种为外部中断的触发方式和申请方式

3、TF0(TCON.5)为定时器中断的中断请求标志,(关于定时器的讲解见下文)定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。
4、同理 TF1(TCON.6)为定时/计数器T1的中断请求标志,定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。

3、4条为定时器中断的触发方式和申请方式

5、RI(SCON.0)或TI(SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位RI或当串行口发送完一帧串行数据时置位TI,向CPU申请中断。

04

中断的控制

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg 32a444e304e8693c449de5f92f6dcd91.png

  CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。

EX0(IE.0),外部中断0允许位;
ET0(IE.1),定时/计数器T0中断允许位;
EX1(IE.2),外部中断0允许位;
ET1(IE.3),定时/计数器T1中断允许位;
ES(IE.4),串行口中断允许位;
EA (IE.7), CPU中断允许(总允许)位。

05

中断的请求

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg 5384b24b268d5e4054954867c1cbfba9.png

IT0,外部中断0触发方式控制位。
    当IT0=0时,为电平触发方式。
    当IT0=1时,为边沿触发方式(下降沿有效)。
IE0,外部中断0中断请求标志位。
IT1,外部中断1触发方式控制位。
IE1,外部中断1中断请求标志位。
TF0,定时/计数器T0溢出中断请求标志位。
TF1,定时/计数器T1溢出中断请求标志位。 

06

中断的优先级

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg 8925c13ee97d9742398f270b0cc08f3c.png

同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其顺序如图所示:

外部中断0>定时器中断0>外部中断1>定时器中断1>串行口中断

07

如何设置中断源

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg 1a66902708e339294ddd235292a0d32c.png

设置中断源的方法如图所示

以上就是关于中断的基础知识的讲解

下面我们将分别举例

让大家明确

外部中断和定时器中断的

区别和用法

08

外部中断的使用步骤

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg

1、设置中断触发方式,即IT0=1或0,IT1=1或0

2、开对应的外部中断,即EX0=1或EX1=1;

3、开总中断,即EA=1;

4、等待外部设备产生中断请求,即通过P3.2,P.3.3口连接外部设备产生中断

5、中断响应,执行中断服务函数

举例:

EA=1;//打开总中断开关

EX0=1;//开外部中断0

IT0=0/1;//设置外部中断的触发方式

中断服务函数:

void int0 () interrupt 0

{

  do anything that you want

}

09

定时器中断

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg

定时器中断顾名思义,就是用定时器计数的方式来设置中断,即设置时间,当计数到达预设值时,开启中断。首先要明确什么是定时器。

10

定时器/计数器

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg f2bdf07ba474377eec6039ba2a039eea.png

  51单片机有两组定时器/计数器,因为既可以定时,又可以计数,故称之为定时器/计数器。

 定时/计数器实质上是一个加1计数器。它随着计数器的输入脉冲进行自加1,也就是每来一个脉冲,计数器就自动加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使相应的中断标志位置1,向CPU发出中断请求。

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

11

定时/计数器的控制

df1cc3f8-6b53-eb11-8da9-e4434bdf6706.svg TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。

TMOD工作方式,低四位用于T0,高四位用于T1。其格式如下:

481f8d3fe5fb8459a6e581840e93a3cc.png

1、GATE是门控位, GATE=0时,用于控制定时器的启动是否受外部中断源信号的影响。只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚INT0/1也为高电平时,才能启动定时/计数器工作。即此时定时器的启动条件,加上了INT0/1引脚为高电平这一条件。

2、C/T :定时/计数模式选择位。C/T =0为定时模式;C/T =1为计数模式。

3、M1M0:工作方式设置位。定时/计数器有四种工作方式。

设置为00时,13位定时/计数器;

设置为01时,16位定时/计数器;

设置为10时,8位自动重装定时/计数器;

设置为11时,T0分成两个独立的8位定时/计数器;T1此方式停止计数。

TCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:

7aa942d01080d8e3e7fbbf18d13951d7.png

 1、 TF1:T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。

2、TR1:T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。

3、TF0:T0溢出中断请求标志位,其功能与TF1类同。

4、TR0:T0运行控制位,其功能与TR1类同

定时器中断初始化总结

初始化程序应完成如下工作:1、设置定时器的工作模式    
TMOD = 0x01;
2、为定时器装入初值
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
3、定时器中断允许位 置1
ET0=1;
4、使能总中断             EA=1;
5、开启定时器0/1      TR0 = 1;

TH0,TL0计算方法   比如当晶振频率为11.0592M的晶振。则每秒可产生机器周期为11.0592/12=0.9216M的机器周期,也就是921600个机器周期。50ms等于0.05秒,所以需要921600*0.05=46080个机器周期;定时器在方式1工作,为16位,最大值为65536,所以需设初值为65536-46080=19456;转为16进制为(4c00),所以高位TH0=0x4c; TL0=0x00;

49244b381892bbb0d9ed32c5b7bc4a60.png

举例

dce7204a4ba175b66ca19dca112b74a0.png

图文编辑:殷思琦  殷舒萌  尹星宇

责任编辑:张焱焱  赵君浩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值