C语言中using n]的用途
点击数:7776 次 录入时间:03-04 12:03:42 整理:http://www.55dianzi.com 电脑-单片机-自动控制
C语言中断函数定义时,后面还有一个选项using,这个选项是指定选用51芯片内部4组工作寄存器中的哪一组。
为进行中断的现场保护,C51除采用堆栈技术外,还独特地采用寄存器组的方式,在C51中一共有4组名称均为RO—R7的工作寄存器,中断产生时,可以通过简单地设置RSO、RSl来切换工作寄存器组,这使得保护工作非常简单和快速。使用汇编语言时,内存的使用均由编程者设定,编程时通过设置RSO、RSl来选择切换工作寄存器组,但使用C语言编程时,内存是由编译器分配的。因此,我们不能简单地通过设置RS0、RSl来切换工作寄存器组,但是可以不做工作寄存器设定,而由编译器自动选择,避免产生不必要的错误,否则会造成内存使用的冲突。
在C51中。寄存器组选择取决于特定的编译器指令,即使用usingn指定,其中n的值是0—3。对应使用四组工作寄存器。
例如voidtjmer0()interrupt 1 using 2,即表示在该中断程序中使用定时器/计数器0和第2组工作寄存器。
在使用中断服务函数时还应注意
:1、任何情况下都不能直接调用中断函数,否则会产生编译错误;
2、在中断函数中调用其它函数,那么两者所使用的寄存器组应该相同。
本文关键字:C语言 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制