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

📄 led.c

📁 一个很好的完整的空调控制器程序
💻 C
📖 第 1 页 / 共 2 页
字号:
         ClrBit(pRunLed,pbRunLed);    /* 运行灯亮 */
     }
#else
     SetBit(pRunLed,pbRunLed);        /* 运行灯灭 */
     SetBit(pEconLED,pbEconLED);      /* 经济灯灭 */
     if (((FlashCntr2 & 0x0F) <= 0x02)||(FlashCntr >= 100)){
       if (ValBit(FlashCntr2,4))
         SetBit(pPowerLED,pbPowerLED);/* 强力灯灭 */
       if (ValBit(FlashCntr2,5))
         SetBit(pTimeLed,pbTimeLed);  /* 定时灯灭 */
     } else {
       ClrBit(pTimeLed,pbTimeLed);    /* 定时灯亮 */
       ClrBit(pPowerLED,pbPowerLED);  /* 强力灯亮 */
     }
#endif
  } else {
//#if ((NJTYPE == 0)||(NJTYPE == 1))
//     SetBit(pProtLed,pbProtLed);      /* 故障灯灭 */
//#endif
#if (NJTYPE == 3)
     if ((u8)(FanStatus & FANMASK_S) == FANPO_S){
       ClrBit(pPowerLED,pbPowerLED);  /* 强力灯 */
     } else {
       SetBit(pPowerLED,pbPowerLED);  /* 强力灯 */
     }
     if ((u8)(FanStatus & FANMASK_S) == FANEC_S){
       ClrBit(pEconLED,pbEconLED);    /* 经济灯 */
     } else {
       SetBit(pEconLED,pbEconLED);    /* 经济灯 */
     }
#endif
     FlashCntr2 = 0;
     if (ValBit(RunMode,fSysOn)){
       /* 通风模式时,不闪烁 */
       if (((u8)(RunMode & MODEMASK) == MODEFAN)
          /* 外机允许 */
          || ValBit(OutDevStu[0],fRunEnable)
          /* 自动模式*/
          || ((AutoCnt != 0) &&
              (ValBit(Sysflag2,fMAuto) ||
              ((u8)(RunMode & MODEMASK) == MODEAUTO)))
          /* 检测延时未到 */
          || (DispDlyCnt < 0x0A)){
         if (((u8)(RunMode & MODEMASK) == MODEHEAT)
             /* 化霜时,运行灯闪烁 */
             && (ValBit(OutDevStu[0],fOutDeforst)
             /* 防冷风,运行灯闪烁 */
             || ValBit(Sysflag2,fProtColdFan))
             && ValBit(SlpTmFlag,bb2s)){
           SetBit(pRunLed,pbRunLed);  /* 运行灯 */
         } else {
           ClrBit(pRunLed,pbRunLed);  /* 运行灯 */
         }

         if ((u8)(SlpTmFlag & ((1<<fSleep)|(1<<fTime)|(1<<fTimeOff))) != 0){
           ClrBit(pTimeLed,pbTimeLed);  /* 定时灯亮 */
         } else {
           SetBit(pTimeLed,pbTimeLed);  /* 定时灯灭 */
         }

       /* 外机不允许开机时,定时灯闪烁;运行灯关 */
       } else {
         SetBit(pRunLed,pbRunLed);      /* 运行灯灭 */
         if (ValBit(SlpTmFlag,bb2s)){
           SetBit(pTimeLed,pbTimeLed);  /* 定时灯灭 */
         } else {
           ClrBit(pTimeLed,pbTimeLed);  /* 定时灯亮 */
         }
       }
     } else {
       /* 关机时运行灯灭;若被锁定,则闪烁 */
       //if (ValBit(RunMode,fLtdSwOn) &&  /* fLtdSwSt 房卡状态 1:断开 */
       //    ValBit(SlpTmFlag,bb2s)){
       //  ClrBit(pRunLed,pbRunLed);      /* 运行灯亮 */
       //} else {
         SetBit(pRunLed,pbRunLed);      /* 运行灯灭 */
       //}
       if ((u8)(SlpTmFlag & ((1<<fSleep)|(1<<fTime)|(1<<fTimeOff))) != 0){
         ClrBit(pTimeLed,pbTimeLed);    /* 定时灯亮 */
       } else {
         SetBit(pTimeLed,pbTimeLed);    /* 定时灯灭 */
       }
     }
  }
