×
单片机 > 单片机程序设计 > 详情

C51的中断函数的格式

发布时间:2020-06-04 发布时间:
|
C51的中断函数的格式为:void FuncIr(void) interrupt x [using y]

 void 函数名(void) interrupt  n  using  m   
  {    
  函数体语句       
  }       
  interrupt  using  是C51中断服务程序引入关键字只能用于C51中断服务程序逻辑

定义中断函数时,using是一个选项,可以省略不用。如果不用则由编译器选择一个寄存器组作为绝对寄存器组。
             
  n是中断号           
  0       是外部中断0   
  1       是定时中断T0   
  2       是外部中断1   
  3       是定时中断T1   
  4       是串行中断   
  5       是定时器T2   
    m是寄存器组       
  0——3     4组   
  不使用编译器将当前工作寄存器都入堆栈    
  注意#include     文件
使用中断函数时要注意的问题:
1.    在设计中断时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中。一般来说中断服务程序应该做最少量的工作,这样做有很多好处。首先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果,这时有充足的时间等待中断是十分重要的。其次它可使中断服务程序的结构简单,不容易出错。
中断程序中放入的东西越多,他们之间越容易起冲突。简化中断服务程序意味着软件中将有更多的代码段,但可把这些都放入主程序中。中断服务程序的设计对系统的成败有至关重要的作用,要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作的ISR.
2.    中断函数不能传递参数。
3.    中断函数没有返回值。
4.    中断函数调用其他函数,则要保证使用相同的寄存器组,否则出错。
5.    中断函数使用浮点运算要保存浮点寄存器的状态。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计