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

📄 alarm.lst

📁 该程序完成了c8051外围电路的驱动和串口协议的编写。希望能给大家学习51单片机带来帮助
💻 LST
📖 第 1 页 / 共 4 页
字号:
 207          {                                                          
 208   1              AlarmModule.uchOKStatus[uchChannel - 1] = uchOKStatus;
 209   1      }
 210          
 211          //--------------------------------------------------------------------------------------------------
 212          //函数名称:void SetChannelTypeALM(unsigned char uchChannel, unsigned char uchChannelType)        
 213          //功    能:设置通道类型
 214          //输入参数:通道号,通道类型
 215          //返    回:无
 216          //完成日期:4/16/2007
 217          //--------------------------------------------------------------------------------------------------
 218          void SetChannelTypeALM(unsigned char uchChannel, unsigned char uchChannelType)
 219          {               //HHH                              
 220   1              if (((uchChannelType > 12) && (uchChannelType < 19)) || (uchChannelType == 21) || (uchChannelType == 22)|
             -| (uchChannelType == 28))
 221   1              {
 222   2                      AlarmModule.uchChannelType[uchChannel - 1] = uchChannelType;      
 223   2              }
 224   1              else
 225   1              {
 226   2                      AlarmModule.uchChannelType[uchChannel - 1] = 13;                
 227   2              }
 228   1      }
 229          
 230          /*****************************************************
 231          * 函数介绍: 设置通道当前测量值
 232          * 输入参数: 当前测量值 通道号
 233          * 输出参数: 无
 234          * 返回值 :      无
 235          *****************************************************/
 236          void SetCurrentValueALM( unsigned char uchChannel, float iCurrentValue)//当前测量值
 237          {                                                                                       
C51 COMPILER V7.10   ALARM                                                                 09/18/2008 14:09:31 PAGE 5   

 238   1              AlarmModule.iCurrentValue[uchChannel - 1] = iCurrentValue;                      
 239   1      }
 240          
 241          /*****************************************************
 242          * 函数介绍: 设置通道报警延迟时间
 243          * 输入参数: 延迟时间 通道号
 244          * 输出参数: 无
 245          * 返回值 :      无
 246          *****************************************************/
 247          void SetAlertDelay(unsigned char uchChannel, unsigned int iDelay)
 248          {                                                  
 249   1              AlarmModule.uiAlertDelay[uchChannel - 1] = iDelay;                              
 250   1      }  
 251          
 252          /*****************************************************
 253          * 函数介绍: 设置通道报警延迟时间
 254          * 输入参数: 延迟时间 通道号
 255          * 输出参数: 无
 256          * 返回值 :      无
 257          *****************************************************/
 258          void SetDangerDelay(unsigned char uchChannel, unsigned int iDelay)
 259          {                                                                
 260   1              AlarmModule.uiDangerDelay[uchChannel - 1] = iDelay;                     
 261   1      }
 262          
 263          /*****************************************************
 264          * 函数介绍: 设置系统复位状态
 265          * 输入参数: 复位状态
 266          * 输出参数: 无
 267          * 返回值 :      无
 268          *****************************************************/
 269          void SetResetStatusALM(unsigned char uchStatus)
 270          {
 271   1              AlarmModule.uchResetStatus[0] = uchStatus;
 272   1              AlarmModule.uchResetStatus[1] = uchStatus;
 273   1      }
 274          
 275          //--------------------------------------------------------------------------------------------------
 276          //函数名称:void InitChannel(unsigned char uchChannel)    
 277          //功    能:初始化通道数据
 278          //输入参数:通道号
 279          //返    回:无
 280          //完成日期:4/16/2007
 281          //--------------------------------------------------------------------------------------------------
 282          void InitChannel(unsigned char uchChannel)
 283          {
 284   1              AlarmModule.uiAlertHeartbeatBakH[uchChannel - 1] = 0;
 285   1              AlarmModule.uiDangerHeartbeatBakH[uchChannel - 1] = 0;
 286   1              AlarmModule.uiAlertHeartbeatBakL[uchChannel - 1] = 0;
 287   1              AlarmModule.uiDangerHeartbeatBakL[uchChannel - 1] = 0;
 288   1      }
 289          
 290          //--------------------------------------------------------------------------------------------------
 291          //函数名称:void SetFlagBit(unsigned char uchChannel, unsigned char b)    
 292          //功    能:置位通道报警位
 293          //输入参数:通道号 ,报警位
 294          //返    回:无
 295          //完成日期:4/16/2007
 296          //--------------------------------------------------------------------------------------------------
 297          void SetFlagBit(unsigned char uchChannel, unsigned char b)
 298          {
 299   1              unsigned int idata elapsed;
C51 COMPILER V7.10   ALARM                                                                 09/18/2008 14:09:31 PAGE 6   

 300   1      
 301   1              if (AlarmModule.uchChannelNotoktoOkFlag[uchChannel - 1] == 1)
 302   1              {
 303   2                      switch (AlarmModule.uchChannelType[uchChannel - 1])
 304   2                      {
 305   3                              case 13:                 //加速度输入    加速度输出
 306   3                              case 14:         //加速度输入    速度输出  
 307   3                              case 15:                 //加速度输入    位移输出
 308   3                              case 16:                 //速度输出      速度输出
 309   3                              case 17:                 //速度输入      位移输出
 310   3                              case 18:                 //位移输入      位移输出
 311   3                              case 28:                 //HHH
 312   3                                      if (b == 0x1 || b == 0x2)
 313   3                                      { 
 314   4                                              return;
 315   4                                      }
 316   3                                      break;
 317   3                              case 22:                                 //LVDT输入    机壳膨胀输出 
 318   3                                      if (((uchChannel-1) == 0)&&(b == 0x1 || b == 0x2))
 319   3                                      {
 320   4                                              return;
 321   4                                      }
 322   3                                      
 323   3                                      break;
 324   3                              
 325   3                              default:
 326   3                                      break;
 327   3                      }
 328   2              
 329   2                      if ((AlarmModule.uchAlarmStatus[uchChannel - 1] & b) != 0 )
 330   2                      {
 331   3                              return; 
 332   3                      }
 333   2                      
 334   2                      if (0x2 == b ) 
 335   2                      {               
 336   3                              if (AlarmModule.uiAlertHeartbeatBakH[uchChannel - 1] == 0)
 337   3                              { 
 338   4                                      AlarmModule.uiAlertHeartbeatBakH[uchChannel - 1] = AlarmModule.uiCurrentHeartbeat;
 339   4                              }
 340   3                              else 
 341   3                              {
 342   4                                      if (AlarmModule.uiCurrentHeartbeat >= AlarmModule.uiAlertHeartbeatBakH[uchChannel - 1])
 343   4                                      {
 344   5                                              elapsed = AlarmModule.uiCurrentHeartbeat - AlarmModule.uiAlertHeartbeatBakH[uchChannel - 1];
 345   5                                      }
 346   4                                      else
 347   4                                      {
 348   5                                              elapsed = 65536  - AlarmModule.uiAlertHeartbeatBakH[uchChannel - 1] + AlarmModule.uiCurrentHeartbeat;
 349   5                                      }
 350   4              
 351   4                                      if ( elapsed > AlarmModule.uiAlertDelay[uchChannel - 1] * 100)   
 352   4                                      {
 353   5                                              AlarmModule.uchAlarmStatus[uchChannel - 1] |= b; 
 354   5                                              AlarmModule.uiAlertHeartbeatBakH[uchChannel - 1] = 0;
 355   5                                      }
 356   4                              }
 357   3                      }
 358   2              
 359   2                      if ( 0x4 == b) 
 360   2                      {
 361   3                              if (AlarmModule.uiAlertHeartbeatBakL[uchChannel - 1] == 0)
C51 COMPILER V7.10   ALARM                                                                 09/18/2008 14:09:31 PAGE 7   

 362   3                              { 
 363   4                                      AlarmModule.uiAlertHeartbeatBakL[uchChannel - 1] = AlarmModule.uiCurrentHeartbeat;
 364   4                              }
 365   3                              else 
 366   3                              {                       
 367   4                                      if (AlarmModule.uiCurrentHeartbeat >= AlarmModule.uiAlertHeartbeatBakL[uchChannel - 1])
 368   4                                      {
 369   5                                              elapsed = AlarmModule.uiCurrentHeartbeat - AlarmModule.uiAlertHeartbeatBakL[uchChannel - 1];
 370   5                                      }
 371   4                                      else
 372   4                                      {
 373   5                                              elapsed = 65536 + AlarmModule.uiCurrentHeartbeat - AlarmModule.uiAlertHeartbeatBakL[uchChannel - 1];
 374   5                                      }
 375   4                                      if ( elapsed > AlarmModule.uiAlertDelay[uchChannel - 1] * 100) 
 376   4                                      {
 377   5                                              AlarmModule.uchAlarmStatus[uchChannel - 1] |= b; 
 378   5                                              AlarmModule.uiAlertHeartbeatBakL[uchChannel - 1] = 0;
 379   5                                      }
 380   4                              }
 381   3                      }
 382   2              
 383   2                      if (0x1 == b )
 384   2                      {
 385   3                              if (AlarmModule.uiDangerHeartbeatBakH[uchChannel - 1] == 0)
 386   3                              { 
 387   4                                      AlarmModule.uiDangerHeartbeatBakH[uchChannel - 1] = AlarmModule.uiCurrentHeartbeat;
 388   4                              }
 389   3                              else 
 390   3                              {
 391   4                                      if (AlarmModule.uiCurrentHeartbeat >= AlarmModule.uiDangerHeartbeatBakH[uchChannel - 1])
 392   4                                      {
 393   5                                              elapsed = AlarmModule.uiCurrentHeartbeat - AlarmModule.uiDangerHeartbeatBakH[uchChannel - 1];
 394   5                                      }
 395   4                                      else 
 396   4                                      {
 397   5                                              elapsed = 65536 + AlarmModule.uiCurrentHeartbeat - AlarmModule.uiDangerHeartbeatBakH[uchChannel - 1];
 398   5                                      }
 399   4                                      if ( elapsed > AlarmModule.uiDangerDelay[uchChannel - 1] * 100) 
 400   4                                      {
 401   5                                              AlarmModule.uchAlarmStatus[uchChannel - 1] |= b; 
 402   5                                              AlarmModule.uiDangerHeartbeatBakH[uchChannel - 1] =0;
 403   5                                      }
 404   4                              }
 405   3                      }
 406   2              
 407   2                      if ( 0x8 == b)
 408   2                      {
 409   3                              if (AlarmModule.uiDangerHeartbeatBakL[uchChannel - 1] == 0) 
 410   3                              {
 411   4                                      AlarmModule.uiDangerHeartbeatBakL[uchChannel - 1] = AlarmModule.uiCurrentHeartbeat;
 412   4                              }
 413   3                              else 
 414   3                              {
 415   4                                      if (AlarmModule.uiCurrentHeartbeat >= AlarmModule.uiDangerHeartbeatBakL[uchChannel - 1])
 416   4                                      {
 417   5                                              elapsed = AlarmModule.uiCurrentHeartbeat - AlarmModule.uiDangerHeartbeatBakL[uchChannel - 1];
 418   5                                      }
 419   4                                      else 
 420   4                                      {
 421   5                                              elapsed = 65536 + AlarmModule.uiCurrentHeartbeat - AlarmModule.uiDangerHeartbeatBakL[uchChannel - 1];
 422   5                                      }
 423   4                                      if ( elapsed > AlarmModule.uiDangerDelay[uchChannel - 1] * 100) 

⌨️ 快捷键说明

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