📄 disp.c
字号:
{
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/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];
keyb_num[1]=keynumdata[close_num_b/10];
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[1]; //"1-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_dot(uchar gunidid)
{
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[decimal_a];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[0x8];
keya_num[3]=keynumdata[0x0]; //"08-2"
keya_num[4]=0x02;
disp_lcd1(0,0x04);
disp_lcd1(0,0x0a); //公升
disp_lcd1(0,0x0);
disp_dot1(decimal_a); //LCD1小数点
}
else
{
keyb_num[0]=keynumdata[decimal_b];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[8];
keyb_num[3]=keynumdata[0]; //"08-2"
keyb_num[4]=0x02;
disp_lcd2(0,0x04);
disp_lcd2(0,0x0a); //公升
disp_lcd2(0,0x0);
disp_dot2(decimal_b); //LCD2小数点
}
}
/***************************************************************
* 功能:显示设定转速
***************************************************************/
void disp_rev(void)
{ uint numm;
uchar i;
ration_mode_b=~ration_mode_b;
if(ration_mode_b || !electromotor)
{
numm=increment_a;
keya_num[0]=keynumdata[numm%10];numm/=10;
keya_num[1]=keynumdata[numm%10];numm/=10;
keya_num[2]=keynumdata[numm%10];numm/=10;
keya_num[3]=keynumdata[numm%10];numm/=10;
for(i=3;i>0;i--)
{
if(keya_num[i]==0x7e)keya_num[i]=0x00;
else break;
}
}
else
{
keya_num[0]=0x00;
keya_num[1]=0x00;
keya_num[2]=0x00;
keya_num[3]=0x00;
}
if(state1==3) keya_num[4]=0x02;
else keya_num[4]=0x00;
}
/***************************************************************
* 功能:显示每秒增量--由于膨胀
***************************************************************/
void disp_dilate(uchar gunidid)
{ uint numm;
if(gunidid==0) //枪0
{
numm=increment_a;
keya_num[0]=keynumdata[numm%10];numm/=10;
keya_num[1]=keynumdata[numm%10];numm/=10;
keya_num[2]=keynumdata[numm%10];numm/=10;
keya_num[3]=keynumdata[numm%10];numm/=10;
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[22];
keya_num[1]=keynumdata[25];
keya_num[2]=keynumdata[26];
keya_num[3]=keynumdata[0x0a]; //"Auto"
}
else
{
keya_num[0]=keynumdata[0x0e];
keya_num[1]=keynumdata[20];
keya_num[2]=keynumdata[0x0a];
keya_num[3]=keynumdata[17]; //"Hand"
}
keya_num[4]=0x02;
}
else
{ if(printermode_b==0)
{
keyb_num[0]=keynumdata[22];
keyb_num[1]=keynumdata[25];
keyb_num[2]=keynumdata[26];
keyb_num[3]=keynumdata[0x0a]; //"Auto"
}
else
{
keyb_num[0]=keynumdata[0x0e];
keyb_num[1]=keynumdata[20];
keyb_num[2]=keynumdata[0x0a];
keyb_num[3]=keynumdata[17]; //"Hand"
}
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:显示选择的打印机
***************************************************************/
void disp_printselect(uchar gunidid)
{
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[pirnt_select_a+1];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[23]; //"P--0"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[pirnt_select_b+1];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[23]; //"P--1"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:显示选择的油品
***************************************************************/
void disp_product(uchar gunidid)
{
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[oil_types_a];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[24];
keya_num[3]=keynumdata[23]; //"Pr-0"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[oil_types_b];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[24];
keyb_num[3]=keynumdata[23]; //"Pr-1"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:lcd1/lcd2显示--清屏
***************************************************************/
void disp_lcd_clear(uchar gunidid)
{ uchar i;
uchar dispmem[16];
uchar *ptr;
for(i=0;i<16;i++)
{
dispmem[i]=0x0f; //不显示
}
if(gunidid==0)
{
disp_dot1(8); //LCD1小数点
ptr=&dispmem;
disp_updata_lcd(LCDAADD,ptr);
}
else
{
disp_dot2(8); //LCD2小数点
ptr=&dispmem;
disp_updata_lcd(LCDBADD,ptr);
}
}
/***************************************************************
* 功能:显示设置的单价
***************************************************************/
void disp_setprice(uchar gunidid)
{ uchar i,endhide;
uchar dispmem[16];
uchar *ptr;
uint mn;
for(i=4;i<16;i++)
{
dispmem[i]=0x0f; //不显示
}
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[23];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[0];
keya_num[3]=keynumdata[0]; //"00-P"
keya_num[4]=0x02;
mn=price_a;
for(i=0;i<4;i++)
{
dispmem[i]=mn%10;mn/=10;
}
table_buf[2]=dispmem[1]*16+dispmem[0];
table_buf[3]=dispmem[3]*16+dispmem[2];
bbyte=dotmode[decimal_a];
if (a2) {a5=0;endhide=3;bbyte=6;}
else if(a5) {endhide=2;bbyte=7;}
else {endhide=0;bbyte=8;}
for(i=3;i>0;i--)
{ if(i==endhide)break;
if(dispmem[i]==0) dispmem[i]=0x0f;
else break;
}
disp_dot1(bbyte); //LCD1小数点
ptr=&dispmem;
disp_updata_lcd(LCDAADD,ptr);
}
else
{
keyb_num[0]=keynumdata[23];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[0];
keyb_num[3]=keynumdata[0]; //"00-P"
keyb_num[4]=0x02;
mn=price_b;
for(i=0;i<4;i++)
{
dispmem[i]=mn%10;mn/=10;
}
table_buf[2+53]=dispmem[1]*16+dispmem[0];
table_buf[3+53]=dispmem[3]*16+dispmem[2];
bbyte=dotmode[decimal_b];
if (a2) {a5=0;endhide=3;bbyte=6;}
else if(a5) {endhide=2;bbyte=7;}
else {endhide=0;bbyte=8;}
for(i=3;i>0;i--)
{ if(i==endhide)break;
if(dispmem[i]==0) dispmem[i]=0x0f;
else break;
}
disp_dot2(bbyte); //LCD2小数点
ptr=&dispmem;
disp_updata_lcd(LCDBADD,ptr);
}
}
/***************************************************************
* 功能:显示加油菜单项--2#
***************************************************************/
void disp_memu2_oil(void)
{
switch(menu2)
{
case 1: //查询前十次加油记录
disp_eeprom_history(1,0);
break;
case 2: //锁机
disp_lock_b();
break;
case 3: //查询时钟
Get1302();
disp_time(1);
break;
case 4: //修改锁机密码
disp_lock_b();
break;
case 5: //显示版本号
disp_ver(1);
break;
case 6: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
disp_printer_mode(1);
writebyte(99,printermode_b);
save_ok=1;
break;
case 7: //选择打印机,"P--0/1"
disp_printselect(1);
writebyte(100,pirnt_select_b);
save_ok=1;
break;
default:
break;
}
}
/***************************************************************
* 功能:显示设置菜单项--2#
***************************************************************/
void disp_memu2_set(void)
{ void *pt;
if(menu2==2) menu2=3;
switch(menu2)
{
case 1: //设置提前量 "2--60"
if(residue_b>60) residue_b=60;
disp_lcd_clear(1); //清屏
disp_velocity_control(1);
writebyte(94,residue_b);
save_ok=1;
break;
case 2: //设置提前关机量 "1--10"
if(close_num_b>10) close_num_b=0;
disp_lcd_clear(1); //清屏
disp_close_num(1);
writebyte(95,close_num_b);
save_ok=1;
break;
case 3: //设置中控地址 "Ad-32"
if(gunadd_a>32) gunadd_a=1;
disp_lcd_clear(1); //清屏
disp_address(1);
writebyte(96,gunadd_b);
save_ok=1;
break;
case 4: //油品
if(oil_types_b>7) oil_types_b=0;
disp_lcd_clear(1); //清屏
disp_product(1);
writebyte(79,oil_types_b);
save_ok=1;
break;
case 5: //设置每秒增量 "09-3"
if(increment_b>23) increment_b=23;
disp_lcd_clear(1); //清屏
disp_dilate(1);
writebyte(98,increment_b);
save_ok=1;
break;
case 6: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
disp_printer_mode(1);
writebyte(99,printermode_b);
save_ok=1;
break;
case 7: //选择打印机,"P--0/1"
disp_printselect(1);
writebyte(100,pirnt_select_b);
save_ok=1;
break;
case 8: //设置单价"00-P"
disp_setprice(1);
pt=&price_b;
writebyteseq(504,pt,2); //保存单价
save_ok=1;
table_buf[52+53] |=0x01;
break;
case 9: //修改时钟"t--t"
if(temp_mema==0)Get1302();
if(temp_mema==13)Set1302();
disp_time(1);
break;
case 10: //进入特殊菜单
disp_pass_vital(1);
break;
default:
break;
}
}
/***************************************************************
* 功能:显示特殊菜单项--2#
***************************************************************/
void disp_memu2_important(void)
{ if(!setpas_b) menu2=1;
switch(menu2)
{
case 1: //设置小数点 "08-5"
if(decimal_b>4) decimal_b=2;
disp_dot(1);
writebyte(97,decimal_b);
save_ok=1;
break;
case 2:
ration_mode_b=0;
disp_total_b();
break;
case 3:
ration_mode_b=1;
disp_total_b();
break;
case 4: //Bare
keyb_num[0]=keynumdata[15];
keyb_num[1]=keynumdata[24];
keyb_num[2]=keynumdata[10];
keyb_num[3]=keynumdata[11]; //"bArE"
keyb_num[4]=0x02;
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -