📄 main.c
字号:
Set_Lcd1_Buf('t',2,1);
Set_Lcd1_Buf('A',1,1);
Set_Lcd1_Buf('L',0,1);
if(Last_day!=date.day)
{
Last_day=date.day;
Sum_Price=0;
Record_Counts=0;
Sold_Quantity=0;
}
if(op_status==ADD)
{
Record_Counts++;
if(Record_Counts==(MAX_RECORD-1))
Record_Counts=0;
Print_Record(sales_type);
Record_Save(Record_Counts);
Sold_Quantity++;
if(Sold_Quantity>999)
Sold_Quantity=999;
else
Sum_Price+=Total_Price;
}
else if(op_status==SUM)
{
Cls_Icon_Buf();
Print_Record(TOTAL);
}
if(Sum_Price>9999999)
Set_OVER_On_Lcd3_Display();
else
Set_Sum_Price_Display(Sum_Price);
Set_Sold_Quantity_Display(Sold_Quantity);
Display();
ET1=1;
while(mode==Total_mode)
{
Total_Key_Processing();
if(state==WEIGHING&&op_status==ADD)
{
Monitor_Weigh_Scale();
if(Weight==0)
{
unit_price_entered=FALSE;
mode=Sales_mode;
}
}
}
}
/**********************************
********Payback mode***************
**********************************/
VOID Payback_Key_Processing()
{
if(keyprocess)
{
keydone=FALSE;
keyprocess=FALSE;
numeric=0;
if(!keypre[1]&&!keypre[2]&&!keypre[3])
{
switch(keypre[0])
{
case K_PAYBACK:
Beep();
Money=Get_Money_from_display_buf();
if(Money<Sum_Price)
{
Set_ERROR_On_Lcd2_Display();
Display();
Wait_n_s(2);
Money=0;
}
else
Money=Money-Sum_Price;
Set_Money_Display(Money);
break;
case K_CLEAR:
Beep();
op_status=PAY;
mode=Total_mode;
break;
case K_00:
Beep();
numeric='0';
Lcd_Buf_Left_Shift(lcd2_buf,6,numeric,0);
Lcd_Buf_Left_Shift(lcd2_buf,6,numeric,0);
Money=Get_Money_from_display_buf();
Set_Money_Display(Money);
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();
Lcd_Buf_Left_Shift(lcd2_buf,6,numeric,0);
Money=Get_Money_from_display_buf();
Set_Money_Display(Money);
break;
}
}
keydone=TRUE;
}
}
VOID Payback()
{
ET1=0;
Set_Lcd1_Buf(0,4,1);
Set_Lcd1_Buf(0,3,1);
Set_Lcd1_Buf('P',2,1);
Set_Lcd1_Buf('A',1,1);
Set_Lcd1_Buf('y',0,1);
Money=0;
Set_Money_Display(Money);
Set_Sum_Price_Display(Sum_Price);
ET1=1;
while(mode==Payback_mode)
{
Payback_Key_Processing();
if(half_sec)
{
half_sec=FALSE;
Display();
}
}
}
/**********************************
********PLU Setup mode*************
**********************************/
VOID PLU_Setup_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();
PLU_no=numeric;
Set_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
state=PLU_EDIT;
break;
case K_ENTER:
Beep();
Save_PLU_Setup_form_Disp_Buf(PLU_no);
state=PLU_SAVE;
point2_on=TRUE;
break;
case K_CLEAR:
Beep();
Unit_Price=0;
Set_Unit_Price_Display(Unit_Price);
state=PLU_EDIT;
break;
case K_ADD:
Beep();
++PLU_no;
if(PLU_no>300)
PLU_no=1;
Set_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
state=PLU_EDIT;
break;
case K_SUB:
Beep();
--PLU_no;
if(PLU_no<1)
PLU_no=300;
Set_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
state=PLU_EDIT;
break;
case K_00:
Beep();
if(state==PLU_EDIT)
{
numeric='0';
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);
}
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==PLU_EDIT)
{
Lcd_Buf_Left_Shift(lcd2_buf,5,numeric,0);
Unit_Price=Get_Unit_Price_from_display_buf();
Set_Unit_Price_Display(Unit_Price);
}
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_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
state=PLU_EDIT;
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_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
state=PLU_EDIT;
}
}
break;
}
}
else if(keypre[3])
{
Beep();
unit_price_entered=FALSE;
mode=Sales_mode;
}
keydone=TRUE;
}
}
VOID PLU_Setup()
{
ET1=0;
key_num=0;
PLU_no=1;
Set_PLU_no_Display(PLU_no);
Load_PLU_to_LCD_Buf(PLU_no);
Cls_Icon_Buf();
Set_Lcd3_Buf(0,0,7);
state=PLU_EDIT;
ET1=1;
while(mode==PLU_Setup_mode)
{
PLU_Setup_Key_Processing();
if(half_sec)
{
if(state==PLU_EDIT)
{
point2_on=~point2_on;
}
half_sec=FALSE;
Display();
}
}
}
/**********************************
********Time Setup mode************
**********************************/
VOID Time_Setup_Key_Processing()
{
if(keyprocess)
{
keydone=FALSE;
keyprocess=FALSE;
numeric=0;
if(!keypre[1]&&!keypre[2]&&!keypre[3])
{
switch(keypre[0])
{
case K_ENTER:
Beep();
if(Clock_Set_Save())
{
Clock_Display_Update();
state++;
if(state>EDIT_SECOND)
state=EDIT_YEAR;
high_digit=TRUE;
}
break;
case K_CLEAR:
Beep();
switch(state)
{
case EDIT_YEAR:lcd3_buf[5]='0';lcd3_buf[4]='0';break;
case EDIT_MONTH:lcd3_buf[3]='0';lcd3_buf[2]='0';break;
case EDIT_DAY:lcd3_buf[1]='0';lcd3_buf[0]='0';break;
case EDIT_HOUR:lcd2_buf[5]='0';lcd2_buf[4]='0';break;
case EDIT_MINUTE:lcd2_buf[3]='0';lcd2_buf[2]='0';break;
case EDIT_SECOND:lcd2_buf[1]='0';lcd2_buf[0]='0';break;
}
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(high_digit)
{
high_digit=FALSE;
switch(state)
{
case EDIT_YEAR:lcd3_buf[5]=numeric;break;
case EDIT_MONTH:lcd3_buf[3]=numeric;break;
case EDIT_DAY:lcd3_buf[1]=numeric;break;
case EDIT_HOUR:lcd2_buf[5]=numeric;break;
case EDIT_MINUTE:lcd2_buf[3]=numeric;break;
case EDIT_SECOND:lcd2_buf[1]=numeric;break;
}
}
else
{
high_digit=TRUE;
switch(state)
{
case EDIT_YEAR:lcd3_buf[4]=numeric;break;
case EDIT_MONTH:lcd3_buf[2]=numeric;break;
case EDIT_DAY:lcd3_buf[0]=numeric;break;
case EDIT_HOUR:lcd2_buf[4]=numeric;break;
case EDIT_MINUTE:lcd2_buf[2]=numeric;break;
case EDIT_SECOND:lcd2_buf[0]=numeric;break;
}
}
break;
}
}
else if(keypre[3])
{
Beep();
mode=Sales_mode;
}
keydone=TRUE;
}
}
VOID Time_Setup()
{
ET1=0;
high_digit=TRUE;
state=EDIT_YEAR;
Cls_Icon_Buf();
Set_Lcd1_Buf('C',4,1);
Set_Lcd1_Buf('L',3,1);
Set_Lcd1_Buf('0',2,1);
Set_Lcd1_Buf('C',1,1);
Set_Lcd1_Buf('H',0,1);
Clock_Display_Update();
ET1=1;
while(mode==Time_Setup_mode)
{
Time_Setup_Key_Processing();
if(half_sec)
{
half_sec=FALSE;
Clock_Display();
}
}
}
/**********************************
********Beep_and_Light mode************
**********************************/
VOID Beep_and_Light_Setup_Key_Processing()
{
BYTE Option_buf;
if(keyprocess)
{
keydone=FALSE;
keyprocess=FALSE;
if(!keypre[1]&&!keypre[2]&&!keypre[3])
{
switch(keypre[0])
{
case K_ENTER:
switch(state)
{
case SET_BEEP:
Beep_on=~Beep_on;
if(Beep_on)
{
Read_Option_Param(&Option_buf);
Option_buf|=0x01;
}
else
{
Read_Option_Param(&Option_buf);
Option_buf&=0xfe;
}
break;
case SET_LIGHT:
Light_on=~Light_on;
if(Light_on)
{
Read_Option_Param(&Option_buf);
Option_buf|=0x10;
LIGHT=FALSE;
}
else
{
Read_Option_Param(&Option_buf);
Option_buf&=0xef;
LIGHT=TRUE;
}
break;
}
Beep();
Save_Option_Param(&Option_buf);
break;
case K_ADD:
Beep();
//if(Ver_flag==FOOKTIN)
state=SET_LIGHT;
break;
case K_SUB:
Beep();
//if(Ver_flag==FOOKTIN)
state=SET_BEEP;
break;
}
}
else if(keypre[3])
{
Beep();
mode=Sales_mode;
}
keydone=TRUE;
}
}
VOID Beep_and_Light_Setup()
{
ET1=0;
state=SET_BEEP;
Cls_Icon_Buf();
Set_Lcd3_Buf(0,0,7);
ET1=1;
while(mode==Beep_and_Light_Setup_mode)
{
Beep_and_Light_Setup_Key_Processing();
switch(state)
{
case SET_BEEP:
Set_Lcd1_Buf(0,4,1);
Set_Lcd1_Buf('b',3,1);
Set_Lcd1_Buf('E',2,1);
Set_Lcd1_Buf('E',1,1);
Set_Lcd1_Buf('P',0,1);
if(Beep_on)
{
Set_BEEP_Icon();
Set_Lcd2_Buf(0,2,5);
Set_Lcd2_Buf('0',1,1);
Set_Lcd2_Buf('n',0,1);
}
else
{
Cls_BEEP_Icon();
Set_Lcd2_Buf(0,3,4);
Set_Lcd2_Buf('0',2,1);
Set_Lcd2_Buf('F',1,1);
Set_Lcd2_Buf('F',0,1);
}
break;
case SET_LIGHT:
Set_Lcd1_Buf('L',4,1);
Set_Lcd1_Buf('1',3,1);
Set_Lcd1_Buf('9',2,1);
Set_Lcd1_Buf('h',1,1);
Set_Lcd1_Buf('t',0,1);
if(Light_on)
{
Set_Lcd2_Buf(0,2,5);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -