📄 main.c.bak
字号:
lcd_clear_line(2);//清屏
lcd_Display_num_half_wide(0x8a,0x4d,0x40); // 第二行显示
lcd_Display_num_half_wide(0x8b,0x58,0x20); //显示"MAX"
//显示最大量程值
work_mode=SET_MAX_WEIGHT;//进入最大量程设置工作模式
return;
case 3://用于标定称
lcd_clear_line(2);
lcd_Display_Lib_Chinese(0x8a,0xB5F7);
lcd_Display_Lib_Chinese(0x8b,0xB3C6);
work_mode=DIAO_CHENG;//进入调称工作模式
return;
case 6://设置分度值
lcd_clear_line(2);//清屏
lcd_Display_num_half_wide(0x88,0x20,0x64); //第二行显示"d"
lcd_Display_Lib_Chinese(0x89,0xA1A2);//"、"
lcd_Display_num_half_wide(0x8a,0x2a,0x2a); //显示"d、**"
work_mode=SET_SCALE; //进入设置分度值工作模式
return;
}
work_mode=NORMAL;//返回正常工作模式
lcd_clear_line(3);
}
//++++++++++++END+++++++++++++//
//-------------------------------------------------------------------//
void enter_scale_work_mode(BYTE key_value)//分度值设置子函数
{BYTE key_num;
key_num=get_num_address_from_key_value(key_value);
switch(set_code_struct.count)
{
case 0:
if(key_num>=0&&key_num<=9)
{ scale[0]=key_num;
lcd_Display_num_half_wide(0x8a,scale[0]+0x30,0x2a);
set_code_struct.count++;
}
break;
case 1:
if(key_num>=0&&key_num<=9)
{ scale[1]=key_num;
lcd_Display_num_half_wide(0x8a,scale[0]+0x30,scale[1]+0x30);
set_code_struct.count++;
}
else if(key_value==SHIJIAN_KEY)
{lcd_Display_num_half_wide(0x8a,0x2a,0x2a);
set_code_struct.count--;
}
break;
case 2:
if(key_value==SHIJIAN_KEY)
{lcd_Display_num_half_wide(0x8a,scale[0]+0x30,0X2a);
set_code_struct.count--;
}
else if(key_value==RIQI_KEY)
{ work_mode=NORMAL;
lcd_clear_line(2);
lcd_clear_line(3);
set_code_struct.count=0;
return;
}
}
}
void enter_max_weight_work_mode(BYTE key_value)//最大量程值设置子函数
{BYTE key_num;
key_num=get_num_address_from_key_value(key_value);
switch(set_code_struct.count)
{case 0:
if(key_num>=0&&key_num<=9)
{ tem[0]=key_num;
lcd_Display_num_half_wide(0x8f,0x20,tem[0]+0x30);
max_weight=tem[0];//
set_code_struct.count++;
}
break;
case 1:
if(key_num>=0&&key_num<=9)
{ tem[1]=key_num;
lcd_Display_num_half_wide(0x8f,tem[0]+0x30,tem[1]+0x30);
max_weight=tem[0]*10+tem[1];//
set_code_struct.count++;
}
break;
case 2:
if(key_num>=0&&key_num<=9)
{ tem[2]=key_num;
lcd_Display_num_half_wide(0x8e,0x20,tem[0]+0x30);
lcd_Display_num_half_wide(0x8f,tem[1]+0x30,tem[2]+0x30);
max_weight=tem[0]*100+tem[1]*10+tem[2];//
set_code_struct.count++;
}
break;
case 3:
if(key_num>=0&&key_num<=9)
{ tem[3]=key_num;
lcd_Display_num_half_wide(0x8e,tem[0]+0x30,tem[1]+0x30);
lcd_Display_num_half_wide(0x8f,tem[2]+0x30,tem[3]+0x30);
max_weight=tem[0]*1000+tem[1]*100+tem[2]*10+tem[3];//
set_code_struct.count++;
}
break;
case 4:
if(key_num>=0&&key_num<=9)
{ tem[4]=key_num;
lcd_Display_num_half_wide(0x8d,0x20,tem[0]+0x30);
lcd_Display_num_half_wide(0x8e,tem[1]+0x30,tem[2]+0x30);
lcd_Display_num_half_wide(0x8f,tem[3]+0x30,tem[4]+0x30);
max_weight=tem[0]*10000+tem[1]*1000+tem[2]*100+tem[3]*10+tem[4];//
set_code_struct.count++;
}
break;
case 5:
if(key_num>=0&&key_num<=9)
{ tem[5]=key_num;
lcd_Display_num_half_wide(0x8d,tem[0]+0x30,tem[1]+0x30);
lcd_Display_num_half_wide(0x8e,tem[2]+0x30,tem[3]+0x30);
lcd_Display_num_half_wide(0x8f,tem[4]+0x30,tem[5]+0x30);
max_weight=tem[0]*100000+tem[1]*10000+tem[2]*1000+tem[3]*100+tem[4]*10+tem[5];//
set_code_struct.count++;
}
break;
case 6:
if(key_value==RIQI_KEY)
{lcd_clear_line(2);
work_mode=NORMAL;
return;
}
break;
}
}
//----------------------------------------------------//
/* */
/* 以下增加打印子程序定义 */
/* */
/********************BEGIN*****************************/
void enter_all_print_work_mode(BYTE key_value)//总报表打印
{
// work_mode=NORMAL;
}
void enter_date_print_work_mode(BYTE key_value)//按日期打印
{if(key_value==LEIBIE_KEY)
{ work_mode=PRINT_TYPE_DATE;//进入按日期类别打印
return;
}
else if(key_value==ZONGZHONG_KEY)
{ lcd_Display_Lib_Chinese(0x88,0xB4F2);
lcd_Display_Lib_Chinese(0x89,0xD3A1);
lcd_Display_Lib_Chinese(0x8a,0xB0B4);
lcd_Display_Lib_Chinese(0x8b,0xC8D5);
lcd_Display_Lib_Chinese(0x8c,0xBBE3);
lcd_Display_Lib_Chinese(0x8d,0xD7DC);
lcd_Display_Lib_Chinese(0x8e,0xB1ED);
}
work_mode=NORMAL;
}
void enter_type_print_work_mode(BYTE key_value)//按类别打印
{
if(key_value==RIQI_KEY)
{
work_mode=PRINT_TYPE_DATE;
return;
}
else if(key_value==ZONGZHONG_KEY)
{
lcd_Display_Lib_Chinese(0x88,0xB4F2);
lcd_Display_Lib_Chinese(0x89,0xD3A1);
lcd_Display_Lib_Chinese(0x8a,0xB0B4);
lcd_Display_Lib_Chinese(0x8b,0xC0E0);
lcd_Display_Lib_Chinese(0x8c,0xBBE3);
lcd_Display_Lib_Chinese(0x8d,0xD7DC);
lcd_Display_Lib_Chinese(0x8e,0xB1ED);
}
work_mode=NORMAL;
}
void enter_date_type_print_work_mode(BYTE key_value)//按日期类别打印
{if(key_value==ZONGZHONG_KEY)
{ lcd_Display_Lib_Chinese(0x88,0xB4F2);
lcd_Display_Lib_Chinese(0x89,0xD3A1);
lcd_Display_Lib_Chinese(0x8a,0xB0B4);
lcd_Display_Lib_Chinese(0x8b,0xC8D5);
lcd_Display_Lib_Chinese(0x8C,0xC0D0);
lcd_Display_Lib_Chinese(0x8D,0xBBE3);
lcd_Display_Lib_Chinese(0x8E,0xD7DC);
lcd_Display_Lib_Chinese(0x8F,0xB1ED);
}
work_mode=NORMAL;
}
/********************END************************/
void enter_beiguang_work_mode(BYTE key_value) //背光
{
if(key_value == BEIGUANG_KEY)
{
bbb=!bbb;
delay();
bbb=!bbb;
work_mode = NORMAL;
aaa=!aaa;
}
}
void enter_guangji_work_mode(BYTE key_value) ///////关机
{
if(key_value == GUANJI_KEY)
{
bbb=!bbb;
delay();
bbb=!bbb;
}
work_mode = NORMAL;
lcd_clear_line(2);
lcd_clear_line(3);
return;
}
void enter_cunru_work_mode(BYTE key_value) //存入
{
if(key_value == CUNRU_KEY)
{
bbb=!bbb;
delay();
bbb=!bbb;
work_mode = NORMAL;
lcd_clear_line(2);
lcd_clear_line(3);
}
}
void enter_guiling_work_mode(BYTE key_value) //归零
{
if(key_value == GUILING_KEY)
{
bbb=!bbb;
delay();
bbb=!bbb;
work_mode = NORMAL;
lcd_clear_line(2);
lcd_clear_line(3);
}
}
void enter_diaocheng_work_mode(BYTE key_value) //调称
{
if(key_value == 0x00)
{
bbb=!bbb;
delay();
bbb=!bbb;
work_mode = NORMAL;
lcd_clear_line(2);
lcd_clear_line(3);
}
}
void display_normal(void) //显示重量
{
lcd_clear_line(1);
lcd_clear_line(2);
lcd_clear_line(3);
lcd_Disp_Text_Line_Order(0x90, tylx5);//"当前重量:"
while(1)
{
if(renew_weight_id)
{
renew_weight_id = 0;
if((new_receive_weight > upper_limit_weight) ||
(new_receive_weight < lower_limit_weight))
{
//set flag,and display the weight??? //报警显示
break;
}
else if(new_receive_weight == old_receive_weight)
break;//直接跳出
else{//刷新显示,第二行
old_receive_weight = new_receive_weight; //显示重量
break;
}
}
break;
}
}
//------------自动计时程序------------------//
void auto_close(void)
{if(flag_1_1==1)
{if(key_flag1==0)
{counter1=0;
counter1+=2;
if(counter1==20)
{ aaa=1;
key_flag1=1;
}
}
}
}
//-----------------------------//
void display_state_icon(void) //显示标志
{
if(flag_1||flag_2||flag_3||flag_4||flag_5||flag_6)
{
if(!count_timer0)
{
timer0_init(TIME_1S);
if(flag_1) flag_1_1 = !flag_1_1;
if(flag_2) flag_2_2 = !flag_2_2;
if(flag_3) flag_3_3 = !flag_3_3;
if(flag_4) flag_4_4 = !flag_4_4;
if(flag_5) flag_5_5 = !flag_5_5;
if(flag_6) flag_6_6 = !flag_6_6;
}
if(flag_1_1)
{
lcd_Display_Lib_Chinese(0x81, 0xA1A0);
}
else
{
lcd_Display_Lib_Chinese(0x81, 0xA1F0);
}
if(flag_2_2)
{
lcd_Display_Lib_Chinese(0x82, 0xA1A0);
}
else
{
lcd_Display_Lib_Chinese(0x82, 0xA3A3);
}
if(flag_3_3)
{
lcd_Display_Lib_Chinese(0x83, 0xA1A0);
}
else
{
lcd_Display_Lib_Chinese(0x83, 0xA1F1);
}
if(flag_4_4)
{
lcd_Display_Lib_Chinese(0x84, 0xA1A0);
}
else
{
lcd_Display_Lib_Chinese(0x84, 0xA1F6);
}
if(flag_5_5)
{
lcd_Display_Lib_Chinese(0x85, 0xA1A0);
}
else
{
lcd_Display_Lib_Chinese(0x85, 0xA1FE);
}
if(flag_6_6)
{
lcd_Display_Lib_Chinese(0x86, 0xA1A0);
}
else
{
lcd_Display_Lib_Chinese(0x86, 0xA1FC);
}
}
else
{
lcd_Display_Lib_Chinese(0x81, 0xA1F0); //标志的形状
lcd_Display_Lib_Chinese(0x82, 0xA3A3);
lcd_Display_Lib_Chinese(0x83, 0xA1F1);
lcd_Display_Lib_Chinese(0x84, 0xA1F6);
lcd_Display_Lib_Chinese(0x85, 0xA1FE);
lcd_Display_Lib_Chinese(0x86, 0xA1FC);
}
}
void main_init(void) //初始化
{
work_mode = NORMAL;
flag_1=1;
flag_2=0;
flag_3=1;
flag_4=0;
flag_5=1;
flag_6=0;
flag_1_1=flag_2_2=
flag_3_3=flag_4_4=
flag_5_5=flag_6_6= 0;
count_timer0 = 0;
count_timer1 = 0;
Delay1(5000);
Delay1(5000);
cc256R(&rece_buf[0] ,0x02,0x0000) ; //hl//初始化时读出内存中记录的数量
save_current_num = rece_buf[0]*0x100+rece_buf[1]; //hl//初始化
Delay1(5000);
Delay1(5000);
save_current_type = 100; //hl//初始化时设置类别为100,?????
save_current_pizhong = 12345;
Work_Start_1302(); //开始时时钟已经运行
}
/*void delay(void) //延时,主程序调用了
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
} */
/*存入记录,记录包括序列号,用户名,类别名,时间日期,重量*/
void save_record()
{
WORD n; //hl//要存记录的首地址
char status;
cc256R(&rece_buf[0] ,0x04,0x0002) ; //hl//初始化时读出内存中记录的总重
Delay1(5000);
all_weight = rece_buf[0]*0x1000000+rece_buf[1]*0x10000+ rece_buf[2]*0x100+rece_buf[3];
Delay1(5000);
n=(save_current_num-1)*0x0c+0x0010;
old_receive_weight = new_receive_weight;
Delay1(5000);
all_weight=all_weight + new_receive_weight;
Delay1(5000);
rece_buf[0]=save_current_num>>8; //hl//序列号
rece_buf[1]=save_current_num;
rece_buf[2]= all_weight>>24;
rece_buf[3]= all_weight>>16;
rece_buf[4]= all_weight>>8;
rece_buf[5]= all_weight;
status=cc256W(&rece_buf[0],0x06,0x0000) ; //存总次和总重
Delay1(5000);
rece_buf[0]= 0xB1; //hl//用户名 北京天宇
rece_buf[1]= 0xB1;
rece_buf[2]= 0xbe;
rece_buf[3]= 0xA9;
rece_buf[4]= 0xCC;
rece_buf[5]= 0xEC;
rece_buf[6]= 0xD3;
rece_buf[7]= 0xEE;
status=cc256W(&rece_buf[0],0x08,0x0007) ;
Delay1(5000);
rece_buf[0]=save_current_num>>8; //hl//序列号
rece_buf[1]=save_current_num;
rece_buf[2]= save_current_type ; //hl//类别名
Get_1302(&data_to_1302);
get_date_from_1302_data(&data_to_1302);
rece_buf[3]=(year_buffer.shiwei-0x30)*0x0a+(year_buffer.gewei-0x30); //hl//年
rece_buf[4]=(month_buffer.shiwei-0x30)*0x0a+(month_buffer.gewei-0x30); //hl//月
rece_buf[5]=(day_buffer.shiwei-0x30)*0x0a+(day_buffer.gewei-0x30); //hl//日
Get_1302(&data_to_1302);
get_time_from_1302_data(&data_to_1302);
rece_buf[6]=(hour_buffer.shiwei-0x30)*0x0a+(hour_buffer.gewei-0x30); //hl//小时
rece_buf[7]=(minute_buffer.shiwei-0x30)*0x0a+(minute_buffer.gewei-0x30); //hl//分
rece_buf[8]=new_receive_weight>>24; //hl//重量102400
rece_buf[9]=new_receive_weight>>16;
rece_buf[10]=new_receive_weight>>8;
rece_buf[11]=new_receive_weight;
status=cc256W(&rece_buf[0],0x0c,n) ; //存信息
Delay1(5000);
//timer0_init(TIME_6S);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -