欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

单片机c语言中断,该如何处理

更新时间: 2014-05-16 12:57:08 责任编辑: Author_N6

 

单片机C语言中断
大家好请问用C语言怎么写中断啊?具体问题是:
1、中断函数的格式是什么啊?
2、怎么实现多中断啊?
3、写中断应该注意什么问题啊?
以上以51或PIC单片机为例!最好是PIC的!谢谢!

--参考方法--
编译器自动产生中断向量和程序的入栈及出栈代码。在函数声明时包括interrupt,将把所声明的函数定义为一个中断服务程序。另外,可以用using定义此中断服务程序所使用的寄存器组。中断函数的定义中断函数定义的格式为:函数类型 函数名 interrupt n using n其中:Interrupt后面的n是中断号。关键字using后面的n是所选择的寄存器组,取值范围是0-3.定义中断函数时,using是一个选项,可以省略不用。如果不用则由编译器选择一个寄存器组作为绝对寄存器组。8051的中断过程通过使用interrupt关键字和中断号来实现,中断号告诉编译器中断程序的入口地址。中断号对应着IE寄存器中的使能位,换句话说,IE寄存器中的0位对应着外部中断0,相应的外部中断0的中断号是0.IE寄存器中的使能位与外部中断对应关系: 中断号 中断源0 外部中断01 定时器02 外部中断13 定时器1中断4 串行口中断5 定时器2中断使用中断函数时要注意的问题:1. 在设计中断时,要注意的是哪些功能应该放在中断程序中,哪些功能应该放在主程序中。一般来说中断服务程序应该做最少量的工作,这样做有很多好处。首先系统对中断的反应面更宽了,有些系统如果丢失中断或对中断反应太慢将产生十分严重的后果,这时有充足的时间等待中断是十分重要的。其次它可使中断服务程序的结构简单,不容易出错。中断程序中放入的东西越多,他们之间越容易起冲突。简化中断服务程序意味着软件中将有更多的代码段,但可把这些都放入主程序中。中断服务程序的设计对系统的成败有至关重要的作用,要仔细考虑各中断之间的关系和每个中断执行的时间,特别要注意那些对同一个数据进行操作的ISR.2. 中断函数不能传递参数。3. 中断函数没有返回值。4. 中断函数调用其他函数,则要保证使用相同的寄存器组,否则出错。5. 中断函数使用浮点运算要保存浮点寄存器的状态
--参考方法--
不同的编译器即使同一种MCU中断的表示方法也不一样
--参考方法--
51 的中断例程序

http://www.devmcu.com/bbs/Show.Asp?ID=41
--参考方法--
你去看看郭天祥的单片机教程把,里面讲的虽然比较基础,但是还是很受用的。。。
--参考方法--
interrupt n using n
--参考方法--

void timer0() interrupt 1 
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
aa++;
}
--参考方法--
LZ先搞懂中断的本质

然后,具体到你要用的单片机芯片的中断结构

再到编码

这路虽然慢一些,可是踏实
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-05-16 12:57:08
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/623774/
本文WWW.DOC100.NET DOC100.NET版权所有。