新闻  |   论坛  |   博客  |   在线研讨会
c51 中断服务程序的写法
0750long | 2010-02-03 21:26:14    阅读:19803   发布文章


    格式:void 函数名()interrupt 中断号 using 工作组
  {
  中断服务程序内容
  }
  注意:中断不能返回任何值,所以前面是 void 后面是函数名,名字可以自己起,但不要与c语言的关键字相同;中断函数不带任何参数,所以 函数名后面的  () 内是 空的,中断号是指单片机的几个中断源的序号。这个序号是单片机识别不同中断的唯一标志。所以一定要写正确。
  后面的using 工作组 是指这个这个中断使用单片机内存中 4 个工作寄存器的哪一组,  c51 编译后会自动分配工作组,因此最后这句话我们通常省略不写。 c51 中断写法实例   void T1-time() interrupt 3
  {
  TH1=(65536-50000)/256;
  TL1=(65536-50000)%256;
  }
  上面的意思是定时器  1 的中断服务程序,定时器  1  的中断服务序号是  3 ,因此我们要写成 interrupt 3 ,服务程序的内容是给 两个初值寄存器装入新值。。
   写中断前的准备 1  TMOD 赋值  确定工作方式。T0  还是T1  的工作方式。
  2  计算初值  装入 TH0 TL0 或者  TH1 TL1
  3  中断方式时 ,对 IE 赋值,开放中断。
  4  使 TR0 和 TR1 置位,启动定时器/计数器  定时/计数。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客