📄 main.c
字号:
dh(4,124,52,0);
dh(4,140,47,0);
}
//试品异常处理程序
void shipin_error3()
{
dh(3,60,48,0); //高压保护,请重新开机!
dh(3,76,49,0);
dh(3,92,53,0);
dh(3,108,54,0);
dh(3,124,47,0);
dh(5,60,55,0);
dh(5,76,56,0);
dh(5,92,57,0);
dh(5,108,58,0);
dh(5,124,59,0);
dh(5,140,47,0);
}
void shipin_error_dispose()
{
lcd_init();
shipin_error1();
shipin_error2();
daCount = 0;
Tlc5615(daCount);
start = 1;//关闭高压模块
while(1)
{
if ( namekey() == 4)
{
lcd_init();
dierping();
break;
}
}
}
void disanping() //测试界面
{
Battery(); //显示电池电量
Real_Display_Time(); //显示实时时间
dh(0,0,33,0); //正在测试中:
dh(0,16,34,0);
dh(0,32,10,0);
dh(0,48,11,0);
dh(0,64,35,0);
df(0,80,24,0);
//dh(0,80,36,0);
df(3,58,25,0); //U=XX.XKV
df(3,70,26,0); //=
df(3,118,27,0); //K
df(3,126,28,0); //V
df(3,82,UiBuffer[0],0); //26.8
df(3,90,UiBuffer[1],0);
df(3,98,22,0);
df(3,106,UiBuffer[2],0);
df(6,58,29,0); //I=XXXuA
df(6,70,26,0); //=
df(6,118,30,0); //u
df(6,126,31,0); //A
df(6,82,UiBuffer[3],0); //1999
df(6,90,UiBuffer[4],0);
df(6,98,UiBuffer[5],0);
df(6,106,UiBuffer[6],0);
}
void Data_Move()
{
uchar idata i = 0;
for ( i = 0; i < 10; i++)//将年月日时分数据共10位转移
Rec24c64[i] = TimeBuffer[i];
for (i = 10; i < 16; i++)//将电压(3位)电流(4位实际用3位)数据共6位转移
if ( i >= 13)
Rec24c64[i] = UiBuffer[i - 9];//避开电流的千位不存入
else
Rec24c64[i] = UiBuffer[i - 10];//电压3位
}
uint Number_To_Address()
{
uint data uiAddress = 0;
uiAddress = Serial_Number[0];
uiAddress = ( uiAddress <<4 ) | Serial_Number[1];
uiAddress = uiAddress | Serial_Number[2];
switch (Char_No)
{
case 10 : uiAddress = uiAddress | 0; break;
case 11 : uiAddress = uiAddress | 1; break;
case 12 : uiAddress = uiAddress | 2; break;
}
uiAddress=uiAddress<<4;
return (uiAddress);
}
void Save_Data()
{
uint uiA;
Data_Move();
uiA = Number_To_Address();
AT24C64_W(Rec24c64,uiA,16);
}
void Data_Out()
{
uint uiA;
Data_Move();
uiA = Number_To_Address();
AT24C64_R(Rec24c64,uiA,16);
}
void Number_Set(uchar bFlag)
{
uchar ucKp = 0 ;
uchar key = 9;
while (1)
{
key = namekey();
switch ( key )
{
case 1 : switch(ucKp) //up
{
case 0 : if ( Serial_Number[0] == 9 ) //9+1=0
Serial_Number[0] = 0;
else
Serial_Number[0]++;
df(4,120,Serial_Number[0],1);
break;
case 1: if ( Serial_Number[1] == 9 ) //9+1=0
Serial_Number[1] = 0;
else
Serial_Number[1]++;
df(4,128,Serial_Number[1],1);
break;
case 2: if ( Serial_Number[2] == 9 ) //9+1=0
Serial_Number[2] = 0;
else
Serial_Number[2]++;
df(4,136,Serial_Number[2],1);
break;
case 3: if ( Char_No == 12 ) //9+1=0
Char_No = 10;
else
Char_No++;
df(4,152,Char_No,1);
break;
}
break;
case 2 : switch(ucKp)
{
case 0 : if ( Serial_Number[0] == 0 ) //9+1=0
Serial_Number[0] = 9;
else
Serial_Number[0]--;
df(4,120,Serial_Number[0],1);
break;
case 1: if ( Serial_Number[1] == 0 ) //9+1=0
Serial_Number[1] = 9;
else
Serial_Number[1]--;
df(4,128,Serial_Number[1],1);
break;
case 2: if ( Serial_Number[2] == 0 ) //9+1=0
Serial_Number[2] = 9;
else
Serial_Number[2]--;
df(4,136,Serial_Number[2],1);
break;
case 3: if ( Char_No == 10 ) //9+1=0
Char_No = 12;
else
Char_No--;
df(4,152,Char_No,1);
break;
}
break;
case 3 : ucKp ++;
if (ucKp < 3)
{
df(4,120+(ucKp-1)*8,Serial_Number[ucKp-1],0);
df(4,120+ucKp*8,Serial_Number[ucKp],1);
}
if (ucKp == 3)
{
df(4,136,Serial_Number[2],0);
df(4,152,Char_No,1);
}
if (ucKp > 3)
{
df(4,120,Serial_Number[0],1);
df(4,152,Char_No,0);
ucKp = 0;
}
break;
case 7: if ( bFlag == 1)
{Data_Out();
return;
}
else
{ Save_Data();
disiping();
}
break;
default : break;
}
}
}
void Record_Data()
{
lcd_init() ; //清屏,我加的
dh(0,52,26,0); //数据存贮,我加的
dh(0,76,27,0);
dh(0,100,70,0);
dh(0,124,71,0);//我加的
df(4,120,Serial_Number[0],1);
df(4,128,Serial_Number[1],0);
df(4,136,Serial_Number[2],0);
df(4,144,32,0); //#
df(4,152,10,0); //A
Input_Serial_Number();
Number_Set(0);
disiping();
}
void disiping() //测试结果
{
uchar key;
lcd_init(); //清屏
Battery(); //显示电池电量
Real_Display_Time(); //显示实时时间
dh(0,0,10,0); //测试结果:
dh(0,16,11,0);
dh(0,32,37,0);
dh(0,48,38,0);
df(0,64,24,0);
df(3,46,25,0); //U1mA=XX.XKV
dxz(4,54,12,0);
dxz(4,62,13,0);
dxz(4,70,14,0);
df(3,82,26,0);
df(3,130,27,0);
df(3,138,28,0);
df(3,94,UiBuffer[0],0); //26.8
df(3,102,UiBuffer[1],0);
df(3,110,22,0);
df(3,118,UiBuffer[2],0);
df(6,46,29,0); //I,I0.75U=XXXuA
dxz(7,52,15,0); //0.
dxz(7,60,16,0); //7
dxz(7,66,17,0); //5
dxz(7,72,18,0); //U
df(6,82,26,0); //=
df(6,130,30,0); //u
df(6,138,31,0); //A
df(6,94, UiBuffer[3],0); //1999
df(6,102,UiBuffer[4],0);
df(6,110,UiBuffer[5],0);
df(6,118,UiBuffer[6],0);
EA = 0;
ET0 = 0;
EX1 = 0;
EX0 = 0;
while(1)
{
switch (namekey() )
{
case 4: dierping();
break;
case 5: Record_Data();
break;
case 6: Print_Data();
break;
default: break;
}
}
}
//测试过程界面 主要功能:读电压、电流 升压
void Test()
{
uint aa=0;
lcd_init() ; //清屏
EA = 1;
ET0 = 0;
EX1 = 1;
EX0 = 1;
start = 0;//启动高压模块
u75=1; //关闭0.75U开关
aa = Read2543(1);
aa = Read2543(1);
/*
while(Read2543(1)<2048) //电流小于500uA
{
if(daCount>=1024)
shipin_error_dispose(); //电压到30KV 电流未达1MA 处理程序
else
{
daCount = daCount + 64;
Tlc5615(daCount); //全速升压
Shipin_U_dispose();
Shipin_I_dispose();
delay1ms(100);
disanping();
}
}
while(!daFlag) //小于1mA判断
{
if(daCount>=1024)
shipin_error_dispose(); //电压到30KV 电流未达1MA 处理程序
else
{
daCount = daCount + 32;
Tlc5615(daCount); //全速升压
Shipin_U_dispose();
Shipin_I_dispose();
delay1ms(100);
disanping();
}
}
u75=0;
Read2543(1);
Shipin_I_dispose();
daCount=0;
Tlc5615(daCount);
start = 1;//关闭高压模块
daFlag = 0;
*/disiping();
}
//历史查询界面
#pragma disable
void History_Data_Display()//
{
lcd_init();
df(0,0,Serial_Number[0],1);
df(0,8,Serial_Number[1],1);
df(0,16,Serial_Number[2],1);
df(0,24,32,1); //#
df(0,32,Char_No,1); //#
dh(0,44,10,0); //测试结果:
dh(0,60,11,0);
dh(0,76,37,0);
dh(0,92,38,0);
df(0,108,24,0);
df(3,46,25,0); //U1mA=XX.XKV
dxz(4,54,12,0);
dxz(4,62,13,0);
dxz(4,70,14,0);
df(3,82,26,0);
df(3,130,27,0);
df(3,138,28,0);
df(3,94,Rec24c64[10],0); //26.8
df(3,102,Rec24c64[11],0);
df(3,110,22,0);
df(3,118,Rec24c64[12],0);
df(6,46,29,0); //I,I0.75U=XXXuA
dxz(7,52,15,0); //0.
dxz(7,60,16,0); //7
dxz(7,66,17,0); //5
dxz(7,72,18,0); //U
df(6,82,26,0); //=
df(6,130,30,0); //u
df(6,138,31,0); //A
//1999
df(6,102,Rec24c64[13],0);
df(6,110,Rec24c64[14],0);
df(6,118,Rec24c64[15],0);
dxz(0,128,Rec24c64[0],0); //显示年月日
dxz(0,136,Rec24c64[1],0);
dxz(0,144,10,0);
dxz(0,152,Rec24c64[2],0);
dxz(0,160,Rec24c64[3],0);
dxz(0,168,10,0);
dxz(0,176,Rec24c64[4],0);
dxz(0,184,Rec24c64[5],0);
dxz(1,152,Rec24c64[6],0); //显示时分
dxz(1,160,Rec24c64[7],0);
dxz(1,168,11,0);
dxz(1,176,Rec24c64[8],0);
dxz(1,184,Rec24c64[9],0);
}
#pragma disable
void Input_Serial_Number()//请输入编号:
{
dh(4,32,55,0);
dh(4,48,66,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -