一、写单片机中断中(C语言)interrupt1using01,0是什么用的?求解释?
interrupt 后面的点是中断号。重点我给你解释下using。
这是C51编译器扩展的关键字。用来选择80c51单片机中不同的寄存器组,你也知道R0-R7总共有4组,那么using 后面的数字也就是0-3范围里的一个数了。如果不需要using的话,编译器会自动选择一组寄存器作为绝对寄存器访问的。
using对代码是有一定的影响的。
给你说个简单的例子,你可以想下,
如果定义
void time0() interrupt 1 using 1
假设,我们又在中断里调用了一个delay();这个delay是起延时作用。
那么,我们就需要确保我们使用的寄存器组是同一组,否则,就会出现混乱。
二、51单片机,c语言,为什么写2个外部中断程序,就会有一个不工作呢?不是同时按的,不用考虑优先级?
首先两个中断是否都打开了,也就是EX0、EX1是否都等于1; 另外看看触发方式:IT0、IT1是什么置; 再看看你是否真的触发了,硬件上确认没有问题? 第四,你将两个中断函数后面usingn,使n不同,使用不同的工作组试试。