📄 disp.c
字号:
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_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[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);
}
}
/***************************************************************
* 功能:显示加油菜单项--1#
***************************************************************/
void disp_memu1_oil(void)
{
switch(menu1)
{
case 1: //查询前十次加油记录
disp_eeprom_history(0,0);
break;
case 2: //锁机
disp_lock_a();
break;
case 3: //查询时钟
Get1302();
disp_time(0);
break;
case 4: //修改锁机密码
disp_lock_a();
break;
case 5: //显示版本号
disp_ver(0);
break;
case 6: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
disp_printer_mode(0);
writebyte(92,printermode_a);
save_ok=1;
break;
case 7: //选择打印机,"P--0/1"
disp_printselect(0);
writebyte(93,pirnt_select_a);
save_ok=1;
break;
default:
break;
}
}
/***************************************************************
* 功能:显示加油菜单项--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;
}
}
/***************************************************************
* 功能:显示设置菜单项--1#
***************************************************************/
void disp_memu1_set(void)
{ void *pt;
if(menu1==2) menu1=3;
switch(menu1)
{
case 1: //设置提前量 "2--60"
if(residue_a>60) residue_a=60;
disp_lcd_clear(0); //清屏
disp_velocity_control(0);
writebyte(87,residue_a);
save_ok=1;
break;
case 2: //设置提前关机量 "1--10" //适用于没有电磁阀的加油机
if(close_num_a>10) close_num_a=0;
disp_lcd_clear(0); //清屏
disp_close_num(0);
writebyte(88,close_num_a);
save_ok=1;
break;
case 3: //设置中控地址 "Ad-32"
if(gunadd_a>32) gunadd_a=1;
disp_lcd_clear(0); //清屏
disp_address(0);
writebyte(89,gunadd_a);
save_ok=1;
break;
case 4: //油品
if(oil_types_a>7) oil_types_a=0;
disp_lcd_clear(0); //清屏
disp_product(0);
writebyte(78,oil_types_a);
save_ok=1;
break;
case 5: //设置每秒增量 "09-3"
if(increment_a>23) increment_a=23;
disp_lcd_clear(0); //清屏
disp_dilate(0);
writebyte(91,increment_a);
save_ok=1;
break;
case 6: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
disp_printer_mode(0);
writebyte(92,printermode_a);
save_ok=1;
break;
case 7: //选择打印机,"P--0/1"
disp_printselect(0);
writebyte(93,pirnt_select_a);
save_ok=1;
break;
case 8: //设置单价"00-P"
disp_setprice(0);
pt=&price_a;
writebyteseq(502,pt,2); //保存单价
save_ok=1;
table_buf[52] |=0x01; //通知读单价
break;
case 9: //修改时钟"t--t"
if(temp_mema==0)Get1302();
if(temp_mema==13)Set1302();
disp_time(0);
break;
case 10: //进入特殊菜单
disp_pass_vital(0);
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;
}
}
/***************************************************************
* 功能:显示特殊菜单项--1#
***************************************************************/
void disp_memu1_important(void)
{ if(!setpas_a) menu1=1;
switch(menu1)
{
case 1: //设置小数点 "08-5"
if(decimal_a>4) decimal_a=2;
disp_dot(0);
writebyte(90,decimal_a);
save_ok=1;
break;
case 2:
ration_mode_a=0;
disp_total_a();
break;
case 3:
ration_mode_a=1;
disp_total_a();
break;
case 4: //Bare
keya_num[0]=keynumdata[15];
keya_num[1]=keynumdata[24];
keya_num[2]=keynumdata[10];
keya_num[3]=keynumdata[11]; //"bArE"
keya_num[4]=0x02;
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 + -