📄 com.c
字号:
#include <reg51.h>
unsigned char begin_flag[10]={0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff};
unsigned char rece_begin[13];
unsigned int couu;
unsigned int ncou;
unsigned char data_flag;
unsigned int data_length;
unsigned char effect_count;
unsigned char xdata *save;
unsigned long xdata via_sum;
unsigned char xdata long1,long2;
unsigned char data receive[10];
unsigned char start_bc=0x66;
bit comm_event;
bit have;
extern void reset_dog();
extern void send_fault();
void comm() interrupt 4 using 1
{
unsigned char re_char;
unsigned char dt;
unsigned char temp;
PS=1;
reset_dog();
if(RI==1){
IE=0X90;
reset_dog();
re_char=SBUF;RI=0;
if((re_char==start_bc)&&(couu<10)){
start_bc=start_bc+0x11;reset_dog();
couu++;
}
if(couu<10)dt=0;
else dt=1;
if(dt==1){reset_dog();
ncou++;
}
if(ncou==2){
data_flag=re_char;
}
if(ncou==3){reset_dog();
long1=re_char;
data_length=long1*256;
}
if(ncou==4){reset_dog();
long2=re_char;save=0x7000;via_sum=0;data_length=data_length+long2;
}
if((ncou!=3)||(ncou!=4)){long1=0;long2=0;}
if(ncou>4){reset_dog();
temp=re_char;
*save=temp;
save++;
via_sum=via_sum+temp;
temp=re_char;
if((save-0x7000)==(data_length+1)){
via_sum=via_sum+data_flag-temp;
if(via_sum>65535)via_sum=(via_sum%65536)%256;
if(via_sum>255)via_sum=via_sum%256;
if(via_sum==temp){
comm_event=1;
}
else {
send_fault();
}
}
}
if((ncou==(data_length+5))&&(ncou!=4)){
couu=0;ncou=0;start_bc=0x66;save=0x7000;via_sum=0;IE=0X96;
}
}//IE=0X96;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -