中断系统

中断系统

一、基本知识

1、中断的意义—解决突发事件和多任务

2在这里插入图片描述

3、优点

①分时操作:分时对多个外设进行服务
②实时响应:通过硬件来实施中断的周期,准确
③可靠性高:具有处理故障和掉电的突发事件的能力

4在这里插入图片描述

一次完整步骤:
1中断请求 2中断使能 3中断响应 4中断处理 5中断返回
135是硬件在完成的
2是软件完成,即在 寄存器上修改值

响应中断时,中断标志都会被硬件清零

5

中断系统的硬件
①外部中断
②内部定时器
③内部串行口

6

中断系统的流程:
IE寄存器(各单路开关)–EA位(总开关)–IP寄存器–中断源标志位–中断入口

中断允许控制位=0,断开,禁止;=1,接通,允许

使用中断前要先把 EA置于1位 ,大门打开

7 具体的中断操作

串口:P3^3=INT0 外部中断0,优先级最高
P3^4=INT1 ( ^ 3 - ^ 7 都是与中断有关的串口)

IT0=1表示INT0这个串口为下降沿触发,IT0=0表示INT0为低电平触发
(在最开始要根据自己的需求,赋值好,确定为 什么情况下触发)
IE0=1表示INT0有中断产生

中断允许控制:中断允许寄存器IE 控制
EA是总开关,在这里插入图片描述
中断优先级控制: IP寄存器控制

中断响应条件: 有中断请求;中断源中断允许位是1;CPU开中断(EA=1)

中断服务函数,不需要声明,该函数不是被调用的,是被硬件触发的

void 函数名 () interrupt n //interrupt是中断函数的标志; n为中断编号
{
		;
}

中断的嵌套:在执行中断服务程序期间,又有一个新的中断源提出中断请求;如果是同级,则不响应;如果优先级高 ,就会发生嵌套

//简单中断的实现 (一、下降沿触发中断)

#include <reg52.h>
void main()
{
P1=0x0f; //0000 1111
P3=0x0f;
EA=1;//全局中断 打开
EX0=1;//外部中断允许位
IT0=1;//使用下降沿触发 ,使用P3的按键来实现 ,高低电平切换时,会碰到下降沿,来触发 
while(1)
{
;          //保证单片机在空跑,即有在运行
}
}

void key() interrupt 0  //中断函数,触发到中断函数时,P1取反,
{ 						//让LED灯亮灯位置改变,以此显示该函数被触发
P1=~P1;
}


//简单中断的实现 (二、低电平触发中断)
#include <reg52.h>

void main()
{
	P1=0x0f;
	P3=0x0f;
	EA=1;//大门
	EX0=1;//小门
	IT0=0;//=0是低电平触发
while(1)
{
;         //保证单片机在空跑,即有在运行
}
}


void key() interrupt 0//中断函数
{
P1=~P1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值