1.什么是中断?
- 中断: 停止当前工作,执行紧急时间,执行完毕回到先前工作
- 中断系统: 实现中断功能的部件
单片机提供 8 个中断请求源
- 外部中断 0 INT0
- 外部中断 1 INT1
- 外部中断 2 INT2
- 外部中断 3 INT3
- 定时器 0 中断 Timer0
- 定时器 1 中断 Timer1
- 定时器 2 中断 Timer2
- 串口中断 UART
2.什么是中断优先级?
同时出现 A 中断,B 中断,先执行 A 还是 B 的问题
- 控制方法 1: 设置中断优先级
- 控制方法 2: 中断嵌套( 做 A 来了 B,先做 B 在做 A,又来了 C,先做 C 在做 B 在做 A)
设置中断优先级如下图所示
我们通过 对 IPH,IP
设置 01
来决定 第一优先,第二优先,第三优先,第四优先,相同优先级按第三列优先级优先。
3.如何设置中断
- 结合图一分析
- 图一 INT0 的 IPH 为 PX0H 和 PX0 设置第一优先级 就将 PX0H=1,PX0=1
- 图一 INT0 的 中断请求标志位位 IE0,中断允许控制位为 EX0 和 EA
- 结合上述看图二
- 设置第一优先级找到 PX0H 和 PX0,分别为
0xB7^0,0XB8^0
设置值即可 - 允许 INT0 中断的 EX0 和 EA 位于
0xA8^0
,0xA8^8
如想控制 INT0 中断,设置值即可
图一的每一个标识在图二中都能找到寄存地址,设值即可。
4.中断在电路中
如上为完整电路图,下面分组分析
- 1.第一组为中断类型
- 2.第二组为 中断请求标志位,我们看到 TIMER 类型的相同,INT 类型相同,UART 单独分为一组,INT 对应标志位为 IE0-3,Timer 为 TF1-2,UART 为 RI 和 TI。
- 3.第三组为中断允许控制位,只有 EA 和 EX/ET/ES 合路,中断才会被接通
- 4.第四组为优先级,在预设优先级基础上,每组中断三种优先级设置
5.中断函数
中断后触发的函数
5.如何中断
- 1.开启中断
- 2.设置寄存器
- 3.实现中断函数
6.中断案例
- EA 开关打开
- EX0 开关打开,至此 int0 中断打开
- IT0 设置中断模式为下降沿触发模式
IT0 功能见下表
- IT0 = 0: P32 低电平触发中断
- IT0 = 1: P32 下降沿触发中断
- 下降沿:高电平转至低电平 1->0
- 上升沿: 低电平转至高电平 0->1
将程序录入板子,随意找个金属导电体接触 P32 小孔,看 LED 变化。
为什么当接触 P32 小孔时会触发中断呢?
因为你是导体,你接地,自然就变为 0,也就是低电平了。