📄 function tester.c
字号:
#include "w77e58.h"
//#include "reg52.h"
#include <absacc.h>
#include <intrins.h>
#include "i2c.h"
#include "lcd.h"
#include "main.h"
#include "kb.h"
#include "screen.h"
#include "ad.h"
unsigned char idata SetP_Data[11]={0},TestP_Data[5]={0},Comp_Data_T[3]={0};
unsigned int idata Comp_Data[25]={0},Test_Data[12]={0};
unsigned char code Display_Code[18]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,
0x58,0xFB,0x20,0x2B,0x2D};// X, 对, 空, +, -,
//0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C,
unsigned char code Loc_X[13][11]={{0x0F,0x10,0x11,0x13,0x17,0x18,0x19,0x1B},//线圈电阻设定
{0x0F,0x10,0x11,0x13,0x17,0x18,0x19,0x1B,0x1F,0x20,0x22},
{0x0F,0x10,0x11,0x13,0x17,0x18,0x19,0x1B},//接触电阻设定
{0x0F,0x10,0x11,0x13,0x17,0x18,0x19,0x1B},
{0x0F,0x10,0x12,0x13,0x17,0x18,0x1A,0x1B},//电压设定
{0x0F,0x10,0x12,0x13,0x17,0x18,0x1A,0x1B},
{0x0F,0x10,0x12,0x13,0x17,0x18,0x1A,0x1B},
{0x0F,0x10,0x12,0x13,0x17,0x18,0x1A,0x1B},
{0x0F,0x10,0x12,0x17,0x18,0x1A},//吸合时间设定
{0x0F,0x10,0x12,0x17,0x18,0x1A},
{0x0F,0x10,0x12,0x17,0x18,0x1A},
{0x0F,0x10,0x12,0x17,0x18,0x1A},
{0x09,0x0A,0x17,0x19,0x1A,0x23,0x24}};//线圈电压设定
unsigned char code Loc_Y[13]={0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0xA0,0xbB0,0xC0,0xD0,0xE0};
unsigned char code Test_X[12][5]={{0x1F,0x20,0x21,0x23,0x27},//线圈电阻测试数据
{0},
{0x1F,0x20,0x21,0x23,0x27},//接触电阻测试数据
{0x1F,0x20,0x21,0x23,0x27},
{0x1F,0x20,0x22,0x23,0x27},//电压时间测试数据
{0x1F,0x20,0x22,0x23,0x27},
{0x1F,0x20,0x22,0x23,0x27},
{0x1F,0x20,0x22,0x23,0x27},
{0x1F,0x20,0x22,0x23,0x27},//
{0x1F,0x20,0x22,0x23,0x27},
{0x1F,0x20,0x22,0x23,0x27},
{0x1F,0x20,0x22,0x23,0x27}};
unsigned char code Test_X_1[5]={0x13,0x14,0x15,0x17,0x1A};
unsigned char code Test_X_2[2][5]={{0x16,0x17,0x18,0x1A,0x1E},{0x16,0x17,0x18,0x1A,0x1E}};
unsigned char code Test_X_3[4][5]={{0x13,0x14,0x16,0x17,0x1A},
{0x13,0x14,0x16,0x17,0x1A},
{0x13,0x14,0x16,0x17,0x1A},
{0x13,0x14,0x16,0x17,0x1A}};
unsigned char code Test_X_4[4][5]={{0x12,0x13,0x15,0x16,0x19},
{0x12,0x13,0x15,0x16,0x19},
{0x12,0x13,0x15,0x16,0x19},
{0x12,0x13,0x15,0x16,0x19}};
unsigned char code Set_X_1[4][8]={{0x11,0x12,0x13,0x15,0x1D,0x1E,0x1F,0x21},
{0x11,0x12,0x13,0x15,0x1D,0x1E,0x1F,0x21},
{0},//{0x12,0x13,0x14,0x16},
{0x0B,0x0C,0x0E}};
unsigned char code Set_X_2[3][8]={{0x12,0x13,0x14,0x16,0x1E,0x1F,0x20,0x22},
{0x12,0x13,0x14,0x16,0x1E,0x1F,0x20,0x22},
{0x09,0x0A,0x0B,0x1D}};
unsigned char code Set_X_3[5][8]={{0x11,0x12,0x14,0x15,0x1C,0x1D,0x1F,0x20},
{0x11,0x12,0x14,0x15,0x1C,0x1D,0x1F,0x20},
{0x11,0x12,0x14,0x15,0x1C,0x1D,0x1F,0x20},
{0x11,0x12,0x14,0x15,0x1C,0x1D,0x1F,0x20},
{0x09,0x0A}};
unsigned char code Set_X_4[4][6]={{0x12,0x13,0x15,0x1D,0x1E,0x20},
{0x12,0x13,0x15,0x1D,0x1E,0x20},
{0x12,0x13,0x15,0x1D,0x1E,0x20},
{0x12,0x13,0x15,0x1D,0x1E,0x20}};
unsigned char code Adjust[2][4]={{0x15,0x16,0x18,0x19},
{0x12,0x13,0x14,0x16}};
unsigned char code ASK_Value[2]={0x11,0x01};
unsigned char data Unit_Addr_H=0,Unit_Addr_L=0;
unsigned char data Dis_X=0,Dis_Y=0,Num_Now=1,Page_Val=0;
bit data SetK_Flag=0;
unsigned int data V_Value=0;//d_v=0;
bit V_Up=0;
bit TH_Flag=0,Receive_OK=0,MK_Slow_Test_OK=0,Test_Screen_OK=0,Connect_ok_ask=0;
bit F=1,Test_Flag=0,Connect_ok=0;
unsigned int T_Count=0,SR_V_0=0,SR_V_1=0;
unsigned char xdata Receive_Data[48]={0};
unsigned char Receive_Len=0;
//unsigned char code Send_head=0x22;
unsigned int p_v=0;
main(void)
{
unsigned int j;
AD_COM=0x92;//a is method 0 and input;b is method 0 and input;c is output;
DA_COM=0x88;
IO_COM=0x80;
IT0=1;
PX0=1;
TMOD=0x21;//T1 IS Method 2; T0 is method 1;
TH0=T0_Time/256;//1ms
TL0=T0_Time%256;
SCON=0x70;//UART method 1;recieved enable.
PCON=0x80;//Boud Double;
TH1=0xF3;//4800b;
TL1=0xF3;
TR1=1;
ES=1;
ET0=0;
EA=1;
AD_C=0xC1;
//AD_C=0x01;
DA_A=0;
DA_B=0;
DA_C=0xFF;
IO_A=0xFF;
IO_B=0xFF;
IO_C=0x3F;
// DA_Convert(0);//0,2048,4095
for(j=0;j<200;j++)
{
Delay_1(250);
}
LCD_Reset();
LCD_Initial();
LCD_Clear();
Fun_Screen_Main();
for(j=0;j<3000;j++)
{
Delay_1(250);
}
LCD_Clear();
Screen_Setting(Page_Val);
Screen_Read(Page_Val);
PMR|=0x01;
while(1)
{
KB_Proc();
if(Connect_ok)
{
if(Test_Flag)
{
unsigned char r;
Key_Test();
ES=0;
SBUF=0x22;
while(!TI);
TI=0;
for(r=0;r<12;r++)
{
IntToByte(Test_Data[r]);
}
ES=1;
Test_Flag=0;
}
if(Receive_OK)
{
//Handle_Pro(Receive_Data);
unsigned char m;
Handle_Pro();
Receive_OK=0;
for(m=0;m<48;m++)
{
Receive_Data[m]=0;
}
}
if(MK_Slow_Test_OK)
{
MK_Slow_Test();
MK_Slow_Test_OK=0;
}
if(Test_Screen_OK)
{
Test_Screen();
Test_Screen_OK=0;
}
if(Connect_ok_ask)
{
Send_Pro(ASK_Value,2);
Connect_ok_ask=0;
}
}
}
}
void IntToByte(unsigned int Val)
{
unsigned char Temp[2]={0};
Temp[0]=Val/256;
Temp[1]=Val%256;
Send_Pro(Temp,2);
}
void Send_Pro(unsigned char *e,unsigned char NUM)
{
unsigned char k_1;
ES=0;
for(k_1=0;k_1<NUM;k_1++)
{
SBUF=e[k_1];
while(!TI);
TI=0;
}
ES=1;
}
void Num_Convert_1(unsigned int Val,unsigned char Num)
{
unsigned char Temp_Val[4]={0};
unsigned char i_1;
unsigned int y_1=1;
for(i_1=0;i_1<Num-1;i_1++)
{
y_1*=10;
}
for(i_1=0;i_1<Num;i_1++)
{
Temp_Val[i_1]=Val/y_1;
Val%=y_1;
y_1/=10;
}
//Send_Pro(Temp_Val,Num);
for(i_1=0;i_1<8;i_1++) Delay_1(250);
//Delay_1(250);
//Delay_1(250);
WRITEDATAARRAY(Num,0xA0,Unit_Addr_H,Unit_Addr_L,Temp_Val);
Unit_Addr_H=0;
Unit_Addr_L+=Num;
/*for(i_1=0;i_1<Num;i_1++)
{
WRITEBYTE(0xA0,Unit_Addr_H,Unit_Addr_L,Temp_Val[i_1]);
Unit_Addr_L++;
}*/
}
void Handle_Pro(void)
{
unsigned int xdata Re_Set_Data[22]={0};
unsigned char a=0,b=0;//Conv_Data[86];
for(b=0;b<22;b++)
{
a=b*2+1;
Re_Set_Data[b]=Receive_Data[a]*256+Receive_Data[a+1];
}
//a=Unit_Addr_H;
//b=Unit_Addr_L;
//for(b=0;b<22;b++) IntToByte(Re_Set_Data[b]);
Unit_Addr_H=0;
Unit_Addr_L=0;
for(b=0;b<14;b++)
{
Num_Convert_1(Re_Set_Data[b],4);
}
for(b=14;b<22;b++)
{
Num_Convert_1(Re_Set_Data[b],3);
}
Num_Convert_1(Receive_Data[45],2);
Num_Convert_1(Receive_Data[46],3);
Num_Convert_1(Receive_Data[47],1);
//Unit_Addr_H=a;
//Unit_Addr_L=b;
IO_C&=0xFB;
for(b=0;b<250;b++) Delay_1(250);
Screen_Read(Page_Val);
for(b=0;b<250;b++) Delay_1(250);
for(b=0;b<250;b++) Delay_1(250);
for(b=0;b<250;b++) Delay_1(250);
//for(b=0;b<250;b++) Delay_1(250);
IO_C|=0x04;
}
void MK_Slow_Test(void)
{
IO_B=0xFF;
DA_Convert(0);
SetK_Flag=0;
LCD_Clear();
Page_Val=0;
Screen_Setting(Page_Val);
Screen_Read(Page_Val);
}
void Test_Screen(void)
{
SetK_Flag=1;
IO_B=0xFF;
DA_Convert(0);
Num_Now=1;
//Page_Val=6;
LCD_Clear();
Screen_Setting(Page_Val);
Screen_Read(Page_Val);
}
void Series_Pro(void) interrupt 4 using 1
{
if(RI)
{
RI=0;
Receive_Data[Receive_Len]=SBUF;
//if(Receive_Len==0)
switch(Receive_Data[0])
{
case 0xEE://receive data
{
//IntToByte(Receive_Data[Receive_Len]);
Receive_Len++;
if(Receive_Len==48)
{
//Handle_Pro(Receive_Data);
Receive_OK=1;
Receive_Len=0;
}
} break;
case 0xFF://receive command
{
Receive_Len++;
//Connect_ok=1;
switch(Receive_Data[1])
{
case 0x01://test
{
//Key_Test();
Test_Flag=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x02: //connect
{
Connect_ok=1;
Connect_ok_ask=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x03:// microk slow test
{
//MK_Slow_Test();
MK_Slow_Test_OK=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x04:// srf slow test
{
Page_Val=6;
//Test_Screen();
Test_Screen_OK=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x05://fast test
{
Page_Val=5;
//Test_Screen();
Test_Screen_OK=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x06://coil resistor test
{
Page_Val=1;
//Test_Screen();
Test_Screen_OK=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x07://contact resistor test
{
Page_Val=2;
//Test_Screen();
Test_Screen_OK=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x08://voltage test
{
Page_Val=3;
//Test_Screen();
Test_Screen_OK=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x09://time test
{
Page_Val=4;
//Test_Screen();
Test_Screen_OK=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
case 0x10://disconnact
{
Connect_ok=0;
//Connect_ok_ask=1;
Receive_Len=0;
Receive_Data[0]=0;
Receive_Data[1]=0;
} break;
}
} break;
}
}
}
void INT0_Pro(void) interrupt 0 using 0
{
unsigned char i;
//static unsigned int p_v=0;//d_v=0;
TR0=0;
if(V_Up==0)
{
/* if(F)
{
p_v=V_Value-REPAIR;
Test_Data[3]=(float)p_v*2.4*MULTI_V/4.095;
F=0;
}
else
{*/
if(Page_Val==6)
{
Test_Data[4]=(float)(V_Value-REPAIR)*2.4*MULTI_V/4.095;
}
else
{
p_v=V_Value-REPAIR-p_v;
Test_Data[4]=(float)p_v*2.4*MULTI_V/4.095;
}
//F=1;
TH_Flag=1;
//}
}
else
{
/* if(F)
{
if(Page_Val==6)
{
Test_Data[5]=(float)(V_Value+REPAIR_1)*2.4*MULTI_V/4.095;
}
else
{
p_v=V_Value+REPAIR_1;
Test_Data[6]=(float)p_v*2.4*MULTI_V/4.095;
}
F=0;
}
else
{*/
if(Page_Val==6)
{
Test_Data[6]=(float)(V_Value+REPAIR_1)*2.4*MULTI_V/4.095;
}
else
{
p_v=p_v-(V_Value+REPAIR_1);
Test_Data[6]=(float)(V_Value+REPAIR_1)*2.4*MULTI_V/4.095;
Test_Data[5]=(float)p_v*2.4*MULTI_V/4.095;
}
//F=1;
TH_Flag=1;
//}
}
for(i=0;i<30;i++) Delay_1(250);//15ms;0.5ms/pcs;
TR0=1;
//IE=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -