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

📄 state.lst

📁 基于C51的通用人机界面程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 235   1              //}
 236   1              frame_unpack(FR_L);//协议解包并应答
 237   1              
 238   1      }
 239          void Sev_State7(void){//显示参数c(比例系数)
 240   1              cls();
C51 COMPILER V7.08   STATE                                                                 02/27/2006 16:51:50 PAGE 5   

 241   1              disp('C',1);            disp('=',2);
 242   1              disp(para_c[3],7);      disp(para_c[2],8);      disp(para_c[1],9);      disp(para_c[0],10);
 243   1              /*disp('E',8);
 244   1              disp(para_c[1],9);//符号
 245   1              disp(para_c[0],10);*/
 246   1              
 247   1              //if(!f_setc_ok){//
 248   1                      frame_data(FR_C,para_c,CLEN);
 249   1                      //f_setc_ok=1;//置发送好标志
 250   1              //}
 251   1              //processmsg();
 252   1              frame_unpack(FR_C);//协议解包并应答
 253   1              
 254   1      }
 255          //------p(9,10),无小数---------------------------------------------------
 256          void Sev_State8(void){//设置p值[1]
 257   1              
 258   1              SetPara(para_p,temp_p,PLEN,1,9,PLEN,4,9,9);
 259   1      }
 260          void Sev_State9(void){//设置p值[0]
 261   1      
 262   1              SetPara(para_p,temp_p,PLEN,0,9,PLEN,4,8,8);
 263   1      }
 264          //--------wd(8,9,10),1位小数--------------------------------
 265          void Sev_State10(void){//设置wd值[2]
 266   1      
 267   1              SetPara(para_wd,temp_wd,LLEN,2,8,1,6,12,11);
 268   1      }
 269          void Sev_State11(void){//设置wd值[1]
 270   1      
 271   1              SetPara(para_wd,temp_wd,LLEN,1,8,1,6,10,12);
 272   1      }
 273          void Sev_State12(void){//设置wd值[0]
 274   1      
 275   1              SetPara(para_wd,temp_wd,LLEN,0,8,1,6,11,10);
 276   1      }
 277          //--------a(4,5,6,7,8,9,10),2位小数------------------------
 278          void Sev_State14(void){//设置a值[6]
 279   1      
 280   1              SetPara(para_a,temp_a,ALEN,6,4,2,5,20,15);
 281   1      }
 282          
 283          void Sev_State15(void){//设置a值[5]
 284   1      
 285   1              SetPara(para_a,temp_a,ALEN,5,4,2,5,14,16);
 286   1      }
 287          void Sev_State16(void){//设置a值[4]
 288   1      
 289   1              SetPara(para_a,temp_a,ALEN,4,4,2,5,15,17);
 290   1      }
 291          void Sev_State17(void){//设置a值[3]
 292   1      
 293   1              SetPara(para_a,temp_a,ALEN,3,4,2,5,16,18);
 294   1      }
 295          void Sev_State18(void){//设置a值[2]
 296   1      
 297   1              SetPara(para_a,temp_a,ALEN,2,4,2,5,17,19);
 298   1      }
 299          void Sev_State19(void){//设置a值[1]
 300   1      
 301   1              SetPara(para_a,temp_a,ALEN,1,4,2,5,18,20);
 302   1      }
