中断

中断概念与中断触发:

中断的概念:

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);

CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);

待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。

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

结构:

中断嵌套:在中断中再次响应一个中断。

引起CPU中断的根源,称为中断源。

TNT0、TNT1:外部中断0,外部中断1。各含两种触发方式。

T0,T1:定时器0,定时器1

RX、TX:串口中断

IE:中断开关

  • EX0,EX1 ET0 ET1 ES :每个中断源自己的开关
  • ​​​​​​EA:总中断开关

TCON中的IT0 IT1:两种触发方式:低电平有效或延下降沿有效

中断源:

​​​​​​

(这里仅讲外部中断的触发,定时器与串口的触发放在定时器和串口通信中)

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

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

中断号:优先级越高,中断号越小 (0 1 2 3 4)

中断允许控制:

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

vEX0(IE.0),外部中断0允许位;

vET0(IE.1),定时/计数器T0中断允许位;

vEX1(IE.2),外部中断0允许位;

vET1(IE.3),定时/计数器T1中断允许位;

vESIE.4),串行口中断允许位;

vEA (IE.7) CPU中断允许(总允许)位。

上述位:1:允许  0:禁止

中断请求标志:

​​​​​​

(可手动控制中断请求的标志,例如: IT0= 0 下降沿方式无效 低电平触发才有用)

vIT0TCON.0),外部中断0触发方式控制位。

        当IT0=0时,为电平触发方式。

        当IT0=1时,为边沿触发方式(下降沿有效)。

vIE0TCON.1),外部中断0中断请求标志位。

vIT1TCON.2),外部中断1触发方式控制位。

vIE1TCON.3),外部中断1中断请求标志位。

vTF0TCON.5),定时/计数器T0溢出中断请求标志位。

vTF1TCON.7),定时/计数器T1溢出中断请求标志位。

中断优先级:

原则:

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

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

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

为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。

中断处理过程:

v 中断源有中断请求;

v 此中断源的中断允许位为1

v CPU开中断(即EA=1)。

如何使用中断:

v你想使用的中断是哪个?选择相应的中断号;(中断号对应中断的方式)​​​​​​

v你所希望的触发条件是什么?(下降沿 低电平)​​​​​​

v你希望在中断之后干什么?(写入函数中)

注意:

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

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

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

中断服务函数:​​​​​​

void   fun_name   ()  interrupt   0  {​​​​​​

}

应用:

 #include<reg52.h>
#define uchar unsigned char
#define uint unsigned int sbit led0=P0^0;unsigned char code smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};void delay_50ms(uint t)
{uint j;for(;t>0;t--)for(j=6245;j>0;j--);
}void main()
{uchar i;EA=1;  //开总中断开关EX0=1;     //打开外部中断0开关IT0=1;  //触发方式设置while(1){for(i=0;i<10;i++)//数码管在自己跳动{P1=smg_du[i];delay_50ms(10);}}
}
//中断怎么触发的:P3^2引脚低电平
//查电路图得:KEY1 按键被按下实现P32低电平
void int0 () interrupt 0//中断触发结果:led0被点亮
{led0=0;delay_50ms(20);led0=1;
}

