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

📄 main_1027.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 223   2                                              break;
 224   2                      case    edit_sec:       numbers=64;
 225   2                                              break;
 226   2                      case    p_section:
 227   2                      case    p_edit_finish:  numbers=8;
 228   2                                              break;
 229   2                      default:                break;
 230   2              }
 231   1              return numbers;
 232   1      }
 233          
 234          void start_i2a()
 235          {
 236   1         P1_6=1;              //SCL
 237   1         P1_7=1;              //SDA
 238   1         S1CON=0x47;          //ENS1=1 STA=0 STO=0 SI=0 AA=1
 239   1         PS1=1;
 240   1         EA=1;
 241   1         ES1=1;
C51 COMPILER V7.06   MAIN_1027                                                             02/08/2006 16:29:13 PAGE 5   

 242   1         STA=1;
 243   1      }
 244          
 245          void get_SLA()
 246          {
 247   1      
 248   1              if(PRG<50)
 249   1              {
 250   2                      SLA=0xA0;
 251   2                      temp_PRG=PRG;
 252   2              }
 253   1              else
 254   1              {
 255   2                      if(PRG<100)
 256   2                      {
 257   3                              SLA=0XA2;
 258   3                              temp_PRG=PRG-50;
 259   3                      }
 260   2              }
 261   1              mainDDR=temp_PRG*768;
 262   1      }
 263          
 264          void get_SLA1()
 265          {
 266   1              if(PRG<50)
 267   1              {
 268   2                      SLA=0XA0;
 269   2                      temp_PRG=PRG;
 270   2              }
 271   1              else
 272   1              {
 273   2                      if(PRG<100)
 274   2                      {
 275   3                              SLA=0XA2;
 276   3                              temp_PRG=PRG-50;
 277   3                      }
 278   2                      else
 279   2                      {
 280   3                              if(PRG<150)
 281   3                              {
 282   4                                      SLA=0XA4;
 283   4                                      temp_PRG=PRG-100;
 284   4                              }
 285   3                              else
 286   3                              {
 287   4                                      SLA=0XA6;
 288   4                                      temp_PRG=PRG-150;
 289   4                              }
 290   3                      }
 291   2              }
 292   1              mainDDR=temp_PRG*768;
 293   1      }
 294          
 295          void readEEP_byte()
 296          {
 297   1              nums=0;
 298   1              readEEPbyte=1;
 299   1              SLA=0XA0;
 300   1              COMM=0xFF;
 301   1              start_i2a();
 302   1              while(readEEPbyte==1)
 303   1              {
C51 COMPILER V7.06   MAIN_1027                                                             02/08/2006 16:29:13 PAGE 6   

 304   2                      if(urgent_stop==1)
 305   2                              readEEPbyte=0;
 306   2              }
 307   1      }
 308          
 309          void readEEP_page()
 310          {
 311   1              nums=0;
 312   1              nums1=0;
 313   1              delt=2;
 314   1              point=&pp.pn;
 315   1              readEEPpage=1;
 316   1              get_SLA1();
 317   1              COMM=(mainDDR+times*128)/256;
 318   1              start_i2a();
 319   1              while(readEEPpage==1)
 320   1              {
 321   2                      if(urgent_stop==1)
 322   2                              readEEPpage=0;
 323   2              }
 324   1      }
 325          
 326          void writeEEP_byte()
 327          {
 328   1              nums=0;
 329   1              writeEEPbyte=1;
 330   1              SLA=0XA0;
 331   1              COMM=0XFF;
 332   1              start_i2a();
 333   1              while(writeEEPbyte==1)
 334   1              {
 335   2                      if(urgent_stop==1)
 336   2                              writeEEPbyte=0;
 337   2              }
 338   1      }
 339          
 340          void writeEEP_word()
 341          {
 342   1              nums=0;
 343   1              writeEEPword=1;
 344   1              start_i2a();
 345   1              while(writeEEPword==1)
 346   1              {
 347   2                      if(urgent_stop==1)
 348   2                              writeEEPword=0;
 349   2              }
 350   1      }
 351          
 352          void writeEEP_page(unsigned char t)                     //将指定专家参数复制到目的程序号下
 353          {
 354   1              nums=0;
 355   1              delt=2;
 356   1              writeEEPpage=1;
 357   1              get_SLA1();
 358   1              COMM=(mainDDR+t*128)/256;
 359   1              start_i2a();
 360   1              while(writeEEPpage==1)
 361   1              {
 362   2                      if(urgent_stop==1)
 363   2                              writeEEPpage=0;
 364   2              }
 365   1      }
