热度 15
2012-10-13 14:11
1299 次阅读|
0 个评论
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 reg5X.h 文件 单片机有四组寄存器组,如果你用汇编写程序,当进入中断后,你不想将现有的寄存器入栈,哪么可切换寄存器组,如切换到1组,然后退出中断时,再切换到0组,同时,在你另外一个中断里如果不想保存寄存器,你可切换到2组,返回时再切换到0组,也就是说程序采用0组寄存器,中断可采用其它三组,如果不想保存寄存器,一个中断只能用一组,否则得保存寄存器。在C51里就是通过using来实现这个功能的,如果你在写定时器时,并加上using 1,哪么你可以查看一下列表,它不再保存寄存器.