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

📄 taskmain.lst

📁 STC12C5410AD模拟串口再现多串口通讯
💻 LST
📖 第 1 页 / 共 2 页
字号:
 123   2                      ModeTempCofing[8] =  7;        //ReChargeTlow    充电低温恢复限值  7 摄氏度
 124   2                      ModeTempCofing[9] =  43;           //ReChargeThigh   充电高温恢复限值 43 摄氏度
 125   2                      ModeTempCofing[10] = -8;       //ReDisChargeTlow 放电低温恢复限值 -8 摄氏度
 126   2                      ModeTempCofing[11] = 53;       //ReDisChargeThigh放电高温恢复限值 53 摄氏度
 127   2                      address =  0x2800;
 128   2                      EepSectotErase(address);           //擦除第一扇区写入默认值
 129   2                  for(i = 0;i < 9;i++)
 130   2                      {
 131   3                              EepWriteWord(ModeSysConfig[i],address);
 132   3                              address++;
 133   3                              address++;
 134   3                      }
 135   2                      address = 0x2A00;
 136   2                      EepSectotErase(address);           //擦除第二扇区写入默认值
 137   2                      for(i = 0;i < 12;i++)
 138   2                      {
 139   3                              EepWriteByte(ModeTempCofing[i],address);
 140   3                              address++;
 141   3                      }
 142   2                      EepSectotErase(0x2C00);            //擦除第三扇区写入默认值
 143   2                      EepWriteWord(CUK,0x2C00);          //单体电池电压采集系数
 144   2                      EepWriteWord(CTK,0x2C02);          //单体电池温度采集系数
 145   2                      EepWriteWord(OTK,0x2C04);          //环境温度系数
 146   2      
 147   2                      AlarmInitiate ();              //初始化告警
 148   2                      Initiate_RS485();                          //初始化485
 149   2                      Initiate_RS232();                          //初始化232
 150   2                      soft_receive_enable();             // 模拟串口允许接收
 151   2                      COMEN       = CommRxden;           //RS485通讯允许接收
 152   2                      ChargeEn    = ChargeEnable;    //使能充电
 153   2                      DisChargeEn = DisChargeEnable; //使能放电       
 154   2              }
 155   1              else if(EepReadByte(0x2E00) == 119)
 156   1                       {
 157   2                               P1M0 &= 0xFD;   //将RS485通讯使能端设为推挽模式
 158   2                               P1M1 |= 0x02;
 159   2                               CUK = EepReadWord(0x2C00);   //单体电池电压采集系数
 160   2                               CTK = EepReadWord(0x2C02);   //单体电池温度采集系数
 161   2                               OTK = EepReadWord(0x2C04);   //环境温度系数
 162   2                               address =  0x2800;      
 163   2                               for(i = 0;i < 8;i++)
 164   2                               {
 165   3                                      ModeSysConfig[i] = EepReadWord(address);
 166   3                                      address++;
 167   3                                      address++;
 168   3                               }
 169   2                               ModeSysConfig[8] = ReadKey();  //BoardAddress读取本机地址
 170   2                               address = 0x2A00;
 171   2                               for(i = 0;i < 12;i++)
 172   2                               {
 173   3                                      ModeTempCofing[i] = EepReadByte(address);
 174   3                                      address++;
 175   3                               }      
 176   2                               AlarmInitiate ();              //初始化告警
 177   2                               Initiate_RS485();                          //初始化485
 178   2                               Initiate_RS232();                          //初始化232
 179   2                               soft_receive_enable();                 // 模拟串口允许接收
C51 COMPILER V7.06   TASKMAIN                                                              10/30/2008 13:20:04 PAGE 4   

 180   2                               COMEN       = CommRxden;           //RS485通讯允许接收
 181   2                               ChargeEn    = ChargeEnable;    //使能充电
 182   2                               DisChargeEn = DisChargeEnable; //使能放电
 183   2                       }
 184   1      }
 185          /**
 186          ********************************************************************************************************
 187          ** 名  称: void Main (void)
 188          ** 功  能:
 189          ** 作 者: 李  伟 
 190          ** 日 期: 2008年12月09日
 191          **------------------------------------------------------------------------------------------------------
 192          ** 修改人:      
 193          ** 日 期: 
 194          **------------------------------------------------------------------------------------------------------
 195          ********************************************************************************************************
 196          **/
 197          void main(void)
 198          {         
 199   1              SystermInitiate();
 200   1              while(1)
 201   1              {                                                          
 202   2                      Voltage_Collect();                         //采信各模拟量
 203   2                      //WorkMode = WorkModeJudge();      //判断工作模式
 204   2                  ModeSysConfig[8] = ReadKey();  //BoardAddress
 205   2                      WorkMode = DisChargeStep;
 206   2                      if(WorkMode == ChargeStep)         //充电管理
 207   2                      {
 208   3                              RunLed = 0;                //充电时指示灯一直亮起,
 209   3                              SignalCellT(Temperature, 9,ChargeStep);    //单只电池温度告警查询
 210   3                              SignalCellV(CellVoltage,15,ChargeStep);    //单只电池温度告警查询
 211   3                              ChargeAndDisChargeEnable  (ChargeStep);    //放电使能查询                       
 212   3                      }
 213   2                      if(WorkMode == DisChargeStep)  //放电管理
 214   2                      {
 215   3                              RunLed = ~RunLed;                  //放电时指示灯闪烁/秒
 216   3                              SignalCellT(Temperature, 9,DisChargeStep); //单只电池温度告警查询
 217   3                              SignalCellV(CellVoltage,15,DisChargeStep); //单只电池电压告警查询
 218   3                              ChargeAndDisChargeEnable  (DisChargeStep); //放电使能查询               
 219   3                      }
 220   2                      if(Rs232Massageflag == 1)      //模拟串口通讯标志
 221   2                      {
 222   3                              Rs232Massageflag = 0;
 223   3                              soft_send_enable();
 224   3                              Rs232CommManage ();
 225   3                              soft_receive_enable();
 226   3                      }
 227   2                      if(Massageflag == 1)               //RS485通讯标志
 228   2                      {       
 229   3                              Massageflag = 0;
 230   3                              COMEN = CommTxden;
 231   3                              CommRs485Manage();
 232   3                              COMEN = CommRxden;
 233   3                      }
 234   2              }
 235   1      }
 236          /********************************************************************************************************
 237                                                         End of file
 238          ********************************************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.06   TASKMAIN                                                              10/30/2008 13:20:04 PAGE 5   

   CODE SIZE        =    968    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    142    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     30       6
   IDATA SIZE       =     63    ----
   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 + -