精华内容
下载资源
问答
  • 中断系统与按键中断

    2019-09-06 21:49:37
    中断系统与按键中断控制LED

    如何实时检测随机事情的发生?

    通常有查询和中断两种方法。因为无论事件是否发生,都必须去查询,所以使用查询的方式会很浪费资源。而中断是当事情发生时,如果允许中断发生,则打断正在执行的程序,因此中断能快速响应。

    中断系统结构

    STC89C52具有6个中断源,可实现两级中断嵌套。
    中断系统结构

    符号 名称 触发条件 说明
    INT0 外部中断0 低电平或下降沿触发 P3.2口
    INT1 外部中断1 低电平或下降沿触发 P3.3口
    T0 定时器/计数器0中断 计数器0溢出回0引起 中断请求标志:TF0
    T1 定时器/计数器1中断 计数器1溢出回0引起 中断请求标志:TF1
    T2 定时器/计数器2中断 计数器2溢出回0引起 中断请求标志:TF2 ;捕捉中断
    TI/RI 串行口中断 发送/接收完一个串行数据 标志位:TI、RI

    中断请求标志寄存器

    6个中断请求标志分别锁存在TCON 、SCON和T2CON中;

    TCON寄存器

    TCON

    名称 说明
    IT0 当IT0=0时,外部中断0为电平触发方式;IT0=1时,为边沿触发方式(下降沿有效)。
    IE0 当外部中断0 触发时,置1;转入中断服务程序时,由硬件清0
    IT1 当IT1=0时,外部中断1为电平触发方式;IT1=1时,为边沿触发方式(下降沿有效)。
    IE1 当外部中断1 触发时,置1;转入中断服务程序时,由硬件清0
    TF0 定时器/计数器T0的溢出中断时,由硬件使TF0置“1” ;转入中断服务程序时,由硬件清0
    TF1 定时器/计数器T1的溢出中断时,由硬件使TF1置“1” ;转入中断服务程序时,由硬件清0
    TR0 定时器/计数器T0的控制运行位;
    TR1 定时器/计数器T1的控制运行位;

    中断允许寄存器IE

    IE

    • EA=0时,所有的中断请求被屏蔽;
    • EA=1时,允许中断,相当于总开关打开;
    • ET2=0,禁止定时器/计数器T2溢出中断。
    • ET2=1,允许定时器/计数器T2溢出中断。
    • ES=0,禁止串行口中断。
    • ES=1,允许串行口中断。
    • ET1=0,禁止定时器/计数器T1溢出中断。
    • ET1=1,允许定时器/计数器T1溢出中断。
    • EX1=0,禁止外部中断1中断。
    • EX1=1,允许外部中断1中断。
    • ET0=0,禁止定时器/计数器T0溢出中断。
    • ET0=1,允许定时器/计数器T0溢出中断。
    • EX0=0,禁止外部中断0中断。
    • EX0=1,允许外部中断0中断。

    总结:在EA=1时,某位设置为1,则允许该中断发生。

    中断优先级寄存器IP

    IP

    1. PT2—定时器T2中断优先级控制位
    2. PS—串行口中断优先级控制位
    3. PT1—定时器T1中断优先级控制位
    4. PX1—外部中断1中断优先级控制位
    5. PT0—定时器T0中断优先级控制位
    6. PX0—外部中断0中断优先级控制位

    1:高优先级; 0:低优先级

    1. 低优先级可被高优先级中断,高优先级不能被低优先级中断
    2. 任何一种中断一旦得到响应,不会再被它的同级中断源所中断
    3. 在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序。同级中,外部中断0的优先级最高在这里插入图片描述

    如何配置外部中断

    1.设置TCON,确定触发方式,电平触发or下降沿
    2. IE寄存器中的中断总允许位EA=1,并配置IE确定中断源
    3. 设置中断优先级寄存器IP,可以没有这步
    4. 编写中断服务子程序,处理中断请求

    外部中断0服务函数
    void INT0()interrupt 0 using 1
    {
    xxx
    }

    名称 说明
    interrupt 0 外部中断0
    interrupt 1 定时器中断0
    interrupt 2 外部中断1
    interrupt 3 定时器中断1
    interrupt 4 串行口中断
    interrupt 5 定时器中断2

    using 0 是第0组寄存器;
    using 1 是第1组寄存器;
    using 2 是第2组寄存器;
    using 3 是第3组寄存器;
    这个的作用不太明白,但是一般情况下不需要考虑这个,也不需要写上

    外部中断0程序

    • 程序现象:按键控制LED灯状态取反
    • 程序说明:LED连接在P2^0;按键连接在P3.2口且按键按下为低电平;
    #include <reg52.h>
    
    sbit Led0=P2^0;
    sbit Key=P3^2;
    
    typedef unsigned int u16;
    
    
    void delay(unsigned int del) 	//10ms * del
    {
    	unsigned int i,j;
    	for(i=0; i<del; i++)
    	for(j=0; j<1827; j++)      
    	    ;
    }
    
    
    void main()
    {
        IT0=0;		 //TCON,P3.2口低电平触发方式,也可以为下降沿
        EA=1;	  	//IE,开启总开关
        EX0=1; 		//IE,允许外部中断0中断
        
        while(1);  //避免退出程序,循环等待
    }
    
    void int0 () interrupt 0  //中断服务函数
    {
        delay(13);          //消抖一般10~20ms
        if(Key==0)          
        {
            Led0=~Led0;      // LED状态取反
            while(Key!=0);  //按键松手检测
        }
    }
    
    
    展开全文
  • 中断系统

    2018-11-22 13:53:34
    51单片机中断系统5个中断源,2个优先级,可实现二级中断嵌套。 中断请求标志 ①TF0/TF1 :T0/T1 的溢出中断请求标志。从初值做加1计数,计满溢出后TF0/TF1置1,发出中断请求,响应中断后硬件自...

    *觉得有用有帮助的评论下,谢谢~

    中断系统

    概念

    • CPU执行事件A时,事件B请求执行(中断请求),这时CPU转去执行事件B(中断响应),待得事件B执行完成后,在返回执行事件A(中断返回)。

    中断系统结构

    • 51单片机中断系统中有5个中断源2个优先级,可实现二级中断嵌套。

    中断请求标志

    • ①TF0/TF1T0/T1溢出中断请求标志。从初值做加1计数,计满溢出后TF0/TF1置1,发出中断请求,响应中断后硬件自动清0,也可由软件查询清0。
    • ②IE0/IE1外部中断0/外部中断1中断请求标志位,置位后,外部中断0/外部中断1向CPU申请中断,中断响应后,该标志自动清0。
    • ③IT0/IT1外部中断0/外部中断1触发方式控制位 ,等于1或等于0的触发方式有所不同,看图。
    • ④TI :串行口1 发送中断请求标志 ,CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一行帧,硬件将是TI置位。但CPU响应中断时不会清除TI,必须由软件清除。
    • ⑤RI :串行口1 接受中断请求标志 ,在串行口1允许接受时,每接受完一个串行帧,硬件将使RI置位,与TI相同,中断响应后,必须由软件清零。

    中断允许控制

    • ①EA :中断允许控制位(总控制)
    • ②EX0/EX1外部中断0/外部中断1 中断允许位
    • ③ET0/ET1 :定时/计数器T0/T1 中断允许位
    • ④ES串行口 中断允许位

    同级中断顺序

    中断号 中断源 中断源符号 同级自然优先顺序
    0 外部中断0 INT0 最高
    1 定时器T0 TO
    2 外部中断1 INT1
    3 定时器T1 T1
    4 串行口中断 TI/RI

    中断优先级原则

    • 先响应优先级高的中断请求
    • 中断过程中,不能被新的同级或低优先级的中断请求所中断,但可以被高优先级的打断

    中断响应条件

    • 中断源发出中断请求
    • 该中断源的中断允许位打开(置1)
    • 中断总开关打开(EA=1)

    外部中断0程序

    #include "reg52.h"
    
    typedef unsigned int u16;
    
    bit k3=P3^2;  //定义按键K3
    sbit led=P2^0;	 //定义P20口是led
    
    void delay(u16 i)   //简单延时函数,给下面按键消抖用
    {
    	while(i--);	
    }
    
    void Int0Init()  //外部中断0初始化
    {
    	       //设置INT0
    	IT0=1; //跳变沿出发方式(下降沿)
    	EX0=1; //打开INT0的中断允许。	
    	EA=1; //打开总中断	
    }
    
    void main()    //主程序
    {	
    	Int0Init();  //	设置外部中断0
    	while(1);		
    }
    
    void Int0()	interrupt 0		//外部中断0的中断函数
    {
    	delay(1000);	 //延时消抖
    	if(k3==0)
    	{
    		led=~led;
    	}
    }
    
    • interrupt后面的数字为中断号

    先这样吧~~

    展开全文
  • 中断与中断系统

    千次阅读 2017-05-14 13:52:22
    中断:没有我,还想提高计算机性能,做梦吧!

    中断:没有我,还想提高计算机性能,做梦吧!

    设想一个场景:
    小宏正在吃饭,突然接到公司的电话,要求马上赶到公司开会。此时小宏做了如下几件事情:
    1. 放下碗筷
    2. 拿上车钥匙
    3. 去车库取车
    4. 赶到公司

    如上场景在生活中经常能够见到,放在本文中,有一个术语能够很好的诠释这一场景——中断。

    中断


    公司打来电话要求小宏马上去公司开会,因而小宏必须放下没有吃完的饭,转而赶去公司开会,等开完会再回到家继续吃饭。这几个动作就表现出了中断的概念。而小宏就是一个中断装置。

    什么是中断
    在程序运行过程中出现某种紧急事件,必须中止当前正在运行的程序,转而去处理此事件,然后再恢复原来运行的程序,这个过程就被称为中断。
    什么是中断装置
    中断系统中的硬件部分,其职能是发现并响应中断,具体为:
    1. 识别中断源
    2. 保存现场
    3. 引出中断处理程序

    中断源

    公司打电话要求小宏马上去公司开会,这就是引起小宏不得放下碗筷去公司开会的事件了。在计算机术语中,也称之为中断源。

    引起中断的事件称为中断源

    中断字

    当小宏到了公司,走进会议室开始开会,此时:
    1. 拿出笔记本
    2. 开始记录会议内容
    以上是小宏在处理中断事件,我们称,笔记本是中断记录器,笔记本上记录的内容是中断字。

    在中断装置发现并响应中断后,转到响应的中断处理程序。
    硬件系统为每一个中断源设置一个寄存器,即为中断寄存器,而中断寄存器中保存了与中断事件相关的一些信息,这些信息就称为中断字

    中断类型

    小宏记录了一会,发现自己对于某一内容有疑问,于是标记下来,等待会议的提问阶段抛出此疑问。
    小宏现在所做是其自己有意识的安排,并且使自愿的,我们称此为自愿性中断。既然有自愿性,相对的就有强迫性中断,被公司叫去开会,这就属于强迫性中断

    1. 强迫性中断
      这类中断事件是正在运行的程序锁不期望的,这类中断是否发生,何时发生,无法预知。
      • 时钟中断
      • 输入输出中断
      • 控制台中断
      • 硬件故障中断
      • 程序错误中断
    2. 自愿性中断
      这类中断事件是正在运行的程序有意识的安排,这类中断的发生具有必然性,发生时机,位置确定。

    中断向量

    小宏是在技术部会议室开技术研讨会议,这就是所谓的中断向量。
    技术部会议室对应中断程序入口地址(PC),技术研讨会议对应的是运行环境(PSW),PC和PSW合称中断向量。

    NOTE:
    同类事件的处理方法是相同的,所以不是每一个中断源都有一个中断处理程序,而是每一类中断时间有一个中断处理程序。

    中断嵌套

    小宏在提问阶段抛出疑问时,是在其处理第一个中断事件时发生的,这就是一种嵌套。我们知道,开会时领导发言是不允许被打断的,除非是更高一级的领导才能打断(0…..0),这就是中断的优先级问题以及中断屏蔽。

    中断嵌套主要是嵌套,虽然嵌套可以无休止的进行下去,但是,由于中断优先级的存在使得当前中断只能被更高优先级的事件中断,所以中断嵌套实际上是无法无限的。
    想出现低优先级的事件中断也并非不可行,只需要调整一下优先级,比如说开会时的提问阶段就提高了普通员工的优先级。
    注意:
    中断发生时,需要保存(使用栈保存,栈区位置是由硬件确定的)被中断程序的现场信息,以保证处理完中断事件后可以恢复现场。

    中断优先级

    硬件规定,不可改变,但程序可以适当做出调整。

    就如领导的优先级高于普通员工(你说是谁规定的呢?  ̄▽ ̄)

    中断屏蔽

    中断屏蔽指令可以暂时禁止中断源向处理器发送中断请求。

    哪怕是领导,在一些会议上也是不能打断会议的进行 ︿( ̄︶ ̄)︿。

    中断处理程序


    小宏在会议上做了什么动作,还记得吗?那些动作就组成了一个处理程序。

    中断处理程序处理中断的过程中可能会使用通用寄存器,所以需要进一步保存现场信息。
    保存什么现场信息呢?保存时需要注意些什么吗?
    中断处理完毕返回用户程序时,需要通过一条指令将PC和PSW弹出系统栈,为什么呢?

    保存现场信息: PC,PSW以及通用寄存器内容
    保存时需注意:现场信息保存在系统栈中,在保存和恢复现场的过程中不响应新的中断(中断屏蔽)。
    一条指令恢复PC和PSW:中断向量中程序状态字PSW与指令计数器PC的内容必须由一条指令同时恢复,这样才能保证系统状态由管态转到目态的同时,控制转到上升进程的断点处继续执行。如果不同时恢复,则只能(1)先恢复PSW再恢复PC,在恢复PSW后已经转到目态,操作系统恢复PC的使命无法完成;(2)先恢复PC再恢复PSW,PC改变后转到操作系统另外区域(因为PSW仍为系统状态),PSW无法恢复。

    展开全文
  • 单片机的中断系统 多级中断控制实例

    1.前言

    记录对51单片机中断、定时/计数器的重要知识点以及难点理解,并且举例中断在实际编程中的应用,从而加深对单片机中断、定时/计数器的理解,熟练的使用中断。

    2.什么是中断

    中断就是计算机在执行某一程序的过程中,由计算机系统内部或外部的某种原因而必须终止当前程序的运行先去执行相应的处理程序,然后再返回继续执行原程序

    3.什么是中断系统

    实现中断功能的软、硬件系统统称为中断系统。

    4.中断的流程

    在这里插入图片描述
    即:中断请求中断响应中断处理中断返回

    5.中断的优先级控制

    通常情况下,一个程序中可能会有多个中断,优先级越高的中断优先执行。如果在一个中断的服务过程中,有一个优先级更高的中断插入,则当前中断暂停,前往执行优先级更高的中断。当优先级高的中断执行完毕后再返回继续执行低优先级的中断。

    6.中断源

    MCS-51共有五个中断源

    1. 外部中断INT0INT1
    2. 定时/计数器T0T1的溢出中断
    3. 串行口的发送和接受中断(只占用一个中断源)
    中断源 功能
    INT0 外部中断0请求,由INT0引脚(P3.2)输入。低电平/负跳变有效,中断请求标志为IE0
    INT1 外部中断1请求,由INT1引脚(P3.3)输入。低电平/负跳变有效,中断请求标志为IE1
    T0 定时/计数器0溢出中断请求,中断标志位为TF0
    T1 定时/计数器1溢出中断请求,中断标志位为TF1
    RXD/TXD 串行口中断请求,中断请求标志位TIRI

    外部中断

    从单片机外部引脚INT0INT1输入中断请求信号的中断。
    外部中断的触发方式有两种电平触发IT0 =0跳变触发(边沿)IT0 = 1,可以通过定时/计数器控制寄存器TCON编程选择。

    7.与中断有关的特殊功能寄存器

    与中断有关的特殊功能寄存器一共有4个。

    1. 定时/计数器控制寄存器(TCON)、
    2. 串行口控制寄存器(SCON)、
    3. 中断允许控制寄存器(IE)、
    4. 中断优先级控制寄存器(IP)

    7.1.定时/计数器控制寄存器 TCON

    作用

    1. 控制定时/计数器T0T1的溢出中断
    2. 控制外部中断的触发方式.由IT0IT1控制
    3. 锁存外部中断请求标志位
    位地址 位定义 功能
    88H IT0 选择外部中断0的中断触发方式。由软件控制。IT0=0为电平触发方式IT0=1为下降沿触发方式
    89H IE0 选择外部中断1的中断触发方式。功能与IT0相似
    8AH

    7.2.串行口控制寄存器 SCON

    串行口的接收发送数据中断请求标志位(RITI)

    位定义 功能
    TI 串行口发送中断请求标志位。CPU每发送一帧数据,硬件置位1(TI=1),但是中断被响应时,需要在中断服务程序中通过软件对TI清零
    RI 串行口接受中断请求标志位。每接收一帧数据,硬件置位1(TI=1),但是中断被响应时,一样需要在中断服务程序中通过软件对TI清零

    串行口中断不能由硬件自动清除中断请求标志位,需要用户通过软件进行控制清零。

    7.3.中断允许控制寄存器 IE

    IE是控制中断的开关,通过对IE的清0和置1操作来控制中断的屏蔽和开放。

    中断允许控制寄存器IE对中断的开放与屏蔽实现两级控制,存在一个总的中断控制位EA

    位定义 功能
    EA 总中断允许控制位。当EA=0时,不允许任何中断请求。
    ES 串行口中断控制位。当ES=0时,不允许串行口中断;当EA=1ES=1时,允许串行口中断。
    ET1 定时/计数器1中断允许控制位。当ET1=0时,屏蔽T1的溢出中断;当EA=1且ET1=1时,允许T1溢出中断
    ET0 定时/计数器0中断允许控制位。功能与ET1相同。
    EX1 外部中断1的中断允许控制位。当EX1=0时,屏蔽外部中断1的中断请求;当EA=1EX1=1时,允许外部中断1的中断请求
    EX0 外部中断0的中断允许控制位。功能与EX1相同

    若某个中断源被允许,出来IE对应位置1外,还需要总中断控制位EA置1。

    实例:若允许片内两个定时/计数器中断,禁止其他中断源的中断请求,尝试编写出设置IE的响应指令

    #include <reg51.h>
    
    EX0 = 0; // 禁止外部中断0
    EX1 = 0; // 禁止外部中断1
    ES = 0;  // 禁止串行口中断
    ET0 = 1; // 允许定时/计数器0中断
    ET1 = 1; // 允许定时/计数器1中断
    EA = 1;  // 总中断控制器打开
    

    7.4.中断优先级控制寄存器 IP

    位定义 功能
    PS 串行口中断优先级控制位。PS=1,串行口中断为高优先级;PS=0,为低优先级。
    PT1 定时/计数器1中断优先级控制位。当PT1=0时,T1溢出中断为低优先级;当PT1=1时,T1溢出中断为高优先级。
    PT0 定时/计数器0中断优先级控制位。当PT0=0时,T0溢出中断为低优先级;当PT0=1时,T0溢出中断为高优先级。
    PX1 外部中断1的中断优先级控制位。当PX1=0时,外部中断1为低优先级;当PX1=1时,外部中断1为高优先级。
    PX0 外部中断0的中断优先级控制位。当PX0=0时,外部中断0为低优先级;当PX0=1时,外部中断0为高优先级。

    同级内第二优先级的次序
    外部中断0 > T0溢出中断 > 外部中断1 > T1溢出中断 > 串行口中断

    8.中断系统在实际编程中的应用

    8.1.实例一:中断的初始化

    #include <reg51.h>
    
    void init() // 中断的初始化函数
    {
        EA = 1; // 总中断控制位
        ES = 1; // 串行口中断允许
        EX0 = 1; // 外部中断0允许
        EX1 = 1; // 外部中断1允许
        ET0 = 1; // 定时/计数器0中断允许
        ET1 = 1; // 定时/计数器1中断允许
        IT0 = 1; // 选择外部中断0的触发方式
        IT1 = 1; // 选择外部中断1的触发方式
    }
    

    例1:假设允许外部中断0和1中断,并设定外部中断0为高级中断,外部中断1为低级中断,外部中断0为下降沿触发方式,外部中断1为电平触发方式。试写出该程序的中断初始化程序。

    #include <reg51.h>
    
    void init() // 
    {
        EA = 1; 打开中断控制
        EX0 = 1; 允许外部中断0
        EX1 = 1; 允许外部中断1
        IT0 = 1; 外部中断1采取边沿触发方式
        IT1 = 0; 外部中断0采取电平触发方式
        PX0 = 1; 外部中断0为高优先级
        PX1 = 0; 外部中断1为低优先级
    }
    
    

    8.2.实例二:利用中断控制LED闪烁形式

    要求

    用80C51单片机控制8个LED灯,在外部中断0输入引脚(P3.2)接一个开关K1。要求将外部中断0设置为下降沿触发,程序启动是8个LED以跑马灯的形式交替闪烁。每按一次开关K1,使引脚接地,产生一个下降沿触发的外部中断请求。在中断服务程序中,8个LED高四位和低四位交替闪烁5次,然后中断返回,8个LED继续以跑马灯形式闪烁。

    采用Protues+Keil仿真

    元器件

    • 单片机:80C51 *1
    • 开关按钮:Button *1
    • 电阻:MINRES470K *1
    • LED:LED-BLUE *8

    仿真图

    在这里插入图片描述
    代码

    #include<reg52.h>
    
    unsigned char code table[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0xff};	// 控制P2端口的状态
    
    unsigned char i,j,k,num;
    
    void delay()			 // 延时函数
    {
    	for(i = 0;i<100;i++)
    	{
    		for(j=0;j<200;j++)
    		;
    	}
    }
    
    void init()		   // 中断的初始化
    {
    	EA = 1;	   // 打开总中断控制
    	EX0 = 1;   // 允许外部中断0
    	IT0 = 1;   // 外部中断为下降沿触发方式
    }
    
    
    void main()	   
    {
    	init();
    	while(1)
    	{
    		for(num =0;num<10;num++)
    		{
    			P2 = table[num];
    			delay();
    		}
    	}
    }
    
    void int0() interrupt 0			   // 中断服务程序
    {
    	for(k = 0;k<5;k++){
    		P2 = 0xf0;
    		delay();
    		P2=0x0f;
    		delay();
    	}
    }
    

    8.3.实例三:多级中断控制LED不形式闪烁

    要求:在例2的基础上,在外部中断1输入引脚(P3.3)接一只按钮开关K2。当按下K1时,外部中断0下降沿触发方式触发,进入外部中断0服务程序,上下4个灯交替闪烁;此时按下K2,外部中断1下降沿触发方式触发,进入外部中断1服务程序,8个灯交替闪烁。当外部中断1响应完毕后,返回继续响应外部中断0,直到外部中断0响应完毕,返回执行主程序。
    首先我们分析一波中断初始化函数

    1. 两个外部中断0和1。外部中断0的服务程序为上下4灯交替闪烁,外部中断1的服务程序为8灯闪烁。即EA = 1; EX0 = 1; EX1 = 1;

    2. 优先级:外部中断1 > 外部中断0 即PX1 = 1; PX0 = 0;

    3. 触发方式:都为下降沿触发。即IT0 = 1; IT1 = 1;

    这样我们的中断初始化程序基本完成

    void init()
    {
        EA = 1;
        EX0 = 1; EX1 = 1;
        PX0 = 0; PX1 = 1;
        IT0 = 1; IT1 = 1;
    }
    
    

    其次我们再捯饬一下主程序

    void main()	   
    {
    	init();
    	while(1)
    	{
    		for(num =0;num<10;num++)
    		{
    			P2 = table[num];
    			delay();
    		}
    	}
    }
    
    

    另外我们再搞一下外部中断0的服务程序

    void int0() interrupt 0
    {
    	for(k = 0;k<5;k++)
        {
    		P2 = 0xf0;
    		delay();
    		P2=0x0f;
    		delay();
    	}
    }
    

    最后我们再他喵的弄一下外部中断1的服务程序

    
    void int1() interrupt 2			  // 外部中断1服务程序
    {
    	for(l = 0;l < 5; l++)
    	{
    		P2 = 0x00;
    		delay();
    		P2 = 0xff;
    		delay();
    	}
    }
    

    完整代码

    #include<reg52.h>
    
    unsigned char code table[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f, 0x00, 0xff};	// 控制P2端口的状态
    
    unsigned char i, j, k, l, num;
    
    void delay()			 // 延时函数
    {
    	for(i = 0; i < 200; i++)
    	{
    		for(j = 0; j < 200; j++)
    		;
    	}
    }
    
    void init()		   // 中断的初始化
    {
    	EA = 1;
        EX0 = 1; EX1 = 1;
        PX0 = 0; PX1 = 1;
        IT0 = 1; IT1 = 1;
    }
    
    void main()	   
    {
    	init();
    	while(1)
    	{
    		for(num = 0; num < 10; num++)
    		{
    			P2 = table[num];
    			delay();
    		}
    	}
    }
    
    void int0() interrupt 0			   // 外部中断0中断服务程序
    {
    	EX0 = 0;
    	for(k = 0; k < 5; k++)
    	{
    		P2 = 0xf0;
    		delay();
    		P2 = 0x0f;
    		delay();
    		EX0 = 1;
    	}
    }
    
    void int1() interrupt 2			  // 外部中断1服务程序
    {
    	for(l = 0;l < 5; l++)
    	{
    		P2 = 0x00;
    		delay();
    		P2 = 0xff;
    		delay();
    	}
    }
    

    仿真图

    在这里插入图片描述
    文章来源:中断系统

    展开全文
  • 文章目录第八章 中断系统8.1 中断的基本概念8.1.1 中断概念的引入及描述中断方式示意(以输入中断为例)**中断**的定义8.1.2 中断源及中断分类中断的分类8.1.3 中断类型码中断类型码中断向量中断向量表中断向量表的...
  • 中断体系结构

    2014-02-09 11:18:03
    ARM920T体系的CPU以下7种工作模式: 用户模式:ARM处理器正常的程序执行状态。快速中断模式:用于高速数据传输或通道处理。中断模式:用于通用的中断处理。管理模式:操作系统使用的保护模式。数据访问终止模式...
  • 51 中断系统 外部中断0 外部中断1

    万次阅读 多人点赞 2019-06-14 22:26:11
    51单片机的中断系统结构 中断允许控制 CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。 EX0(IE.0),外部中断0允许位; ET0(IE.1),定时/计数器T0中断允许位; EX1(IE.2),...
  • 51单片机中断系统

    万次阅读 多人点赞 2018-12-11 20:04:08
    中断定义  CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续...
  • 中断

    万次阅读 2018-10-03 18:54:31
    定义  在计算机科学中,中断指计算机CPU...中断是计算机实现并发执行的关键,也是操作系统工作的根本。 分类  中断按事件来源分类,可以分为外部中断和内部中断中断事件来自于CPU外部的被称为外部中断,来自...
  • 缺页中断相比一般的中断存在哪些区别? 缺页中断发生在执行阶段(EX),并立即转去处理缺页,一条指令可能引发多次缺页。一般中断在处理完之后返回执行下一条指令,但缺页中断会返回执行发生缺页的指令。 ...
  • 89c51中断系统及中断控制

    万次阅读 多人点赞 2018-06-23 23:29:10
    现代的计算机都具有实时处理功能,当外界突发事件时,cpu能够及时的做出处理,这就是靠中断来实现的。 当CPU正在处理某一命令时,这时外部发生了某一事件(如电平的变化,或者定时器/计数器溢出时)请求CPU去处理...
  • STM8的中断系统以及外部中断详解

    万次阅读 2014-10-17 00:30:11
    STM8具有最多32的中断系统,在中断的处理上类似于cortexm系列的芯片,首先是每个中断的向量都是固化在系统内部的,用户需要向相应的中断向量flash位置写入中断处理函数,其二,每个中断向量都具有可编程的优先级,共有两位...
  • 51单片机之中断系统

    千次阅读 2019-03-25 18:38:39
    MCS-51单片机设置了5个中断源,其中内部3个中断源,包括定时/计数器T0、T1和片内串口,外部两个中断请求输入,当系统产生中断时,5个中断源的中断请求标志分别由特殊功能寄存器TCON和SCON的相应位来锁存。...
  • X2812的中断系统

    2019-12-24 09:19:24
    中断概念 中断(Interrupt)是硬件和软件驱动事件,它使得CPU暂停当前的主程序,并转而去...X2812 的中断系统从上至下分成了三级 CPU级中断 PIE级中断 外设中断 CPU中断 可屏蔽中断的响应过程如上图所示。一共...
  • 中断类型号:(8位二进制码给中断源编号,故可管理256个不同中断中断断点(由于中断而没有被执行的那一条指令的地址) 中断服务程序(处理中断事件的程序段) 中断向量(中断服务子程序的入口地址,4字节...
  • S5PV210中断体系

    2014-11-08 13:11:40
    S5PV210中断体系
  • 单片机中断系统

    2017-10-08 21:38:12
    今天查阅相关资料,基本了解了51单片机中断系统的相关知识 一、51单片机的中断系统规模:5个中断源,支持2层嵌套 中断源 对应的引脚号 外部中断0 INT0 (P3.2) 定时/计数器0 T0 (P3.4) 外部中断1 INT1 ...
  • 重要声明: 以下代码粘贴 截取他人劳动成果的成分 如雷同 不胜荣幸 如您不能容忍 请不要独自忍受@weChat:iisssssssssii 联系小民 主动删除  中断含义:  { 中断是CPU处理外部突发事件的一个重要技术。它...
  • 单片机(AT89C51)中断系统详解和中断系统应用实验

    千次阅读 多人点赞 2020-04-07 20:06:02
    单片机中断系统 什么叫做单片机的中断? CPU暂时中止其正在执行的程序,转去执行请求中断的那个外设或事件的服务程序,等处理完毕后再返回执行原来中止的程序, 叫做中断。 为什么要设置中断? ⑴ 提高CPU...
  • 51MCU的中断系统

    2016-08-11 18:46:47
    一、 中断 定义:中断产生 -> 中断相应 -> 中断返回 中断产生:CPU在处理某一事件A...二、中断系统结构 三、中断优先级 四、定时器使用方法 1.打开总中断 地址可以被8整除的寄存器,可以进行位操作。(EA
  • 今天下午和晚上研究了一直在研究s3c2410中断体系结构,虽然以前老师上课也接触过,考试也考过,但仔细研究起来,还是不少收获的。现记述如下: 1.什么是中断? 答:中断是CPU保证并发程序的一种机制。它使得CPU...
  • linux中断下半部中的软中断系统调用的软件中断有什么区别呢?
  • 8086中断系统简答

    千次阅读 2019-11-30 19:06:08
    中断系统应该具备什么功能? CPU暂停执行现行程序,转而处理随机事件,处理完毕后再返回中断的程序,这以过程称为中断。 能够引发CPU中断的信息源,称为中断源。 中断系统应具备以下功能: 为了加强中断系统的灵活...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 558,267
精华内容 223,306
关键字:

中断系统包括哪些中断