单片机小白学习之路(十二)---中断系统的理解

发布者:Yuexin888最新更新时间:2020-03-28 来源: eefocus关键字:单片机  中断系统 手机看文章 扫描二维码
随时随地手机看文章

目标:中断系统的理解

1.中断简介

13367077-52b9dfcead28d33a.png

中断

中断:cpu在正常执行程序的过程中,计算机内部或外部发生了另一件事请求cpu迅速去处理,cpu暂停停止当前程序的运行,而转去处理所发生的事件,处理完就返回原来暂停的地方,继续执行原来的任务


随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速I/O设备的数据传送问题,而且还具有如下优点:

①分时操作。CPU可以分时为多个I/O设备服务,提高了计算机的利用率;

②实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强;

③可靠性高。CPU具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。


2.中断系统结构

13367077-06dda0f273933a31.png

系统构造

①INT0(P3.2),当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。可由IT0(TCON.0)选择其为低电平有效(置0)还是下降沿有效(置1)。

②INT1(P3.3),当CPU检测到P3.3引脚上出现有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。可由IT1(TCON.2)选择其为低电平有效(置0)还是下降沿有效(置1)。

③T0(P3.4),它的中断请求标志是TF0--(TCON.5 ),T0发生溢出时,置位TF0为1,并向CPU申请中断。

④T1(P3.5),它的中断请求标志位是TF1--(TCON.7),T1发生溢出时,置位TF1为1,并向CPU申请中断。

⑤RI(SCON.0)或TI(SCON.1),串行口中断请求标志。

当串行口接收完送完一帧串行数据置位RI,向CPU申请中断。

当串行口发送完一帧串行数据时置位TI,向CPU申请中断。


3.中断寄存器

(一)定时器控制寄存器TCON

13367077-2aed6ec63bdc2479.png

定时器控制寄存器TCON

IT0:外部中断0触发方式控制位。当IT0=0时,为电平触发方式。当IT0=1时,为边沿触发方式(下降沿有效)。

IE0:外部中断0中断请求标志位。

IT1:外部中断1触发方式控制位。

IE1:外部中断1中断请求标志位。

TF0:定时/计数器T0溢出中断请求标志位。

TF1:定时/计数器T1溢出中断请求标志位。

TR0: T0运行控制位。TR0置1时,T0开始工作;TR0置0时,T0停止

工作。

TR1:T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止

工作。


(2)中断允许寄存器IE

13367077-91b8750adb3a141f.png

IE

EX0:外部中断0允许位;

ET0:定时/计数器T0中断允许位;

EX1:外部中断0允许位;

ET1:定时/计数器T1中断允许位;

ES: 串行口中断允许位;

EA :CPU中断允许(总允许)位。(总开关)

IE相当于一个开关的角色


(3)中断优先级寄存器IP

13367077-190bd50bdef0ac67.png

IP

PT2:定时器/计数器2中断优先级控制位(仅8052);1:高优先级,

0:低优先级

PS:串行口优先级控制位;1:高优先级,0:低优先级

PT0/PT1:定时器/计数器0/1中断优先级控制位;1:高优先级,0:

低优先级

PX0/PX1:外部中断管0/1中断优先级控制位;1:高优先级,0:低优

先级


4.中断优先级

我们会遇到多个中断同时请求的情况,这时候就需要看自然优先级了

13367077-a2bb07d430acc66e.png

自然优先级


中断执行原则:

①CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。

②正在进行的中断过程不能被新的同级或低优先级的中断请求所中

断。

③正在进行的低优先级中断服务,能被高优先级中断请求所中断。


5.中断的使用

(1)中断响应条件

①中断源要有中断请求

②中断源的中断允许位为1

③打开总中断(即EA=1)


例如:外部中断0(INT0)产生中断

#include "reg52.h"

void main()

{

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

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

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

    while(1)

    {

    }

}

//中断服务函数

void int0() interrupt 0 //0是中断号,具体看是什么中段

