A. 51单片机中断 C语言请教!
格式是:函数类型 函数名(形式参数表) [interrupt n][using n]
interrupt是中断函数类型关键字,其后面的n是中断号,范围是0-31
51单片机内可以在片内RAM中使用4个不同的工作寄存器组,每个寄存器组中包含8个工作寄存器(R0-R7)。而using就是用来选择不同的工作寄存器组的,其后面的n是一个0-3的正整数,分别选中4个不同的工作寄存器组。using是一个选项,如果不用则由编译器自动选择一个寄存器组作为绝对寄存器组访问。
注意:关键字using和interrupt的后面都不允许跟带运算符的表达式,只能是一个在一定范围内的常数!
这个我就不太清楚了,可能是为了扩展使用,一般51单片机的接口多
B. 求助51单片机 定时器中断子程序的问题
因为呀,你在写中断处理函数的时候,已经用了特殊的关键字来告诉编译器,这个函数是中断函数,所以就特殊处理了~必须用特殊关键字 指定这个函数,这样编译器才会在你不知道的背后,做些额外处理,比如压栈,出栈,如果你用汇编来写,这些都要你自己做,但既然用C语言了,这些操作又是比较通用的,所以编译器就会自动给你做了。同时,编译器会自动建立起中断向量的联系,让中断发生时能跳转到你的中断处理函数执行。这种方式在51,arm7,430都有使用 ,不同开发软件使用的关键字可能不同,语法也可能不同,但目的和作用基本相同。但在m3,m0中,中断向量在启动文件中定义了,不需要什么关键字申明函数。只要编写一个相同的函数名函数覆盖启动文件中对应硬件中断的函数即可,有一种称为弱定义的 汇编关键字,启动文件中定义的向量入口都是弱定义的,也就是说:只要外面你再定义了一个同名的函数,就会使用你定义的函数,而不是使用原来默认的函数。