51单片机学习记录(二)————外部中断


前言

一个学习嵌入式的小白~ 有错误评论区或私信指出

提示:以下是本篇文章正文内容,下面案例可供参考

一、中断

1.中断的定义

在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转去处理中断程序,处理完成后又返回被暂停的位置继续执行。
在这里插入图片描述

2.中断的优先级
当多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源

3.中断嵌套
中断嵌套是指中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行的过程。
在这里插入图片描述

二、51中断

1.中断源

在这里插入图片描述
中断号:
在这里插入图片描述

2.中断的配置

从下图中可以看出,我们的51单片机中断部分流程如下:
①检测对应中断源标志位
②检测对应中断开关是否打开
③检测总中断是否打开
④查询是否有优先级更高或同优先级中断正在执行
⑤有高优先级或同级,等待其执行完毕进行中断;无高优先级和同级,直接进行中断
在这里插入图片描述

3.中断允许控制寄存器

在这里插入图片描述

4.中断触发方式

51中断有两种触发方式:

1.电平触发-----低电平触发
2.边沿触发-----下降沿触发
在这里插入图片描述

三、外部中断

1.外部中断引脚

在这里插入图片描述

2.外部中断配置(以外部中断0为例)

选择触发方式————IT0 = 1;下降沿 IT0 = 0;低电平触发
①检测对应中断源标志位————IE0 = 0;清除中断标志位防止一上电就产生中断
②检测对应中断开关是否打开————EX0 = 1打开外部中断0
③检测总中断是否打开————EA = 1;打开
④查询是否有优先级更高或同优先级中断正在执行————PX0 = 1;时为高优先级
⑤有高优先级或同级,等待其执行完毕进行中断;无高优先级和同级,直接进行中断

	void INT0_Init()
	{
		IT0 = 0;
		IE0 = 0;
		EX0 = 1;
		EA = 1;
		PX0 = 0;
	}
	
	void main()
	{
		INT0_Init();
		while(1);
	}

	void INT0_Routine() interrupt 0
	{
		LED = ~LED;
		Delay(1000);
	}

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值