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

📄 sc1.c

📁 关于RST12864显示程序
💻 C
📖 第 1 页 / 共 5 页
字号:
          }
         else find_ctr();
         break;
         
         case 'S'://返回工作状态
             if(ReceiveSequence[1]=='J')
             {clear();
              all_show(bian2,1,3); //GUAN机装边瓣         
              RS_go(3);
              wait_gflag=1;
              }
             RS_go(4);
             break;
         case 'a'://返回方位俯仰理论值
             RS_go(10);
             break;
         
          case  'G'://AGC此处协议已经修改R后面增加一位表“+/-”G****R****o
            RS_go(1);
            RS_clr();
         
            if(ReceiveSequence[9]==0x0A)              
          // if(ReceiveSequence[9]=='o')                        
            { 
               saveparam_agc=judge_num(ReceiveSequence,4,100);
                RS_go(5);       
                if(ReceiveSequence[0]=='-')
                neg_flag=1;
                if(ReceiveSequence[0]=='+')
                neg_flag=0;
                RS_go(1);                       
                saveparam_jihua=judge_num(ReceiveSequence,3,10);          
                RS_go(4);
                RS_clr();
                lock1=1;
               
            }
          else find_ctr();
           break;
           
          case 'H':
            RS_go(1);
            RS_clr();
             if(ReceiveSequence[2]==0x0A)  
             // if(ReceiveSequence[2]=='o')         
            { 
              saveparam.param.Track_agc=judge_num(ReceiveSequence,2,10);
              RS_go(3);                            
              RS_clr();
            }
             else find_ctr();
            break;
                       
            case  'C'://罗盘读数
            RS_go(1);
            RS_clr();
             if(ReceiveSequence[4]==0x0A)
            // if(ReceiveSequence[4]=='o')
            { 
              saveparam.param.luopan=judge_num(ReceiveSequence,4,10);
              RS_go(5);                            
              RS_clr();
            }
           else find_ctr();
           break;
           
           case 'F':
            RS_go(1);
            RS_clr();
            if(ReceiveSequence[7]==0x0A)
           //  if(ReceiveSequence[7]=='o')
            { if(judge_num(ReceiveSequence,7,1000)>=940 & judge_num(ReceiveSequence,7,1000)<=1500)
              saveparam.param.rec_freq=judge_num(ReceiveSequence,7,1000);              
              RS_go(8);                                              
              RS_clr();
            }
           else find_ctr();
           break;
           
            case 'L':
            RS_go(1);
            RS_clr();
            if(ReceiveSequence[6]==0x0A) 
           // if(ReceiveSequence[6]=='o')        
            { 
              saveparam.param.sat_long=judge_num(ReceiveSequence,4,10);              
              RS_go(5);    
              if(ReceiveSequence[0]=='H') 
              saveparam.param.polar_vet=0;//水平
              else 
              saveparam.param.polar_vet=1; //垂直  
              RS_go(2);                  
              RS_clr();
            }
           else find_ctr();
           break;
           
           
           
           
            case  'J'://经度
         RS_go(1); 
         RS_clr();
         if(ReceiveSequence[6]==0x0A)
         //if(ReceiveSequence[6]=='o')
        { 
          saveparam.param.Station_long=judge_num(ReceiveSequence,4,10);          
           RS_go(7);
           RS_clr();
        }
         else find_ctr();
         break;
         
         case  'W'://纬度
          RS_go(1);
         RS_clr();
          if(ReceiveSequence[5]==0x0A)
         // if(ReceiveSequence[5]=='o')
         { 
           saveparam.param.Station_lat=judge_num(ReceiveSequence,3,10);   
           RS_go(6);       
           RS_clr();
         }
         else find_ctr();
         break;
         
       case 'P':
         if(ReceiveSequence[2]=='!')
         {            
          all_show(scwb,1,3);
          RS_go(3);      
         }
          else find_ctr();
          break;
         
         case 'K':
         if(ReceiveSequence[1]=='!')
         {  
                    
          RS_go(2);          
          clear();
          all_show(initok,1,3); 
          layer[1]=0;
         }
         else if(ReceiveSequence[1]=='J')
         {clear();
          all_show(bian1,1,3); //KAI机装边瓣         
          RS_go(3);  
          RS_clr() ;  
          wait_kflag=1;      
         }         
          else find_ctr();                      
         break;  
         
         case 'O':
           RS_go(1);
           RS_clr();
          if(ReceiveSequence[8]==0x0A)
         // if(ReceiveSequence[8]=='o')
         {  
           saveparam.param.Station_long=judge_num(ReceiveSequence,4,10);                     
           RS_go(5);
           RS_clr() ;  
           saveparam.param.Station_lat=judge_num(ReceiveSequence,3,10);                     
           RS_go(4);  
           RS_clr() ;     
         }
          else find_ctr();
          break;
          
         
         case 'Q':
         if(ReceiveSequence[1]=='1')
         {clear();
          all_show(pro1,1,3);
           RS_go(3);  
           RS_clr(); 
           continue_flag=1;
           layer[1]=0;
         } 
        else if(ReceiveSequence[1]=='2')
         {clear();
          all_show(pro2,1,3);
           RS_go(3);
           continue_flag=1;
           layer[1]=0;
         } 
         else if(ReceiveSequence[1]=='3')
         {clear();
          all_show(pro3,1,3);
           RS_go(3);
           continue_flag=1;
           layer[1]=0;
         } 
        else if(ReceiveSequence[1]=='4')//GPS正在读数,请稍等
         {clear();
          all_show(gps_r,1,3);
          RS_go(3);  
         }
        else if(ReceiveSequence[1]=='5')//断电保护请复位
         {clear();
          all_show(protect,1,3);
          RS_go(3);  
         }
          else if(ReceiveSequence[1]=='6')//复位完毕,请设置
         {clear();
          all_show(restartok,1,3);
          RS_go(3);  
          layer[1]=3;
          layer[2]=1;
          lock1=1;
         }
        else if(ReceiveSequence[1]=='o')
         {clear();
          all_show(gps_o,1,2);
          RS_go(3);          
         } 
         
         else find_ctr();  
         break;
         
         case 'R':
         if(ReceiveSequence[1]=='s')
         {
          // PIN_CLEAR();  
          //all_show(restartok,1,2);      
          /**********************
           **********error******
           *********************
           *********************/
          RS_go(3);       
          RS_clr() ; 
         }
         else find_ctr(); 
        
         break;   
        case 'X':          
          if(ReceiveSequence[1]=='!')
         {
            x_flag=1;
            y_flag=0;
            RS_go(2); }
         else find_ctr();
         break; 
        case 'Y':          
          if(ReceiveSequence[1]=='!')
         {
            y_flag=1;
            x_flag=0;
            RS_go(2); }
         else find_ctr();
         break; 
            
       case  'j'://纬度
          RS_go(1);
          if(ReceiveSequence_Len>100)
             ReceiveSequence_Len=0;
         if(ReceiveSequence[7]==0x0A)
       // if(ReceiveSequence[7]=='o')
        {  
           char i=0;
           if(ReceiveSequence[i]=='1')
           j_flag=1;
           else j_flag=0;
           i=i+2;
            if(ReceiveSequence[i]=='1')
            q_flag=1;
           else q_flag=0;
           i=i+2;
            if(ReceiveSequence[i]=='1')
            g_flag=1;
            else g_flag=0;
            i=i+2;                              
            if(ReceiveSequence[i]=='1')
            p_flag=1;
            else p_flag=0;           
          RS_go(10);
          RS_clr();
       }
         else find_ctr();
         break;  
                   
   default:
        find_ctr();
      break;
      
      
 }
 IE2 |=BIT5;//开发送中断
}

  void watch1(void)
 {
 if((ReceiveSequence_Len>40)&&(flag==0)) 
      ReceiveSequence_Len=0; 
 if(ReceiveSequence_Len>90)
      ReceiveSequence_Len=0; 
      if((ReceiveSequence_Len>0)&&(flag>=1))
      {
        flag--;//命令结束标志
        for(i=0;i<100;i++)
          {
            if((ReceiveSequence[i]>0x7A)|(ReceiveSequence[i]<0x41)) //不是26个英文字
            {
              for(i=0;i<100;i++)
              {
               ReceiveSequence[i]=ReceiveSequence[i+1];//空过第一位,判断从下一位开
              }
            }
            else
             break; 
         } 
        character1 = ReceiveSequence[0];//在此设中断,察看character1,2的值,看接收到什么数据
        character2 = ReceiveSequence[1];
        Judge_Instruction_And_Go(character1,character2);
      }          
   
 }
void pack_panel(void)
{clear();
PIN_CLEAR();
all_show(pack,1,3); 
_DINT();
Delay(20);
_EINT();
 }





void rec_clr(void)
{
      for(j=0;j<6;j++)
       s1_rec[j]='\0';
      for(j=0;j<5;j++)
       s3_rec[j]='\0';
      for(j=0;j<7;j++)
       s4_rec[j]='\0';
      for(j=0;j<9;j++)
       s5_rec[j]='\0';  
      for(j=0;j<9;j++)
       s8_rec[j]='\0';
}  

void key_ch(void)
{
                                           switch(key)
                                          {
                                           case  KEY_0 :
                                                  char_temp='0';
                                                   break;
                                           case    KEY_1 :
                                                  char_temp='1';
                                                   break; 
                                           case    KEY_2 :
                                                  char_temp='2';
                                                   break; 
                                           case    KEY_3 :
                                                  char_temp='3';
                                                   break; 
                                            case   KEY_4 :
                                                  char_temp='4';
                                                   break;
                                            case    KEY_5 :
                                                  char_temp='5';
                                                   break; 
                                            case    KEY_6 :
                                                  char_temp='6';
                                                   break;
                                             case    KEY_7 :
                                                  char_temp='7';
                                                   break; 
                                            case   KEY_8 :
                                                  char_temp='8';
                                                   break; 
                                             case   KEY_9 :
                                                  char_temp='9';
                                                   break; 
                                              case  KEY_DOT: 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -