嵌入式学习笔记5-中断系统

理论基础

EX0口导通为1 
中断嵌套
外部中断0是所有中断里面优先级最高的->INT0
单片机优先级	P3.2-P3.7都是和中断有关的I/O口
INT0外部中断0>TO定时计数器0>INT1>T1

在这里插入图片描述

中断涉及的几个环节
①中断源           (前面提到的甲方)
②中断申请       (甲方发出信号提出申请)
③开放中断       (乙方同意传送)
④保护现场       (安排好当前的工作)
⑤中断服务       (响应乙方的要求)
⑥恢复现场       (完事后,回去……)
⑦中断返回       (继续做打断前的工作)

中断响应条件
1.中断源有中断请求;
2.此中断源的中断允许位为1;
3.CPU开中断(即EA=1)。

以上三条同时满足时,CPU才有可能响应中断。


一次中断过程的完整步骤
中断请求
中断使能->全局中断=0   外部中断=0、
中断响应
中断处理
中断返回

中断优先级的三条原则:
1.CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
2.正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
3.正在进行的低优先级中断服务,能被高优先级中断请求所中断。

EA :全局中断使能位(总允许位)。

=0:全局中断禁止;
=1:全局中断允许。

中断函数的书写
void functionName()interrupt n
{
	...
}//interrupt表示成中断服务函数,n是中断号,中断号是编译器识别不同中断的唯一编号

中断函数与普通函数的区别
不需要声明
不能传参、
不能直接调用中断函数,它是由硬件触发的




实践部分

下降沿触发

独立按键部分默认先输入0X0F就是高电平,那么按下他就会实现高电平到低电平的下降沿从而触发中断

低电平触发

当按下独立按键的时候电平高转低,不松手的时候一直处于低电平,那么中断函数内的P2就会一直翻转,
而由于反转速度过快,人眼无法识别,所以呈现的是全亮状态。
外部中断
INT0
INT1
/*********************************************************************************
*实验名   :外部中断实验(低电平触发)
*实验效果	:按住学习板上第三排任意按键 LED灯8位全亮
              松开按键后 随机上4个或下4个灯亮
*
*********************************************************************************/
#include<reg52.h>
//按下独立按键的时候电平高转低,不松手的时候一直处于低电平,那么中断函数内的P2就会一直翻转,
    而由于反转速度过快,人眼无法识别,所以呈现的是全亮状态。
void main()
{
    P1=0X0F;//0000 1111	 前四个灯灭 后四个灯亮
	P3=0X0F;//独立按键部分默认先输入0X0F就是高电平,那么按下他就会实现高电平到低电平的下降沿从而触发中断
	EA=1;//全局中断打开
	EX0=1;//INT0中断开启
	IT0=0;//低电平触发
	while(1)
	{
	    ;
	}
}

void ISR_KEY()interrupt 0	 //中断服务函数
{
    P1=~P1;
}
/*********************************************************************************
*实验名   :外部中断实验(下降沿触发)
*实验效果	:按下学习板上第三排任意按键,LED灯前后四位状态调换
*
*********************************************************************************/
#include<reg52.h>
//按一次就跳变,也就是说开始前四个灯不亮后四个亮,按下之后就反过来
void main()
{
    P1=0X0F;//0000 1111	 前四个灯灭 后四个灯亮
	P3=0X0F;
	EA=1;//全局中断打开
	EX0=1;//INT0中断允许
	IT0=1;//触发方式为下降沿触发
	while(1)
	{
	    ;
	}
}

void ISR_KEY()interrupt 0
{
    P1=~P1;
}
EX0(IE.0),外部中断0允许位;
ET0(IE.1),定时/计数器T0中断允许位;
EX1(IE.2),外部中断0允许位;
ET1(IE.3),定时/计数器T1中断允许位;
ES(IE.4),串行口中断允许位;
EA (IE.7), CPU中断允许(总允许)位。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值