📄 host_interrupt_funtion.h
字号:
int Count=0; //外中断0计数 P3.2脚
int Count2=0; //外中断1计数 P3.3脚
bit Intval1=0; //中断值
bit Int_pro1=0; //中断号
bit SendTo1=0; //发送位
bit ReceiveFrom1=0; //接收位
bit Int_pro2=0;
bit Intval2=0;
bit SendTo2=0;
bit ReceiveFrom2=0;
bit Int_pro3=0;
bit Intval3=0;
bit SendTo3=0;
bit ReceiveFrom3=0;
void Interrupt0(void) interrupt 0 using 1 //外中断0处理
{
Count++;
if(Count==1)
{
Intval1=1;
Int_pro1=1;
SendTo1=0;
ReceiveFrom1=1;
Intval2=0;
Int_pro2=0;
Intval3=0;
Int_pro3=0;
}
if(Count==2)
{
Intval1=0;
Int_pro1=0;
Intval2=1;
Int_pro2=1;
SendTo2=0;
ReceiveFrom2=1;
Intval3=0;
Int_pro3=0;
}
if(Count==3)
{
Count=0;
Intval1=0;
Int_pro1=0;
Intval2=0;
Int_pro2=0;
Intval3=1;
Int_pro3=1;
SendTo3=0;
ReceiveFrom3=1;
}
}
void Interrupt2(void) interrupt 2 using 3 //外中断1处理
{
Count2++;
if(Count2==1)
{
SendTo1=1;
ReceiveFrom1=0;
Intval1=1;
Int_pro1=1;
Intval2=0;
Int_pro2=0;
Intval3=0;
Int_pro3=0;
}
if(Count2==2)
{
Intval1=0;
Int_pro1=0;
SendTo2=1;
ReceiveFrom2=0;
Intval2=1;
Int_pro2=1;
Intval3=0;
Int_pro3=0;
}
if(Count2==3)
{
Count2=0;
Intval1=0;
Int_pro1=0;
Intval2=0;
Int_pro2=0;
SendTo3=1;
ReceiveFrom3=0;
Intval3=1;
Int_pro3=1;
}
}
//*********串口中断函数
void Interrupt4(void) interrupt 4 using 2
{
EA=0;
if(TI)
{
TI=0;
}
if(RI)
{
RI=0;
switch(SBUF)
{
case Address_Respond1 : Serial1=1; break; //如果接收到从机1发送的地址响应码
case Command_Respond1 : Serial1=2; break; //如果接收到从机命令的响应码
case Data_Command_Respond1 : Serial1=3; break; //如果接收到从机结果送主机的命令响应
case Data_Receive_Respone1 : Serial1=4; break;
case Address_Respond2 : Serial2=1; break;
case Command_Respond2 : Serial2=2; break;
case Data_Command_Respond2 : Serial2=3; break;
case Data_Receive_Respone2 : Serial2=4; break;
case Address_Respond3 : Serial3=1; break;
case Command_Respond3 : Serial3=2; break;
case Data_Command_Respond3 : Serial3=3; break;
case Data_Receive_Respone3 : Serial3=4; break;
default : break;
}
}
EA=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -