精华内容
下载资源
问答
  • 51单片机中断基本概念

    多人点赞 2020-07-31 10:11:47
    2.你所希望触发条件是什么? 3.你希望在中断之后做什么? 可以边看边思考,文章最后给出答案 中断概念 为什么引入中断中断是为使单片机具有对外部或内部随机发生事件实时处理而设置中断功能存在,...
    问题引入

    在了解基本概念之前,先看三个问题:
    1.你想使用的中断是哪个?
    2.你所希望的触发条件是什么?
    3.你希望在中断之后做什么?
    可以边看边思考,文章最后给出答案

    中断概念
    • 为什么引入中断?

    • 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。
      中断系统特点:
      ①分时操作。CPU 可以分时为多个 I/O 设备服务,提高了计算机的利用率;
      ②实时响应。CPU 能够及时处理应用系统的随机事件,系统的实时性大大增强;
      ③可靠性高。CPU 具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高

    • 中断过程
      对于单片机来讲,中断是指CPU在处理某一时间A时,发生了另一事件B请求CPU立刻去处理(中断发生或中断请求);CPU暂时停止当前的工作(中断响应),转而去处理事件B(中断服务),待CPU处理事件B完成后,再回到原来事件A被中断的地方继续处理事件A(中断返回)。这一过程称为中断,注意是整个过程,而不是单一的停止一件事的意思。

    • 举例:你打开火,烧上一壶水。然后去洗衣服,在洗衣服的过程中,突然听到水壶发出水开的报警声,这时,你停止洗衣服动作,立即去关掉火,然后将开水灌入暖水瓶中,灌完开水后,你又回去继续洗衣服。这个过程中实际上就发生了一次中断。
      对照图:
      在这里插入图片描述

    • 程序流程图
      在这里插入图片描述

    单片机在执行程序时,中断也随时有可能发生,但无论何时发生,只要一旦发生,单片机将立即暂停当前程序,赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。

    • 中断系统:实现中断过程
    • 中断源:请示CPU中断的请求源。微型机的中断系统一般允许多个中断源,当几个中断源同时向 CPU 请求中断,要求为它服务的时候,这就存在CPU 优先响应哪一个中断源请求的问题。通常根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求源,即规定每一个中断源有一个优先级别。CPU 总是先响应优先级别最高的中断请求。
    • 中断嵌套:当单片机正在执行中断请求时,又出现了一个比正在执行的优先级更高的中断请求,则先停止正在执行的中断请求,执行优先级高的中断请求,等执行完后再执行原来优先级较低的中断请求。
      拥有中断嵌套的中断系统称为多级中断系统,没有嵌套功能的为单级中断系统。
    中断结构
    • 大多数单片机共提供8个中断请求源,但是一定有最基本的5个中断。
    • 中断:
      外部中断0(INTO)、外部中断 1(INT1)、外部中断 2(INT2)、外部中断 3(INT3)、定时器 0中断、定时器 1 中断、定时器 2 中断、串口(UART)中断。
    • 基本中断:
      INT0、INT1、定时器 0,定时器1,串口中断。
    • 中断请求标志位TCON
      在这里插入图片描述

    IT0(TCON.0),外部中断 0 触发方式控制位。
    当 IT0=0 时,为电平触发方式。
    当 IT0=1 时,为边沿触发方式(下降沿有效)。
    IE0(TCON.1),外部中断 0 中断请求标志位。
    IT1(TCON.2),外部中断 1 触发方式控制位。
    IE1(TCON.3),外部中断 1 中断请求标志位。
    TF0(TCON.5),定时/计数器 T0 溢出中断请求标志位。
    TF1(TCON.7),定时/计数器 T1 溢出中断请求标志位。
    注:外部中断0和1(IT0和IT1)为0或1时是两种触发方式,低电平触发和边沿触发,是控制位不是标志位。

    • 中断允许控制
      CPU 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE 控制的。
      各中断的中断允许位:
      在这里插入图片描述
      EX0(IE.0),外部中断 0 允许位;
      ET0(IE.1),定时/计数器 T0 中断允许位;
      EX1(IE.2),外部中断 1允许位;
      ET1(IE.3),定时/计数器 T1 中断允许位;
      ES(IE.4),串行口中断允许位;
      EA (IE.7), CPU 中断允许(总允许)位。
      注意:总中断允许位就是是总开关一样,只有总允许位有效的前提下,其它中断置允许位才能使中断有效。
    • 中断优先级
      同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示:
      在这里插入图片描述

    中断优先级三条原则:

    1. 首先响应高优先级的中断请求。
      2.高优先级的中断请求可以打断低优先级的中断。
      3.低优先级的中断请求不可以打断高优
      先级及同优先级的中断。
    • 中断号
      中断号在编程时非常重要,当中断来临时,只有中断号正确才能进入中断。
      在这里插入图片描述

    • 中断响应条件
      ①中断源有中断请求;
      ②此中断源的中断允许位为 1;
      ③CPU 开中断(总允许位)(即 EA=1)。
      以上三条同时满足时,CPU 才有可能响应中断
      如图,为中断内部结构框图:
      在这里插入图片描述
      TCON为中断请求标志,其中外部中断0和外部中断1可选择控制方式低电平有效还是下降沿有效。
      ,IE为中断允许位,可以看到,只有EA等于1时,其他中断允许才可能有效。
      从图中可以看出,一个中断过程:中断位(确定哪一个中断)->中断标志位->中断允许位->中断总允许位->中断执行功能。

    • 问题引入及解答(中断应用举例)
      回到上面的三个问题
      1.你想使用的中断是哪个?
      每一个中断都对应一个中断号,要想使用某一中断就选择对应的中断号。
      2.你所希望的触发条件是什么?
      外部中断的触发调件触发条件可分为低电平触发和下降沿触发,要明确触发条件。
      3.你希望在中断之后做什么?
      即中断服务函数,函数里要做什么,执行什么样的功能。
      以外部中断0为例:

    EA=1;//打开总中断开关
    EX0=1;//开外部中断 0
    IT0=0/1;//设置外部中断的触发方式
    
    /*中断服务函数*/
    void int0() interrupt 0 using 1//intterrupt表示中断,0表示中断号,using1可省略
    {
    //编写用户所需的功能代码
    }
    
    
    展开全文
  • 中断基本概念

    千次阅读 2006-03-24 15:29:00
    什么是中断?先打个比方。当一个经理正处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(返 回地址),暂停工作,去接电话(中断),并指示“按第二方案办”(调中断服务程序),然后,再静下心来...
    什么是中断?先打个比方。当一个经理正处理文件时,电话铃响了(中断请求),不得不在文件上做一个记号(返 回地址),暂停工作,去接电话(中断),并指示“按第二方案办”(调中断服务程序),然后,再静下心来(恢复中 断前状态),接着处理文件……。计算机科学家观察了类似实例,“外师物化,内得心源”,借用了这些思想、处理方 式和名称,研制了一系列中断服务程序及其调度系统。 
    中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理, 处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。 根据 中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。
    外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器中断等。外部中断是可以屏 蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。
    内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起 的中断。内部中断是不可屏蔽的中断。
    软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序。例如:ROMBIOS 中的各种外部设备管理中断 服务程序(键盘管理中断、显示器管理中断、打印机管理中断等),以及DOS的系统功能调用(INT 21H)等都是软件中 断。
    CPU为了处理并发的中断请求,规定了中断的优先权/中断优先权由高到低的顺序是:
    (1)除法错、溢出中断、软件中断
    (2)不可屏蔽中断
    (3)可屏蔽中断
    (4)单步中断。
    展开全文
  • 用通俗易懂语言来阐述一些基本概念,不涉及代码,小白也能看得懂。 中断是什么 意思就是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行程序并转入处理新情况程序,处理完毕后又...

    用通俗易懂的语言来阐述一些基本概念,不涉及代码,小白也能看得懂。

    中断是什么

    意思就是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

    中断是一种计算机术语。通俗点说就是停下当前的执行程序转而执行新的程序。 执行完后再返回执行之前的程序。

    为什么要有中断

    因为外围设备和CPU处理速度不对等。就好比电脑的处理速度和你键盘打字的输入速度,电脑处理速度非常快,如果一直等待你输入,那样非常浪费资源。

    更通俗的说,老板说明天给你打电话,然后你明天一直抱着手机等待电话,什么事都不做。这显然不符合我们的处理方式。我可以选择打开手机铃声,老板电话过来了铃声提醒我们接电话。

    所以能让设备在需要内核时主动通知内核,是一个聪明的方式,这便是中断。 当你需要使用调用资源时,给他一个信号,CPU便会处理你的信号。

    中断和轮询的差异

    中断是被动的接收信号,轮询是主动的询问有无信号
    通俗的说:中断就是别人打电话给你,你听到铃声,然后放下手中的事去接电话。
    轮询就是每隔一段时间,你主动看一下手机有没有短信。

    综上所述 轮询:主动 实时 可控
    中断:被动 随机 不可控

    中断和轮询的使用场合

    因为轮询是主动、实时、可控的,所以我们可以用轮询来处理一些比较确定的信号量。
    对于随机 不可控的信号量,若是采用轮询,将会错过重要信息,或者浪费大量时间,这时候我们就该用中断。

    比如:老板说,明天九点准时通知你。因为时间都确定了,我们只需明天九点查看一下信息就行, 又或者,UP主每天晚上8点更新,我们也只需要每天8点之后去看一下就行,这时候采用轮询。
    但是如果他们没说时间,你又不想错过。你要么选择一直等待,要么过一会就看一眼,(这是轮询),这样就浪费了大量的时间。所以对于随机不可控的信号,我们选择中断。

    什么是中断上下文

    顾名思义:上文就是准备环境,诸如保存现场之类的, 具体如何做到的暂时不用深究,有兴趣自行度娘。
    中断下文就是:执行在内核空间的中断服务程序。

    说到下文要引入一个概念:中断要即时响应,但是可以不立刻执行。
    例如:女朋友打电话来约你逛街,你要马上接,但是可以晚点再为逛街做准备。

    综上所述: 中断上文负责响应,中断下文负责处理。

    展开全文
  • 【异常的基本概念】_异常的基本概念笔记 了解异常的基本概念 掌握异常的基本处理格式 掌握异常类的继承结构 掌握java的异常处理机制 异常: 异常导致程序中断运行的一种指令流.如果不对异常进行正确的...
    【异常的基本概念】_异常的基本概念笔记

    了解异常的基本概念
    掌握异常的基本处理格式
    掌握异常类的继承结构
    掌握java的异常处理机制


    异常:
    异常是导致程序中断运行的一种指令流.如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失。

    3.1为什么需要异常处理?

    public class ExceptionDemo01{
        public static void main(String args[]){
            System.out.println("*****计算开始******");
            int i = 10;
            int j = 0;
            int temp = i/j;        //此处产生了异常
            System.out.println("两个数字相除的结果:"+temp);
            System.out.println("*****计算结束****");
        }
    }


    一旦产生异常之后,异常之后语句并不会执行,而是直接结束程序,并将错误报告给用户。
    在计算机的发展史上有两大杀手:
        1.断电
        2.被除数为0
    3.2处理异常

    如果要想处理异常,则必须掌握异常的处理格式。

    try{

    }catch(){

    }finally{

    }
    对之前的异常进行捕捉
    public class ExceptionDemo02{
        public static void main(String args[]){
            System.out.println("*******计算开始********");
            int i = 10;
            int j = 0;
            try{
                int temp = i/j;    //此处产生异常
                System.out.println("两个数相除的结果:"+temp);
                System.out.println("------------------")
            }catch(ArithmeticException e){
                e.printlnStackTrace();
            }finally{
                System.out.println("不管是否出现异常,都执行此代码");
            }
            System.out.println("*****计算结束*******");
        }
    }



    此时的数据实际上是交给用户输入的,那么既然是用户输入,就有可能输入不正确,实际上以上代码存在三个问题:
    1.如果没有输入参数或者输入参数不够,则会出现问题:
    java.lang.ArrayIndexOfBoundsException

    2.如果现在输入参数不是数字而字母。
    java.lang.NumberFormatException:For input string:"a"

    3.算数异常,如果被除数为零。

    所以上程序实际产生了三个异常:
    数组超出绑定:ArrayIndexOutOfBoundsException
    数字格式化异常:NumberFormatException
    算术异常:ArithmeticException

    如果要想保证程序的执行正确,则必须同时对三个异常进行处理,所以此时就需要三个catch语句

    public class ExceptionDemo05{
        public static void main(String[] args){
            System.out.println("*****计算开始******");
            int i = 0;
            int j = 0;
            try{
                String str1 = args[0];
                String str2 = args[1];
                i = Integer.parseInt(str1);
                j = Integer.parseInt(str2);
                int temp = i/j;    //此处产生异常
                System.out.println("两个数字相除的结果:"+temp);
                System.out.println("-----------------------");
            }catch(ArithmeticException e){
                e.printStackTrace();
            }catch(NumberFormatException e){
                e.printStackTrace();
            }catch(ArrayIndexOutOfBoundsException e){
                e.printStackTrace();
            }
            System.out.println("*****计算结束******");
        }
    }


    以上一个小小程序都要处理三个异常,当然,此程序还有可能有其他异常,那么这样一来,异常的处理就很麻烦。

    3.3异常的继承结构

    在整个java的异常结构中,实际上有以下两个最常用的类,Exception、Error,这两个类都是Throwable的子类
    1.Exception:一般表示的是程序中出现的问题,可以直接使用try....catch处理
    2.Error:一般指的是JVM错误,程序中无法处理。

    一般情况下开发者都比较习惯于将Error和Exception统一称为异常,而之前处理的若干异常,都是Exception的子类。
    注意:
        一般在输出异常信息的时候,可以直接使用System.out.println()打印异常对象
        也可以通过Exception提供的一个方法:public void printStackTrace()

    3.4异常的处理机制:

    try{

    }catch(ArithmeticException e){

    }finally{

    }

    当所有的异常处理的方式是一样的时候就可以直接使用Exception进行捕获,当然,在一个比较细致的开发中是不建议这样使用的,所有的异常最好分别捕获。

    问题:
    既然捕获Exception是最方便的,那么直接捕获Throwable可以不可以?
    首先这样的做法是可以的,但是正常的开发人员是不会这样去做的,因为程序的try中永远只会抛出Exception的子类,而Throwable中不光有Exception还有Error。
    展开全文
  • 中断详解(一)——基本概念

    千次阅读 2015-03-24 10:30:32
    什么是中断  中断通常被定义为一个事件,该事件能够改变处理器执行指令顺序。这样事件与 CPU 芯片内外部硬件电路产生电信号相对应。  中断分为同步中断和异步中断。  同步中断——同步中断是当指令执行...
  • 异常的基本概念

    2019-09-24 23:14:36
    一 、异常的基本概念 二 、为什么需要异常处理 三 、在程序中进行异常处理 四 、异常类的继承结构 五 、Java的异常处理机制 六 、使用 Exception 进行异常处理 一 、异常的基本概念 异常导致程序中断...
  • Linux信号的基本概念

    2017-10-08 15:10:17
    Linux的基本概念 天天在用信号,它的概念你可知道地准确?信号机制一种使用信号来进行进程之间传递信息的方法,其中信号的全称为软中断信号,简称软中断。 信号只是用来通知进程发生了什么事情,并不给进程传递...
  • 什么是操作系统 用户角度上,操作系统一个系统软件 管理应用程序 为应用程序提供服务 杀死应用程序 资源管理 管理外设,分配资源 操作系统架层次结构 硬件之上,应用程序之下 应用软件:办公软件、视频播放...
  • 文章目录基本概念上下文...  原子(atom)本意“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" ; 为什么会有上下文这种概念   内核空间和用户空间现代操
  • 中断和轮询相互对应两个基本的编程思想和概念。 硬件通知CPU 中断发生。 CPU执行,中断处理程序ISR。 执行后,恢复原来。 事件触发 对主程序而已,好像什么都没发生一样。 程序运行上下文(context) 中断...
  • linux的信号的基本概念

    千次阅读 2013-07-17 15:15:41
    信号机制进程之间相互传递消息一种方法,信号全称为软中断信号,也有人称作软中断。从它命名可以看出,它实质和使用很象中断。所以,信号可以说是进程控制一部分。  进程之间可以互相通过系统调用kill...
  • 信号基本概念

    2019-11-06 17:02:26
    1.信号的概念 信号信息载体,Linux/UNIX环境下,古老、经典...信号软件层面上实现的中断,早期称为“软中断”。 3.与信号相关事件和状态 产生信号 递达:递送并且到达进程。 未决:产生和递达之间状态...
  • 信号与硬件中断的相似之处在于打断了程序执行的正常流程,大多数情况下,无法预测信号到达的准确时间 信号源: 1.硬件 2.软件 (如ctrl+c 结束进程就是一个信号源) 常见的几种进程信号解释: SIGHUP 关闭终端...
  • Java开发工具Eclipse / MyEclipse中断点调试相关概念 Debug作用 调试程序 查看程序执行流程 如何查看程序执行流程 什么是断点 就是一个标记,从哪里开始位置。 如何设置断点: 在那个有效程序左边双击...
  • 1、基本概念 (1)这里讲信号与信号量不同,信号进程给操作系统或进程某种信息,让操作系统或者其他进程做出某种反应。 (2)信号进程间通信机制中唯一异步通信机制,一个进程不必通过任何操作来等待...
  • Flume基本概念

    2019-04-04 14:44:58
    Flume 是什么 flume 是(数据采集,数据收集)框架,通过分布式形式进行数据采集 Flume 是可信任,可信任体现在什么地方? 如果节点出现异常、导致数据传输中断,进行数据回滚,或者数据重发 对于同一个节点,...
  • 操作系统基本概念

    2019-03-12 22:05:18
    三、操作系统范畴四、计算机硬件基础1、总线结构2、流水线结构3、存储结构4、中断机制五、内核态与用户态1、两种状态的概念2、两种状态优势六、微内核结构七、进程、内存和文件八、系统调用 一、程序如何运行...
  • 多线程基本概念

    2020-03-04 05:42:00
    什么是叫一个进程? 什么叫一个线程? 进程 线程 如何销毁一个线程 请你说说启动线程三种方式? 继承 Thread 类 实现 Runnable 接口 实现 Callable 接口 多线程API Daemon sleep() yield() ...
  • 高可用集群基本概念

    2018-01-10 08:28:55
    1、什么是高可用集群 高可用集群(High Availability Cluster,简称HA Cluster),指以减少服务中断时间为目的服务器集群技术。它通过保护用户业务程序对外不间断提供服务,把因软件、硬件、人为造成故障...
  • x86的中断

    千次阅读 2016-08-06 19:25:28
    1. 基本概念什么引入中断?   当CPU与外设交换信息时,若用查询方式,则CPU就要浪费很多时间去等外设。这快速CPU与慢速外设之间矛盾,也计算机发展过程中遇到一个严重问题之一,为了解决这个问题...
  • 网络安全基本概念

    2021-05-25 09:45:36
    一、什么是网络安全 (1)网络安全 网络安全指网络系统中...那么这“6个特性”是什么意思呢? //保密性:确保信息不被泄露或呈现给非授权人。 //完整性:信息在传输和存储过程中不丢失、不被修改和破坏。...
  • [quote]导致程序中断的一段指令流[/quote] 有什么危害? [quote]如果不对异常进行正确处理,可能导致程序的中断执行,造成不必要的损失[/quote] 如何处理异常?及异常的处理机制 [quote]try{可能产生异常的代码}...
  • Zookeeper基本概念理解

    2018-04-03 14:21:32
    1. 什么是分布式系统 2. 分布式系统需要一个协调器来解决同步问题和网络问题。 N个物理分布进程都要竞争这个资源,但我们又不希望他们同时进行访问,这时候我们就需要一个协调器,来让他们有序来访问这个资源...
  • 信号及信号来源信号在软件层次上对中断机制一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样。信号异步,一个进程不必通过任何操作来等待信号到达,事实上,进程也不知道...
  • STM8S中断

    千次阅读 2018-08-02 09:31:27
    由于今天一直STM8S 的程序,关于STM8s的中断一直处于只知道用,却不理解中断流程,以及关于中断的基本概念。本篇文档主要说明中断的基本概念、机制、流程、处理方法等。   一些问题: 1.什么叫软件中断、什么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 540
精华内容 216
关键字:

中断的基本概念是什么