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

📄 commrs485.lst

📁 STC12C5410AD模拟串口再现多串口通讯
💻 LST
📖 第 1 页 / 共 3 页
字号:
 471          ** 输   入: 无
 472          ** 输   出: 无
 473          ** 全局变量: 
 474          ** 调用模块: 
 475          **
 476          ** 作   者: 李伟
 477          ** 日   期: 2008年12月20日
 478          **-------------------------------------------------------------------------------------------------------
 479          ** 修 改 人: 
 480          ** 日   期: 
 481          **-------------------------------------------------------------------------------------------------------
 482          ********************************************************************************************************/
 483          void Comm_rs485_read_config(void)
 484          {
 485   1          uint8 i;
 486   1              Suart_Send_Byte(0x7E);        //报文头
 487   1          ComCalculChkSum = 0;
 488   1              CommSendByteWithChk((uint8)(ModeSysConfig[8])); //BoardAddress地址范围0~16
C51 COMPILER V7.06   COMMRS485                                                             10/30/2008 13:20:06 PAGE 9   

 489   1          CommSendByteWithChk(CommCid); //CID 05
 490   1          CommSendWordWithChk(0x9052);  //LENTH
 491   1          CommSendByteWithChk(0x01);    //电压限值配置信息
 492   1              for(i = 0;i < 9;i++)
 493   1              {
 494   2                      CommSendWordWithChk(ModeSysConfig[i]);
 495   2              }
 496   1              CommSendByteWithChk(0x02);    //温度限值配置信息
 497   1              for(i = 0;i < 12;i++)
 498   1              {
 499   2              CommSendByteWithChk(ModeTempCofing[i]);
 500   2              }
 501   1          CommSendByteWithChk(0x03);    //系数
 502   1              CommSendWordWithChk(CUK);
 503   1              CommSendWordWithChk(CTK);
 504   1              CommSendWordWithChk(OTK);
 505   1          ComCalculChkSum  = (~ComCalculChkSum)+1;
 506   1          CommSendByteWithoutChk((uint8)(ComCalculChkSum>>8));
 507   1          CommSendByteWithoutChk((uint8)(ComCalculChkSum));
 508   1              Suart_Send_Byte(0x0D);
 509   1      }
 510          /********************************************************************************************************
 511          ** 函数名称: void Comm_rs485_write_vconfig(void) 
 512          ** 功能描述: 
 513          ** 输   入: 无
 514          ** 输   出: 无
 515          ** 全局变量: 
 516          ** 调用模块: 
 517          **
 518          ** 作   者: 李伟
 519          ** 日   期: 2008年12月20日
 520          **-------------------------------------------------------------------------------------------------------
 521          ** 修 改 人: 
 522          ** 日   期: 
 523          **-------------------------------------------------------------------------------------------------------
 524          ********************************************************************************************************/
 525          //void Comm_rs485_write_vconfig(void)     //电压限值存储在第一扇区
 526          //{
 527          //      uint8  i,c;
 528          //      uint16 address;
 529          //      c = 0;
 530          //      address = 0x2800;
 531          //      for(i = 1;i < 17;)
 532          //      {
 533          //              MoveVXdata[c] = ((CommRxBuf[i] << 8)|CommRxBuf[i+1]);
 534          //              i++;
 535          //              i++;
 536          //              c++;
 537          //      }
 538          //      EepSectotErase(address);
 539          //      for(i = 0;i < 8;i++)
 540          //      {
 541          //              EepWriteWord(MoveVXdata[i],address);
 542          //              address++;
 543          //              address++;
 544          //      }
 545          //      for(i = 0;i < 8;i++)            //将修正值赋给动作变量
 546          //      {
 547          //              ModeSysConfig[i] =      EepReadWord(address);
 548          //      }
 549          //      CommRight();
 550          //}
C51 COMPILER V7.06   COMMRS485                                                             10/30/2008 13:20:06 PAGE 10  

 551          /********************************************************************************************************
 552          ** 函数名称: void Comm_rs485_write_tconfig(void) 
 553          ** 功能描述: 
 554          ** 输   入: 无
 555          ** 输   出: 无
 556          ** 全局变量: 
 557          ** 调用模块: 
 558          **
 559          ** 作   者: 李伟
 560          ** 日   期: 2008年12月20日
 561          **-------------------------------------------------------------------------------------------------------
 562          ** 修 改 人: 
 563          ** 日   期: 
 564          **-------------------------------------------------------------------------------------------------------
 565          ********************************************************************************************************/
 566          //void Comm_rs485_write_tconfig(void)     //温度限值存储在第二扇区
 567          //{
 568          //      uint8  i;
 569          //      uint16 address;
 570          //      address = 0x2A00;
 571          //      for(i = 1;i < 13;i++)
 572          //      {
 573          //              MoveTdata[i] = CommRxBuf[i];
 574          //      }
 575          //      EepSectotErase(address);
 576          //      for(i = 0;i < 12;i++)
 577          //      {
 578          //              EepWriteByte(MoveTdata[i],address);
 579          //              address++;
 580          //      }
 581          //      for(i = 0;i < 12;i++)     //将修正值赋给动作变量
 582          //      {
 583          //              ModeTempCofing[i] = EepReadByte(address);
 584          //      }
 585          //      CommRight();
 586          //}
 587          /********************************************************************************************************
 588          ** 函数名称: void Comm_rs485_write_xconfig(void) 
 589          ** 功能描述: 
 590          ** 输   入: 无
 591          ** 输   出: 无
 592          ** 全局变量: 
 593          ** 调用模块: 
 594          **
 595          ** 作   者: 李伟
 596          ** 日   期: 2008年12月20日
 597          **-------------------------------------------------------------------------------------------------------
 598          ** 修 改 人: 
 599          ** 日   期: 
 600          **-------------------------------------------------------------------------------------------------------
 601          ********************************************************************************************************/
 602          void Comm_rs485_write_xconfig(void)       //系数存储在第三扇区
 603          {
 604   1              uint8  i,c,j;
 605   1              uint16 address;
 606   1              c = 0;
 607   1              j = 0;
 608   1              address = 0x2C00;
 609   1              for(i = 1;i < 7;)
 610   1              {
 611   2                      MoveVXdata[c] = ((CommRxBuf[i] << 8)|CommRxBuf[i+1]);
 612   2                      i++;
C51 COMPILER V7.06   COMMRS485                                                             10/30/2008 13:20:06 PAGE 11  

 613   2                      i++;
 614   2                      c++;
 615   2              }
 616   1              for(i = 0;i < 3;i++)
 617   1              {
 618   2                  if((MoveVXdata[i] > 6000) && (MoveVXdata[i] < 15000))j++;
 619   2              }
 620   1              if(j == 3)
 621   1              {
 622   2                  j = 0;
 623   2                      EepSectotErase(address);
 624   2                      for(i = 0;i < 3;i++)
 625   2                      {
 626   3                              EepWriteWord(MoveVXdata[i],address);
 627   3                              address++;
 628   3                              address++;
 629   3                      }
 630   2                      CUK = EepReadWord(address);
 631   2                      CTK = EepReadWord(address+2);
 632   2                      OTK = EepReadWord(address+4);
 633   2                      CommRight();
 634   2              }
 635   1              else 
 636   1              {
 637   2                      j = 0;
 638   2                      CommWrong();
 639   2              }
 640   1      }
 641          /*********************************************************************************************************
 642          ** 函数名称: void CommRs485Manage(void)
 643          ** 功能描述: 
 644          ** 输   入: 无
 645          ** 输   出: 无
 646          ** 全局变量: 
 647          ** 调用模块: 
 648          **
 649          ** 作   者: 李伟
 650          ** 日   期: 2008年12月10日
 651          **-------------------------------------------------------------------------------------------------------
 652          ** 修 改 人:
 653          ** 日   期:
 654          **-------------------------------------------------------------------------------------------------------
 655          ********************************************************************************************************/
 656          void CommRs485Manage(void)
 657          {
 658   1              switch(CommCid)
 659   1              {
 660   2                      case RS232_HAND_SHAKE:    //握手命令 1
 661   2                      {
 662   3                              Comm_rs485_handshake();
 663   3                      }break; 
 664   2                      case RS232_READ_ANALOG:   //读模拟量 2
 665   2                      {
 666   3                              Comm_rs485_readanalog();
 667   3                      }break;
 668   2                      case RS232_READ_DIGITAL:  //读数字量 3
 669   2                      {
 670   3                              Comm_rs485_read_digital();
 671   3                      }break;
 672   2                      case RS232_READ_CONFIG:   //读配置       4
 673   2                      {
 674   3                               Comm_rs485_read_config();
C51 COMPILER V7.06   COMMRS485                                                             10/30/2008 13:20:06 PAGE 12  

 675   3                      }break; 
 676   2                      case RS232_WRITE_VCONFIG: //电压限值配置 5
 677   2                      {
 678   3      //                       Comm_rs485_write_vconfig();
 679   3                      }break;
 680   2                      case RS232_WRITE_TCONFIG: //温度限值配置 6
 681   2                      {
 682   3      //                       Comm_rs485_write_tconfig();
 683   3                      }break; 
 684   2                      case RS232_WRITE_XCONFIG: //系数配置 7
 685   2                      {
 686   3                               Comm_rs485_write_xconfig();
 687   3                      }break;                   
 688   2                      default: break;
 689   2              }
 690   1      }
 691          /********************************************************************************************************
 692                                                         End of file
 693          ********************************************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1591    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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