📄 keyboard.c
字号:
else {if(multiple_a!=0) {ration_num_a+=9*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(9);
if(menu1==10){ration_num_a+=9*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8:
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=9;disp_memu1_important();}
break;
}
break;
case 9: //钮:STOP
if(state1==0x01)
{ state1=0x0;
DCFX1=1;DCFD1=1;
disp_key_clear_a();
dcespk_out(); //电磁阀及蜂鸣器输出
//pt=&gun1;
//writebyteseq(0x01,pt,35); //写EEPROM
updatea=1;
state1=0;
}
break;
case 10: //钮START
if((state1==0x00 || state1==0x02 || state1==0x06 || (state1==4 && (menu1!=2 && menu1!=4))) && k1key && mcstoptime_a==0 && !locknooil_a)
{ disp_floor_level_a=increment_a;
if(state1==6 || state1==4)disp_return_a();
clear_worka(); //如定量加油须换算相应的脉冲数
if(ration_pulse_a>119){mc1=0;DCFX1=0;DCFD1=0;state1=0x01;}
else {state1=0;prn1time=1;disp_return_a();}
}
break;
case 11: //钮:4
vipstart1();
switch (state1)
{ case 2:
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=4*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=4*multiple_a;multiple_a/=10;}}
disp_vip_a();
break;
case 4:
if(menu1==1) disp_eeprom_history(0,4); //查询前10次
else if(menu1==2 || menu1==4){ration_num_a+=4*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_lock_a();}
break;
case 3:
if(menu1==8)
{
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=4*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=4*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(4);
if(menu1==10){ration_num_a+=4*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8:
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=4;disp_memu1_important();}
break;
}
break;
case 12: //钮:5
vipstart1();
switch (state1)
{ case 2:
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=5*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=5*multiple_a;multiple_a/=10;}}
disp_vip_a();
break;
case 4:
if(menu1==1) disp_eeprom_history(0,5); //查询前10次
else if(menu1==2 || menu1==4){ration_num_a+=5*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_lock_a();}
break;
case 3:
if(menu1==8)
{
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=5*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=5*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(5);
if(menu1==10){ration_num_a+=5*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8:
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=5;disp_memu1_important();}
break;
}
break;
case 13: //钮:6
vipstart1();
switch (state1)
{ case 2:
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=6*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=6*multiple_a;multiple_a/=10;}}
disp_vip_a();
break;
case 4:
if(menu1==1) disp_eeprom_history(0,6); //查询前10次
else if(menu1==2 || menu1==4){ration_num_a+=6*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_lock_a();}
break;
case 3:
if(menu1==8)
{
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=6*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=6*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(6);
if(menu1==10){ration_num_a+=6*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8:
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=6;disp_memu1_important();}
break;
}
break;
case 14: //小数点
switch (state1)
{ case 1:
oil_intmoney(0); //金额取整加油
break;
case 2:
if(!setdotok) {multiple_a/=10;setdotok=1;}
case 3:
if(menu1==8)if(!setdotok) {multiple_a/=10;setdotok=1;}
break;
}
break;
case 15: // V/P
setdotok=0;
if(state1==0x06 || state1==0x07){ration_mode_a=!ration_mode_a;disp_total_a();break;}
if(state1==0x00 && k1key) {vip_mode_a=!vip_mode_a;vipstart1();disp_vip_a();}
else if(state1==0x02)
{ vip_mode_a=!vip_mode_a;
ration_mode_a=vip_mode_a;
ration_num_a=0;
if(!ration_mode_a)
{ bbyte=dotmode[decimal_a]; //小数点--元
if(a0) multiple_a=10;
else if(a3)multiple_a=100;
else multiple_a=1;
}
else
{ //升
bbyte=dotmode[decimal_a]; //小数点
if(a4) multiple_a=100;
else if(a1)multiple_a=1000;
else multiple_a=1;
}
disp_vip_a();
}
break;
case 16: //钮:1
vipstart1();
switch (state1)
{ case 2:
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=multiple_a;multiple_a/=10;}}
disp_vip_a();
break;
case 4:
if(menu1==1) disp_eeprom_history(0,1); //查询前10次
else if(menu1==2 || menu1==4){ration_num_a+=1*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_lock_a();}
break;
case 3:
if(menu1==8)
{
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=1*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=1*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(1);
if(menu1==10){ration_num_a+=1*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8:
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=1;disp_memu1_important();}
break;
}
break;
case 17: //钮:2
vipstart1();
switch (state1)
{ case 2:
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=2*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=2*multiple_a;multiple_a/=10;}}
disp_vip_a();
break;
case 4:
if(menu1==1) disp_eeprom_history(0,2); //查询前10次
else if(menu1==2 || menu1==4){ration_num_a+=2*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_lock_a();}
if(menu1==6) {printermode_a=0;disp_memu1_oil();}
if(menu1==7) {pirnt_select_a=0;disp_memu1_oil();}
break;
case 3:
if(menu1==1) {if(residue_a<60) residue_a++;disp_memu1_set();}
if(menu1==2) {if(close_num_a<10) close_num_a++;disp_memu1_set();}
if(menu1==3) {if(gunadd_a<32) gunadd_a++;disp_memu1_set();}
if(menu1==4) {if(oil_types_a<7) oil_types_a++;disp_memu1_set();}
if(menu1==5) {if(increment_a<23) increment_a++;disp_memu1_set();}
if(menu1==6) {printermode_a=0;disp_memu1_set();}
if(menu1==7) {pirnt_select_a=0;disp_memu1_set();}
if(menu1==8)
{
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=2*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=2*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(2);
if(menu1==10){ration_num_a+=2*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8: //特殊菜单
if(menu1==1) {if(decimal_a<4) decimal_a++;disp_memu1_important();}
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=2;disp_memu1_important();}
break;
}
break;
case 18: //钮:3
vipstart1();
switch (state1)
{ case 2:
if(!setdotok){if(ration_num_a<100000){ ration_num_a*=10;ration_num_a+=3*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=3*multiple_a;multiple_a/=10;}}
disp_vip_a();
break;
case 4:
if(menu1==1) disp_eeprom_history(0,3); //查询前10次
else if(menu1==2 || menu1==4){ration_num_a+=3*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_lock_a();}
if(menu1==6) {printermode_a=1;disp_memu1_oil();}
if(menu1==7) {pirnt_select_a=1;disp_memu1_oil();}
break;
case 3:
if(menu1==1) {if(residue_a>0) residue_a--;disp_memu1_set();}
if(menu1==2) {if(close_num_a>0) close_num_a--;disp_memu1_set();}
if(menu1==3) {if(gunadd_a>1) gunadd_a--;disp_memu1_set();}
if(menu1==4) {if(oil_types_a>0) oil_types_a--;disp_memu1_set();}
if(menu1==5) {if(increment_a>1) increment_a--;disp_memu1_set();}
if(menu1==6) {printermode_a=1;disp_memu1_set();}
if(menu1==7) {pirnt_select_a=1;disp_memu1_set();}
if(menu1==8)
{
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=3*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=3*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(3);
if(menu1==10){ration_num_a+=3*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8: //特殊菜单
if(menu1==1) {if(decimal_a>0) decimal_a--;disp_memu1_important();}
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=3;disp_memu1_important();}
break;
}
break;
case 19: //钮:0
vipstart1();
switch (state1)
{ case 2:
if(!setdotok){if(ration_num_a<100000) ration_num_a*=10;}
else {if(multiple_a!=0){multiple_a/=10;}}
disp_vip_a();
break;
case 4:
if(menu1==1) disp_eeprom_history(0,0); //查询前10次
else if(menu1==2 || menu1==4){ration_num_a+=0*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_lock_a();}
break;
case 3:
if(menu1==8)
{
if(!setdotok){if(ration_num_a<100000) {ration_num_a*=10;ration_num_a+=0*multiple_a;}}
else {if(multiple_a!=0) {ration_num_a+=0*multiple_a;multiple_a/=10;}}
price_a=ration_num_a; //设置的单价
disp_memu1_set();
}
if(menu1==9) set_time(0);
if(menu1==10){ration_num_a+=0*multiple_a;if(multiple_a<10000)multiple_a*=10;disp_pass_vital(0);}
break;
case 8:
if(menu1==2 ||menu1==3){ration_num_a*=10;ration_num_a+=0;disp_memu1_important();}
break;
}
break;
case 20: //CLEAR
if(state1==0x07)
{
gun1.work_sale=0;gun1.work_liter=0;
gun1.liter=0x00; //123456
gun1.sale=0x00;
gun1.pulse=0x00;
pt=&gun1;
writebyteseq(0x01,pt,37); //写EEPROM
disp_total_a();
accumulative_total_list_a(); //累计转换至列表a
break;
}
if(state1==0x02)
{ setdotok=0;ration_num_a=0;
if(!ration_mode_a)
{ bbyte=dotmode[decimal_a]; //小数点
if(a0) multiple_a=10;
else if(a3)multiple_a=100;
else multiple_a=1;
}
else
{ //升
bbyte=dotmode[decimal_a]; //小数点
if(a4) multiple_a=100;
else if(a1)multiple_a=1000;
else multiple_a=1;
}
disp_vip_a();break;
}
else if(state1==4 && (menu1==2 ||menu1==4)) {multiple_a=1;ration_num_a=0;disp_memu1_oil();break;}
if(state1==3 && (menu1==8 ||menu1==9)) {multiple_a=1;ration_num_a=0;disp_memu1_set();}
if(state1==3 && menu1==8)
{ bbyte=dotmode[decimal_a];
if (a2) multiple_a=1000;
else if(a5) multiple_a=100;
else multiple_a=1;
ration_num_a=0;
setdotok=0;
price_a=ration_num_a;
disp_memu1_set();
break;
}
if(state1==3 && menu1==9)
{
temp_mema=0;
disp_memu1_set();
break;
}
if(state1==4 || state1==6)
{
if(!locknooil_b){state1=0;prn1time=1;disp_return_a();}
}
break;
default:
break;
}
}
}
/************************************************************
* KEYB_SOLVE
* 功能:按键处理函数
*************************************************************/
void keyb_solve(void)
{
void *pt;
if(keyok_b && keyinput_b==0)
{ //data uchar ucCurtime[7]; //日期--时间
keyok_b=0;
switch (keysolve_b)
{ case 1: //钮:TOTAL
if(k2key)
{
if(state2==0){state2=06;ration_mode_b=1;menu2=2;disp_total_b();break;}
if(state2==6){if(menu2==1)menu2=2;else menu2=1;disp_total_b();break;}
}
else
{
if(state2==0){state2=7;ration_mode_b=0;menu2=2;disp_total_b();break;}
}
break;
case 2: //钮:MENU
if(k2key && !locknooil_b)
{ if(state2==0){temp_memb=1;state2=4;menu2=1;disp_memu2_oil();}
else if(state2==4){menu2++;if(menu2>7)menu2=1;multiple_b=1;ration_num_b=0;disp_memu2_oil();}
if(state2==4 && menu2==4){temp_memb=1;disp_lock_b();}
}
else //设置
{ ration_num_b=0;
if(state2==0){state2=3;menu2=1;disp_memu2_set();}
else if(state2==3){temp_memb=0;menu2++;if(menu2>10)menu2=1;if(state2==3 && menu2==10)multiple_b=1;disp_memu2_set();}
else if(state2==8){menu2++;if(menu2>4)menu2=1;disp_memu2_important();}
if(state2==3 && menu2==8)
{ bbyte=dotmode[decimal_b];
if (a2) multiple_b=1000;
else if(a5) multiple_b=100;
else multiple_b=1;
ration_num_b=0;
setdotok_b=0;
}
}
break;
case 3: //钮:ENTER
//if(state2==2) {state2=0;break;}
if(state2==4 && menu2==2)
{ if(pass_check(1))
{ if(locknooil_b){state2=0;locknooil_b=0;prn2time=1;disp_return_b();}
else {locknooil_b=1;multiple_b=1;ration_num_b=0;disp_lock_b();}
}
else if(!locknooil_b){state2=0;prn2time=1;disp_return_b();}
else {locknooil_b=1;multiple_b=1;ration_num_b=0;disp_lock_b();}
break;
}
if(state2==4 && menu2==4)
{ if(pass_check(1) || temp_memb==2)
{ if(temp_memb==1){temp_memb=2;ration_num_b=0;multiple_b=1;ration_num_b=0;}
else if(temp_memb==2){temp_memb=3;ration_pulse_b=ration_num_b;multiple_b=1;ration_num_b=0;} //新密码暂存
else if(temp_memb==3){temp_memb=4;}
disp_lock_b();
}
else{state2=0;prn2time=1;disp_return_b();}
break;
}
if(state2==3 && menu2==10)
{ if(ration_num_b==5604 && multiple_b==10000)setpas_b=1;
else setpas_b=0;
if((ration_num_b==4321 || ration_num_b==5604) && multiple_b==10000){state2=8;menu2=1;disp_memu2_important();}
}
if(state2==8 && menu2==2){gun2.sum_sale=ration_num_b;pt=&gun2.sum_sale;writebyteseq(62,pt,4);disp_memu2_important();accumulative_total_list_b();}
if(state2==8 && menu2==3){gun2.sum_liter=ration_num_b;pt=&gun2.sum_liter;writebyteseq(58,pt,4);disp_memu2_important();accumulative_total_list_b();}
if(state2==8 && menu2==4) eeprom_ipl(); //EEPROM初始化程序
break;
case 4: //钮:EXIT
switch(state2)
{ case 2:
if(state2==2) {state2=0;ration_num_b=0;clr_exitdata_b();disp_key_clear_b();} //
break;
case 0:
//if(state2==0) {clr_exitdata_b();} //取消授权
//else {state2=0;prn2time=1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -