STC12C5A60S2中断interrupt x using y 这里x和y个代表什么?? 编写程序时怎么用,需要注意什么?请介绍!
展开全部
如果使用C语言编程,中断查询次序号就是中断号,例如:
void Int0_Routine(void) interrupt 0;
void Timer0_Rountine(void) interrupt 1;
void Int1_Routine(void) interrupt 2;
void Timer1_Rountine(void) interrupt 3;
void UART_Routine(void) interrupt 4;
void ADC_Routine(void) interrupt 5;
void LVD_Routine(void) interrupt 6;
void PCA_Routine(void) interrupt 7;
void UART2_Routine(void) interrupt 8;
void SPI_Routine(void) interrupt 9;
C51系列寄存器组是0-3.每个寄存器组分别有R0-R7组成。每个寄存器组都是独立的空间地址。
using 表示使用哪组寄存器组,using 0表示用0组寄存器,using 1表示用1组寄存器
在多个中断情况下,通过using 使用不同的寄存器组,进入中断时不需要太多的入栈,加快中断的实时响应速度。
例子:
void UART_Routine(void) interrupt 4 using 0//(0-3)随你用
{
if(RI)
{
}
if(TI)
{
}
}
void Seri1_Init()
{
SCON = 0x50; //8-bit variable UART
TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode
TH1 = TL1 =0XFD; //Set auto-reload vaule
TR1 = 1; //Timer1 start run
ES = 1; //Enable UART interrupt
}
void main()
{
Seri1_Init();
EA=1;
while(1);
}
细节当然要看这方面的书籍了。我是专长这个,哈哈,快赏5分啊,我太给力啦
void Int0_Routine(void) interrupt 0;
void Timer0_Rountine(void) interrupt 1;
void Int1_Routine(void) interrupt 2;
void Timer1_Rountine(void) interrupt 3;
void UART_Routine(void) interrupt 4;
void ADC_Routine(void) interrupt 5;
void LVD_Routine(void) interrupt 6;
void PCA_Routine(void) interrupt 7;
void UART2_Routine(void) interrupt 8;
void SPI_Routine(void) interrupt 9;
C51系列寄存器组是0-3.每个寄存器组分别有R0-R7组成。每个寄存器组都是独立的空间地址。
using 表示使用哪组寄存器组,using 0表示用0组寄存器,using 1表示用1组寄存器
在多个中断情况下,通过using 使用不同的寄存器组,进入中断时不需要太多的入栈,加快中断的实时响应速度。
例子:
void UART_Routine(void) interrupt 4 using 0//(0-3)随你用
{
if(RI)
{
}
if(TI)
{
}
}
void Seri1_Init()
{
SCON = 0x50; //8-bit variable UART
TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode
TH1 = TL1 =0XFD; //Set auto-reload vaule
TR1 = 1; //Timer1 start run
ES = 1; //Enable UART interrupt
}
void main()
{
Seri1_Init();
EA=1;
while(1);
}
细节当然要看这方面的书籍了。我是专长这个,哈哈,快赏5分啊,我太给力啦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询