C51 COMPILER V7.08   STATE                                                                 02/27/2006 16:51:50 PAGE 6   

 303          void Sev_State20(void){//设置a值[0]
 304   1      
 305   1              SetPara(para_a,temp_a,ALEN,0,4,2,5,19,14);
 306   1      }
 307          //------c(7,8,9,10),无小数-----------------------------------
 308          void Sev_State21(void){//设置c值[3]
 309   1      
 310   1              SetPara(para_c,temp_c,CLEN,3,7,CLEN,7,24,22);
 311   1      }
 312          void Sev_State22(void){//设置c值[2]
 313   1      
 314   1              SetPara(para_c,temp_c,CLEN,2,7,CLEN,7,21,23);
 315   1      }
 316          void Sev_State23(void){//设置c值[1]
 317   1      
 318   1              SetPara(para_c,temp_c,CLEN,1,7,CLEN,7,22,24);
 319   1      }
 320          void Sev_State24(void){//设置c值[0]
 321   1      
 322   1              SetPara(para_c,temp_c,CLEN,0,7,CLEN,7,23,21);
 323   1      }
 324          //------z(7,8,9,10),---------------------------------
 325          void Sev_State25(void){//设置z值[3]
 326   1      
 327   1              SetPara(para_z,temp_z,ZLEN,3,7,ZLEN,29,28,26);
 328   1      }
 329          void Sev_State26(void){//设置z值[2]
 330   1      
 331   1              SetPara(para_z,temp_z,ZLEN,2,7,ZLEN,29,25,27);
 332   1      }
 333          void Sev_State27(void){//设置z值[1]
 334   1      
 335   1              SetPara(para_z,temp_z,ZLEN,1,7,ZLEN,29,26,28);
 336   1      }
 337          void Sev_State28(void){//设置z值[0]
 338   1      
 339   1              SetPara(para_z,temp_z,ZLEN,0,7,ZLEN,29,27,25);
 340   1      }
 341          //--------------------------------------------
 342          void Sev_State29(void){//显示Z值
 343   1              cls();
 344   1              disp('A',1);            disp('=',2);
 345   1              disp(para_z[3],7);      disp(para_z[2],8);      disp(para_z[1],9);      disp(para_z[0],10);
 346   1              
 347   1              //if(!f_setc_ok){//
 348   1                      frame_data(FR_Z,para_z,ZLEN);
 349   1                      //f_setc_ok=1;//置发送好标志
 350   1              //}
 351   1              //processmsg();
 352   1              frame_unpack(FR_Z);//协议解包并应答
 353   1      }
 354          
 355          void Sev_State30(void){//显示结果
 356   1              ES=0;                                           //关串口中断,以免DSP板的影响
 357   1              gboff();                                        //关光标
 358   1              if(!f_cancel_ok){//
 359   2                      frame_cmd(FR_Cancel);   //发"停止采集"
 360   2                      f_cancel_ok=1;                  
 361   2                      f_start_ok=0;                   
 362   2              }
 363   1              cls();
 364   1              disp(result[9],1);      disp(result[8],2);      disp(result[7],3);
C51 COMPILER V7.08   STATE                                                                 02/27/2006 16:51:50 PAGE 7   

 365   1              //disp('^',4);  
 366   1              disp(result[6],4);
 367   1              disp(result[5],5);      disp(result[4],6);
 368   1              //disp('/',7);
 369   1              disp(result[3],7);
 370   1              disp(result[2],8);      disp(result[1],9);
 371   1              //disp('"',10);
 372   1              disp(result[0],10);
 373   1              
 374   1              if(!f_beep_ok){
 375   2                      beep();
 376   2                      beep();
 377   2                      beep();
 378   2                      f_beep_ok=1;
 379   2              }
 380   1      
 381   1              ES=1;
 382   1      
 383   1      }
 384          
 385          
 386          void Sev_State31(void){//报错误
 387   1              ES=0;                                           //关串口中断,以免DSP板的影响
 388   1              gboff();                                        //关光标
 389   1              if(!f_cancel_ok){//
 390   2                      frame_cmd(FR_Cancel);   //发"停止采集"
 391   2                      f_cancel_ok=1;                  
 392   2                      f_start_ok=0;                   
 393   2              }
 394   1              cls();
 395   1              disp('r',3);disp('E',1);        disp('r',2);    
 396   1                      
 397   1              if(!f_beep_ok){
 398   2                      beep();
 399   2                      beep();
 400   2                      beep();
 401   2                      f_beep_ok=1;
 402   2              }
 403   1      
 404   1              ES=1;
 405   1      
 406   1      }
 407          
 408          
 409          //通用函数:设置某参数的某位
 410          void SetPara(   uchar *para,            //被设置数组
 411                                          uchar *temp,            //被修改缓存数组
 412                                          uchar len,                      //数组大小
 413                                          uchar pos_set,          //被修改数组位置
 414                                          uchar pos_disp,         //显示起始位置
 415                                          uchar pos_dp,           //小数位置(即数组位置[pos_dp]加小数点,无小数点=LEN)
 416                                          uchar state_ent,        //"ENTER"转状态字       (保存修改)
 417                                          //uchar state_esc,      //"ESC"转状态字         (不保存)
 418                                          uchar state_pgup,       //"PGUP"转状态字        (右移一位)
 419                                          uchar state_pgdn        //"PGDN"转状态字        (左移一位)
 420                                  )
 421          {               
 422   1              uchar i;
 423   1              cls();
 424   1              for(i=0;i<len;i++){
 425   2                      if((i==pos_set)&&(i==pos_dp))   disp_dp(*(temp+i),pos_disp+len-1-i);
 426   2                      else if(i==pos_set)                             disp(*(temp+i),pos_disp+len-1-i);
C51 COMPILER V7.08   STATE                                                                 02/27/2006 16:51:50 PAGE 8   

 427   2                      else if(i==pos_dp)                              disp_dp(*(temp+i),pos_disp+len-1-i);
 428   2                      else                                                    disp(*(temp+i),pos_disp+len-1-i);
 429   2              }
 430   1              delay(20);      disp(' ',pos_disp+len-1-pos_set);       delay(20);
 431   1      
 432   1              keyvalue=kbscan();//
 433   1              switch(keyvalue){
 434   2                      case NUM1:              {*(temp+pos_set)=1;break;}
 435   2                      case NUM2:              {*(temp+pos_set)=2;break;}
 436   2                      case NUM3:              {*(temp+pos_set)=3;break;}
 437   2                      case NUM4:              {*(temp+pos_set)=4;break;}
 438   2                      case NUM5:              {*(temp+pos_set)=5;break;}
 439   2                      case NUM6:              {*(temp+pos_set)=6;break;}
 440   2                      case NUM7:              {*(temp+pos_set)=7;break;}
 441   2                      case NUM8:              {*(temp+pos_set)=8;break;}
 442   2                      case NUM9:              {*(temp+pos_set)=9;break;}
 443   2                      case NUM0:              {*(temp+pos_set)=0;break;}
 444   2                      case BN_ENT:{
 445   3                                                      //*(para+pos_set)=*(temp+pos_set);
 446   3                                                      memcpy(para,temp,len);          
 447   3                                                      Index=state_ent;
 448   3                                                      break;
 449   3                                              }
 450   2                      case BN_ESC:{
 451   3                                                      //*(temp+pos_set)=*(para+pos_set);
 452   3                                                      memcpy(temp,para,len);
 453   3                                                      Index=state_ent;
 454   3                                                      break;
 455   3                                              }
 456   2                      case BN_PGUP:   {Index=state_pgup;break;}
 457   2                      case BN_PGDN:   {Index=state_pgdn;break;}
 458   2              }
 459   1      }
 460          //


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2361    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     55      22
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      7    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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