{

    ...do anything that you want

 13367077-7212e58a4fa61a95.png

中断号

关键字:单片机  中断系统 引用地址:单片机小白学习之路(十二)---中断系统的理解

上一篇:单片机小白学习之路(十三)---外部中断0实现led闪烁
下一篇:单片机小白学习之路(十二)---直流电机的控制

推荐阅读最新更新时间:2024-11-12 17:56

单片机应用系统的问与答
为什么必须考虑单片机的选型问题? 答:单片机的的选型是一件重要而费心的事情,如果单片机型号选择得合适,单片机应用系统就会得经济,工作可靠;如果选择得不合适,就会造成经济浪费,影响单片机应用系统的正常运行,甚至根本就达不到预先设计的功能。 单片机选型不当时会带来什么危害? 答:对于一个已经设计好的单片机应用系统来说,它的技术要求和系统功能都应当十分明确.如果选择功能过于少的单片机,这个单片机应用系统就无法完成控制任务;但是如果选择的单片机功能过于强大,这不但没有必要,还会造成资源浪费,不降性能价格比。 单片机正确选型会带来什么益处? 答:只要掌握和运用单片机正确选型的原则,就可以选择出最能适用于应用系统的单片
[单片机]
MSP430F149单片机实现温控仪
  引言   温度控制对于工业和日常生活等领域都具有广阔的应用前景,很多应用领域,需要精度较高的恒温控制,由于其控制具有非线性、时滞性和不确定性,用传统的控制达不到好的控制效果。模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,其鲁棒性强,干扰和参数变化对控制效果的影响被大大减弱,所以特别适合于0~100℃温度的精确控制。   MSP430系列单片机是一个16位的、具有精简指令集的、超低功耗的混合型单片机。MSP430F149单片机采用了精简指令(RISC),具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令,大量的寄存器以及
[单片机]
MSP430F149<font color='red'>单片机</font>实现温控仪
单片机中高阻态的实质及意义
  在我们刚一开始接触到51单片机的时候对P0口必须加上上拉电阻,否则P0就是高阻态。   对这个问题可能感到疑惑,为什么是高阻态?加上拉电阻?今天针对这一概念进行简单讲解。   高阻态   高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平。   如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。   高阻态的实质   电路分析时高阻态可做开路理解,你可以把它看作输出(输入)电阻非常大。   它的极限可以认为悬空,也就是说理论上高阻态不是悬空,它是对地或对电源电阻极大的状态。而实际应用上与
[单片机]
<font color='red'>单片机</font>中高阻态的实质及意义
PIC16C71/PIC16C84单片机应用中问题和对策
一:PIC16C71单片机的问题和对策 问题1:在芯片进入低功耗睡眠模式 (SLEEP MODE)后,其振荡脚将处于浮态,这将使芯片的睡眠功耗上升,比原手册中的指标高了10μA以上。 对策:在振荡脚OSC1和地 (GND)之间加一10MΩ电阻可防止OSC1进入浮态,且不会影响单片机正常振荡。 问题2:RA口方向寄存器TRISA目前只是一个4位寄存器,对应于RA0~RA3,并非手册中所言是8位寄存器,对应于RA0~RA4,即RA4并没有相应的输入/输出方向控制位,它是一个具有开极输出,施密特输入I/O脚。 对策:避免使用对RA口进行读-修改-写指令(如BCF RA, BSF RA),以免非意愿地改变RA4的输入/输出
[单片机]
基于MCU的温控器产品创新设计研究
随着全球经济一体化,各国产品竞争越来越激烈,谁掌握了市场主动权,谁就能够立于不败之地,这就要求相关企业对市场需求快速响应进行产品创新。   产品创新基于潜在的市场需求,表现在设计阶段对已有产品所涉及的功能、原理、总体布局、具体结构等方面的创新,只有很少的设计是全新设计。因此可以说,产品设计的核心是创新,设计的过程就是一个创新的过程。而产品设计的目的是使用,只有更方便于人们使用的产品才能产生利润,并在一定领域造福于人类。   基于人们对小家电越来越广泛的需求以及国内外激烈的市场竞争 ,本文对小家电中的重要零部件温控器进行了创新设计,并成功地用于电热水壶中,满足了市场对电热水壶多样化的需求。 1 电热水壶及温控器市场现状   在全球电
[单片机]
基于<font color='red'>MCU</font>的温控器产品创新设计研究
[单片机框架] [queue] 实现一个简易的消息队列
使用方法如下: #define USB_RECV_Q_ITEM_CNT 8 #define USB_RECV_Q_ITEM_SIZE (64 + 1) // 用于usb消息队列总缓存区 static uint8_t m_usb_recv_q_buff = {0}; queue_t m_usb_recv_q = { .pbuff = m_usb_recv_q_buff, .front = 0, .rear = 0, .item_cnt = USB_RECV_Q_ITEM_CNT, .item_size = USB_RECV_Q_ITEM_SI
[单片机]
单片机虚拟仪表概述
简介 计算机技术的发展,尤其是80年代初微机出现以来,以及近些年来的PC机和工作站的性能不断提高,价格不断降低,给各个行业带来了新的机遇和活力。在仪器仪表测试领域也一样,近几年来,国际上出现的虚拟仪表就是一个典型的例子。虚拟仪表技术把计算机技术和仪表仪器技术完美地结合起来,为现代仪器技术掀开了崭新的一页。 在实验室、工厂及野外作业,为完成某项测试和维修任务,通常需要许多仪器。如:信号源,示波器,频率计,电压表,频谱分析仪,通常复杂的电路系统还需要逻辑分析仪,IC测试仪等。这么多的仪器不但价格昂贵、体积大、占用空间,而且互联也十分麻烦。虚拟仪表的产生,彻底改变了这样的状况,只需要PC机或者工作站、仪器插件、计算机应用程序就可以完
[单片机]
51单片机串行通信
单片机1P1口的状态,通过串行通信方式传递到单片机2P2口输出 /******************************************* 发送信息 ***************************************/ #include reg51.h #define uchar unsigned char #define uint unsigned int void send(uchar state) { SBUF=state; while(TI==0); TI=0; } void SCON_init() { SCON=0X40;//选择串口通信方式1 TMOD=0
[单片机]
51<font color='red'>单片机</font>串行通信
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved