📄 display.c
字号:
/////////////////////////
// LCDDisPlay.c
/////////////////////////
#include "display.h"
#include "yx_key.h"
char Code[6]={'0'};
char Value[8]={'0'};
char Sign;
char *LCD = LCDMEM;
void displaydata(long data);
void disp( char code1[], long data, char Sign);
void disp1( char code1[], long data);
const int BTL[]={0,300,600,1200,2400,4800,9600};
const char digit[] = {
0xAF, // "0" LCD segments a+b+c+d+e+f+g
0xA0, // "1"
0xCB, // "2"
0xE9, // "3"
0xE4, // "4"
0x6D, // "5"
0x6F, // "6"
0xA8, // "7"
0xEF, // "8"
0xED, // "9"
0x40 //"-"
};
void Display_Bit(char i,char x) //第1个参数是表示显示的值,第2个参数是表示第几位,
{
int m, n;
switch (x)
{
case 1: LCD[0]=digit[i];break;
case 2: m=digit[i]<<4;
LCD[1]=m;
n=digit[i]>>4;
LCD[2]=n;break;
case 3: LCD[3]=digit[i];break;
case 4: m=digit[i]<<4;
LCD[4]=m;
n=digit[i]>>4;
LCD[5]=n;break;
case 5: LCD[6]=digit[i];break;
case 6: LCD[7]=digit[i];break;
case 7: m=digit[i]<<4;
n=digit[i]>>4;
LCD[19]=m|n;break;
case 8: m=digit[i]<<4;
n=digit[i]>>4;
LCD[18]=m|n;break;
case 9: m=digit[i]<<4;
n=digit[i]>>4;
LCD[16]=m|n;break;
case 10: m=digit[i]<<4;
n=digit[i]>>4;
LCD[15]=m|n;break;
case 11: m=digit[i]<<4;
LCD[8]=m;
n=digit[i]>>4;
LCD[9]=n; break;
case 12: LCD[10]=digit[i];break;
case 13: m=digit[i]<<4;
LCD[11]=m;
n=digit[i]>>4;
LCD[12]=n; break;
case 14: LCD[13]=digit[i];break;
default:break;
}
}
void Display_Code(char* Code)
{
char i;
for(i=0;i<6;i++)
{
Display_Bit((Code[i]-48),(i+1));
}
}
void Display_Digital(char* Value)
{
char i,j=0;
for(i=0;i<8;i++)
{
j=14 - i;
Display_Bit(Value[i],j);
}
}
void Display_Letter (char Sign)
{
char *LCD = LCDMEM;
LCD[14] &= ~0x02; // =L13
LCD[12] &= ~0x20; // =L12
LCD[11] &= ~0x02; // =L11
LCD[9] &= ~0x20; // =L10
LCD[8] &= ~0x02; // =L9
LCD[16] &= ~0x01; // =L8
LCD[17] &= ~0x20; // =L7
LCD[18] &= ~0x01; // =L6
switch (Sign)
{
case UA_LCD:
LCD[4] |= 0x08; //L1
LCD[9] |= 0x10; //U
LCD[12] |= 0x40; //dot
break;
case IA_LCD:
LCD[4] |= 0x08; //L1
LCD[11] |= 0x01; //A
LCD[12] |= 0x01;
LCD[9] |= 0x40; //dot
break;
case UB_LCD:
LCD[5] |= 0x80; //L2
LCD[9] |=0x10; //U
LCD[12] |= 0x40; //dot
break;
case IB_LCD:
LCD[5] |= 0x80; //L2
LCD[11] |= 0x01; //A
LCD[12] |= 0x01;
LCD[9] |= 0x40; //dot
break;
case UC_LCD:
LCD[5] |=0x10; //L3
LCD[9] |=0x10; //U
LCD[12] |= 0x40; //dot
break;
case IC_LCD:
LCD[5] |=0x10; //L3
LCD[11] |=0x01; //A
LCD[12] |=0x01;
LCD[9] |= 0x40; //dot
break;
case P_LCD:
if( BD_data.P > 0)
{
LCD[2] |= 0x80; //+P
}
else
{
LCD[1] |= 0x80; //-P
}
LCD[9]|=0x10; //W
LCD[10]|=0x10;
LCD[11]|=0x01;
break;
case Q_LCD:
if( BD_data.P > 0)
{
LCD[2] |= 0x10; //+Q
}
else
{
LCD[1] |= 0x01; //-Q
}
LCD[9]|=0x10; //VAR
LCD[11]|=0x01;
LCD[12]|=0x11;
break;
case COS_LCD:
LCD[9] |= 0x40; //dot
break;
case PA_LCD:
if(BD_data.Pa > 0)
{
LCD[2]|=0x80; //+P
}
else
{
LCD[1]|=0x08; //-P
}
LCD[4]|=0x08; //L1
LCD[9]|=0x10; //W
LCD[10]|=0x10;
LCD[11]|=0x01;
break;
case PB_LCD:
if(BD_data.Pb>0)
{
LCD[2]|=0x80; //+P
}
else
{
LCD[1]|=0x08; //-P
}
LCD[5]|=0x80; //L2
LCD[9]|=0x10; //W
LCD[10]|=0x10;
LCD[11]|=0x01;
break;
case PC_LCD:
if(BD_data.Pc > 0)
{
LCD[2]|=0x80; //+P
}
else
{
LCD[1]|=0x08; //-P
}
LCD[5]|=0x10; //L3
LCD[9]|=0x10; //W
LCD[10]|=0x10;
LCD[11]|=0x01;
break;
case QA_LCD:
if(BD_data.Qa>0)
{
LCD[2]|=0x10; //+Q
}
else
{
LCD[2]|=0x01; //-Q
}
LCD[4]|=0x08 ; //L1
LCD[9]|=0x10; //VAR
LCD[11]|=0x01;
LCD[12]|=0x11;
break;
case QB_LCD:
if(BD_data.Qb>0)
{
LCD[2]|=0x10; //+Q
}
else
{
LCD[2]|=0x01; //-Q
}
LCD[5] |= 0x80; //L2
LCD[9]|=0x10; //VAR
LCD[11]|=0x01;
LCD[12]|=0x11;
break;
case QC_LCD:
if(BD_data.Qc>0)
{
LCD[2]|=0x10; //+Q
}
else
{
LCD[2]|=0x01; //-Q
}
LCD[5]|=0x10; //L3
LCD[9]|=0x10; //VAR
LCD[11]|=0x01;
LCD[12]|=0x11;
break;
case COSA_LCD:
LCD[4]|=0x08 ; //L1,无量纲值
LCD[9] |= 0x40; //dot
break;
case COSB_LCD:
LCD[5] |= 0x80; //L2
LCD[9] |= 0x40; //dot
break;
case COSC_LCD:
LCD[5]|=0x10; //L3
LCD[9] |= 0x40; //dot
break;
case I0_LCD:
LCD[11] |= 0x01; //A
LCD[12] |= 0x01;
LCD[9] |= 0x40; //dot
break;
////////////////////////////////////////////////=============0608========
case WEI_1:
LCD[14] |= 0x02; // =L13
break;
case WEI_2:
LCD[12] |= 0x20; // =L12
break;
case WEI_3:
LCD[11] |= 0x02; // =L11
break;
case WEI_4:
LCD[9] |= 0x20; // =L10
break;
case WEI_5:
LCD[8] |= 0x02; // =L9
break;
case WEI_6:
LCD[16] |= 0x01; // =L8
break;
case WEI_7:
LCD[17] |= 0x20; // =L7
break;
case WEI_8:
LCD[18] |= 0x01; // =L6
break;
default : break;
}
}
////////////////////////////////////////////////=============0601========
void Display()
{
int i = 0;
for(i=0;i<20;i++)
{
LCD[i]=0;
}
if( (P2Counter) ==1)
{
switch(P1Counter)
{
case UA_LCD:
disp("000001", BD_data.Ua, UA_LCD); break;
case IA_LCD:
disp("000002", BD_data.Ia, IA_LCD); break;
case UB_LCD:
disp("000003", BD_data.Ub, UB_LCD); break;
case IB_LCD:
disp("000004", BD_data.Ib, IB_LCD); break;
case UC_LCD:
disp("000005", BD_data.Uc, UC_LCD); break;
case IC_LCD:
disp("000006", BD_data.Ic, IC_LCD); break;
case P_LCD:
disp("000007", BD_data.P, P_LCD); break;
case Q_LCD:
disp("000008", BD_data.Q, Q_LCD); break;
case COS_LCD:
disp("000009", BD_data.COS, COS_LCD); break;
case PA_LCD:
disp("000010", BD_data.Pa, PA_LCD); break;
case PB_LCD:
disp("000011", BD_data.Pb, PB_LCD); break;
case PC_LCD:
disp("000012",BD_data.Pc, PC_LCD); break;
case QA_LCD:
disp("000013",BD_data.Qa, QA_LCD); break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -