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

📄 commrs232.lst

📁 STC12C5410AD模拟串口再现多串口通讯
💻 LST
📖 第 1 页 / 共 5 页
字号:
 850   1              while (rs_f_TI == 0);                   //等待最后一个字节发送完毕
 851   1      }
 852          /********************************************************************************************************
 853          ** 函数名称: void Comm_rs232_write_vconfig(void) 
 854          ** 功能描述: 
 855          ** 输   入: 无
 856          ** 输   出: 无
 857          ** 全局变量: 
 858          ** 调用模块: 
 859          **
 860          ** 作   者: 李伟
 861          ** 日   期: 2008年12月20日
C51 COMPILER V7.06   COMMRS232                                                             10/30/2008 13:20:06 PAGE 15  

 862          **-------------------------------------------------------------------------------------------------------
 863          ** 修 改 人: 
 864          ** 日   期: 
 865          **-------------------------------------------------------------------------------------------------------
 866          ********************************************************************************************************/
 867          //void Comm_rs232_write_vconfig(void)      //电压限值存储在第一扇区
 868          //{
 869          //      uint8  i,c;
 870          //      uint16 address;
 871          //      c = 0;
 872          //      address = 0x2800;
 873          //      for(i = 1;i < 17;)
 874          //      {
 875          //              MoveVXdata[c] = ((CommRxBuf[i] << 8)|CommRxBuf[i+1]);
 876          //              i++;
 877          //              i++;
 878          //              c++;
 879          //      }
 880          //      EepSectotErase(address);
 881          //      for(i = 0;i < 8;i++)
 882          //      {
 883          //              EepWriteWord(MoveVXdata[i],address);
 884          //              address++;
 885          //              address++;
 886          //      }
 887          //      for(i = 0;i < 8;i++)   //将修正值赋给动作变量
 888          //      {
 889          //              ModeSysConfig[i] =      EepReadWord(address);
 890          //      }
 891          //      rs232_commright();
 892          //}
 893          /********************************************************************************************************
 894          ** 函数名称: void Comm_rs232_write_tconfig(void) 
 895          ** 功能描述: 
 896          ** 输   入: 无
 897          ** 输   出: 无
 898          ** 全局变量: 
 899          ** 调用模块: 
 900          **
 901          ** 作   者: 李伟
 902          ** 日   期: 2008年12月20日
 903          **-------------------------------------------------------------------------------------------------------
 904          ** 修 改 人: 
 905          ** 日   期: 
 906          **-------------------------------------------------------------------------------------------------------
 907          ********************************************************************************************************/
 908          //void Comm_rs232_write_tconfig(void)      //温度限值存储在第二扇区
 909          //{
 910          //      uint8  i;
 911          //      uint16 address;
 912          //      address = 0x2A00;
 913          //      for(i = 1;i < 13;i++)
 914          //      {
 915          //              MoveTdata[i] = CommRxBuf[i];
 916          //      }
 917          //      EepSectotErase(address);
 918          //      for(i = 0;i < 12;i++)
 919          //      {
 920          //              EepWriteByte(MoveTdata[i],address);
 921          //              address++;
 922          //      }
 923          //      for(i = 0;i < 12;i++)   //将修正值赋给动作变量
C51 COMPILER V7.06   COMMRS232                                                             10/30/2008 13:20:06 PAGE 16  

 924          //      {
 925          //              ModeTempCofing[i] = EepReadByte(address);
 926          //      }
 927          //      rs232_commright();
 928          //}
 929          /********************************************************************************************************
 930          ** 函数名称: void Comm_rs232_write_xconfig(void) 
 931          ** 功能描述: 
 932          ** 输   入: 无
 933          ** 输   出: 无
 934          ** 全局变量: 
 935          ** 调用模块: 
 936          **
 937          ** 作   者: 李伟
 938          ** 日   期: 2008年12月20日
 939          **-------------------------------------------------------------------------------------------------------
 940          ** 修 改 人: 
 941          ** 日   期: 
 942          **-------------------------------------------------------------------------------------------------------
 943          ********************************************************************************************************/
 944          void Comm_rs232_write_xconfig(void)        //系数存储在第三扇区
 945          {
 946   1              uint8  i,c,j;
 947   1              uint16 address;
 948   1              c = 0;
 949   1              j = 0;
 950   1              address = 0x2C00;
 951   1              for(i = 1;i < 7;)
 952   1              {
 953   2                      MoveVXdata[c] = ((rs232buffer[i] << 8)|rs232buffer[i+1]);
 954   2                      i++;
 955   2                      i++;
 956   2                      c++;
 957   2              }
 958   1              for(i = 0;i < 3;i++)
 959   1              {
 960   2                  if((MoveVXdata[i] > 6000) && (MoveVXdata[i] < 15000))j++;
 961   2              }
 962   1              if(j == 3)
 963   1              {
 964   2                  j = 0;
 965   2                      EepSectotErase(address);
 966   2                      for(i = 0;i < 3;i++)
 967   2                      {
 968   3                              EepWriteWord(MoveVXdata[i],address);
 969   3                              address++;
 970   3                              address++;
 971   3                      }
 972   2                      CUK = EepReadWord(address);
 973   2                      CTK = EepReadWord(address+2);
 974   2                      OTK = EepReadWord(address+4);
 975   2                      rs232_commright();
 976   2              }
 977   1              else 
 978   1              {
 979   2                      j = 0;
 980   2                      rs232_commwrong();
 981   2              }
 982   1      }
 983          /********************************************************************************************************
 984          ** 函数名称: void Rs232CommManage(void) 
 985          ** 功能描述: 
C51 COMPILER V7.06   COMMRS232                                                             10/30/2008 13:20:06 PAGE 17  

 986          ** 输   入: 无
 987          ** 输   出: 无
 988          ** 全局变量: 
 989          ** 调用模块: 
 990          **
 991          ** 作   者: 李伟
 992          ** 日   期: 2008年12月20日
 993          **-------------------------------------------------------------------------------------------------------
 994          ** 修 改 人: 
 995          ** 日   期: 
 996          **-------------------------------------------------------------------------------------------------------
 997          ********************************************************************************************************/
 998          void Rs232CommManage(void)
 999          {
1000   1              switch(Rs232CommCid)
1001   1              {
1002   2                      case RS232_HAND_SHAKE:    //握手命令    1
1003   2                      {
1004   3                              Comm_rs232_handshake();
1005   3                      }break; 
1006   2                      case RS232_READ_ANALOG:   //读模拟量    2
1007   2                      {
1008   3                              Comm_rs232_readanalog();
1009   3                      }break;
1010   2                      case RS232_READ_DIGITAL:  //读数字量    3
1011   2                      {
1012   3                              Comm_rs232_read_digital();
1013   3                      }break;
1014   2                      case RS232_READ_CONFIG:   //读配置      4
1015   2                      {
1016   3                              Comm_rs232_read_config();
1017   3                      }break; 
1018   2                      case RS232_WRITE_VCONFIG: //电压限值配置  5
1019   2                      {
1020   3      //                      Comm_rs232_write_vconfig();
1021   3                      }break; 
1022   2                      case RS232_WRITE_TCONFIG: //电压限值配置  6
1023   2                      {
1024   3      //                      Comm_rs232_write_tconfig();
1025   3                      }break;
1026   2                      case RS232_WRITE_XCONFIG: //电压限值配置  7
1027   2                      {
1028   3                              Comm_rs232_write_xconfig();
1029   3                      }break;                   
1030   2                      default: break;
1031   2              }
1032   1      }
1033          /********************************************************************************************************
1034                                                         End of file
1035          ********************************************************************************************************/
1036          //void main (void)
1037          //{
1038          ////首先发送 128 个字节 00H--7FH, 然后等待 PC 机发送的数据。当收到 128
1039          ////个字节后,立刻将收到的 128 个数据回发送给 PC 机,然后继续等待下一个
1040          ////数据块。
1041          //  
1042          //    uint8 i;
1043          //    initiate_MCU();                    //系统初始化 
1044          //
1045          //    soft_send_enable ();               //允许发送,禁止接收  
1046          //    for (i=0; i < rs_RECEIVE_MAX; i++ )
1047          //    {
C51 COMPILER V7.06   COMMRS232                                                             10/30/2008 13:20:06 PAGE 18  

1048          //          COMEN = CommTxden;
1049          //        rs_send_byte(i);
1050          //    }
1051          //    while ( rs_f_TI == 0)  ;           // 等待最后一个字节发送完毕   
1052          //
1053          //    while(1)
1054          //    {
1055          //          COMEN = CommRxden;
1056          //        soft_receive_enable ();        //启动并开始接收,禁止发送  
1057          //        while (ReceivePoint < rs_RECEIVE_MAX); // 等待接收缓冲区满  
1058          //
1059          //        soft_send_enable ();           //允许发送,禁止接收  
1060          //        for (i=0; i < rs_RECEIVE_MAX; i++ )
1061          //       

⌨️ 快捷键说明

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