【C51自学笔记】中断系统相关推荐

  1. DSP28335笔记 ———— 中断系统 之 外部中断

    DSP28335笔记 ---- 中断系统 之 外部中断 我用的开发板是"硬汉DSP28335开发板",文中对于硬件的描述可以说是没有,而且我还没有附上电路图希望在看的朋友不要喷我. ...

  2. 51单片机笔记:中断系统

    单片机笔记 中断系统 工作原理 功能描述 终止当前进行的事件,去处理突发需及时处理的事件,处理完还要返回原事件. 中断符函数 void ISR() interupt n 中断符函数与普通函数区别 普通 ...

  3. 【Keil5 C51】AT89C52 中断系统与定时/计数器的介绍

    80C51中断系统 结构 80C51有5个中断源(89C52有6个),2个优先级,可实现二级中断嵌套 TCON中断标志 IT0(TCON.0),外部中断0触发方式控制位 IE0(TCON.1),外部中 ...

  4. 微机原理学习笔记——中断系统

    中断系统 目录 中断系统 一.中断的基本概念 中断源 开中断和关中断 中断优先权 中断向量表 中断过程 二.8086中断系统 中断源 可屏蔽中断周期 中断向量表 中断过程 三.可编程中断控制器8259 ...

  5. stm32学习笔记-中断系统

    文章目录 问题引入 1.中断系统概述. 1.1 为什么要中断(中断意义) 中断和轮询比较: 1.2 中断处理过程 1.3 中断笔试题 1.4 中断服务函数 2.STM32中断的体系结构. 2.1 结构 ...

  6. imx6q自学笔记---ubuntu系统入门

    因为本科毕设要用到imx6q,于是乎在寒假开启了我的im6q学习之路,入手的板子为飞凌的OKMX6Q-C,不料官方提供的教程实在过少(可以说是没有教程,突然感觉这板子应该不是我这种菜鸡该用的),,,还 ...

  7. 兜兜的c51自学笔记-流水灯

    时值2021暑假,兜某申请留校,开始51单片机学习之路. 正文开始之前,得感谢实验室学长的帮助 正文 c51对现在得我来说,就是一块可以被点亮得板子,从io口到寄存器,实际上我都是一知半解,那么我就从 ...

  8. (linux自学笔记)linux系统初体验与编程基础

    原文出处: http://www.cnblogs.com/hebaichuanyeah/ 接触linux几天时间.感觉快要完全放弃IDE和图形界面了--虽然个人感觉IDE方便很多. 关于gcc gcc ...

  9. C51单片机————中断系统

    51单片机中断系统 CPU和外设之间的速度差异太大,CPU跑的太快了,外设追不上,机器的内部也可能出现突发事件.那怎么办?所以引入中断技术呀. Created with Raphaël 2.1.2张三 ...

最新文章

  1. Mysql之主从复制及主主复制
  2. 后台开发经典书籍--代码大全
  3. 小程序自动化测试--测试3
  4. unix高级编程apue.h问题
  5. 使用GZIP和压缩数据
  6. 嵌入式系统实时仿真解决方案SkyEye
  7. Bootstrap 图片替换
  8. iOS 控制器View加载顺序详细版
  9. 栈(后缀表达式的理想数据结构)
  10. 性能可靠服务器虚拟化,服务器虚拟化分析
  11. 将SolidWorks物料清单导出到Excel时可带缩略图了!
  12. 恒生电子2018秋招笔经面经(开发岗)
  13. python设计报告的前言怎么写_前  言_Python语言程序设计_红黑联盟读书频道
  14. Dreamweaver CS6安装教程
  15. 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day6)
  16. 于娟的忠告----生命只有一次,活着才是王道啊
  17. win10浏览器闪退_Win10 Build 14942 Edge 浏览器闪退怎么解决?
  18. opencv3/C++ 积分图像
  19. UCAS计算机网络实验
  20. PyCharm Professional 2016.1 破解 激活

热门文章

  1. 三星 摄像头 linux,基于Linux 3.0.8 Samsung FIMC(S5PV210) 的摄像头驱动框架解读(一)...
  2. 不是握住了一只蝉,就能拥有整个夏天,也不是得到了谁的偏爱,就能够永远。爱没用,相爱才有用。
  3. HPA 管理--创建 HPA 规则
  4. 如何做好功能测试?5年测试老湿机教你秀好这5点骚操作...
  5. 欠钱不还,2021老赖的下场
  6. 阿里云专属KMS信封加解密工具类
  7. 强烈推荐款下载不限速解析神器
  8. Coursera课程自然语言处理(NLP)笔记整理(六) (第四周课程)
  9. 2020年山东事业单位都考什么?(山东事业编)
  10. 军工安全门禁管理系统