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

📄 keydeal.c.txt

📁 空调控制器中按键功能实现的子程序,包括模式设定,温度湿度设定等.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
            else
            {
              if(KeyHoldCount>3) 
              {
                if(ontimem<3) 
                {
                  ontimem=ontimem+59;
                  ontimem=ontimem-3;
                  if(ontimeh==0) {ontimeh=24; ontimem=0;} 
                  else {ontimeh=ontimeh-1;}
                }
                else {ontimem=ontimem-3;}
              }
              else
              {
                if(KeyHoldCount<=3)
                {
                  if(ontimem==0) 
                  {
                    ontimem=59;
                    if(ontimeh==0) {ontimeh=24; ontimem=0;} 
                    else {ontimeh=ontimeh-1;}
                  }
                  else {ontimem=ontimem-1;}
                }           //<=3
              }            //<6
            }            //>6
            TimeWrite(ontimeh,ontimem); 
          }
          /* 定时关时间设定*/
          if((KeySignL&0x30)==0x20)
          {
            if(KeyHoldCount>6)
            {
              if(offtimeh==0){offtimeh=24; offtimem=0;}
              else {offtimeh=offtimeh-1;}
            }
            else
            {
              if(KeyHoldCount>3) 
              {
                if(offtimem<3) 
                {
                  offtimem=offtimem+59; 
                  offtimem=offtimem-3;
                  if(offtimeh==0) {offtimeh=24; offtimem=0;}
                  else {offtimem=offtimem-3;} 
                }                 
              }
              else
              {
                if(KeyHoldCount<=3)
                {
                  if(offtimem==0) 
                  {
                    offtimem=59;
                    if(offtimeh==0) {offtimeh=24; offtimeh=0;}
                    else {offtimeh=offtimeh-1;}
                  }
                  else {offtimem=offtimem-1;}
                }
              }         //>3 else
            }          //>6 else 
            TimeWrite(offtimeh,offtimem);            
          }
          /* 当前时间设定 */
          if((KeySignL&0x30)==0x30)
          {
            if(KeyHoldCount>6)
            {
              if(shenowtimeh==0) {shenowtimeh=23;}
              else {shenowtimeh=shenowtimeh-1;}
            }
            else
            {
              if(KeyHoldCount>3) 
              {
                if(shenowtimem<3) 
                {
                  shenowtimem=shenowtimem+59;
                  shenowtimem=shenowtimem-3;
                  if(shenowtimeh==0) {shenowtimeh=23;}
                  else{shenowtimeh=shenowtimeh-1;}
                }
                else {shenowtimem=shenowtimem-3;}
              }
              else
              {
                if(KeyHoldCount<=3)
                {
                  if(shenowtimem==0) 
                  {
                    shenowtimem=59;
                    if(shenowtimeh==0) {shenowtimeh=23;}
                    else {shenowtimeh=shenowtimeh-1;}
                  }
                  else {shenowtimem=shenowtimem-1;}
                }
              }
            }
            TimeWrite(shenowtimeh,shenowtimem);
            SetTime();
          }
          /* 设定温度设定值 */
          if((KeySignL&0x30)==0x00)
          {
            AuxFlag.exitte=1;
            if(KeyHoldCount>5)
            {
              if(TemperatureSetVal<2) {TemperatureSetVal=0;}
              else {TemperatureSetVal=TemperatureSetVal-2;}
            }
            else 
            {
              if(TemperatureSetVal<1) {TemperatureSetVal=0;} 
              else {TemperatureSetVal=TemperatureSetVal-1;}
            }
            TemperatureWrite(TemperatureSetVal);
          }
          break; 
        /* SET 按键处理  */
        case 0x04:                   //set
	        AuxFlag.exitte=0;
	        CtrlFlagByte.ONAUTODZ=0;
	        nokeyyanshi=0;
	        KeyHoldCount=0; 
	        KeyFlag.setrelay=1;
	        if(KeyFlag.setdz==0)
	        {
	          LockDelay=LockDelay+1;
	          if(LockDelay>30)
	          {
	            LockDelay=0;
	            KeyFlag.setrelay=0;
	            KeyFlag.lock=1;
	            KeyFlag.setdz=1;
	            lcdx5.lcd5bits.lc3=1;
	          }
	        }
	        break; 
	      /* POWER 按键处理 */
     		case 0x80:                   //power
	        AuxFlag.exitte=0;
	        if(AuxFlag.power==0)
	        {
	//test
	  //       AuxFlag.flag2=1;
	//test
		        AuxFlag.power=1;
		        KeyHoldCount=0;
		        nokeyyanshi=0; 
		        KeySignH=0;
		        ClearFan();
		        ClearMode();
		        if(CtrlFlagByte.OFFAUTO==1)
	         	{
	           	CtrlFlagByte.OFFAUTODZ=1;
	           	CtrlFlagByte.ONAUTODZ=0;
	         	}
		      }   
		      break; 
		    /* MODE 按键处理 */
	      case 0x40:              
	        AuxFlag.exitte=0;
	        CtrlFlagByte.ONAUTODZ=0;
	        nokeyyanshi=0;
	        KeyHoldCount=0;                   
	        if((w0&0x03)==0x01) // 自动送风->制冷
	        {
	          KeySignL=KeySignL&0xfe;
	          KeySignL=KeySignL|0x02;        //zhileng
	          ClearMode();
	          lcdx3.lcd3bits.lc4=1;
	          lcdx4.lcd4bits.lc4=1;
	          lcdx4.lcd4bits.lc0=1;
	        }
	        if((w0&0x03)==0x02) // 制冷->制热
	        {
	          KeySignL=KeySignL|0x01;        //zhire
	          ClearMode();
	          lcdx7.lcd7bits.lc4=1;
	          lcdx12.lcd12bits.lc0=1;
	          lcdx12.lcd12bits.lc4=1;
	          lcdx13.lcd13bits.lc0=1;
	        }
	        if((w0&0x03)==0x03) // 制热->手动送风
	        {             
	          KeySignL=KeySignL&0xfd;      //songfeng
	          ClearMode();
	          lcdx6.lcd6bits.lc4=1;
	          lcdx7.lcd7bits.lc0=1;
	        }
	        if((w0&0x03)==0x00) // 手动送风->自动送风
	        {
	          KeySignL=KeySignL|0x01;       //songfeng
	          ClearMode();
	          lcdx6.lcd6bits.lc4=1;
	          lcdx7.lcd7bits.lc0=1;
	        } 
	        break;
     		default:
//test
          AuxFlag.flag3=0;
//test
	        AuxFlag.power=0;
	        KeyHoldCount=0;
	        KeyFlag.setdz=0;
	        nokeyyanshi=nokeyyanshi+1;
	     //  if((KeySignL&0x0c)==0x04)
	       //  {
	       //    if(nokeyyanshi==30)
	        //    {
	       //     if(lcdx5.lcd5bits.lc4==1)
	        //    {
	       //      lcdx5.lcd5bits.lc4=0;
	        //     lcdx6.lcd6bits.lc0=1;
	       //      }
	       //     else
	       //      {
	       //        lcdx5.lcd5bits.lc4=1;               //已看到的位置
	       //        lcdx6.lcd6bits.lc0=0;
	       //       }
	       //      }
	       //   }                                   //中风闪动标志   
	        if(KeyFlag.setrelay==1)
	        {
	          KeyFlag.setrelay=0;
	          if((w0&0x30)==0x00){KeySignL=KeySignL|0x10; lcdx1.lcd1bits.lc3=1;}       //点亮了定时开标志
	          if((w0&0x30)==0x10)
	          {
	            KeySignL=KeySignL&0xef;
	            KeySignL=KeySignL|0x20;
	            lcdx2.lcd2bits.lc7=1;
	            if(ontimeh==24)
	            {
	              lcdx1.lcd1bits.lc3=0;
	            }
	          }                                                //点亮了定时关标志
	          if((w0&0x30)==0x20)
	          {
	            KeySignL=KeySignL|0x10;
	            lcdx5.lcd5bits.lc6=1;          
	            if(offtimeh==24)
	            {
	              lcdx2.lcd2bits.lc7=0;
	            }
	          }
	          if((w0&0x30)==0x30)
	          {
	            KeySignL=KeySignL&0xcf;
	            lcdx5.lcd5bits.lc6=1;
	          }
	        }
	        else
	        {
	          if((KeySignL&0x30)==0x10)
	          {
	            if(lcdx1.lcd1bits.lc3==1) {lcdx1.lcd1bits.lc3=0;}
	            else {lcdx1.lcd1bits.lc3=1;}
	            if(nokeyyanshi>50) 
              {
                nokeyyanshi=0;
                KeySignL=KeySignL&0xcf; 
                lcdx5.lcd5bits.lc6=1;
                if(ontimeh==24) {lcdx1.lcd1bits.lc3=0;}
                else {lcdx1.lcd1bits.lc3=1;}
              }
	          }
	          if((KeySignL&0x30)==0x20)
	          {
	            if(lcdx2.lcd2bits.lc7==1) {lcdx2.lcd2bits.lc7=0; }
	            else {lcdx2.lcd2bits.lc7=1;}
	            if(nokeyyanshi>50) 
              {
                nokeyyanshi=0;
                KeySignL=KeySignL&0xcf; 
                lcdx5.lcd5bits.lc6=1;
                if(offtimeh==24){lcdx2.lcd2bits.lc7=0; }
                else {lcdx2.lcd2bits.lc7=1;}
              }
	          }
	          if((KeySignL&0x30)==0x30)
            {
              if(lcdx5.lcd5bits.lc6==1) {lcdx5.lcd5bits.lc6=0;}
              else {lcdx5.lcd5bits.lc6=1;}
              if(nokeyyanshi>50) 
              {
                nokeyyanshi=0;
                KeySignL=KeySignL&0xcf; 
                lcdx5.lcd5bits.lc6=1;                  
              }
            }
	          if((KeySignL&0x30)==0x00)
            {
              if(nokeyyanshi>50) {AuxFlag.exitte=0; nokeyyanshi=0; }
              if(AuxFlag.exitte==0) 
              { 
              	TimeWrite(nowtimeh,nowtimem);TemperatureWrite(NowTemperature);
              }    //
            }
	        }
	        break;
	    }/* end of switch KeyValue */
	  }/* end of if lock */
  }/* end of "power" else */
}/* end of KeyDeal() */

⌨️ 快捷键说明

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