C51 COMPILER V7.06   MAIN_1027                                                             02/08/2006 16:29:13 PAGE 7   

 366          
 367          void save_prg()
 368          {
 369   1              savePRG=1;
 370   1              SLA=0XA0;
 371   1              COMM=0XFF;
 372   1              writeEEP_byte();
 373   1      }
 374          
 375          void TR_noans()
 376          {
 377   1              noans_ok=0;
 378   1              TB8=1;
 379   1              POINTER0=0;
 380   1              SSUM=0;
 381   1              send=1;
 382   1              c_t1=0;
 383   1              TR1=1;
 384   1              while(POINTER0<s_byte_nums);
 385   1              TR1=0;
 386   1              noans_ok=1;
 387   1      }
 388          
 389          void TR_ans()
 390          {
 391   1              REN=0;
 392   1              ans=1;
 393   1              POINTER1=0;
 394   1              RSUM=0;
 395   1              TB8=1;
 396   1              POINTER0=0;
 397   1              SSUM=0;
 398   1              send=1;
 399   1              c_t1=0;
 400   1              TR1=1;
 401   1              while(POINTER0<s_byte_nums);
 402   1              TR1=0;
 403   1      
 404   1              REN=1;
 405   1              send=0;
 406   1              c_t1=0;
 407   1              TR1=1;
 408   1              while(POINTER1<r_byte_nums&&overtime==0);
 409   1              TR1=0;
 410   1              POINTER1=0;
 411   1              RSUM=0;
 412   1              c_t1=0;
 413   1              if(overtime==1)
 414   1              {
 415   2                      if(wait_ans==1)
 416   2                      {
 417   3                              err=2;
 418   3                              main_err=1;
 419   3                      }
 420   2                      c_t1=0;
 421   2              }
 422   1              ans=0;
 423   1              REN=0;
 424   1      }
 425          
 426          void get_secondDDR()
 427          {
C51 COMPILER V7.06   MAIN_1027                                                             02/08/2006 16:29:13 PAGE 8   

 428   1              switch(p_name)
 429   1              {
 430   2                      case T01:       secondDDR=2;break;
 431   2                      case T02:       secondDDR=4;break;
 432   2                      case GAS2:      secondDDR=6;break;
 433   2                      case T03:       secondDDR=8;break;
 434   2                      case T04:       secondDDR=10;break;
 435   2                      case K1:        secondDDR=12;break;
 436   2                      case Ignit:     secondDDR=14;break;
 437   2                      case I11:       secondDDR=16;break;
 438   2                      case T12:       secondDDR=18;break;
 439   2                      case I12:       secondDDR=20;break;
 440   2                      case T13:       secondDDR=22;break;
 441   2                      case T13_SD:    secondDDR=24;break;
 442   2                      case T14:       secondDDR=26;break;
 443   2                      case I14:       secondDDR=28;break;
 444   2                      case T15:       secondDDR=30;break;
 445   2                      case I15:       secondDDR=32;break;
 446   2                      case DI:        secondDDR=34;break;
 447   2                      case AHF:       secondDDR=36;break;
 448   2                      case I16:       secondDDR=38;break;
 449   2                      case F:         secondDDR=40;break;
 450   2                      case T16:       secondDDR=42;break;
 451   2                      case N11:       secondDDR=44;break;

⌨️ 快捷键说明

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