#endif  /* TESTPRG */
#endif  /* NJTYPE */
}

#if ((NJTYPE == 0)||(NJTYPE == 1)||(NJTYPE == 2)||(NJTYPE == 3))
#ifdef EnSTYLE5
const u8 DPErrNo[] = {
      /* 定频 */
      /* E46 0 室外温度传感器故障           0x33 */
      /* E47 1 室外盘管中点温度传感器故障   0x34 */
      /* E48 2 室外盘管出口温度传感器故障   0x35 */
      /* E49 3 室外吸气压力传感器故障       0x36 */
      /* E4A 4 室外排气压力传感器故障       0x37 */
      0x33,0x34,0x35,0x36,0x37,0x00,0x00,0x00,
      /* E54 0 1#电流保护输入, 闭合时正常   0x38 */
      /* E55 1 2#电流保护输入, 闭合时正常   0x39 */
      /* E56 2 3#电流保护输入, 闭合时正常   0x3A */
      /* E59 5 缺相错相                     0x3B */
      /* E60 6 缺氟或换向阀故障             0x3C */
      /* E61 7 地址冲突                     0x3D */
      0x38,0x39,0x3A,0x00,0x00,0x3B,0x3C,0x3D,
      /* E62 0 1#高压保护输入, 闭合时正常   0x23 */
      /* E63 1 2#高压保护输入, 闭合时正常   0x24 */
      /* E64 2 3#高压保护输入, 闭合时正常   0x25 */
      /* E68 6 室外盘管过热保护             0x26 */
      /* E69 7 室外环境温度超温             0x27 */
      0x23,0x24,0x25,0x00,0x00,0x00,0x26,0x27,
      /* E70 0 1#热保护输入, 闭合时正常     0x28 */
      /* E71 1 2#热保护输入, 闭合时正常     0x29 */
      /* E72 2 3#热保护输入, 闭合时正常     0x2A */
      /* E76 6 吸气压力低                   0x2B */
      /* E77 7 排气压力高                   0x2C */
      0x28,0x29,0x2A,0x00,0x00,0x00,0x2B,0x2C};
const u8 BPErrNo[] = {
      /* 变频 */
      /* E30 0 三相交流电源缺相或相序错误   0x23 */
      /* E31 1 通信线路故障                 0x24 */
      /* E32 2 室外机地址冲突               0x25 */
      /* E33 3 与所有室内机通信故障         0x26 */
      /* E34 4 室外环境温度传感器异常       0x27 */
      /* E35 5 室外环境温度超温             0x28 */
      /* E36 6 系统排气压力过高             0x29 */
      /* E37 7 系统吸气压力过低             0x2A */
      0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,
      /* E38 0 系统排气压力传感器异常       0x2B */
      /* E39 1 系统吸气压力传感器异常       0x2C */
      /* E40 2 系统缺氟                     0x2D */
      /* E42 4 制热冷凝器入口温度传感器异常 0x2E */
      0x2B,0x2C,0x2D,0x00,0x2E,0x00,0x00,0x00,
      /* E01 0 变频器模块异常               0x33 */
      /* E02 1 压机A交流输入电流保护动作    0x34 */
      /* E03 2 压缩机A外壳温度过高          0x35 */
      /* E04 3 压缩机A排气温度过高          0x36 */
      /* E05 4 制冷时冷凝温度过高           0x37 */
      /* E06 5 低压开关(吸气压力)动作     0x38 */
      /* E07 6 高压开关(排气压力)动作     0x39 */
      /* E08 7 缺氟或换向阀故障             0x3A */
      0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,
      /* E09 0 交流输入电流采样异常         0x3B */
      /* E10 1 直流母线电压采样异常         0x3C */
      /* E11 2 压缩机A排气温度传感器异常    0x3D */
      /* E12 3 冷凝器温度传感器异常         0x3E */
      /* E13 4 吸气温度传感器异常           0x3F */
      0x3B,0x3C,0x3D,0x3E,0x3F,0x00,0x00,0x00,
      /* E20 0 压缩机B电流过大保护开关动作  0x1B */
      /* E21 1 压缩机B外壳温度(过高)保护  0x1C */
      /* E22 2 压缩机B排气温度过高          0x1D */
      0x1B,0x1C,0x1D,0x00,0x00,0x00,0x00,0x00,
      /* E23 0 压缩机B排气温度传感器异常    0x1E */
      0x1E};
#endif
const u8 NJErrNo[] = {
      /* E12 0 室温传感器故障               0x15 */
      /* E15 1 细管传感器故障               0x18 */
      /* E13 2 内管传感器故障               0x17 */
      /* E16 3 粗管传感器故障               0x16 */
      /* E11 4 内机地址冲突                 0x19 */
      /* E14 5 与线控器通信故障             0x14 */
      /* E11 6 内机与外机通信故障           0x13 */
      /* E08 7 室内机总功率过大             0x1A */
      0x15,0x17,0x18,0x16,0x19,0x14,0x13,0x1A};
u8 GetErrNum(void)
{
   u8 i;

#ifdef EnPUMP
   /* E10 5 水泵故障                     0x14 */
   if (ValBit(Errorflg2,fPumpErr)) return 0x14;
#endif
#ifdef EnSTYLE5
   if (ValBit(Errorflg2,fLtdSwSt)) return 0x2F;
#ifdef EnPGFENGJI
   /* PG 风机故障 */
   if (ValBit(Errorflg2,fPGErr))   return 0x1F;
#endif
#else
#ifdef EnPGFENGJI
   /* PG 风机故障 */
   if (ValBit(Errorflg2,fPGErr))   return 0x1A;
#endif
   if (ValBit(Errorflg2,fLtdSwSt)) return 0x19;
#endif
   i = 0;
   while ( i < 0x08){
     if ((Errorflg & BitMask[i]) != 0){
       return NJErrNo[i];
       break;
     }
     i += 1;
   }
#ifdef EnSTYLE5
   i = 0;
   while (i < 0x29){
     if ((OutSideErr[i >> 3] & BitMask[i & 0x07]) != 0){
       if (WJType == 1 ){          /* 1: 定频外机系统 */
         return DPErrNo[i];
       } else if (WJType == 0){    /* 0:变频外机系统 */
         return BPErrNo[i];
       } else {
         return 0;                 /* 其他 */
       }
       break;
     }
     i += 1;
   }
#else
   /* 三型 */
   /* F02 0 室外压缩机排气温度过高        0x23 */
   /* F04 1 缺氟或换向阀故障              0x24 */
   /* F01 2 室外机交流输入电流过大        0x25 */
   /* F05 3 室外机交流输入电流采样故障    0x26 */
   /* F06 4 室外机直流母线电压异常        0x27 */
   /* F07 5 室内机总功率过大              0x28 */
   /* F03 6 室外机传感器故障              0x29 */
   /* F00 7 变频器模块保护                0x2A */
   i = 0;
   while (i < 0x08){
     if ((OutSideErr[0] & BitMask[i]) != 0){
       return (u8)(i + 0x23);
       break;
     }
     i += 1;
   }
#endif
   return 0;
}
#elif (NJTYPE == 4)||(NJTYPE ==5)
#ifdef EnSTYLE5
const u8 DPErrNo[] = {
      /* 定频 */
      0x46,0x47,0x48,0x49,0x50,0x51,0x52,0x53,
      0x54,0x55,0x56,0x57,0x58,0x59,0x60,0x61,
      0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
      0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
      0x78,0x79,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x80,0x82,0x81,0x83,0x84,0x88,0x87,0x89,
      0x90,0x93,0x91,0x00,0x00,0x00,0x00,0x00};
const u8 BPErrNo[] = {
      /* 变频 */
      0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
      0x38,0x39,0x40,0x41,0x42,0x43,0x44,0x45,
      0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
      0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,
      0x20,0x21,0x22,0x00,0x00,0x00,0x00,0x00,
      0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x80,0x82,0x81,0x83,0x84,0x88,0x87,0x89,
      0x90,0x93,0x91,0x00,0x00,0x00,0x00,0x00};
#else
      /* 三型 */
#if (NJTYPE == 4)
const u8 ErrNo[] = {
      0x12,0x14,0x15,0x13,0x10,0x16,0x10,0x07,
      0x11,0x19,0x17,0x00,0x00,0x00,0x00,0x00,
      0x02,0x04,0x01,0x05,0x06,0x07,0x03,0x00};
#elif (NJTYPE ==5)
const u8 ErrNo[] = {
      0x03,0x05,0x06,0x04,0x01,0x07,0x01,0x16,
      0x02,0x09,0x08,0x00,0x00,0x00,0x00,0x00,
      0x13,0x15,0x12,0x17,0x18,0x16,0x14,0x11};
#endif
#endif
u8 GetErrNum(void)
{
#ifdef EnSTYLE5
    if (FlashErrCnt == 0){
      FlashErrCnt = 150;        /* 3s On 20mS */
      while (1){
        if (++FlashErrNo >= 0x40) FlashErrNo = 0;
        if (FlashErrNo < 0x30){
          if ((OutSideErr[FlashErrNo>>3] & BitMask[FlashErrNo & 0x07]) != 0) break;
        } else if (FlashErrNo < 0x38){
          if ((Errorflg & BitMask[FlashErrNo & 0x07]) != 0) break;
        } else {
          if ((Errorflg2 & BitMask[FlashErrNo & 0x07]) != 0) break;
        }
      }
    }

    if (WJType == 1 ){          /* 1: 定频外机系统 */
      return DPErrNo[FlashErrNo];
    } else if (WJType == 0){    /* 0:变频外机系统 */
      return BPErrNo[FlashErrNo];
    } else {
      return 0;                 /* 其他 */
    }
    return 0;
#else
    if (FlashErrCnt == 0){
      FlashErrCnt = 150;        /* 3s On 20mS */
      while (1){
        if (++FlashErrNo >= 0x18) FlashErrNo = 0;
        if (FlashErrNo < 0x08){
          if ((Errorflg & BitMask[FlashErrNo]) != 0) break;
        } else if (FlashErrNo < 0x10){
          if ((Errorflg2 & BitMask[FlashErrNo & 0x07]) != 0) break;
        } else {
          if ((OutSideErr[0] & BitMask[FlashErrNo & 0x07]) != 0) break;
        }
      }
    }
    return ErrNo[FlashErrNo];
#endif
}
#endif

