📄 ybmain.c
字号:
void ReadFlt() //读滤波强度
{
AT24C64_R(&G_Flt,0x0D,1);
}
void SaveFlt() //保存滤波强度
{
AT24C64_W(&G_Flt,0x0D,1);
}
void InitFlt() //初始化滤波强度
{
G_Flt=2;
AT24C64_W(&G_Flt,0x0D,1);
}
////////////////////////////////////////////////////////////////////////
//零点跟踪管理函数;
void ReadZeroChase() //读零点跟踪
{
AT24C64_R(&G_ZeroChase,0x0E,1);
}
void SaveZeroChase() //保存零点跟踪
{
AT24C64_W(&G_ZeroChase,0x0E,1);
}
void InitZeroChase() //初始化零点跟踪
{
G_ZeroChase=0;
AT24C64_W(&G_ZeroChase,0x0E,1);
}
////////////////////////////////////////////////////////////////////////
//开机置零管理函数;
void ReadStartZero() //读开机置零
{
AT24C64_R(&G_StartZero,0x0F,1);
}
void SaveStartZero() //保存开机置零
{
AT24C64_W(&G_StartZero,0x0F,1);
}
void InitStartZero() //初始化开机置零
{
G_StartZero=1;
AT24C64_W(&G_StartZero,0x0F,1);
}
////////////////////////////////////////////////////////////////////////
//置零键置0管理函数;
void ReadSetZero() //读零点跟踪
{
AT24C64_R(&G_SetZero,0x10,1);
}
void SaveSetZero() //保存零点跟踪
{
AT24C64_W(&G_SetZero,0x10,1);
}
void InitSetZero() //初始化零点跟踪
{
G_SetZero=1;
AT24C64_W(&G_SetZero,0x10,1);
}
////////////////////////////////////////////////////////////////////////
//打印机管理函数;
void ReadPrintType() //读打印机类型
{
AT24C64_R(&G_PrintType,0x11,1);
}
void SavePrintType() //保存打印机类型
{
AT24C64_W(&G_PrintType,0x11,1);
}
void InitPrintType() //初始化打印机类型
{
G_PrintType=0;
AT24C64_W(&G_PrintType,0x11,1);
}
////////////////////////////////////////////////////////////////////////
//波特率管理函数;
void ReadBuadRate() //读波特率
{
AT24C64_R(&G_BuadRate,0x12,1);
}
void SaveBuadRate() //保存波特率
{
AT24C64_W(&G_BuadRate,0x12,1);
}
void InitBuadRate() //初始化波特率
{
G_BuadRate=5;
AT24C64_W(&G_BuadRate,0x12,1);
}
////////////////////////////////////////////////////////////////////////
// 函数名称: void SetParam()
// 入口参数: 无
// 函数功能://设置参数
//test_ok:2006.2.4
////////////////////////////////////////////////////////////////////////
void SetParam()
{
unsigned char i=0;
unsigned char key;
//设定分度值;
//显示d 05
dcode[1]=div(G_FenDu);
dcode[0]=G_FenDu-dcode[1]*10;
dcode[5]=13; dcode[4]=20;dcode[3]=20;dcode[2]=20;//dcode[1]=0;dcode[0]=5;
while(1)
{
key=KeyScan();
if(key==SR) break;// 输入;
if(key==TC) return;//返回
if(key<10)
{
dcode[1]=dcode[0];
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存分度值
G_FenDu=dcode[1]*10+dcode[0];
dtcode=(G_FenDu*100)/G_BdRate;//修改dtcode;
SaveFenDu();
//设定小数点位数;
//显示dc 0;
dcode[5]=13; dcode[4]=22;dcode[3]=20;dcode[2]=20;dcode[1]=20;dcode[0]=G_WeiShu;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<6)
{
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存小数点位数
G_WeiShu=dcode[0];
SaveWeiShu();
//设定量程;
//显示300000;
uu=G_Full;
for(i=0;i<6;i++)
{
aa=div(uu);
dcode[i]=uu-aa*10;
tint[i]=dcode[i];
uu=aa;
}
// tint[0]=0; tint[1]=3;tint[2]=0;tint[3]=0;tint[4]=0;tint[5]=0;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<10)
{
dcode[5]=dcode[4];
tint[5]=tint[4];
dcode[4]=dcode[3];
tint[4]=tint[3];
dcode[3]=dcode[2];
tint[3]=tint[2];
dcode[2]=dcode[1];
tint[2]=tint[1];
dcode[1]=dcode[0];
tint[1]=tint[0];
dcode[0]=key;
tint[0]=key;
}
for(i=5;dcode[i]==0||dcode[i]==20||dcode[i]>9;i--)
{
dcode[i]=20;
}
DisplayCode(dcode,6);
}
//计算量程
G_Full=0;
for(i=5;;i--)
{
G_Full=G_Full*10+tint[i];
if(i==0) break;
}
//保存量程
SaveFull();
// ReadFull();
//设定数字滤波强度;
//显示Flt 2;
dcode[5]=15; dcode[4]=16;dcode[3]=21;dcode[2]=20;dcode[1]=20;dcode[0]=G_Flt;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<6&&key>0)
{
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存数字滤波强度
G_Flt=dcode[0];
SaveFlt();
//设定零点跟踪范围;
//显示F1 0;
dcode[5]=15; dcode[4]=1;dcode[3]=20;dcode[2]=20;dcode[1]=20;dcode[0]=G_ZeroChase;
while(1)
{
key=KeyScan();
if(key==SR) break;// 输入;
if(key==TC) return;//返回
if(key<7)
{
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存0点跟踪范围
G_ZeroChase=dcode[0];
SaveZeroChase();
//设定开机置0范围;
//显示F2 2;
dcode[5]=15; dcode[4]=2;dcode[3]=20;dcode[2]=20;dcode[1]=20;dcode[0]=G_StartZero;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<6&&key>0)
{
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存开机置0范围
G_StartZero=dcode[0];
SaveStartZero();
//设定置0键置0范围;
//显示F3 2;
dcode[5]=15; dcode[4]=3;dcode[3]=20;dcode[2]=20;dcode[1]=20;dcode[0]=G_SetZero;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<6&&key>0)
{
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存置0键置0范围
G_SetZero=dcode[0];
SaveSetZero();
//设打印机类型
//显示F4 1;
dcode[5]=15; dcode[4]=4;dcode[3]=20;dcode[2]=20;dcode[1]=20;dcode[0]=G_PrintType;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<2)
{
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存打印机类型
G_PrintType=dcode[0];
SavePrintType();
//设串行通讯波特率
//显示F5 4;
dcode[5]=15; dcode[4]=5;dcode[3]=20;dcode[2]=20;dcode[1]=20;dcode[0]=G_BuadRate;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<6&&key>0)
{
dcode[0]=key;
}
DisplayCode(dcode,6);
}
//保存打印机类型
G_BuadRate=dcode[0];
SaveBuadRate();
UART_init();
return;
}
////////////////////////////////////////////////////////////////////////
//标率管理函数;
void ReadBdRate() //读标率
{
AT24C64_R(&G_BdRate,0x17,4);
AT24C64_R(&IsBD,0x35,1);
}
void SaveBdRate() //保存标率
{
AT24C64_W(&G_BdRate,0x17,4);
IsBD=1;
AT24C64_W(&IsBD,0x35,1);
}
void InitBdRate() //初始化标率
{
G_BdRate=1;
AT24C64_W(&G_BdRate,0x17,4);
IsBD=0;
AT24C64_W(&IsBD,0x35,1);
}
////////////////////////////////////////////////////////////////////////
//零点码管理函数;
void ReadZeroCode() //读零点码
{
AT24C64_R(&G_ZeroCode,0x13,4);
}
void SaveZeroCode() //保存零点码
{
AT24C64_W(&G_ZeroCode,0x13,4);
}
void InitZeroCode() //初始化零点码
{
G_ZeroCode=0;
AT24C64_W(&G_ZeroCode,0x13,4);
}
////////////////////////////////////////////////////////////////////////
// 函数名称: void BDing()
// 入口参数: 无
// 函数功能 //标定;
//test_ok:06.2.4
////////////////////////////////////////////////////////////////////////
void BDing()
{
// unsigned char dcode[6];
unsigned char i=0;
unsigned char key;
i=0;
bBDing=1;
//第一步:得零点码
while(1)
{
DisplayWeightCode();
key=KeyScan();
if(key==TC)
{
if(IsBD==0)
return;//返回
else //补偿标定
{
//得高位码;
while(1)
{
DisplayWeightCode();
key=KeyScan();
// if(key==TC) return;//返回
if(key==SR) //输入
{
G_DynicCode=timer_ok;
break;
}
}
//重量;
dcode[5]=20; dcode[4]=20;dcode[3]=20;dcode[2]=20;dcode[1]=20;dcode[0]=0;
tint[0]=0; tint[1]=0;tint[2]=0;tint[3]=0;tint[4]=0;tint[5]=0;
while(1)
{
key=KeyScan();
if(key==SR) break; //输入;
if(key==TC) return;//返回
if(key<10)
{
dcode[5]=dcode[4];
tint[5]=tint[4];
dcode[4]=dcode[3];
tint[4]=tint[3];
dcode[3]=dcode[2];
tint[3]=tint[2];
dcode[2]=dcode[1];
tint[2]=tint[1];
dcode[1]=dcode[0];
tint[1]=tint[0];
dcode[0]=key;
tint[0]=key ;
}
for(i=5;dcode[i]==0||dcode[i]==20;i--)
{
dcode[i]=20;
}
DisplayCode(dcode,6);
}
//计算重量
G_hw=0;
for(i=5;;i--)
{
G_hw=G_hw*10+tint[i];
if(i==0) break;
}
//计算标率
G_BdRate=(G_BdRate+(float)G_hw/((float)( G_DynicCode-G_ZeroCode)))/2;
//计算dtcode;
dtcode=(G_FenDu*100)/G_BdRate; //放大100倍;
SaveBdRate();
bBDing=0;
return;
}
}
if(key==SR) //输入
{
G_ZeroCode=timer_ok;
SaveZeroCode();//保存零点码;
// ReadZeroCode();
break;
}
}
//初次标定
{
//LOAD;
dcode[5]=20; dcode[4]=20;dcode[3]=16;dcode[2]=18;dcode[1]=10;dcode[0]=13;
while(1)
{
DisplayCode(dcode,6);//显示LOAD;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -