📄 key.c
字号:
Dot_Key_In = 0;
Int_Key_In = 0;
clear_area(1,7,8);
Lcd_write_hanzi_string_GH(1,0,"常数:");
num = 1; //num=1表示'仪表常数'键已经按过一次
flag = 1;
len = 0;
//sprintf(Disp_Buff,"% 3.3f",Key_In);
//Lcd_write_string(1,6,(unsigned char*)&Disp_Buff);
clear_area(1,6,9);
Print_Disp(1,6,Key_In,3);
}
break;
case 15: //设置抽油数量
if((machine_status & 0x189) != 0)
{
if(num==0)
{
machine_status = MACHINE_SET_OIL;
Key_Len = KEY_LEN_CON ;
key_status = KEY_NO;
Key_Len = KEY_LEN_OIL;
Key_Dot = 0;
Key_In = 0.0;
Dot_Count = 1.0;
clear_prog();//清显示RAM
Lcd_write_hanzi_string_GH(0,4,"欢迎光临");//欢迎光临
Lcd_write_hanzi_string_GH(1,0,"数量:");//数量:
Lcd_write_hanzi_string_GH(3,0,"设置数量");//数量:
num +=1; //
flag = 1;
flag1 = 0;
Lcd_write_string(1,7,array);
//sprintf(Disp_Buff,"%6.1f",Key_In);
//Lcd_write_string(1,6,(unsigned char*)&Disp_Buff);
clear_area(1,6,9);
Print_Disp(1,6,Key_In,1);
Int_Key_Len = Int_LEN_OIL;
Int_Key_In = 0;
}
else //
{
clear_area(3,0,16);
Lcd_write_hanzi_string_GH(3,0,"数量为:");//抽酒:
//Lcd_write_string(3,7,array);
machine_status = MACHINE_SET_OIL_OK;
Key_Len = KEY_LEN_OIL ;
if(Key_In == 0.0)
want_to_draw = 100000.0;
else
want_to_draw = Key_In ;
Want_To_Draw = want_to_draw;
AmountToPulse(want_to_draw);
num = 0;
len = 0;
flag = 0;
flag1 = 0;
//sprintf(Disp_Buff,"%6.1f",want_to_draw);
//Lcd_write_string(3,8,(unsigned char*)&Disp_Buff);
clear_area(3,7,8);
Print_Disp(3,7,want_to_draw,1);
}
}
break;
case 12: //抽酒/暂停:按开始键开始抽酒,置PD1,PD7为高,PD3为低(酒泵,电磁阀开;流量计低电平)
if((machine_status != MACHINE_SET_OIL) || (machine_status != MACHINE_SET_CON ) || (machine_status != MACHINE_STOP ))
{
if(machine_status == MACHINE_SET_OIL_OK)
{
Lcd_write_hanzi_string_GH(1,0,"数量:");//数量:
meter = METER;
if(meter == 0.0)
meter = 107.512;
want_to_draw = Want_To_Draw;
if(want_to_draw == 0.0)
want_to_draw = 100000.0;
//sprintf(Disp_Buff,"%6.1f",want_to_draw);
//Lcd_write_string(1,6,(unsigned char*)&Disp_Buff);
clear_area(1,6,9);
Print_Disp(1,6,want_to_draw,1);
clear_area(3,0,16);
Lcd_write_hanzi_string_GH(3,0,"抽酒");//抽酒:
machine_status = MACHINE_DRAW;
Lcd_write_hanzi_string_GH(2,0,"已抽:");//已抽:
//sprintf(Disp_Buff,"%6.1f ",have_drawed);
//Lcd_write_string(2,6,(unsigned char*)&Disp_Buff);
clear_area(2,6,9);
Print_Disp(2,6,have_drawed,1);
times = 0;
Valve_H;
Pump_H;
flag1 = 1;
GICR = 0xC0;//开中断1,允许计量
}
else
if((machine_status == MACHINE_DRAW) || (machine_status == MACHINE_RESTART))//暂停
{
Lcd_write_hanzi_string_GH(1,0,"数量:");//数量:
meter = METER;
if(meter == 0.0)
meter = 107.512;
want_to_draw = Want_To_Draw;
if(want_to_draw == 0.0)
want_to_draw = 100000.0;
//sprintf(Disp_Buff,"%6.1f",want_to_draw);
//Lcd_write_string(1,6,(unsigned char*)&Disp_Buff);
clear_area(3,0,16);
Lcd_write_hanzi_string_GH(3,0,"暂停");//抽酒:
machine_status = MACHINE_PAUSE;
//DDRD = 0xf3;
//PORTD = 0x0c;
Valve_L;
Pump_L;
flag1 = 2;
GICR = 0x00;//开中断1,允许计量
clear_area(1,6,9);
Print_Disp(1,6,want_to_draw,1);
}
else
if(machine_status == MACHINE_PAUSE)//暂停
{
clear_area(3,0,16);
Lcd_write_hanzi_string_GH(3,0,"继续");//抽酒:
machine_status = MACHINE_RESTART;
Valve_H;
Pump_H;
flag1 = 1;
GICR = 0xC0;//开中断1,允许计量
clear_area(2,6,9);
Print_Disp(2,6,have_drawed,1);
}
else
if((machine_status == MACHINE_STOP) || (machine_status == MACHINE_SET_CON_OK))//没有输入数值,直接开始抽酒
{
Lcd_write_hanzi_string_GH(1,0,"数量:");//数量:
meter = METER;
if(meter == 0.0)
METER = meter = 107.512;
want_to_draw = Want_To_Draw;
if(want_to_draw == 0.0)
Want_To_Draw = want_to_draw = 100000.0;
//sprintf(Disp_Buff,"%6.1f",want_to_draw);
//Lcd_write_string(1,6,(unsigned char*)&Disp_Buff);
clear_area(1,6,9);
Print_Disp(1,6,want_to_draw,1);
AmountToPulse(want_to_draw);
have_drawed = 0.0;
clear_area(3,0,16);
Lcd_write_hanzi_string_GH(3,0,"重新开始");
machine_status = MACHINE_RESTART;
pulse = 0;
Valve_H;
Pump_H;
flag1 = 1;
GICR = 0xC0;//开中断1,允许计量
}
}
break;
case 13: //停止:置PD1,PD7为低,PD3为高(酒泵,电磁阀关;流量计高电平)
if((machine_status & 0x54) != 0x00)
{
Valve_L;
Pump_L;
GICR = 0x40;//关中断1,不计量
Extern_Driver(WORK_LED,OFF);
machine_status = MACHINE_STOP;
Lcd_write_hanzi_string_GH(2,0,"抽酒:");//抽酒:
PulseToAmount(pulse);
clear_area(2,6,9);
Print_Disp(2,6,have_drawed,1);
clear_area(3,0,16);
Lcd_write_hanzi_string_GH(3,0,"停止抽酒");//抽酒:
want_to_draw = 0.0;
want_to_draw_pulse = 0;
have_drawed = 0.0;
pulse = 0;
flag1 = 0;
}
break;
case 14: //仪表常数/删除
if((machine_status & 0x1aa) != 0x00)
{
if(num==0)
{
machine_status = MACHINE_SET_CON;
Key_Len = KEY_LEN_CON ;
key_status = KEY_NO;
Key_Dot = 0;
Key_In = 0.0;
Dot_Count = 1.0;
clear_prog();//清显示RAM
Lcd_write_hanzi_string_GH(0,4,"欢迎光临");//欢迎光临
Lcd_write_hanzi_string_GH(3,0,"设置仪表常数");//
Lcd_write_hanzi_string_GH(1,0,"常数:");//数量:
num +=1; //num=1表示'仪表常数'键已经按过一次
flag = 1;
clear_area(1,6,9);
Print_Disp(1,6,Key_In,3);
Int_Key_Len = Int_LEN_CON;
Int_Key_In = 0;
}
else //第二次按'仪表常数'键表示确认(把仪表常数传给meter)
{
machine_status = MACHINE_SET_CON_OK;
Key_Len = KEY_LEN_OIL ;
meter = Key_In;
if(meter == 0.0)
meter = 107.512;
METER = meter;
clear_area(3,0,16);
Lcd_write_hanzi_string_GH(3,0,"仪表常数:");//常数为:
num = 0;
len = 0;
flag = 0;
pulse = 0;
clear_area(3,9,6);
Print_Disp(3,9,meter,3);
}
}
break;
default:
break;
}
//GICR |= 0x40;//允许外部中断0
}
void Extern_Driver(unsigned char Port,unsigned char state)
{
if((state == ON) || ((state == HIGH)))
{
Extern |= Port;
}
else
{
Extern &= ~Port;
}
PORTB = Extern;
HC575_CLK_HIGH;
HC575_CLK_LOW;
}
void Beep(unsigned int Time,unsigned char Times)
{
Beep_Time = Time ;
Beep_Times = Times;
Beep_Begin = 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -