单片机/MCU论坛
直播中

jf_54073875

1年用户 6经验值
擅长:可编程逻辑 MEMS/传感技术 接口/总线/驱动
私信 关注
[资料]

C51单片机中断流程分析与示例


一,阐述中断的基本概念
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)在任何情祝下,都不能直接调用中断服务函数。

更多回帖

发帖
×
20
完善资料,
赚取积分