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

📄 kwhkvarh_count.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 2 页
字号:
// dian liang mo kuai  电量模块 包括电量,用电量模块ppppp
unsigned char num_quadrant_d;
unsigned char quadrant_use_d;
void int12set()
{
	QUADRANT=1;
  	num_quadrant_d=0;// continue num
  	quadrant_use_d=1;// ready status
	pindir_pp=0;
	pindir_qp=0;
  	ifsr10=0;
  	ifsr11=0;
 	int1ic=0x7;
 	int2ic=0x7;
}
// ZHONG DUAN CHENG XU 有功中断kkkkl
#pragma INTERRUPT int_pin_aout_4x
void int_pin_aout_4x()
{
  unsigned char a1,value,value1;
  	value=0xf0;
  	value1=0xf0;
   //add watch dog
   	pulse_delaysecond_7758=0;// fang qian dong
  	num_watch=num_watch+1;
  	if(num_watch>249)  
		pin_dog=~pin_dog;
// xiang xian--------------------------------->start
  // xiang xian------------------>start
  	a1=0;
  	if((0x80&status_5460_0)==0x00)// direction kwh 
		a1=10; 
  	if((0x8&status_5460_0)==0x00) // direction kvarh
		a1=1+a1; 
   	switch(a1)
        	{
        		case 11: // i1象限5555555555555555
                       		a1=1;
                       		break;
          		case 00:  // i3象限55555555555555555555 
                       		a1=3;
                       		break;
           		case 01: // 2
                       		a1=2;
                        		break;
           		case 10: //  i4象限5555555555555555555555 
                         		a1=4;
                         		break;
          	}
	if(0==pin_pp)
		{
 			if(quadrant_use_d==a1)
      				{
      					num_quadrant_d=num_quadrant_d+1;
       				if(num_quadrant_d>=4) 
       					{
       						QUADRANT=a1;
                					num_quadrant_d=0;
						}
 				}
			else 
     				{
     					quadrant_use_d=a1;
       				num_quadrant_d=1;
				}      
       // check
	if((0==QUADRANT)||(QUADRANT>4)) 
		QUADRANT=1;
// xiang xian------------------>end
// you gong ------------------>start
	if((0x80&status_5460_0)==0)   // i1   zheng xiang
    		{
    // mo chong------------>start
    			value=1;
     // mo chong------------>end
  // XU LIANG     pulse ji shu qi
   			RCURRENT_MINUTE_KVA_F=RCURRENT_MINUTE_KVA_F+1;
   // cuo feng  xu liang pulse
  			RCURRENT_MINUTE_CUOFENG=RCURRENT_MINUTE_CUOFENG+1;
   //A 正向kkkkl   kwh--------->start
   			RKWH_F_COUNT=0x1ff&(RKWH_F_COUNT+1);// i 511---4s   <4s
   			if(RKWH_F_COUNT>=mochong_add1)
  	 			{
  	 				RKWH_F_COUNT=RKWH_F_COUNT-mochong_add1;
          				RFLAG_KWH_F_ADD=1;
				}
   //A 正向kkkkl   kwh--------->end
     		}
 	else 
   		{//a 反向kkkk---------------------------------->start
   	 // mo chong---------------->start
         		value1=3;
        // mo chong---------------->end
       // XU LIANG  pluse add
          		RCURRENT_MINUTE_KVA_R=RCURRENT_MINUTE_KVA_R+1;
   	//a 反向kkkk  kwh--------->start
          		RKWH_R_COUNT=0x1ff&(RKWH_R_COUNT+1);
          		if(RKWH_R_COUNT>=mochong_add1)
          			{
          				RKWH_R_COUNT=RKWH_R_COUNT-mochong_add1;
                			RFLAG_KWH_R_ADD=1;
				}
          		if((RAM[R_KWHMODE_F]==2)||(RAM[R_KWHMODE_F]==0))
          			{  // mo chong------------>start// fanshi 1--zhen fan
               			value=1;
               // mo chong------------>end
              // XU LIANG     pulse ji shu qi
                			RCURRENT_MINUTE_KVA_F=RCURRENT_MINUTE_KVA_F+1;
   // cuo feng  xu liang pulse
               			RCURRENT_MINUTE_CUOFENG=RCURRENT_MINUTE_CUOFENG+1;
   //A 正向kkkkl   kwh--------->start
               			RKWH_F_COUNT=0x1ff&(RKWH_F_COUNT+1);// i 511---4s   <4s
              			if(RKWH_F_COUNT>=mochong_add1)
  	           				{
  	           					RKWH_F_COUNT=RKWH_F_COUNT-mochong_add1;
                    					RFLAG_KWH_F_ADD=1;
						}
   //A 正向kkkkl   kwh--------->end
          			}
                
              }
     //a 反向kkkk  kwh--------->end

 // mo chong---------------->start
         if((RAM[R_PLUSEMODE]==value)||(RAM[R_PLUSEMODE]==value1))  
      	     	{
      	     		pulse1set;
              	time_pulse1=800;
		}
     	  if((RAM[R_PLUSEMODE+1]==value)||(RAM[R_PLUSEMODE+1]==value1))  
    	     	{
    	     		pulse2set;
              	time_pulse2=800;
		}
	  if((RAM[R_PLUSEMODE+2]==value)||(RAM[R_PLUSEMODE+2]==value1)) 
    	     	{
    	     		pulse3set;
              	time_pulse3=800;
		}
          if((RAM[R_PLUSEMODE+3]==value)||(RAM[R_PLUSEMODE+3]==value1)) 
    	     	{
    	     		pulse4set;
              	time_pulse4=800;
		}       
        // mo chong---------------->end     
	}
}
// ZHONG DUAN CHENG XU 无功中断qqqqqqq
#pragma INTERRUPT int_pin_rout_4x
void int_pin_rout_4x()
{unsigned char a1,value,value1,value2;
  unsigned char f_kvarh_use,r_kvarh_use;
  	f_kvarh_use=0;
  	r_kvarh_use=0;
 	value=0xf0;// f_ kvarh pulse  p
 	value1=0xf0;// four quandrant kvarh pulse
 	value2=0xf0;//negtive  
   //add watch dog
   	pulse_delaysecond_7758=0;// fang qian dong
  	num_watch=num_watch+1;
  	if(num_watch>249) 
		pin_dog=~pin_dog;
// xiang xian--------------------------------->start
  	a1=0;
 	if((0x80&status_5460_0)==0x00) // direction kwh
		a1=10; 
  	if((0x8&status_5460_0)==0x00) // direction kvarh
		a1=1+a1; 
  	switch(a1)
      		{
      			case 11: // 1象限5555555555555555
                     		a1=1;
                     		break;
        		case 00:  // 3象限55555555555555555555 
                     		a1=3;
                     		break;
         		case 01: // 2
                     		a1=2;
                     		break;
          		case 10: //  4象限5555555555555555555555 
                     		a1=4;
                     		break;
          	}
  	if(0==pin_qp)
  		{  
 			if(quadrant_use_d==a1)
      				{
      					num_quadrant_d=num_quadrant_d+1;
       		if(num_quadrant_d>=4) 
       			{
       				QUADRANT=a1;
                 			num_quadrant_d=0;
                 		}
 		}
	else 
     		{
     			quadrant_use_d=a1;
       		num_quadrant_d=1;
		}   
       // check
	if((0==QUADRANT)||(QUADRANT>4)) 
		QUADRANT=1;
// xiang xian--------------------------------->end
// kva kwh mochong-------------------------->start
	switch(QUADRANT)
          	{
           		case 1: // i1象限11111111111
              // mo chong------------>start
                    			value1=9;
              // mo chong------------>end
              // XULIANG---1
                     		 RCURRENT_MINUTE_KVAR_1=RCURRENT_MINUTE_KVAR_1+1;              
              // DIAN LIANG
              // i1 xian xian dian liang---------->start
                      		RKVARH_1_COUNT=0x1ff&(RKVARH_1_COUNT+1);
                      		if(RKVARH_1_COUNT>=mochong_add1)
                  	 			{
                  	 				RKVARH_1_COUNT=RKVARH_1_COUNT-mochong_add1;
                            			RFLAG_KVARH_1_ADD=1;
						}
              // i1 xian xian dian liang---------->end
                     		if((RAM[R_KVARHMODE_F]<3)||(RAM[R_KVARHMODE_F]==5)||(RAM[R_KVARHMODE_F]==6))
                     			f_kvarh_use=1;
                     		if((RAM[R_KVARHMODE_R]==3)||(RAM[R_KVARHMODE_R]==6))
                      			r_kvarh_use=1;
                     		break;                     
         		case 3:  // i3象限11111111
              		 // XULIANG  3 ji shu qi add
                     		RCURRENT_MINUTE_KVAR_3=RCURRENT_MINUTE_KVAR_3+1;
             			 // DIAN LIANG   3 diang liang-------------------------->start
                		// mo chong--------------->start
                    			value1=0x11;
                		// mo chong--------------->end
               		 // diang liang-------------->start
                    			RKVARH_3_COUNT=0x1ff&(RKVARH_3_COUNT+1);
                    			if(RKVARH_3_COUNT>=mochong_add1)
                 	   			{
                 	   				RKVARH_3_COUNT=RKVARH_3_COUNT-mochong_add1;
                          				RFLAG_KVARH_3_ADD=1;
						} 
                 		// diang liang-------------->end
              		// DIAN LIANG   3 diang liang-------------------------->end
                     		if((RAM[R_KVARHMODE_F]==3)||(RAM[R_KVARHMODE_F]==6))
                     			f_kvarh_use=1;
                      		if((RAM[R_KVARHMODE_R]==0)||(RAM[R_KVARHMODE_R]==2)||(RAM[R_KVARHMODE_R]==6))
                      			r_kvarh_use=1; 
                   			break;                   
       		case 02:  // i2象限qqqqqqqqq
                    // XULIANG  2  pulse add              
                  			 RCURRENT_MINUTE_KVAR_2=RCURRENT_MINUTE_KVAR_2+1;
                   // DIAN LIANG  2 dian liang------------------->start
                    // mo chong------------>start
                 			value1=0x10;
                   // mo chong------------>end
                  // diang liang------------>start 
                  			RKVARH_2_COUNT=0x1ff&(RKVARH_2_COUNT+1);
                  			if(RKVARH_2_COUNT>=mochong_add1)
                				{
                					RKVARH_2_COUNT=RKVARH_2_COUNT-mochong_add1;
                       				RFLAG_KVARH_2_ADD=1;
                       			}
                   // diang liang------------>end                   
                // DIAN LIANG  2 dian liang------------------->end
                    			if((RAM[R_KVARHMODE_F]==3)||(RAM[R_KVARHMODE_F]==0)||(RAM[R_KVARHMODE_F]==6))
                     			f_kvarh_use=1;
                      		if((RAM[R_KVARHMODE_R]==2)||(RAM[R_KVARHMODE_R]==6))
                      			r_kvarh_use=1; 
                			break;                
 			case 04: // // i4象限qqqqq
               // XULIANG    pulse (4)add       
                			RCURRENT_MINUTE_KVAR_4=RCURRENT_MINUTE_KVAR_4+1;
              // DIAN LIANG4----------------------------------->start
                 // mo chong------------>start
                			value1=0x12;
                // mo chong------------>end
                // i4 diang liang --------->start
                			RKVARH_4_COUNT=RKVARH_4_COUNT+1;
                			if(RKVARH_4_COUNT>=mochong_add1)
                				{
                					RKVARH_4_COUNT=RKVARH_4_COUNT-mochong_add1;
                       				RFLAG_KVARH_4_ADD=1;
						}
               // i4 diang liang ---------->end
              // DIAN LIANG4----------------------------------->end
                			if((RAM[R_KVARHMODE_F]==1)||(RAM[R_KVARHMODE_F]==2)||(RAM[R_KVARHMODE_F]==6))
                     			f_kvarh_use=1;
                 			if((RAM[R_KVARHMODE_R]==0)||(RAM[R_KVARHMODE_R]==1)
                 					||(RAM[R_KVARHMODE_R]==3)||(RAM[R_KVARHMODE_R]==5)
                 					||(RAM[R_KVARHMODE_R]==6))
                      			r_kvarh_use=1;          
					break;
         		}
     	 if(f_kvarh_use==1)
      	   	{
      	   		f_kvarh_use=0;
            // 2正向无功you zu he ding ------------------>start    
                 //XULIANG   zheng xiang
                   	RCURRENT_MINUTE_KVAR_F=RCURRENT_MINUTE_KVAR_F+1;
            // dian liang-------------------->start
                // mo chong-------->start
                  	value=2;
               // mo chong-------->end
              // diang liang f-------->start
                  	 RKVARH_F_COUNT=0x1ff&(RKVARH_F_COUNT+1);
                    	if((RKVARH_F_COUNT>=mochong_add1)&&(RFLAG_KVARH_F_ADD==0)) 
                        	{
                        		RKVARH_F_COUNT=RKVARH_F_COUNT-mochong_add1;
                          		RFLAG_KVARH_F_ADD=1;
                          	}
               // diang liang-------->end
         	}    
              // dian liang-f----------------------->end
          // 2正向无功you zu he ding ------------------>end
	if(r_kvarh_use==1)
    		{
    			r_kvarh_use=0;
          // i4反向无功you zu he ding------------------------------>start
                       // mo chong--------------->start
                 	value2=4;
                       // mo chong--------------->end
                      //XULIANG  pulse ji suan
               	RCURRENT_MINUTE_KVAR_R=RCURRENT_MINUTE_KVAR_R+1;
                      // dian liang zhen xiang--------------------->start
               	RKVARH_R_COUNT=0x1ff&(RKVARH_R_COUNT+1);
                  	if((RKVARH_R_COUNT>=mochong_add1)&&(RFLAG_KVARH_R_ADD==0))
                     	{
                     		RKVARH_R_COUNT=RKVARH_R_COUNT-mochong_add1;
                               	RFLAG_KVARH_R_ADD=1;
                             }
          	}
                     // dian liang zhen xiang--------------------->end
                      // i4反向无功you zu he ding------------------------------>end        
// kva kwh mochong----------------------------------------------------------------->end
 // mo chong---------------->start
	if((RAM[R_PLUSEMODE]==value)||(RAM[R_PLUSEMODE]==value1)||(RAM[R_PLUSEMODE]==value2)) 
      	     	{
      	     		pulse1set;
              	time_pulse1=800;

⌨️ 快捷键说明

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