📄 有无功表液晶显示.c
字号:
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 + -