一,阐述中断的基本概念
1.中断流程示意图及过程说明:
(1)流程示意图:
file:///C:/Users/lenovo/AppData/Local/Temp/enhtmlclip/0439a553-89f3-4562-9ff4-1e9f9717e6d6.jpg
(2)执行过程描述说明:
当CPU在处理事件A时,另一事件B发出请求(中断请求);
CPU暂时中断当前事件A的工作(中断主程序的执行),转去处理事件B(中断响应和中断服务);
等CPU将事件B处理完毕后,再回到原来的事件A被中断的地方,继续处理事件A(中断返回)。
2.中断的优势:
(1)分时操作。CPU可以分时为多个外设服务,提高了计算机的利用率。
(2)实时响应。CPU能够及时处理应用系统的随机事件,系统的实时性大大增强。
(3)可靠性高。CPU具有处理设备故障及掉电等突性发事件的能力,使系统可靠性提高。
3.中断函数与普通函数的异同:
(1)相同点:
①函数的形式非常类似,中断响应过程和普通函数调用过程也非常相似。
(2)不同点:
① 中断服务函数不需要声明,普通函数一般需要声明。
② 普通函数的执行是可预测的;中断服务函数的执行是不可预测的。
③ 普通函数的跳转是软件(函数调用语句)完成的;中断服务的跳转(中断响应)是由硬件完成的,
只要发生了中断事件,并且中断被允许,硬件自动完成中断服务的跳转(中断响应)。
④ 普通函数通过函数名找到被调用函数;中断服务函数通过中断号找到中断服务函数。
由此可知,中断服务函数中的函数名其实并没有什么作用。
4.中断函数的编码注意事项:
(1) interrupt 必须要加,表示定义成中断服务函数。
(2)中断号: 后面n是中断号,中断号是编译器识别不同中断的唯一编号。
(3)优先级:80C51
单片机支持多个中断同时发生。为了解决优先级问题,单片机使用了一个中断优先级表,
当多个中断同时发生时,系统会根据优先级表来决定先处理哪个中断。
因此,在编写中断函数时,需要为每个中断源设置合适的优先级。
5. 中断使用中的注意事项(遵循以下规则):
(1)中断服务函数不能进行参数转递。
(2)在任何情祝下,都不能直接调用中断服务函数。