精华内容
下载资源
问答
  • 中断系统的原理
    千次阅读
    2018-09-17 15:24:37

    中断是一种硬件机制,用于通知CPU有个异步事件发生了。

    当微处理器检测到某个中断请求引脚上有信号时,微处理器就会停止当前正在执行的应用程序,CPU保存部分(或全部)现场即部分或全部寄存器的值,跳转到中断服务程序ISR。

     

    先占个坑,有空再写。。。

    更多相关内容
  • 第五章 80C51单片微机的 中断系统原理及应用; 实现CPU与外部设备的速度配合 ?通过中断的方法来协调快速CPU与慢速外部设备之间的工作 实现实时控制 依靠中断技术能实现实时控制 实现故障的及时发现及处理 中断技术使...
  • 单片微型计算机原理与接口技术(第二版):第五章80C51单片微机的中断系统原理及应用.ppt
  • 中断系统原理

    千次阅读 2021-01-16 11:23:47
    一.中断的概念 1.cup在处理某一件事情A时,发生了另外的一件事B请求CPU迅速去处理(中断发生) 2.cpu暂停中断当前的工作,转去处理事件B ...51单片机中的中断系统结构: 5个中断 (1.)通过配置中断标志IEO或者是I

    一.中断的概念

    1.cup在处理某一件事情A时,发生了另外的一件事B请求CPU迅速去处理(中断发生)
    2.cpu暂停中断当前的工作,转去处理事件B
    3.待cpu将事件B处理完后,再回到原来的事件A被中断的地方继续处理事件A(中断返回)
    这一个过程叫错中断
    例图。
    在这里插入图片描述

    优点

    1.分时操作:cpu可以分时为多个IO设备服务,提高了计算机的利用率
    2.实时响应:cpu能够及时处理应用系统的随机事件,系统的实时性大大的增强
    3.可靠性强

    51单片机中的中断系统结构:

    5个中断
    在这里插入图片描述
    (1.)通过配置中断标志IEO或者是IE1来向CPU申请中断。
    (2.)TF0和TF1中断溢出标志

    .中断允许控制

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

    在这里插入图片描述
    EXO,EX1,外部中断0和1的允许位
    ETO,ET1,定时器或是计数器T0,T1中断允许位
    ES 串行口中断允许位
    EA cpu中断允许位(总开关)

    中断请求标志

    1.TCON板在这里插入图片描述
    从上到小优先级逐渐降低
    中断源:在这里插入图片描述

    使用中断

    1.选择相应的中断好
    2.触发的条件
    3.进入中断干什么
    以外部中断o为例

    EA=1//打开总开关
    EXO=1//打开外部中断0
    ITO=0/1//设置外部中断的触发方式
    /*IT0:外部中断0触发方式控制位 
    当IT0=0时,为电平触发方式(低电平有效) 
    当IT0=1时,为边沿触发方式(下降沿有效) */
    
    
    
     # include <reg52.h>
     sbit key = P3^2;
     sbit led = P2^1;
     void into ()
     
    {
    	EA=1;
    	EX0=1;
    	IT0=1;
    }
    void main ()
    {
    	into();
       while (1);
    }
    void adasd()interrupt 0{
    	int i;
    	for(i =100;i>0;i--);
    	if(key==0){
    		led =~led;
    	}
    } 
    
    展开全文
  • CPU正常运行程序时,由于内部或外部某个紧急事件的发生,使CPU暂停正在运行的程序,转去执行处理紧急事件的程序,然后再返回被中断了的程序继续执行,这个过程就是中断 引起中断的事件(外设或内部原因),称为中断源...
  • 51单片机中断系统原理和运用

    千次阅读 2020-05-02 23:31:00
    51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套 中断优先级控制寄存器IP(B8H)可位寻址 位 0 1 2 3 4 5 6 7 符号 - - - PS PT1 PX1 PT0 PX0 PX0/PX1 INT0/1优先级控制位 =0属低优先级 =1属高优先级 PT0/...

    QX-MCS51开发板上使用的是DIP封装(双列直插式)有40只引脚!
    40只引脚按其功能来分,有三类

    一、电源和时钟引脚:Vcc、Vss;XTAL1、XTAL2

    **电源引脚接入单片机工作电源**
    Vcc(40脚):接+5V电源;
    Vss ( 20脚 )   :接地
    
    **时钟引脚**
    XTAL1和XTAL2分别接开发板的外部晶振,为单片机提供工作效率节拍
    

    二、控制引脚

    RST(RESET)是复位信号输入端
    当单片机运行时,在此引脚加上持续两个机器周期的高电平时,就可以完成复位操作
    Vpd为本引脚的第二功能,即备用电源输入端
    当电源Vcc发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,从而保证单片机复位后能继续运行
    EA为内外部程序储存器选择端
    当EA为高电平时,单片机访问内部程序储存空间,为低电平时访问外部程序储存空间
    Vpp编程电压的输入端
    ALE为地址所存允许信号
    PROG为对片内为PROG的单片机编写程序时,此引脚做编程脉冲输入
    PSEN当单片机访问外部程序储存器时,此引脚为读取外部储存选通信号

    三、I/O口引脚

    P0三态IO口,P1口、P2口内部有上拉普通准双向IO口,P3口内部有上拉普通准双向IO口(第二功能,可以通过配置特殊功能寄存来实现)
    P3第二功能各引脚功能定义:
    P3.0:RXD串行口输入
    P3.1:TXD串行口输出
    P3.2:INT0外部中断0输入
    P3.3:INT1外部中断1输入
    P3.4:T0定时器0外部输入
    P3.5:T1定时器1外部输入
    P3.6:WR外部写控制
    P3.7:RD外部读控制

    中断

    计算机执行某程序时,发出来紧急事件或有特殊请求,CPU暂停某程序的执行,转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程。

    中断四个步骤:
    中断请求→中断响应→中断处理→中断返回

    中断功能的强弱是计算机性能优劣的重要标志

    提高CPU效率
    解决速度矛盾
    实现并行工作
    应付突发事件

    数据的输入/输出方式

    无条件传送方式
    一方对另一方来说总是准备好的
    查询传送方式(LOOK UP)
    传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待
    中断传送方式(IRQ):
    一方通过申请中断的方式与另一方进行数据传送
    直接存储器存取方式(DMA):
    双方直接通过总线传送数据,不经CPU中转,适用于数据量大高速通讯的设备不占用CPU时间

    51子系列允许5个中断源

    外部中断源(2个):
    INT0——由P3.2端口线引入,低电平或下降沿引起
    INT1——由P3.3端口线引入,低电平或下降沿引起

    这两个外部中断源标志和它们的触发方式控制位由特殊功能寄存器TCON的低四位控制

    内部中断源(3个):
    T0——定时器/计数器0中断,由T0回零溢出引起
    T1——定时器/计数器1中断,由T1回零溢出引起
    TI/RI——串行I/O中断,串行端口完成一帧字符发送/接收后引起

    这三个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中。

    中断请求标志TCON(88H)可位寻址

    TCON:Timer控制寄存器,低四位管理外部中断
    作用:设置外部中断触发方式,标注外部中断请求

    76543210
    符号TF1TR1TF0TR0IE1IT1IE0IT0

    IE0/IE1:外部中断申请标志位
    =0:没有外部中断申请
    =1:有外部中断申请

    IT0/IT1:外部中断请求的触发方式选择位
    =0:在INT0/INT1端申请中断的信号 低电平有效
    =1:在INT0/INT1端申请中断的信号 负跳变有效(下降沿)

    中断允许控制寄存器IE(A8H)

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

    76543210
    符号EAESET1EX1ET0EX0

    EA
    CPU中断允许(总允许)位;
    =0时禁止全部中断
    =1时允许中断
    ES
    串行口中断允许为;
    =0时禁止中断
    =1时允许中断
    ET1
    定时/计数器T1中断允许位;
    =0时禁止中断
    =1时允许中断
    EX1
    外部中断0允许位;
    =0时禁止中断
    =1时允许中断
    ET0
    定时/计数器T0中断允许位
    =0时禁止中断
    =1时允许中断
    EX0
    外部中断0允许位
    =0禁止中断
    =1允许中断

    外部中断及中断请求的撤除

    低电平触发:
    引脚上的低电平须持续到中断发生。若中断返回前仍未及撤除低电平,将再次中断
    负脉冲触发:
    CPU在前一机器周期采到INT0/INT1引脚为高,后一机器周期采到为低才认为是一次中断请求。CPU可记忆申请、可自动撤除中断申请。

    51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套

    在这里插入图片描述
    中断优先级控制寄存器IP(B8H)可位寻址

    01234567
    符号---PSPT1PX1PT0PX0

    PX0/PX1
    INT0/1优先级控制位
    =0属低优先级
    =1属高优先级
    PT0/PT1
    T0/1中断优先级控制位
    =0属低优先级
    =1属高优先级
    PS1
    串行口中断优先级控制位
    =0属低优先级
    =1属高优先级

    中断优先级处理原则

    同时发生多个中断申请时:
    1、不同优先级的中断同时申请(很难遇到)——先高后低
    2、相同优先级的中断同时申请(很难遇到)——按序执行
    3、正处理低优先级中断又接到高级别中断——高打断低
    4、正处理高优先级中断又接到低级别中断——高不理低

    在这里插入图片描述

    中断响应条件
    1、此中断源的中断允许位为1
    2、总中断CPU中断打开(EA = 1)
    3、中断源有中断请求
    外部中断0初始化例子

    EXO = 1;//开外部中断0
    IT0 = 0;//低电平触发
    EA = 1//开总中断
    

    跳变沿触发代码示例:
    灯闪一下

    #include<reg52.h>
     
    #define uchar unsigned char
    #define uint unsigned int
    
    void delay(uint z)
    {
    	uint x,y;
    	for(x = z;x > 0;x --)
    		for(y = 114;y > 0;y --);
    }
    
    void init() //中断服务特殊功能寄存器配置
    {
    	EXO = 1; //开外部中断0
    	IT0 = 1;//低电平触发方式
    	EA = 1;//开总中断
    }
    
    void int0() interrupt 0
    {
    	P1 = 0;
    	delay(100);
    }
    
    void main()
    {
    	init();
    	while(1)
    	{
    		P1 = 0xff;
    	}
    }
    

    led灯隔200ms闪烁一次
    代码示例:

    #include<reg52.h>
     
    #define uchar unsigned char
    #define uint unsigned int
    
    uint count = 0;
    
    void delay(uint z)
    {
    	uint x,y;
    	for(x = z;x > 0;x --)
    		for(y = 114;y > 0;y --);
    }
    
    void init() //中断服务特殊功能寄存器配置
    {
    	TMOD = 0x01; //定时器0为计数模式
    	TH0 = 0x4b;
    	TL0 = 0xfd//50ms
    	ET0 = 1;//开定时器0中断
    	TR0 = 1;//启动定时器0
    	EA = 1;//开总中断
    }
    
    /*因为T0溢出中断优先级为第二高
    所以interrupt后面唯一,最高级为0,最低为4
    */
    void timer0() interrupt 1  //因为T0溢出中断优先级为第二高,所以
    {
    	TH0 = 0x4b;
    	TL0 = 0xfd;
    	count ++;
    	if(count == 4)
    	{
    		P1 = 0;
    		delay(5);
    		count = 0;
        }
    }
    
    void main()
    {
    	init();
    	while(1)
    	{
    		P1 = 0xff;
    	}
    }
    
    展开全文
  • 单片机中断原理

    2017-07-10 15:06:23
    本文档主要解释了51单片机内部中断原理
  • 石秀民老师作业
  • STM32中断原理

    千次阅读 2021-11-05 12:30:29
    目录 一、中断介绍 1.1 什么是中断 1.2 中断的作用 1.3 中断的约束 二、STM32CubeMX中断方式点灯 ...1.介绍STM32中的中断系统。 2.采用中断进行点灯实验。 3.采用串口中断方式实现串口通信。 ...

    目录

    一、中断介绍

    1.1 什么是中断

    1.2 中断的作用

    1.3 中断的约束

    二、STM32CubeMX中断方式点灯

    2.1 项目内容

    2.2 工程设置

    2.3 代码实操

    2.4 硬件连接

    2.5 运行效果

    三、STM32CubeMX中断串口通信

    3.1 项目内容

    3.2 工程设置 

    3.3 代码实操

    3.4 效果展示

     四、参考文献


     

    本篇博客内容包括 :

    1.介绍STM32中的中断系统。

    2.采用中断进行点灯实验。

    3.采用串口中断方式实现串口通信。

    一、中断介绍

    1.1 什么是中断

    中断通常被定义为一个事件,该事件能够改变处理器执行指令的顺序。这样的事件与 CPU 芯片内外部硬件电路产生的电信号相对应。

    中断分为同步中断异步中断

    同步中断——同步中断是当指令执行时由 控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后 CPU 才会发出中断。

    异步中断——异步中断是由其他硬件设备依照 CPU 时钟信号随机产生的。

    通常我们所说的中断指的是异步中断,我们将同步中断称为异常。(异常是由程序的错误产生的,或者是由内核必须处理的异常条件产生的)

    1.2 中断的作用

    跟据中断的定义,我们可以通过中断使处理器转而去优先运行正常控制流之外的代码

    当一个中断信号达到时,CPU 必须停止它当前正在做的事情,并且切换到一个另一个活动。为了做到这就要在内核态堆钱保存程序计数器的当前值,并把与中断类型相关的地址放进程序计数量。

    1.3 中断的约束

    中断处理是由内核执行的最敏感的任务之一,因为它必须满足下列约束:

    1)中断应该被尽可能快地处理完
    2)中断处理程序必须编成使相应的内核控制路径能以嵌套的方式执行
    3)内核在处理一个中断时,可接受新的中断。但存在一个临界区,中断必须被禁止

    出于1)和3)的约束,中断的设计一般将中断处理程序分为两部分执行(即上半部和下半部函数)。上半部为中断被禁止的临界区,执行关键而紧急的任务,如把接收到的帧拷贝到输入队列,以便下半部函数执行时能进行处理。

    二、STM32CubeMX中断方式点灯

    2.1 项目内容

    用stm32F103芯片的GPIOA端一管脚接一个LED,GPIOB端口一引脚接一个开关(用杜邦线模拟代替)。采用中断模式编程,当开关接高电平时,LED亮灯;接低电平时,LED灭灯。

    这里我选用的芯片为正点原子的STM32F103RC迷你板。

    设置PA1端接开关,PB5接LED。

    对于按键电路,设置上拉式按键

    • 按键按下,引脚PA1读到低电平
    • 按键释放,引脚PA1读到高电平

    LED灯的触发方式

    • 按键按下瞬间,形成下降沿
    • 按键释放瞬间,形成上升沿

    在这里插入图片描述

     因此这里设置上升沿触发,即松开按键时灯亮,因为题目要求为开关接高高电平亮灯。

    2.2 工程设置

    • 新建工程

    新建工程的过程在这我就不赘述了,需要的朋友可以看看我的另一篇博客

    基于STM32 CubeMX+MDK5使用HAL库点亮流水灯,并使用逻辑分析仪观察管脚时序波形_歪比巴不的博客-CSDN博客

    • 时钟设置

    配置RCC使用外部时钟

    然后再来配置stm32的时钟树框图,将8改为72,回车确认 

    再按着顺序继续配置

    •  外设配置

     点击GPIO,选择自己用到的管脚,这里我的LED是连在PA8管脚,按键是连在PB8

    连接LED的管脚选择GPIO_Output

     对于LED对应的PA8管脚,默认设置即可,名字设为LED

    按键所连的管脚选择GPIO_EXIT

     

     对于按键对应的管脚,我这里让默认输入为0,选择pull down,选择上升沿触发

     使能对应的外部中断

     

    2.3 代码实操

    代码如下: 

    void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    {
    		for(long i = 1;i<72000;i++){}; //消除抖动
    		if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin)==1)
    		{
    			HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
    		}
    	__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
    }
    

    在如图位置粘贴代码

    2.4 硬件连接

    LED短脚接地,长脚接PB8,按键一端接3.3V,一端接PB8

    LED短脚——GND

    LED长脚——PA8

    按键一端——3.3V

    按键另一端——PB8

    2.5 运行效果

     

    三、STM32CubeMX中断串口通信

    3.1 项目内容

    完成一个STM32的USART串口通讯程序,要求:
    1)设置波特率为115200,1位停止位,无校验位;
    2)STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收。

    3.2 工程设置 

    由于新工程配置大多如上方led灯示例,所以以下只讲述不同之处

    USART1中的Mode选择Asynchronous

     使能中断

    3.3 代码实操

    添加存放数据的数组 

    uint8_t a[]="Hello windows!\n";
    

     添加回转函数

    void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
    {
    		HAL_UART_Transmit_IT(&huart1, a, sizeof(a));
    }
    
    

    在主函数中添加中断调用 

    HAL_UART_Transmit_IT(&huart1, a, sizeof(a));
    

    3.4 效果展示

     

     四、参考文献

    中断详解(一)——基本概念_Windeal-CSDN博客_中断概述什么是中断    中断通常被定义为一个事件,该事件能够改变处理器执行指令的顺序。这样的事件与 CPU 芯片内外部硬件电路产生的电信号相对应。    中断分为同步中断和异步中断。    同步中断——同步中断是当指令执行时由 控制单元产生的,之所以称为同步,是因为只有在一条指令终止执行后 CPU 才会发出中断    异步中断——异步中 断是由其他硬件设备依照https://blog.csdn.net/windeal3203/article/details/44588205?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163608715316780262593935%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163608715316780262593935&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-8-44588205.pc_search_result_cache&utm_term=%E4%B8%AD%E6%96%AD%E5%9F%BA%E7%A1%80%E4%BB%8B%E7%BB%8D&spm=1018.2226.3001.4187


    【STM32】HAL库 STM32CubeMX教程四---UART串口通信详解_Z小旋-CSDN博客_hal_uart_transmit前言:今天我们学习STM32CubeMX串口的操作,以及HAL库串口的配置,我们会详细的讲解各个模块的使用和具体功能,并且基于HAL库实现Printf函数功能重定向,UART中断接收,本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET62、STM32CubeMx软件3、IDE: M...https://blog.csdn.net/as480133937/article/details/99073783

    展开全文
  • 一篇自己写的计算机组成实验——TEC-8模拟中断原理实验报告的模板,比较简单,仅供学生等新手来参考,不足多多指点
  • 计算机组成原理实验报告——中断实验,附送实验仿真图和中断的c源码
  • STM32 中断原理及外部中断的实现

    千次阅读 2021-01-18 15:39:09
    NVIC 中断配置 Nested Vectored Interrupt Controller,嵌套向量中断控制器。 CM3支持256个中断,16个内核中断,240个外部中断,256级可编程中断设置。 STM32使用了其中一部分,16个内核中断,107系列有68个可屏蔽...
  • 51单片机的中断响应原理

    千次阅读 2019-11-12 11:26:35
    1.中断概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作...2.中断系统结构 3.中断允许控制 4.中断请求标志 5.中断响应条件 6.实验程序: #i...
  • 微机原理-汇编语言系统中断实验-实验报告,有代码,有注释,完全看得懂的那种
  • 计算机组成原理实验报告-中断实验
  • 微型计算机系统原理及应用:chap5-3 中断控制系统.ppt
  • 单片机原理及接口技术:7 中断系统.ppt
  • 单片机中断原理及定时器详解

    万次阅读 多人点赞 2018-04-22 17:20:21
    一、中断系统1.1.中断的概念什么是中断:CPU在处理某一事件A时,发生的另外某一事件B请求CPU去处理(产生了中断),随后CPU暂时中断当前正在执行的任务,去对事件B进行处理,CPU处理完事件B后再返回之前中断的位置...
  • 微机原理及应用:第5章中断系统.pdf
  • stm32学习笔记——中断原理

    千次阅读 2018-08-16 00:31:40
    在《微机原理》和《计算机组成》等课程[1-4]教学中(本文以MCS-51单片机为例),中断过程既是教学难点又是教学重点,它与主程序调用子程序过程有一定相似性,但又有很大区别,调用子程序过程相对比较容易掌握,通过...
  • 单片机原理及应用:第5章 80C51的中断系统及定时计数器.ppt
  • 微机原理学习笔记——中断系统

    千次阅读 2022-02-18 13:27:09
    微机原理学习笔记——中断系统
  • 【课题】单片机中断系统及工作原理
  • Linux原理与应用——专题3:中断系统调用.ppt
  • MSP430中断原理分析

    千次阅读 2019-04-28 09:35:17
    中断很大程度上体现了一款单片机的性能,从这一点将MSP430在中断方面做得很不错,主要是提供了非常丰富的中断源,基本的有IO中断,定时器中断和一些接口中断(SPI,UART,I2C)等等。 现在我就谈谈关于MSP430中断的...
  • 本文是关于系统最大关中断时间为0us的原理
  • CC的中断系统和定时器原理PPT学习教案.pptx
  • CC的中断系统和定时器原理PPT教学课件.pptx
  • 微机原理与单片机:第5章 中断系统.ppt
  • 微机原理CH9 微型计算机中断系统.ppt

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 215,290
精华内容 86,116
关键字:

中断系统的原理