?? disp.c
字號:
* 功能:顯示TOTAL數據b
************************************************************************/
void disp_total_b(void)
{ uchar i;
xdata uchar dispmem[16],tt[12];
uchar dotdata;
ulong ma;
uchar *ptr;
#if GUNJLMODE>2//單計量時
gun2.sum_sale=gun1.sum_sale;
gun2.sum_liter=gun1.sum_liter;
gun2.work_sale=gun1.work_sale;
gun2.work_liter=gun1.work_liter;
#endif
for(i=0;i<16;i++)
{
dispmem[i]=0x0f;
}
if((menu2==1 && state2==6) ||state2==8)
{
if(!ration_mode_b)
{
dotdata=dotb_data[6];
#if DISPMODE==886
dispmem[7]=0x0c;dispmem[6]=0x0c; //PP
#else
dispmem[5]=0x0c;dispmem[4]=0x0c; //PP
#endif
if(state2!=8 || ration_num_b==0) ma=gun2.sum_sale; //總累--鎖售額 PP
else ma=ration_num_b;
if(state2!=8)
{
keyb_num[0]=0x1f;keyb_num[1]=0x01;keyb_num[2]=0x48;keyb_num[3]=0x48;
keyb_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[27];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[23];
keyb_num[3]=keynumdata[23]; //"PP--"
keyb_num[4]=0x02;
}
}
else //升
{ dotdata=dotb_data[5];
#if DISPMODE==886
dispmem[7]=0x0a;dispmem[6]=0x0a;
#else
dispmem[5]=0x0a;dispmem[4]=0x0a;
#endif //LL
if(state2!=8 || ration_num_b==0) ma=gun2.sum_liter; //總累--升 LL
else ma=ration_num_b;
if(state2!=8)
{
keyb_num[0]=0x32;keyb_num[1]=0x01;keyb_num[2]=0x48;keyb_num[3]=0x48;
keyb_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[27];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[19];
keyb_num[3]=keynumdata[19]; //"LL--"
keyb_num[4]=0x02;
}
}
}
else //班累
{
if(!ration_mode_b)
{ dotdata=dotb_data[6];
#if DISPMODE==886
dispmem[7]=0x0c;dispmem[6]=0x0f;
#else
dispmem[5]=0x0c;dispmem[4]=0x0f;
#endif //P
ma=gun2.work_sale; //班累--鎖售額 P
keyb_num[0]=0x1f;keyb_num[1]=0x01;keyb_num[2]=0x3d;keyb_num[3]=0x48;
keyb_num[4]=0x02;
}
else
{ dotdata=dotb_data[5];
#if DISPMODE==886
dispmem[7]=0x0a;dispmem[6]=0x0f;
#else
dispmem[5]=0x0a;dispmem[4]=0x0f;
#endif //L
ma=gun2.work_liter; //班累--升 L
keyb_num[0]=0x32;keyb_num[1]=0x01;keyb_num[2]=0x3d;keyb_num[3]=0x48;
keyb_num[4]=0x02;
}
}
//****************************
for(i=0;i<12;i++)
{
tt[i]=ma%10;ma/=10;
}
for(i=11;i>0;i--)
{ if(i==dotdata) break;
if(tt[i]==0) tt[i]=0x0f; //去前導零
else break;
}
//------------------------
#if DISPMODE==664
if(dotdata==1) //如果是1位小數
{
for(i=0;i<3;i++)
{
dispmem[i]=tt[i+9];
}
for(i=0;i<6;i++)
{
dispmem[i+8]=tt[i+3];
}
ptr=&dispmem;
disp_out(0,ptr,8);
//--------------------------
for(i=0;i<16;i++)
{
dispmem[i]=0x0f;
}
if(dotdata==3)dispmem[0+8]=0xfc; //3位
else if(dotdata==0)dispmem[0+8]=0xff; //0位
else dispmem[0+8]=0xcf; //1,2位都只能顯示第二位小數
for(i=1;i<4;i++)
{
dispmem[i]=tt[i-1];
}
//dispmem[10]=dotmem[dotdata];
}
else //不是一位小數時
{
for(i=0;i<2;i++)
{
dispmem[i]=tt[i+10];
}
for(i=0;i<6;i++)
{
dispmem[i+8]=tt[i+4];
}
ptr=&dispmem;
disp_out(1,ptr,8);
//--------------------------
for(i=0;i<16;i++)
{
dispmem[i]=0x0f;
}
if(dotdata==3)dispmem[0+8]=0xfc; //3位
else if(dotdata==0)dispmem[0+8]=0xff; //0位
else dispmem[0+8]=0xcf; //1,2位都只能顯示第二位小數
for(i=0;i<4;i++)
{
dispmem[i]=tt[i];
}
//dispmem[10]=dotmem[dotdata];
}
ptr=&dispmem;
disp_out(1,ptr,6);
#else //*******886***666***********
for(i=6;i<10;i++)
{
dispmem[i+2]=tt[i];
}
ptr=&dispmem;
disp_out(1,ptr,8);
//--------------------------
for(i=6;i<16;i++)
{
dispmem[i]=0x0f;
}
for(i=0;i<6;i++)
{
dispmem[i]=tt[i];
}
dispmem[10]=dotmem[dotdata];
ptr=&dispmem;
disp_out(1,ptr,6);
#endif
}
/**********************************************************
* 功能:查詢及菜單返回的顯示界面a
**********************************************************/
void disp_return_a(void)
{
disp_key_clear_a();
if(!cease_power)disp_dot(price_a,0);//LCD1單價、小數點
state1=0;
updatea=1;
if(temp_mema>0){Get1302();temp_mema=0;}
#if GUNJLMODE>2//單計量時
//gun_busy=0xff;
#endif
update_lcd1();
}
/**********************************************************
* 功能:查詢及菜單返回的顯示界面b
**********************************************************/
void disp_return_b(void)
{
disp_key_clear_b();
if(!cease_power)disp_dot(price_b,1);//LCD2單價、小數點
state2=0;
updateb=1;
#if GUNJLMODE>2//單計量時
//gun_busy=0xff;
#endif
update_lcd2();
}
/************************************************************
* 功能:顯示槍1/2歷史加油記錄
*************************************************************/
void disp_eeprom_history(uchar gunid,uchar sequence)
{ void *pt;
union{
uchar c[4];
ulong x;
ulong y;
}temp;
ulong mz;
uint add;
char dypass;
pt=&temp.c[0];
if(gunid==0)
{
keya_num[0]=keynumdata[sequence];keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[0];keya_num[3]=keynumdata[1];
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[sequence];keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[0];keyb_num[3]=keynumdata[1];
keyb_num[4]=0x02;
}
#if GUNJLMODE>2//單計量時
gunid=0x00;
#endif
dypass=readbyte(gunid*300)-sequence; //槍0在0000H; 槍1在0300;
if(dypass<0) dypass+=10;
if(dypass>9) dypass=0;
add=dypass*12+200*gunid+101;
readbyteseq(add,pt,4);
mz=temp.x;
//pt=&temp.c[0];
dypass=readbyte(gunid*300)-sequence; //槍0在0000H; 槍1在0300;
if(dypass<0) dypass+=10;
//add=dypass*10+256*gunid+105;
add+=4;
readbyteseq(add,pt,4);
disp_lcd(temp.x,mz,gunid); //公升
add+=4;
readbyteseq(add,pt,4);
disp_dot(temp.y,gunid); //該次單價
}
/***************************************************************
* 功能:顯示鎖機a
* 輸入密碼過程中是從右到左,即第1個輸入的在最右邊--個位。
***************************************************************/
void disp_lock_a(void)
{ void *ptr;
uchar i,j;
uchar dispmem[16];
//disp_lcd_clear(0);
if(menu1==4)
{
if(temp_mema!=4)
{
keya_num[0]=keynumdata[temp_mema];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[4];
keya_num[3]=keynumdata[0];
}
else
{ ptr=&ration_num_a;
writebyteseq(PASSSTARTADD,ptr,4);
#if GUNJLMODE>2//單計量時
ration_num_b=ration_num_a;
ptr=&ration_num_b; //鎖機密碼b
writebyteseq(PASSSTARTADD+4,ptr,4);
#endif
keya_num[0]=keynumdata[3];
keya_num[1]=keynumdata[3];
keya_num[2]=keynumdata[3];
keya_num[3]=keynumdata[3];
}
}
else
{
keya_num[0]=keynumdata[19];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[3];
keya_num[3]=keynumdata[0];
}
if(locknooil_a) keya_num[4]=0x01;
else keya_num[4]=0x02;
//-------------------
if(state1==4)
{
for(i=0;i<16;i++)
{
dispmem[i]=0x0f;
}
ptr=&dispmem;
disp_out(0,ptr,8);
//---------------------
if(multiple_a==1)j=0;
else if(multiple_a==10)j=1;
else if(multiple_a==100)j=2;
else if(multiple_a==1000)j=3;
else j=4;
for(i=0;i<j;i++)
{
dispmem[i]=0x0e; //'-'
}
for(i=j;i<16;i++)
{
dispmem[i]=0x0f;
}
dispmem[0+8]=0x0ff; //沒有小數點
ptr=&dispmem;
disp_out(0,ptr,6);
}
}
/**************************************************************
* 功能:顯示時鐘a/b
**************************************************************/
void disp_time(uchar gunidid)
{ uchar dispmem[16];
uchar i;
uchar *ptr;
if(gunidid==0)
{
keya_num[0]=keynumdata[14];
keya_num[1]=keynumdata[27];
if(state1==4)
{
keya_num[2]=keynumdata[02];
keya_num[3]=keynumdata[00]; //"02-d"
}
else
{
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[05]; //"5--d"
}
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[14];
keyb_num[1]=keynumdata[27];
if(state2==4)
{
keyb_num[2]=keynumdata[02];
keyb_num[3]=keynumdata[00]; //"02-d"
}
else
{
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[05]; //"5--d"
}
keyb_num[4]=0x02;
}
dispmem[7]=0x02;
dispmem[6]=0x00;
dispmem[5]=ucCurtime[6]/16;
dispmem[4]=ucCurtime[6]%16; //年
dispmem[3]=ucCurtime[4]/16;
dispmem[2]=ucCurtime[4]%16; //月
dispmem[1]=ucCurtime[3]/16;
dispmem[0]=ucCurtime[3]%16; //日
//---------------------------------
dispmem[15]=0x0f;
dispmem[14]=0x0f;
dispmem[13]=ucCurtime[2]/16;
dispmem[12]=ucCurtime[2]%16; //時
dispmem[11]=ucCurtime[1]/16;
dispmem[10]=ucCurtime[1]%16; //分
dispmem[9]=ucCurtime[0]/16;;
dispmem[8]=ucCurtime[0]%16;; //秒
ptr=&dispmem;
disp_out(gunidid,ptr,8);
//------------------------
for(i=1;i<16;i++)
{
dispmem[i]=0x0f;
}
dispmem[0]=ucCurtime[5]%16;
#if DISPMODE==886
if(!(state1==3 && menu1==9 && temp_mema>0))
{
dispmem[9]=0x02;
dispmem[11]=0x0a;
dispmem[12]=0x0a; //因為666沒有第位小數,加上設置時也不需要小數
}
#endif
dispmem[0+8]=0x0ff; //664時鐘沒有小數點
ptr=&dispmem;
disp_out(gunidid,ptr,6);
}
/**************************************************************
* 功能:顯示版本號a/b
**************************************************************/
void disp_ver(uchar gunidid)
{
disp_lcd_clear(gunidid);
if(gunidid==0) //槍0
{
keya_num[0]=keynumdata[ver_num[1]%10];keya_num[1]=keynumdata[ver_num[1]/10];keya_num[2]=keynumdata[ver_num[0]%10];keya_num[3]=keynumdata[26]; //"U123"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[ver_num[1]%10];keyb_num[1]=keynumdata[ver_num[1]/10];keyb_num[2]=keynumdata[ver_num[0]%10];keyb_num[3]=keynumdata[26]; //"U123"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:顯示提前關閥量---流量控制
***************************************************************/
void disp_velocity_control(uchar gunidid)
{
if(gunidid==0) //槍0
{
keya_num[0]=keynumdata[residue_a%10];
keya_num[1]=keynumdata[residue_a/10];
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[6]; //"6-30"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[residue_b%10];
keyb_num[1]=keynumdata[residue_b/10];
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[6]; //"6-30"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:顯示中控地址
***************************************************************/
void disp_address(uchar gunidid)
{
if(gunidid==0) //槍0
{
keya_num[0]=keynumdata[gunadd_a%10];
keya_num[1]=keynumdata[gunadd_a/10];
keya_num[2]=keynumdata[0x0e];
keya_num[3]=keynumdata[0x0a]; //"Ad30"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[gunadd_b%10];
keyb_num[1]=keynumdata[gunadd_b/10];
keyb_num[2]=keynumdata[0x0e];
keyb_num[3]=keynumdata[0x0a]; //"Ad30"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:顯示小數點
***************************************************************/
void disp_setdot(uchar gunidid)
{ find_dot();
if(gunidid==0) //槍0
{
keya_num[0]=keynumdata[decimal_a];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[8]; //"8--2"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[decimal_b];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[8]; //"8--2"
keyb_num[4]=0x02;
}
disp_lcd(0,0,gunidid);
disp_dot(0,gunidid);
}
/***************************************************************
* 功能:顯示每秒增量--由于膨脹
***************************************************************/
void disp_dilate(uchar gunidid)
{
if(gunidid==0) //槍0
{
keya_num[0]=keynumdata[increment_a%10];
keya_num[1]=keynumdata[increment_a/10];
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[0x9]; //"09-3"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[increment_b%10];
keyb_num[1]=keynumdata[increment_b/10];
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[9]; //"09-3"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:顯示打印機工作方式 00--自動 01--手動
***************************************************************/
void disp_printer_mode(uchar gunidid)
{
if(gunidid==0) //槍0
{ if(printermode_a==0)
{
keya_num[0]=keynumdata[10]; //"Auto"
}
else
{
keya_num[0]=keynumdata[17];//"Hand"
}
keya_num[1]=keynumdata[27];
if(state1==4)
{
keya_num[2]=keynumdata[6];
keya_num[3]=keynumdata[0]; //06-H
}
else
{
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[3]; //3--H
}
keya_num[4]=0x02;
}
else //gunidid==0
{ if(printermode_b==0)
{
keyb_num[0]=keynumdata[10];//"Auto"
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -