C51中的中断服务程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C51中的中断服务程序
void 函数名(void) interrupt n using m {
函数体语句
}
interrupt using 是C51中断服务程序引入关键字只能用于C51中断服务程序逻辑
n是中断号
0 是外部中断0
1 是定时中断T0
2 是外部中断1
3 是定时中断T1
4 是串行中断
5 是定时器T2
m是寄存器组
0——3 4组
不使用编译器将当前工作寄存器都入堆栈
注意#include
单片机有四组寄存器组,如果你用汇编写程序,当进入中断后,你不想将现有的寄存器入栈,哪么可切换寄存器组,如切换到1组,然后退出中断时,再切换到0组,同时,在你另外一个中断里如果不想保存寄存器,你可切换到2组,返回时再切换到0组,也就是说程序采用0组寄存器,中断可采用其它三组,如果不想保存寄存器,一个中断只能用一组,否则得保存寄存器。在C51里就是通过using来实现这个功能的,如果你在写定时器时,并加上using 1,哪么你可以查看一下列表,它不再保存寄存器。