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


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低

8XXC51中断结构


中断过程


这里写图片描述

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语言中断函数定义

扫描二维码关注公众号,回复: 2165818 查看本文章

返回值 函数名(【参数】)[模式][再入]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

猜你喜欢

转载自blog.csdn.net/qq_36739040/article/details/81045266