📄 disp.c
字号:
else keya_num[3]=keynumdata[17]; //手动
keya_num[0]=keynumdata[pirnt_select_a+1];
keya_num[1]=0x00;keya_num[2]=0x00;keya_num[4]=0x00; */
//------------------------------------------------------
if(vip_mode_a) {keya_num[4]=0x04;} //定升
else {keya_num[4]=0x08;} //定元
keya_num[0]=keynumdata[0];
keya_num[1]=keynumdata[28];
keya_num[2]=keynumdata[28];
keya_num[3]=keynumdata[28];
//------------------------------------------------------
}
else
{ keya_num[0]=keynumdata[27];keya_num[3]=keynumdata[27];
keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[27];keya_num[4]=0x02;
}
}
/*****************************************
* 功能:键盘小屏清屏b
*******************************************/
void disp_key_clear_b(void)
{
if(k2key)
{
/*if(printermode_b==0) keyb_num[3]=keynumdata[0x0a]; //自动
else keyb_num[3]=keynumdata[17]; //手动
keyb_num[0]=keynumdata[pirnt_select_b+1];
keyb_num[1]=0x00;keyb_num[2]=0x00;keyb_num[4]=0x00;*/
//-----------------------------------------------------
if(vip_mode_b) {keyb_num[4]=0x04;} //定升
else {keyb_num[4]=0x08;} //定元
keyb_num[0]=keynumdata[0];
keyb_num[1]=keynumdata[28];
keyb_num[2]=keynumdata[28];
keyb_num[3]=keynumdata[28];
//-----------------------------------------------------
}
else
{ keyb_num[0]=keynumdata[27];keyb_num[3]=keynumdata[27];
keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[27];keyb_num[4]=0x02;
}
}
/***********************************************************************
* 功能:显示TOTAL数据a
************************************************************************/
void disp_total_a(void)
{ uchar i;
uchar dispmem[16],tt[10];
uchar dotdata;
ulong ma;
uchar *ptr;
dispmem[4]=0x0f;dispmem[5]=0x0f;dispmem[6]=0x0f;dispmem[7]=0x0f;
if((menu1==1 && state1==6) ||state1==8)
{
if(!ration_mode_a)
{ bbyte=dotmode[decimal_a];
if(a3) {dotdata=2;disp_dot1(7);} //LCD1小数点
else if(a0) {dotdata=1;disp_dot1(7);} //LCD1小数点
else {dotdata=0;disp_dot1(0x8);} //LCD1小数点
dispmem[8]=0x0c;dispmem[9]=0x0c;
if(state1!=8 || ration_num_a==0) ma=gun1.sum_sale; //总累--锁售额 PP
else ma=ration_num_a;
if(state1!=8)
{
keya_num[0]=0x1f;keya_num[1]=0x01;keya_num[2]=0x48;keya_num[3]=0x48;
keya_num[4]=0x02;
}
else
{
keya_num[0]=keynumdata[27];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[23];
keya_num[3]=keynumdata[23]; //"PP--"
keya_num[4]=0x02;
}
}
else
{ bbyte=dotmode[decimal_a];
if(a4) {dotdata=2;disp_dot1(0x7);} //LCD1小数点
else if(a1) {dotdata=3;disp_dot1(0x6);} //LCD1小数点
else {dotdata=0;disp_dot1(0x8);} //LCD1小数点
dispmem[8]=0x0a;dispmem[9]=0x0a;
if(state1!=8 || ration_num_a==0) ma=gun1.sum_liter; //总累--升 LL
else ma=ration_num_a;
if(state1!=8)
{
keya_num[0]=0x32;keya_num[1]=0x01;keya_num[2]=0x48;keya_num[3]=0x48;
keya_num[4]=0x02;
}
else
{
keya_num[0]=keynumdata[27];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[19];
keya_num[3]=keynumdata[19]; //"LL--"
keya_num[4]=0x02;
}
}
}
else
{
if(!ration_mode_a)
{ bbyte=dotmode[decimal_a];
if(a3) {dotdata=2;disp_dot1(0x7);} //LCD1小数点
else if(a0) {dotdata=1;disp_dot1(0x7);} //LCD1小数点
else {dotdata=0;disp_dot1(0x8);} //LCD1小数点
dispmem[8]=0x0f;dispmem[9]=0x0c;
ma=gun1.work_sale; //班累--锁售额 P
keya_num[0]=0x1f;keya_num[1]=0x01;keya_num[2]=0x3d;keya_num[3]=0x48;
keya_num[4]=0x02;
}
else
{ bbyte=dotmode[decimal_a];
if(a4) {dotdata=2;disp_dot1(0x7);} //LCD1小数点
else if(a1) {dotdata=3;disp_dot1(0x6);} //LCD1小数点
else {dotdata=0;disp_dot1(0x8);} //LCD1小数点
dispmem[8]=0x0f;dispmem[9]=0x0a;
ma=gun1.work_liter; //班累--升 L
keya_num[0]=0x32;keya_num[1]=0x01;keya_num[2]=0x3d;keya_num[3]=0x48;
keya_num[4]=0x02;
}
}
for(i=0;i<10;i++)
{
tt[i]=ma%10;ma/=10;
}
for(i=9;i>0;i--)
{ if(i==dotdata) break;
if(tt[i]==0) tt[i]=0x0f; //去前导零
else break;
}
if(dotdata!=1)
{
for(i=0;i<4;i++)
{
dispmem[i]=tt[i];
}
for(i=4;i<10;i++)
{
dispmem[i+6]=tt[i];
}
}
else //因不能显示1位小数点,全左移1位,最后一位的位置空
{
for(i=0;i<3;i++)
{
dispmem[i+1]=tt[i];
}
for(i=3;i<9;i++)
{
dispmem[i+7]=tt[i];
}
dispmem[4]=tt[9];
dispmem[0]=0x0f; //最后一位的位置空
}
ptr=&dispmem;
disp_updata_lcd(LCDAADD,ptr);
}
/***********************************************************************
* 功能:显示TOTAL数据b
************************************************************************/
void disp_total_b(void)
{ uchar i;
uchar dispmem[16],tt[10];
uchar dotdata;
ulong ma;
uchar *ptr;
dispmem[4]=0x0f;dispmem[5]=0x0f;dispmem[6]=0x0f;dispmem[7]=0x0f;
if((menu2==1 && state2==6) || state2==8)
{
if(!ration_mode_b)
{ bbyte=dotmode[decimal_b];
if(a3) {dotdata=2;disp_dot2(7);} //LCD1小数点
else if(a0) {dotdata=1;disp_dot2(7);} //LCD1小数点
else {dotdata=0;disp_dot2(0x8);} //LCD1小数点
dispmem[8]=0x0c;dispmem[9]=0x0c;
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
{ bbyte=dotmode[decimal_b];
if(a4) {dotdata=2;disp_dot2(0x7);} //LCD1小数点
else if(a1) {dotdata=3;disp_dot2(0x6);} //LCD1小数点
else {dotdata=0;disp_dot2(0x8);} //LCD1小数点
dispmem[8]=0x0a;dispmem[9]=0x0a;
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)
{ bbyte=dotmode[decimal_b];
if(a3) {dotdata=2;disp_dot2(0x7);} //LCD2小数点
else if(a0) {dotdata=1;disp_dot2(0x7);} //LCD2小数点
else {dotdata=0;disp_dot2(0x8);} //LCD2小数点
dispmem[8]=0x0f;dispmem[9]=0x0c;
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
{ bbyte=dotmode[decimal_b];
if(a4) {dotdata=2;disp_dot2(0x7);} //LCD2小数点
else if(a1) {dotdata=3;disp_dot2(0x6);} //LCD1小数点
else {dotdata=0;disp_dot2(0x8);} //LCD2小数点
dispmem[8]=0x0f;dispmem[9]=0x0a;
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<10;i++)
{
tt[i]=ma%10;ma/=10;
}
for(i=9;i>0;i--)
{ if(i==dotdata) break;
if(tt[i]==0) tt[i]=0x0f; //去前导零
else break;
}
if(dotdata!=1)
{
for(i=0;i<4;i++)
{
dispmem[i]=tt[i];
}
for(i=4;i<10;i++)
{
dispmem[i+6]=tt[i];
}
}
else //因不能显示1位小数点,全左移1位,最后一位的位置空
{
for(i=0;i<3;i++)
{
dispmem[i+1]=tt[i];
}
for(i=3;i<9;i++)
{
dispmem[i+7]=tt[i];
}
dispmem[4]=tt[9];
dispmem[0]=0x0f; //最后一位的位置空
}
ptr=&dispmem;
disp_updata_lcd(LCDBADD,ptr);
}
/**********************************************************
* 功能:查询及菜单返回的显示界面a
**********************************************************/
void disp_return_a(void)
{
disp_key_clear_a();
//disp_lcd1(0,0x04);
//disp_lcd1(0,0x0a); //公升
//disp_lcd1(price_a,0x0);
//disp_dot1(decimal_a); //LCD1小数点
if(!cease_power)disp_lcd1(price_a,0x0);
state1=0;
updatea=1;
}
/**********************************************************
* 功能:查询及菜单返回的显示界面b
**********************************************************/
void disp_return_b(void)
{
disp_key_clear_b();
//disp_lcd2(0,0x04);
//disp_lcd2(0,0x0a); //公升
//disp_lcd2(price_b,0x0);
//disp_dot2(decimal_b); //LCD2小数点
if(!cease_power)disp_lcd2(price_b,0x0);
state2=0;
updateb=1;
}
/***********************************************************************
* 功能:显示更新显示数据LCD1/LCD2
************************************************************************/
void disp_updata_lcd(uint addab,uchar *ptr)
{ uchar i,j,temp;
bit bymem;
AUXR |=0x02;
for(i=0;i<16;i++)
{ ACC=0x38;
XBYTE[addab]=ACC; //ST
bbyte=*(ptr+i);
temp=bbyte*16+i; //+lcdadd-1;
for(j=8;j>0;j--)
{ bbyte=temp;
bymem=(bit)(bbyte&0x80);
temp<<=1;
bbyte=0x38;
a1= bymem; //DS-->DATA
XBYTE[addab]=bbyte;
ACC|=0x01;
XBYTE[addab]=ACC; //CP-->CLK ↑
ACC&=0xfe;
XBYTE[addab]=ACC; //CP-->CLK ↓
}
ACC=0x3c;
XBYTE[addab]=ACC; //ST-->INH
}
AUXR &=0xfd;
}
/************************************************************
* 功能:显示枪1/2历史加油记录
*************************************************************/
void disp_eeprom_history(uchar gunid,uchar sequence)
{ void *pt;
union{
uchar c[4];
ulong x;
uint y;
}temp;
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;
}
dypass=readbyte(gunid*300)-sequence; //枪0在0000H; 枪1在0300;
if(dypass<0) dypass+=10;
if(dypass>9) dypass=0;
add=dypass*10+200*gunid+101;
readbyteseq(add,pt,4);
if(gunid==0) disp_lcd1(temp.x,0x0a); //公升
else disp_lcd2(temp.x,0x0a); //公升
//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);
if(gunid==0) disp_lcd1(temp.x,0x04); //公升
else disp_lcd2(temp.x,0x04); //公升
add+=4;
readbyteseq(add,pt,2);
if(gunid==0) {disp_lcd1(temp.y,0x0);disp_dot1(decimal_a);}
else {disp_lcd2(temp.y,0x0);disp_dot2(decimal_b);}
}
/***************************************************************
* 功能:显示锁机a
* 输入密码过程中是从右到左,即第1个输入的在最右边--个位。
***************************************************************/
void disp_lock_a(void)
{ void *ptr;
uchar i,j;
uchar dispmem[16];
if(menu1==4)
{
if(temp_mema!=4)
{
keya_num[0]=keynumdata[temp_mema];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[3];
keya_num[3]=keynumdata[0];
}
else
{ ptr=&ration_num_a;
writebyteseq(PASSSTARTADD,ptr,4);
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(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;
}
ptr=&dispmem;
disp_updata_lcd(LCDAADD,ptr);
disp_dot1(5); //LCD1小数点--无
}
/**************************************************************
* 功能:显示时钟a/b
**************************************************************/
void disp_time(uchar gunidid)
{ uchar dispmem[16];
uchar *ptr;
if(gunidid==0)
{
keya_num[0]=keynumdata[25];keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[27];keya_num[3]=keynumdata[25]; //"t--t"
keya_num[4]=0x02;
dispmem[9]=0x02;
dispmem[8]=0x00;
dispmem[7]=ucCurtime[6]/16;
dispmem[6]=ucCurtime[6]%16;
dispmem[5]=ucCurtime[4]/16;
dispmem[4]=ucCurtime[4]%16;
dispmem[15]=ucCurtime[3]/16;
dispmem[14]=ucCurtime[3]%16;
dispmem[13]=ucCurtime[2]/16;
dispmem[12]=ucCurtime[2]%16;
dispmem[11]=ucCurtime[1]/16;
dispmem[10]=ucCurtime[1]%16;
dispmem[3]=ucCurtime[0]/16;;
dispmem[2]=ucCurtime[0]%16;;
dispmem[1]=0x0f;
dispmem[0]=ucCurtime[5]%16;
disp_dot1(0x08); //LCD1小数点 08--全无小数点
ptr=&dispmem;
disp_updata_lcd(LCDAADD,ptr);
}
else
{
keyb_num[0]=keynumdata[25];keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[27];keyb_num[3]=keynumdata[25]; //"t--t"
keyb_num[4]=0x02;
dispmem[9]=0x02;
dispmem[8]=0x00;
dispmem[7]=ucCurtime[6]/16;
dispmem[6]=ucCurtime[6]%16;
dispmem[5]=ucCurtime[4]/16;
dispmem[4]=ucCurtime[4]%16;
dispmem[15]=ucCurtime[3]/16;
dispmem[14]=ucCurtime[3]%16;
dispmem[13]=ucCurtime[2]/16;
dispmem[12]=ucCurtime[2]%16;
dispmem[11]=ucCurtime[1]/16;
dispmem[10]=ucCurtime[1]%16;
dispmem[3]=ucCurtime[0]/16;;
dispmem[2]=ucCurtime[0]%16;;
dispmem[1]=0x0f;
dispmem[0]=ucCurtime[5]%16;
disp_dot2(0x08); //LCD2小数点 08--全无小数点
ptr=&dispmem;
disp_updata_lcd(LCDBADD,ptr);
}
}
/**************************************************************
* 功能:显示版本号a/b
**************************************************************/
void disp_ver(uchar 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[2]; //"2-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[2]; //"2-30"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:显示提前关机量---关机控制
***************************************************************/
void disp_close_num(uchar gunidid)
{
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[close_num_a%10];
keya_num[1]=keynumdata[close_num_a/10];
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[1]; //"1-30"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[close_num_b%10];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -