⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 com.c

📁 ASC 信号机控制程序,国内最先进的信号机控制程序
💻 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 + -