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

📄 有无功表液晶显示.c

📁 一个用C语言控制的读写7022
💻 C
📖 第 1 页 / 共 2 页
字号:
		            uchar length_data=5;
					uchar b[10];
                   b[0]=0x00;
				   b[1]=0x80;
				   b[2]=0xcb;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
                   b[7]=b[7]+1;
				   b[8]=b[8]+1;
				  Brushlcd(b);                                                 //向LCD内写入数据   
		           }break;                                                        //瞬时无功功率XX.XX
		  case 7:{//uchar b[10]={0x00,0x08,0xcb,0xbe,0xe0,0xfe,0xfc,0xfb,0x61,0xd6}; 
		            uchar length_data=5;
					uchar b[10];
                   b[0]=0x00;
				   b[1]=0x08;
				   b[2]=0xcb;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
                   b[7]=b[7]+1;
				   b[8]=b[8]+1;
				  Brushlcd(b);                                               //向LCD内写入数据   
		           }break;                                                        //A相无功功率XX.XX
         case 8:{//uchar b[10]={0x00,0x04,0xcb,0xbc,0xbe,0xe0,0xfe,0xfd,0xfb,0x60}; 
		          uchar length_data=5;
				  uchar b[10];
                   b[0]=0x00;
				   b[1]=0x04;
				   b[2]=0xcb;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
                   b[7]=b[7]+1;
				   b[8]=b[8]+1;
				Brushlcd(b);                                                 //向LCD内写入数据
		           }break;                                                        //B相无功功率XX.XX
		  case 9:{//uchar b[10]={0x00,0x02,0xcb,0x6c,0xbc,0xbe,0xe0,0xff,0xfd,0xfa}; 
		          uchar length_data=5;
				  uchar b[10];
                   b[0]=0x00;
				   b[1]=0x02;
				   b[2]=0xcb;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
                   b[7]=b[7]+1;
				   b[8]=b[8]+1;
				 Brushlcd(b);                                                  //向LCD内写入数据 
		           }break;                                                        //C相无功功率XX.XX
		  case 10:{//uchar b[10]={0x00,0x81,0x00,0xf4,0x6c,0xbc,0xbe,0xe0,0xfe,0xfc};
		           uchar length_data=5;
				   uchar b[10];
                   b[0]=0x00;
				   b[1]=0x81;
				   b[2]=0x00;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
				  Brushlcd(b);                                                  //向LCD内写入数据 
		           }break;                                                        //总功率因数X.XXX
		  case 11:{//uchar b[10]={0x00,0x08,0x02,0xd6,0xf4,0x6c,0xbd,0xbe,0xe0,0xfe}; 
		            uchar length_data=3;
					uchar b[10];
                   b[0]=0x00;
				   b[1]=0x08;
				   b[2]=0x02;
				   convesn(b,length_data); 
				   b[6]=b[6]+1;
				  Brushlcd(b);                                                  //向LCD内写入数据 
		           }break;                                                        //A相电压    XXX
		  case 12:{//uchar b[10]={0x00,0x04,0x02,0x60,0xd6,0xf4,0x6d,0xbc,0xbe,0xe0};
		            uchar length_data=3;
					uchar b[10];
                   b[0]=0x00;
				   b[1]=0x04;
				   b[2]=0x02;
				   convesn(b,length_data); 
				   b[6]=b[6]+1;
				  Brushlcd(b);                                                 //向LCD内写入数据
		           }break;                                                        //B相电压    XXX
		  case 13:{//uchar b[10]={0x00,0x02,0x02,0xfa,0x60,0xd6,0xf5,0x6c,0xbc,0xbe};
		          uchar length_data=3;
				  uchar b[10];
                   b[0]=0x00;
				   b[1]=0x02;
				   b[2]=0x02;
				   convesn(b,length_data); 
				   b[6]=b[6]+1;
				   Brushlcd(b);                                                 //向LCD内写入数据 
		           }break;                                                        //C相电压    XXX
		  case 14:{//uchar b[10]={0x00,0x08,0x88,0xfc,0xfa,0x61,0xd6,0xf4,0x6c,0xbc};
		           uchar length_data=5;
				   uchar b[10];
                   b[0]=0x00;
				   b[1]=0x08;
				   b[2]=0x88;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
                   b[5]=b[5]+1;
				  Brushlcd(b);                                                  //向LCD内写入数据   
		           }break;                                                        //A相电流    XX.XX
		  case 15:{//uchar b[10]={0x00,0x04,0x88,0xfe,0xfc,0xfb,0x60,0xd6,0xf4,0x6c}; 
		            uchar length_data=5;
					uchar b[10];
                   b[0]=0x00;
				   b[1]=0x04;
				   b[2]=0x88;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
                   b[5]=b[5]+1;
				  Brushlcd(b);                                                  //向LCD内写入数据  
		           }break;                                                        //B相电流   XX.XX
         case 16:{//uchar b[10]={0x00,0x02,0x88,0xe0,0xfe,0xfd,0xfa,0x60,0xd6,0xf4}; 
		           uchar length_data=5;
				   uchar b[10];
                   b[0]=0x00;
				   b[1]=0x02;
				   b[2]=0x88;
				   convesn(b,length_data); 
                   b[4]=b[4]+1;
                   b[5]=b[5]+1;
				 Brushlcd(b);                                                  //向LCD内写入数据
		           }break;                                                        //C相电流   XX.XX
         default:break;
	  }
}

///////////////////////////////////////////////////////////////////////////////////////////////
void mDelay(uint Delay)    //Delay = 1000 时间为1S 
{ 
    uint i; 
    for(;Delay>0;Delay--) 
   {   
       for(i=0;i<124;i++) 
       {;} 
   } 
} 


void convesn(uchar *p,uchar length) 
    { uchar i;
	  uchar j=2;
	  i=Number[3]&0x0f;
      p[9]=Data[i];
	  for(i=8;i>=3;i--)
	  { 
	   uchar middle;
		middle=Number[j]&0xf0;
		middle=middle>>4;
	     p[i]=Data[middle];
		i--;
		if(i>=3)
		 {middle=Number[j]&0x0f;
		   p[i]=Data[middle];
		   j--;
		  }
	   }
      for(i=9;i>length;i--)
	  { 
	     if(p[i]==0xfa)
		  {p[i]=0x00;}
		  else break;
	    
		}
	 }  
	   
  
                          //0   1   2   3   4   5   6   7   8   9
                          //fa  60  d6  f4  6c  bc  be  e0  fe  fc

 void electric_stor( )
        { 
		 if( YOUGONG_CS>=8)                     //0x20根据脉冲常数的改变而改变,这里是3200
		   {
		    YOUGONG_CS=YOUGONG_CS-8;
            //CUNYOUGONG();
		    RdFromROM(Number,10,4);
			Number[0]= Bcd2Byte(Number[0]);//将BCD码转换成BIN码
            Number[0]+=1;
			if(Number[0]>=0x64)
			  {Number[0]=0;
               Number[1]= Bcd2Byte(Number[1]);//将BCD码转换成BIN码
               Number[1]+=1;
			   if(Number[1]>=0x64)
			     {
			      Number[1]=0; 
			      Number[2]= Bcd2Byte(Number[2]);//将BCD码转换成BIN码
			      Number[2]+=1;
			      if(Number[2]>=0x64)
			         {Number[2]=0; 
			          Number[3]= Bcd2Byte(Number[3]);//将BCD码转换成BIN码
			          Number[3]+=1;
			          if(Number[3]>=0x0a)
			            {
						 Number[3]=0;
						 } 
					 Number[3]= Byte2Bcd(Number[3]);//将BIN码转换成BCD码	  
			          }
                   Number[2]= Byte2Bcd(Number[2]);//将BIN码转换成BCD码
			      }
               Number[1]= Byte2Bcd(Number[1]);//将BIN码转换成BCD码
			  }
			Number[0]= Byte2Bcd(Number[0]);//将BIN码转换成BCD码	
			WrToROM(Number,10,4); /*将初始化后的数值写入EEPROM*/
		    }
	   }
         //if(WUGONG_CS>=0x20)
		 // {
		 //  WUGONG_CS=WUGONG_CS-0x20;
		   //CUNWUGONG();
		 //  RdFromROM(Number,14,4);  
         //  }	
	



uchar Byte2Bcd(uchar Val)//将BIN码转换成BCD码
{	return ((Val/10)<<4)|(Val%10);}

uchar Bcd2Byte(uchar Val)//将BCD码转换成BIN码
{	return ((Val>>4)*10+(Val&0x0F));}
//WORD Word2Bcd(WORD Val)//将BIN码转换成BCD码
//{
//	return (((WORD)(Byte2Bcd(Val/100)))<<8) | (Byte2Bcd(Val%100));
//}

//WORD Bcd2Word(WORD Val)//将BCD码转换成BIN码
//{
//	return Bcd2Byte(Val>>8) *100 + Bcd2Byte(Val&0xFF);
//}


⌨️ 快捷键说明

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