⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c.bak

📁 这是一称的项目原文件,包括T9汉字输入,打印机,24C512,已经引用到产品上
💻 BAK
📖 第 1 页 / 共 3 页
字号:
    	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 + -