#ifdef AVRGCC
SIGNAL(SIG_OUTPUT_COMPARE1B)
#else
#pragma interrupt_handler Disp_Int:iv_TIMER1_COMPB
void Disp_Int(void)
#endif
{
#if (NJTYPE == 4)  /* 挂机 */
   u8 i;
   u8 j;
   u8 k;

   OCR1B += (u16)2048;  /* 1mS */

   if (++ScanCnt > 7) ScanCnt = 0;   /* 0-7 */

   if (!ValBit(Sysflag1,fDataChg)){
     ClrBit(pRCLK,pbRCLK);
     for(j = 0; j < 2; j++){
       if (j == 1){
         k = ~SegBuf[ScanCnt];
       } else {
         k = (u8)~(1 << ScanCnt);
       }

       i = 0x80;
       while(i != 0){
         ClrBit(pCLK164,pbCLK164);   /* CK Lo */
         if ((u8)(k & i) != 0){
           SetBit(pAB164,pbAB164);
         } else {
           ClrBit(pAB164,pbAB164);
         }
         i >>= 1;
         SetBit(pCLK164,pbCLK164);   /* CK Hi */
       }
     }
     SetBit(pRCLK,pbRCLK);
     //ClrBit(pCLK164,pbCLK164);     /* CK Lo */
   }
#elif (NJTYPE == 5)  /* 柜机 */
   u8 i;

   OCR1B += (u16)2048;  /* 2mS */

   if (!ValBit(Sysflag1,fDataChg)){  /* 显示输出,同时扫描健 */
     pIO_DIG &= ~((1<<pbIO_DIG1)|
                  (1<<pbIO_DIG2)|
                  (1<<pbIO_DIG3)|
                  (1<<pbIO_DIG4)|
                  (1<<pbIO_DIG5)|
                  (1<<pbIO_DIG6));   /* 先关显示输出*/
     i = 0x80;
     while(i != 0){
       ClrBit(pCLK164,pbCLK164);     /* CK Lo */
       if ((u8)(SegBuf[ScanCnt] & i) != 0){
         SetBit(pAB164,pbAB164);
       } else {
         ClrBit(pAB164,pbAB164);
       }
       i >>= 1;
       SetBit(pCLK164,pbCLK164);     /* CK Hi */
     }
     pIO_DIG |= (u8)(4 << ScanCnt);  /* 开显示 */
     ClrBit(pCLK164,pbCLK164);       /* CK Lo */
     Nop();
     Nop();
     Nop();
     if (!ValBit(pIO_KSW1,pbIO_KSW1)){
       KeyBuf |= (u8)(1 << ScanCnt);
     }
     if (!ValBit(pIO_KSW2,pbIO_KSW2)){
       KeyBuf |= 0x01;
     }
     if (++ScanCnt > 5){
       /* 存储扫描结果 */
       KeyGet = (u8)KeyBuf;
       /* 0-5 */
       ScanCnt = 0x00;
       KeyBuf  = 0x00;
     }
   }
#endif
}

void Led_Init(void)
{
#if ((NJTYPE == 0)||(NJTYPE == 1))
   //SetBit(pProtLed,pbProtLed);    /* 故障灯 */
   //SetBit(pTimeLed,pbTimeLed);    /* 定时灯 */
   //SetBit(pRunLed,pbRunLed);      /* 运行灯 */
   //FlashCntr2 = 0x00;
#elif ((NJTYPE == 2)||(NJTYPE == 3))
   //SetBit(pTimeLed,pbTimeLed);    /* 定时灯 */
   //SetBit(pRunLed,pbRunLed);      /* 运行灯 */
   //FlashCntr2 = 0x00;
#elif (NJTYPE == 4)
   //FlashErrCnt = 0;
   //SegBuf[0] = 0x0FF;             /* 指示灯灭 */
   //SegBuf[1] = 0x0FF;
   //SegBuf[2] = 0x0FF;
   /* TCCR1A: COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10 */
   TCCR1A = 0x00;              /* Normal */
   /* TCCR1B: ICNC1 ICES1 - - WGM13 WGM12 CS12 CS11 CS10 */
   TCCR1B = 0x02;              /* 1:8 */
   //TIFR = 0x0FF;
   TIMSK |= (u8)(1 << OCIE1B);
#elif (NJTYPE == 5)
   //SetBit(pRunLED,pbRunLED);      /* 运行灯灭 */
   //FlashErrCnt = 0;
   /* TCCR1A: COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10 */
   TCCR1A = 0x00;              /* Normal */
   /* TCCR1B: ICNC1 ICES1 - - WGM13 WGM12 CS12 CS11 CS10 */
   TCCR1B = 0x02;              /* 1:8 */
   //TIFR = 0x0FF;
   TIMSK |= (u8)(1 << OCIE1B);
   ChkLcdCnt = 150;               /* 3s */
#endif
}

#endif

/*** (c) 2005  佛山菱电 **************************** END OF FILE *************/

⌨️ 快捷键说明

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