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

📄 main_1013.lst

📁 基于485的51单片机多机通讯程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 223   2              }
 224   1              return numbers;
 225   1      }
 226          
 227          void start_i2a()
 228          {
 229   1         P1_6=1;              //SCL
 230   1         P1_7=1;              //SDA
 231   1         S1CON=0x47;          //ENS1=1 STA=0 STO=0 SI=0 AA=1
 232   1         PS1=1;
 233   1         EA=1;
 234   1         ES1=1;
 235   1         STA=1;
 236   1      }
 237          
 238          void get_SLA()
 239          {
 240   1      
 241   1              if(PRG<50)
C51 COMPILER V7.06   MAIN_1013                                                             10/20/2005 16:39:53 PAGE 5   

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

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

 366   1      }
 367          
 368          void TR_noans()
 369          {
 370   1              noans_ok=0;
 371   1              TB8=1;
 372   1              POINTER0=0;
 373   1              SSUM=0;
 374   1              send=1;
 375   1              c_t1=0;
 376   1              TR1=1;
 377   1              while(POINTER0<s_byte_nums);
 378   1              TR1=0;
 379   1              noans_ok=1;
 380   1      }
 381          
 382          void TR_ans()
 383          {
 384   1              REN=0;
 385   1              ans=1;
 386   1              POINTER1=0;
 387   1              RSUM=0;
 388   1              TB8=1;
 389   1              POINTER0=0;
 390   1              SSUM=0;
 391   1              send=1;
 392   1              c_t1=0;
 393   1              TR1=1;
 394   1              while(POINTER0<s_byte_nums);
 395   1              TR1=0;
 396   1      
 397   1              REN=1;
 398   1              send=0;
 399   1              c_t1=0;
 400   1              TR1=1;
 401   1              while(POINTER1<r_byte_nums&&overtime==0);
 402   1              TR1=0;
 403   1              POINTER1=0;
 404   1              RSUM=0;
 405   1              c_t1=0;
 406   1              if(overtime==1)
 407   1              {
 408   2                      if(wait_ans==1)
 409   2                      {
 410   3                              err=2;
 411   3                              main_err=1;
 412   3                      }
 413   2                      c_t1=0;
 414   2              }
 415   1              ans=0;
 416   1              REN=0;
 417   1      }
 418          
 419          void get_secondDDR()
 420          {
 421   1              switch(p_name)
 422   1              {
 423   2                      case T01:       secondDDR=2;break;
 424   2                      case T02:       secondDDR=4;break;
 425   2                      case GAS2:      secondDDR=6;break;
 426   2                      case T03:       secondDDR=8;break;
 427   2                      case T04:       secondDDR=10;break;
C51 COMPILER V7.06   MAIN_1013                                                             10/20/2005 16:39:53 PAGE 8   

 428   2                      case K1:        secondDDR=12;break;
 429   2                      case Ignit:     secondDDR=14;break;
 430   2                      case I11:       secondDDR=16;break;
 431   2                      case T12:       secondDDR=18;break;
 432   2                      case I12:       secondDDR=20;break;
 433   2                      case T13:       secondDDR=22;break;
 434   2                      case T13_SD:    secondDDR=24;break;
 435   2                      case T14:       secondDDR=26;break;
 436   2                      case I14:       secondDDR=28;break;
 437   2                      case T15:       secondDDR=30;break;
 438   2                      case I15:       secondDDR=32;break;
 439   2                      case DI:        secondDDR=34;break;
 440   2                      case AHF:       secondDDR=36;break;
 441   2                      case I16:       secondDDR=38;break;
 442   2                      case F:         secondDDR=40;break;
 443   2                      case T16:       secondDDR=42;break;
 444   2                      case N11:       secondDDR=44;break;
 445   2                      case N11_SD:    secondDDR=46;break;
 446   2                      case T17:       secondDDR=48;break;
 447   2                      case I17:       secondDDR=50;break;
 448   2                      case K2:        secondDDR=52;break;
 449   2                      case RN:        secondDDR=54;break;
 450   2                      case D:         secondDDR=56;break;
 451   2                      case K21:       secondDDR=58;break;

⌨️ 快捷键说明

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