文章目录
- 前言
- 一、中断
- 1.中断的定义
- 二、51中断
- 1.中断源
- 2.中断的配置
- 3.中断允许控制寄存器
- 4.中断触发方式
- 51中断有两种触发方式:
- 三、外部中断
- 1.外部中断引脚
- 2.外部中断配置(以外部中断0为例)
- 总结
前言
一个学习嵌入式的小白~ 有错误评论区或私信指出
提示:以下是本篇文章正文内容,下面案例可供参考
一、中断
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提供了大量能使我们快速便捷地处理数据的函数和方法。