51单片机中断系统


CPU和外设之间的速度差异太大,CPU跑的太快了,外设追不上,机器的内部也可能出现突发事件。那怎么办?所以引入中断技术呀。

Created with Raphaël 2.1.2张三张三李四李四嘿,小四儿, 什么是单片机中断哇?李四愣了一下,说:你猜猜**!
  • 那什么是中断哇?

    CPU和外设并行工作,有突发事件或者外设要给CPU请安的时候,外设就发一个信号给CPU,CPU就去见见外设见面完了CPU又回来干自己的事情。这个过程就是中断!

  • 中断源?
    中断申请的来源(就是说是哪一个外设发起了中断)

  • 中断优先级
    万一有几个外设来找CPU,我们怎么办喃?那我们就给他门排个顺序,CPU先见排在前面的。这个顺序就是他的优先级。
    那顺序咋个定喃? 那你要事先安排好咯!


中断源

C51一共有5个中断源(C52有6个)

中断源 名称 引脚 入口地址
INT0 外部中断0 P3.2 0003h
INT1 外部中断1 P3.3 0013h
T0 0号定时器中断 P3.4 000bh
T1 1号定时器中断 P3.5 001bh
TI/RI 串行口中断 P3.1 TXD 0023h

中断控制有关寄存器

中断我们需要考虑几个方面

  1. 中断打开没
  2. 怎么触发中断
  3. 中断的启停
  4. 多个中断触发后如何响应

IE 中断的允许与禁止(地址A8h)

EA ET2 ES ET1 EX1 ET0 EX0
中断总开关 暂时不用 T2 串行口TXD T1 int1 T0 int0
1开0关 暂时不用 1开0关 1开0关 1开0关 1开0关 1开0关 1开0关

TCON 中断的请求与外部中断的选择(地址88h)![这

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
T1中断请求 T1工作启停 T0中断请求 T0工作启停 int1中断请求 int1中断触发方式 int0中断请求 int0中断触发方式
1请求0无请求 1启动0停止 1请求0无请求 1启动0停止 1请求0无请求 1下降沿0低电平 1请求0无请求 1下降沿0低电平

IP 中断的优先管理(地址88h)

PT2 PS PT1 PX1 PT0 PX0
T2 串行口 T1 int1 T0 int0
1高0低 1高0低 1高0低 1高0低 1高0低 1高0低


中断过程


C51中断(和8086的区别):

  • 不会自动保护标志寄存器PSW
  • 不会自动保护现场
  • 不会自动关中断
  • 不会自动发送中断响应信号

什么时候不会响应中断呢?

  1. 当前指令没有结束
  2. 响应了同级或者高级中断
  3. 操作IE、IP中断控制寄存器
  4. 执行RETI(从中断服务程序返回、回复中断优先级状态触发器)指令

中断的撤除

  1. 对于T0、T1的溢出中断:CPU响应后,会硬件清除中断请求标志TF0、TF1(自动撤除)
  2. 对于边沿触发的int0、int1中断,自动撤除
  3. 低电平触发的int0、int1中断,需要在响应之后撤除中断请求
  4. 串行口和T2中断,没用硬件清除中断标志TI、RI、TF2和EXF2(不会自动撤除),需要软件清除!

C语言和汇编的中断

C语言中断函数定义

返回值 函数名(【参数】)[模式][再入]interrupt n[using m]

n 0 1 2 3 4 5
中断源编号 int0 T0 int1 T1 串行口 T2

返回值:返回值
参数:形参 函数的输入
m : 选择工作的寄存器组
再入(reentrant): C51中普通函数不可递归调用,只有再入函数可以递归

#include<reg51.h>
unsigned char i=0;
int0() interrupt 2//中断函数
{i++;//计算中断次数
}
main()//主函数
{EA=1;//中断总开关EX1=1//外部中断1  允许中断IT1=1;//下降沿有效
}
ORG 0000H
AJMP MAIN
ORG 0013H       ;中断子程序入口
AJMP COUNTING   ;中断函数名
ORG 0030H
MAIN: SETB EA      ;中断总开关SETB EX1     ;外部中断1  允许中断SETB IT1     ;下降沿有效
HERE:AJMP HERE
COUNTING:INC A        ;a++RETI
END

C51单片机————中断系统相关推荐

  1. 中断系统的简单了解以及C51(STC89C52)单片机中断系统的详解

    目录 一.中断系统简介 二.C51单片机的中断 1.外部中断 2.定时器/计数器中断 三.总结 一.中断系统简介 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的. 当中央处理机CPU正在 ...

  2. 单片机中断系统(51为例)

    单片机中断系统概述: 中断是指单片机的CPU在执行程序过程中,外部有一些事件变化,如数据采集结束,电平变化,定时器/计数器溢出等,要求CPU立即处理,这时CPU暂时停止当前的执行程序,转去处理中断请求 ...

  3. 基于STC89C51单片机中断系统操作

    MCS-51 单片机中断系统 CPU正在处理某件事情时,外部发生另一件事情,请求CPU处理后CPU暂时停止工作后,转入处理发生的事情,结束后返回原任务.这一程序称为中断. Created with R ...

  4. 51单片机中断系统实验

    51单片机中断系统实验 一.实验内容 INT0端接单次脉冲发生器.按一次脉冲产生一次中断,CPU使P1.0状态发生一次反转,P1.0接LED灯,以查看信号反转. 根据实验内容编写一个程序,并在实验系统 ...

  5. C51单片机——中断与定时器

    中断是大多数CPU最精彩的部分之一,下面我们通过讲解和编程练习学习中断和定时器相关概念 目录 1.1.什么是中断 1.2.中断的种类 1.3中断的相关概念 1.4. 51单片机可用中断及相关引脚 1. ...

  6. 51单片机 | 中断系统概念及结构

    -------------------------------------------- 中断的过程: 对于单片机来讲,中断是指CPU在处理某一时间A时,发生了另一事件B请求CPU立刻去处理(中断发生 ...

  7. 单片机c语言中断意义,51单片机中断系统的重要性

    描述 在接下来的教程中,将会介绍定时器.串口通信等外设的基本使用,而这些外设的使用都要涉及中断,而且中断是单片机或嵌入式开发中一个相当重要的概念.不能掌握中断系统,就无法灵活应用这些外设. 1.什么是 ...

  8. 单片机中断系统应用实例(两组实验+Proteus仿真+C源程序)

    中断系统应用实例 1.实验说明 2.实验一 2.1.实验效果 2.2.Proteus仿真图 2.3.源程序 3.实验二 3.1.实验效果 3.2.Proteus仿真图 3.3.源程序 1.实验说明 实 ...

  9. 蓝桥杯单片机——中断系统(7)

    一.原理分析 1.什么是中断? CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生):CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务):待CPU将事件B处理完毕后, ...

最新文章

  1. 第三天:Vue的组件化
  2. top在html5里什么意思,html中的scrolltop是什么意思
  3. STC8G1K单片机软件执行时间物理测量
  4. CSS笔记(十)position属性与定位
  5. 动态规划之——又见拦截导弹(nyoj814)
  6. abv asp是静态网页吗_2019年seo动态网页优化“指南针”
  7. springboot点击运行没反应,什么都不显示的解决方式
  8. java教学楼的属性_java设计一个父类建筑物building,由它派生出教学楼类classroom,然后采用一些数据进行测试....
  9. 神经网络中的 Dropout 以及变体方法
  10. Softmax和softmax loss的理解
  11. 凌阳单片机c语言延时函数,凌阳单片机C语言(网站整理).doc
  12. 基于Springboot的物业管理系统_代码
  13. 计算机制图基本知识6,机械制图及计算机绘图教案.doc
  14. 我为什么找不到同事的计算机,局域网找不到其他电脑,其它同事的电脑能找出我...
  15. Swift Archiving序列化
  16. 爬虫项目七:Python对唯品会商品数据、评论数据的爬取
  17. Tensorboard无法显示图像
  18. 96Boards MIPI CSI Camera Mezzanine V2.1
  19. C. Edgy Trees---(思维题+并查集的运用)---Codeforces Round #548 (Div. 2)
  20. Python数据分析实战之物流行业数据分析

热门文章

  1. JAVA中for循环缩制表位_用vim中的空格替换制表符
  2. 转行进入测试一年有感
  3. 【产品对比】Word开发工具Aspose.Words和Spire.Doc性能和优劣对比一览
  4. LeetCode 38. Count and Say
  5. C++Event机制的简单实现
  6. thinkphp所有参数配置
  7. Hadoop 2.4.1 设置问题小结【原创】
  8. hdu-1862-EXCEL排序
  9. SQL Server IDENDITY 的用法
  10. java 蓝桥杯算法训练 快速排序