📄 main.c
字号:
case PLU1:numeric++;
Beep();
PLU_no=numeric;
Set_INPLUT_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
Display();
Wait_n_s(1);
unit_price_entered=TRUE;
state=WEIGHING;
sales_type=PW;
break;
case K_TARE:
Beep();
Tare_Operation_When_Tare_Key_Pressed();
break;
case K_ZERO:
Beep();
Zero_Setting_When_Zero_Key_Pressed();
break;
case K_CLEAR:
Beep();
Unit_Price=0;
unit_price_entered=FALSE;
state=WEIGHING;
Set_Unit_Price_Display(Unit_Price);
break;
case K_MUL:
Beep();
if(unit_price_entered)
{
unit_price_entered=FALSE;
state=NON_WEIGHING;
if(sales_type==PW)
sales_type=PN;
else if(sales_type==MW)
sales_type=MN;
Quantity=0;
Set_Quantity_Display(Quantity);
}
break;
case K_ADD:
Beep();
if(Total_Price!=0&&STA_flag||(Total_Price!=0&&Quantity!=0))
{
op_status=ADD;
mode=Total_mode;
}
break;
case K_SUB:
Beep();
if(Ver_flag==FOOKTIN&&Sold_Quantity!=0)
mode=Print_Cancel_mode;
break;
case K_TOTAL:
Beep();
if(Sold_Quantity!=0)
{
op_status=SUM;
mode=Total_mode;
}
break;
case K_ON_OFF:
Beep();
mode=Power_down_mode;
break;
case K_00:
Beep();
numeric='0';
if(state==NON_WEIGHING)
{
Lcd_Buf_Left_Shift(lcd1_buf,4,numeric,0);
Lcd_Buf_Left_Shift(lcd1_buf,4,numeric,0);
Quantity=Get_Quantity_from_display_buf();
Set_Quantity_Display(Quantity);
}
else if(state==WEIGHING)
{
Lcd_Buf_Left_Shift(lcd2_buf,5,numeric,0);
Lcd_Buf_Left_Shift(lcd2_buf,5,numeric,0);
Unit_Price=Get_Unit_Price_from_display_buf();
Set_Unit_Price_Display(Unit_Price);
unit_price_entered=TRUE;
state=WEIGHING;
sales_type=MW;
}
break;
case K_9:numeric++;
case K_8:numeric++;
case K_7:numeric++;
case K_6:numeric++;
case K_5:numeric++;
case K_4:numeric++;
case K_3:numeric++;
case K_2:numeric++;
case K_1:numeric++;
case K_0:numeric+='0';
Beep();
if(state==NON_WEIGHING)
{
Lcd_Buf_Left_Shift(lcd1_buf,4,numeric,0);
Quantity=Get_Quantity_from_display_buf();
Set_Quantity_Display(Quantity);
}
else if(state==WEIGHING)
{
Lcd_Buf_Left_Shift(lcd2_buf,5,numeric,0);
Unit_Price=Get_Unit_Price_from_display_buf();
Set_Unit_Price_Display(Unit_Price);
unit_price_entered=TRUE;
state=WEIGHING;
sales_type=MW;
}
break;
}
}
else if(keypre[1]&&!keypre[2]&&!keypre[3])//[SHIFT]+[PLU]
{
numeric=30;
switch(keypre[0])
{
case PLU30:numeric++;
case PLU29:numeric++;
case PLU28:numeric++;
case PLU27:numeric++;
case PLU26:numeric++;
case PLU25:numeric++;
case PLU24:numeric++;
case PLU23:numeric++;
case PLU22:numeric++;
case PLU21:numeric++;
case PLU20:numeric++;
case PLU19:numeric++;
case PLU18:numeric++;
case PLU17:numeric++;
case PLU16:numeric++;
case PLU15:numeric++;
case PLU14:numeric++;
case PLU13:numeric++;
case PLU12:numeric++;
case PLU11:numeric++;
case PLU10:numeric++;
case PLU9:numeric++;
case PLU8:numeric++;
case PLU7:numeric++;
case PLU6:numeric++;
case PLU5:numeric++;
case PLU4:numeric++;
case PLU3:numeric++;
case PLU2:numeric++;
case PLU1:numeric++;
Beep();
PLU_no=numeric;
Set_INPLUT_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
Display();
Wait_n_s(1);
unit_price_entered=TRUE;
state=WEIGHING;
sales_type=PW;
break;
case K_MUL:
Beep();
Cal_flag=~Cal_flag;
break;
}
}
else if(!keypre[1]&&keypre[2]&&!keypre[3])//[MEM]+[NUM]
{
switch(keypre[0])
{
case K_9:numeric++;
case K_8:numeric++;
case K_7:numeric++;
case K_6:numeric++;
case K_5:numeric++;
case K_4:numeric++;
case K_3:numeric++;
case K_2:numeric++;
case K_1:numeric++;
case K_0:
Beep();
if(!memory_key_hold)
{
memory_key_hold=TRUE;
key_num=0;
}
if(memory_key_hold)
{
keybuf[key_num]=numeric;
key_num++;
}
if(key_num==3)
{
key_num=0;
PLU_no=keybuf[0]*100+keybuf[1]*10+keybuf[2];
if(PLU_no>=61&&PLU_no<=300)
{
Set_INPLUT_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
Display();
Wait_n_s(1);
unit_price_entered=TRUE;
state=WEIGHING;
sales_type=PW;
}
}
break;
}
}
else if(keypre[3])
{
switch(keypre[0])
{
case K_MEMORY:
Beep();
mode=PLU_Setup_mode;
break;
case K_CLOCK:
Beep();
mode=Time_Setup_mode;
break;
case K_SUB:
Beep();
mode=Beep_and_Light_Setup_mode;
break;
case K_MUL:
Beep();
mode=Calculator_mode;
break;
case K_PRINT:
Beep();
mode=Reports_mode;
break;
case K_ADD:
Beep();
mode=Download_mode;
break;
}
}
keydone=TRUE;
}
}
VOID Sales()
{
FLOAT Kg_Weight;
ET1=0;
state=WEIGHING;
sales_type=PW;
key_num=0;
if(!unit_price_entered)
{
Unit_Price=0;
Total_Price=0;
Set_Unit_Price_Display(Unit_Price);
Set_Total_Price_Display(Total_Price);
}
else
Set_Unit_Price_Display(Unit_Price);
ET1=1;
while(mode==Sales_mode)
{
Sales_Key_Processing();
Monitor_Weigh_Scale();
if(state==WEIGHING)
{
if(Maximum_Capacity_Check())
{
Set_OVER_On_Lcd1_Display();
Beep();
}
else
{
Set_Weight_Display(Weight);
Unit_Price=Get_Unit_Price_from_display_buf();
Kg_Weight=Weight;
Total_Price=Kg_Weight/100*Unit_Price;
if(Total_Price%10>4)
Total_Price=Total_Price/10+1;
else
Total_Price=Total_Price/10;
}
}
else if(state==NON_WEIGHING)
{
Quantity=Get_Quantity_from_display_buf();
Total_Price=Unit_Price*Quantity;
}
if(Total_Price>9999999)
Set_OVER_On_Lcd3_Display();
else
Set_Total_Price_Display(Total_Price);
if(half_sec)
{
half_sec=FALSE;
Display();
}
}
}
/**********************************
********Print Cancel mode**********
**********************************/
VOID Print_Cancel()
{
INT16 temp_Count;
INT16 Temp_Sold_Quantity;
INT16 Temp_Record_Counts;
ET1=0;
Timeout2_enable=TRUE;
Timeout2=5;
Temp_Sold_Quantity=Sold_Quantity;
temp_Count=Temp_Sold_Quantity;
Temp_Record_Counts=Record_Counts;
while(temp_Count--)
{
if(Load_Record_to_LCD_Buf(Temp_Record_Counts--))
{
Cls_Icon_Buf();
break;
}
}
Temp_Sold_Quantity--;
temp_Count=Temp_Sold_Quantity;
ET1=1;
while(mode==Print_Cancel_mode)
{
if(Timeout2<=0)
{
mode=Sales_mode;
Timeout2_enable=FALSE;
unit_price_entered=FALSE;
}
if(keyprocess)
{
keydone=FALSE;
keyprocess=FALSE;
if(!keypre[1]&&!keypre[2]&&!keypre[3])
{
switch(keypre[0])
{
case K_SUB:
Beep();
Timeout2=5;
if(Temp_Sold_Quantity<1)
{
Temp_Sold_Quantity=Sold_Quantity;
temp_Count=Temp_Sold_Quantity;
Temp_Record_Counts=Record_Counts;
}
while(temp_Count--)
{
if(Load_Record_to_LCD_Buf(Temp_Record_Counts--))
break;
}
Temp_Sold_Quantity--;
temp_Count=Temp_Sold_Quantity;
break;
case K_CLEAR:
Beep();
Sold_Quantity--;
Sum_Price-=Total_Price;
Print_Cancel_Record(Temp_Record_Counts+1);
sales_type=DELE;
Record_Save(Temp_Record_Counts+1);
mode=Sales_mode;
Timeout2_enable=FALSE;
unit_price_entered=FALSE;
break;
}
}
else if(keypre[3])
{
Beep();
unit_price_entered=FALSE;
mode=Sales_mode;
}
keydone=TRUE;
}
if(half_sec)
{
half_sec=FALSE;
Display();
}
}
}
/**********************************
********Total mode*****************
**********************************/
VOID Total_Key_Processing()
{
if(keyprocess)
{
keydone=FALSE;
keyprocess=FALSE;
numeric=0;
if(!keypre[1]&&!keypre[2]&&!keypre[3])
{
switch(keypre[0])
{
case PLU30:numeric++;
case PLU29:numeric++;
case PLU28:numeric++;
case PLU27:numeric++;
case PLU26:numeric++;
case PLU25:numeric++;
case PLU24:numeric++;
case PLU23:numeric++;
case PLU22:numeric++;
case PLU21:numeric++;
case PLU20:numeric++;
case PLU19:numeric++;
case PLU18:numeric++;
case PLU17:numeric++;
case PLU16:numeric++;
case PLU15:numeric++;
case PLU14:numeric++;
case PLU13:numeric++;
case PLU12:numeric++;
case PLU11:numeric++;
case PLU10:numeric++;
case PLU9:numeric++;
case PLU8:numeric++;
case PLU7:numeric++;
case PLU6:numeric++;
case PLU5:numeric++;
case PLU4:numeric++;
case PLU3:numeric++;
case PLU2:numeric++;
case PLU1:numeric++;
Beep();
if(op_status==ADD)
{
PLU_no=numeric;
Load_PLU_to_LCD_Buf(PLU_no);
unit_price_entered=TRUE;
mode=Sales_mode;
}
break;
case K_SUB:
Beep();
if(Ver_flag==FOOKTIN&&Sold_Quantity!=0)
mode=Print_Cancel_mode;
break;
case K_CLEAR:
Beep();
switch(op_status)
{
case ADD:
mode=Sales_mode;
unit_price_entered=FALSE;
break;
case SUM:
case PAY:
mode=Sales_mode;
Sold_Quantity=0;
Sum_Price=0;
unit_price_entered=FALSE;
break;
}
break;
case K_PAYBACK:
Beep();
if(op_status==SUM||op_status==PAY)
mode=Payback_mode;
break;
case K_9:numeric++;
case K_8:numeric++;
case K_7:numeric++;
case K_6:numeric++;
case K_5:numeric++;
case K_4:numeric++;
case K_3:numeric++;
case K_2:numeric++;
case K_1:numeric++;
case K_0:
Beep();
if(op_status==ADD)
{
Unit_Price=numeric;
unit_price_entered=TRUE;
mode=Sales_mode;
}
break;
}
}
else if(keypre[1]&&!keypre[2]&&!keypre[3])//[SHIFT]+[PLU]
{
numeric=30;
switch(keypre[0])
{
case PLU30:numeric++;
case PLU29:numeric++;
case PLU28:numeric++;
case PLU27:numeric++;
case PLU26:numeric++;
case PLU25:numeric++;
case PLU24:numeric++;
case PLU23:numeric++;
case PLU22:numeric++;
case PLU21:numeric++;
case PLU20:numeric++;
case PLU19:numeric++;
case PLU18:numeric++;
case PLU17:numeric++;
case PLU16:numeric++;
case PLU15:numeric++;
case PLU14:numeric++;
case PLU13:numeric++;
case PLU12:numeric++;
case PLU11:numeric++;
case PLU10:numeric++;
case PLU9:numeric++;
case PLU8:numeric++;
case PLU7:numeric++;
case PLU6:numeric++;
case PLU5:numeric++;
case PLU4:numeric++;
case PLU3:numeric++;
case PLU2:numeric++;
case PLU1:numeric++;
Beep();
if(op_status==ADD)
{
PLU_no=numeric;
Load_PLU_to_LCD_Buf(PLU_no);
unit_price_entered=TRUE;
mode=Sales_mode;
}
break;
}
}
else if(!keypre[1]&&keypre[2]&&!keypre[3])//[MEM]+[NUM]
{
switch(keypre[0])
{
case K_9:numeric++;
case K_8:numeric++;
case K_7:numeric++;
case K_6:numeric++;
case K_5:numeric++;
case K_4:numeric++;
case K_3:numeric++;
case K_2:numeric++;
case K_1:numeric++;
case K_0:
Beep();
if(!memory_key_hold)
{
memory_key_hold=TRUE;
key_num=0;
}
if(memory_key_hold)
{
keybuf[key_num]=numeric;
key_num++;
}
if(key_num==3)
{
key_num=0;
PLU_no=keybuf[0]*100+keybuf[1]*10+keybuf[2];
if(op_status==ADD&&PLU_no>=61&&PLU_no<=300)
{
Load_PLU_to_LCD_Buf(PLU_no);
unit_price_entered=TRUE;
mode=Sales_mode;
}
}
break;
}
}
keydone=TRUE;
}
}
VOID Total()
{
ET1=0;
Set_Lcd1_Buf('t',4,1);
Set_Lcd1_Buf('o',3,1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -