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

📄 1302_2.c

📁 这是一称的项目原文件,包括T9汉字输入,打印机,24C512,已经引用到产品上
💻 C
📖 第 1 页 / 共 2 页
字号:
   get_hour_from_1302_data(get_data);
}

static void get_day_from_1302_data(data_1302 *get_data)        //读取1302天数据
{
   BYTE day_data;
   day_data = get_data->day;
   day_buffer.shiwei = 0x30 + ((day_data >> 4) & 0x03);
   day_buffer.gewei = 0x30 + (day_data & 0x0F);
}
//---------------------------------------------------------//
static void get_month_from_1302_data(data_1302 *get_data)       //读取1302月数据
{
   BYTE month_data;
   month_data = get_data->month;
   month_buffer.shiwei = 0x30 + ((month_data >> 4) & 0x01);
   month_buffer.gewei = 0x30 + (month_data & 0x0F);
}

static void get_week_from_1302_data(data_1302 *get_data)        //读取1302星期数据
{
   BYTE week_data;
   week_data = get_data->week;
   week_buffer.gewei = 0x30 + (week_data & 0x07);
}

static void get_year_from_1302_data(data_1302 *get_data)        //读取1302 年数据
{
   BYTE year_data;
   year_data = get_data->year;
   year_buffer.shiwei = 0x30 + ((year_data >> 4) & 0x0F);
   year_buffer.gewei = 0x30 + (year_data & 0x0F);
}

void get_date_from_1302_data(data_1302 *get_data)                //读取1302日期数据
{
   get_day_from_1302_data(get_data);
   get_month_from_1302_data(get_data);
   get_week_from_1302_data(get_data);
   get_year_from_1302_data(get_data);
}
//---------------------------------------//
//-------------------------------------------------------------------//
//---------------------------------------++++++++++++++++++++++++++++==============================------------//

int set_code_to_display(BYTE key_value,BYTE *p)
{  
   BYTE num_address;
   //lcd_clear_line(2);
            lcd_Display_Lib_Chinese(0x90, 0xC7EB);//"请"
            lcd_Display_Lib_Chinese(0x91, 0xCAE4);//"输"
            lcd_Display_Lib_Chinese(0x92, 0xC8EB);//"入"
            lcd_Display_Lib_Chinese(0x93, 0xC3DC);//"密"
            lcd_Display_Lib_Chinese(0x94, 0xC2EB);//"码"
  num_address = get_num_address_from_key_value(key_value);
   if (num_address > 10) return; //invalid key
   if (num_address == 10){  //back
      if(set_code_struct.count > 0){
         set_code_struct.count--;
      }else{
         set_code_struct.count = 0;
      }
      return;
      }

   switch (set_code_struct.count){
      case 0:
		 if(num_address>=0&&num_address<=9)
		 { 
	        set_code_struct.count++;
		    lcd_Display_Lib_Chinese(0x98, 0xa1f9);
		     if(num_address==p[0])
		      {	 
		       code_flag_struct.count++;
		      } 
		 }
		 else
		 { 
		 return;
		 }
         break;
      case 1:
		 if(num_address>=0&&num_address<=9)
		 {  set_code_struct.count++;
		    lcd_Display_Lib_Chinese(0x99, 0xa1f9);
		     if(num_address==p[1])
		      {	 
		       code_flag_struct.count++;
		      } 
		 }
         break;
      case 2:
		 if(num_address>=0&&num_address<=9)
		 {  set_code_struct.count++;
		    lcd_Display_Lib_Chinese(0x9a, 0xa1f9);
		     if(num_address==p[2])
		      {	 
		       code_flag_struct.count++;
		      } 
		 }
         break;
      case 3:
		 if(num_address>=0&&num_address<=9)
		 {  set_code_struct.count++;
		    lcd_Display_Lib_Chinese(0x9b, 0xa1f9);
		     if(num_address==p[3])
		      {	 
		       code_flag_struct.count++;
		      } 
		 }
         break;
      case 4:
		 if(num_address>=0&&num_address<=9)
		 {  set_code_struct.count++;
		    lcd_Display_Lib_Chinese(0x9c, 0xa1f9);
		     if(num_address==p[4])
		      {	 
		       code_flag_struct.count++;
		      } 
		 }
         break;
      case 5:
		 if(num_address>=0&&num_address<=9)
		 {  set_code_struct.count=0;
		    lcd_Display_Lib_Chinese(0x9d, 0xa1f9);
		     if(num_address==p[5])
		      {	 
		       code_flag_struct.count++;
			   return 1;
		      } 
		 }      
         break;    
      default:
         break;
   }
   if(code_flag_struct.count==6)
   {
 //  return 1;
   }
   else 
   return 0;
   }



void set_time_to_display(BYTE key_value)                        //设置1302时间
{  
   BYTE num_address;
   BYTE tem;

   num_address = get_num_address_from_key_value(key_value);
   
   if (num_address > 10) return; //invalid key
   if (num_address == 10){  //back
      if(set_time_struct.count > 0){
         set_time_struct.count--;
      }else{
         set_time_struct.count = 0;
      }
      return;
}



switch (set_time_struct.count)
{
      case 0:
         if (num_address > 2) return; // >2
		 tem = data_to_1302.hour;
		 ((data_1302*)(set_time_struct.p_data))->hour &= (!(0x03 << 4));
		 tem = data_to_1302.hour;
         ((data_1302*)(set_time_struct.p_data))->hour |= (num_address << 4);
		 tem = data_to_1302.hour;
         hour_buffer.shiwei = 0x30 + num_address;
         set_time_struct.count++;
         break;
      case 1:
         ((data_1302*)(set_time_struct.p_data))->hour &= 0xF0;
         ((data_1302*)(set_time_struct.p_data))->hour |= num_address;
         hour_buffer.gewei = 0x30 + num_address;
		 set_time_struct.count++;
         break;
      case 2:
         if (num_address > 5) return; // >5
         ((data_1302*)(set_time_struct.p_data))->minute &= 0x8F;
         ((data_1302*)(set_time_struct.p_data))->minute |= (num_address << 4);
         minute_buffer.shiwei = 0x30 + num_address;
         set_time_struct.count++;
         break;
      case 3:
         ((data_1302*)(set_time_struct.p_data))->minute &= 0xF0;
         ((data_1302*)(set_time_struct.p_data))->minute |= num_address;
         minute_buffer.gewei = 0x30 + num_address;
         set_time_struct.count++;
         break;
      case 4:
         if (num_address > 5) return; // >5
         ((data_1302*)(set_time_struct.p_data))->second &= 0x8F;
         ((data_1302*)(set_time_struct.p_data))->second |= (num_address << 4);
         second_buffer.shiwei = 0x30 + num_address;
         set_time_struct.count++;
         break;
      case 5:
         ((data_1302*)(set_time_struct.p_data))->second &= 0xF0;
         ((data_1302*)(set_time_struct.p_data))->second |= num_address;
         second_buffer.gewei = 0x30 + num_address;
         set_time_struct.count++;
         break;
      default:
         break;
   }
}

void set_date_to_display(BYTE key_value)                          //设置1302日期
{  
   BYTE num_address;

   num_address = get_num_address_from_key_value(key_value);
   
   if (num_address > 10) return; //invalid key
   if (num_address == 10){  //back
      if(set_date_struct.count > 0){
         set_date_struct.count--;
      }else{
         set_date_struct.count = 0;
      }
      return;
   }

   switch (set_date_struct.count){
      //year
      case 0:      
         ((data_1302*)(set_date_struct.p_data))->year &= 0x0F;
         ((data_1302*)(set_date_struct.p_data))->year |= (num_address << 4);
         year_buffer.shiwei = 0x30 + num_address;
         set_date_struct.count++;
         break;
      case 1:
         ((data_1302*)(set_date_struct.p_data))->year &= 0xF0;
         ((data_1302*)(set_date_struct.p_data))->year |= num_address;
         year_buffer.gewei = 0x30 + num_address;
         set_date_struct.count++;
         break;
      //month
      case 2:
         if (num_address > 1) return; // >1
         ((data_1302*)(set_date_struct.p_data))->month &= 0xEF;
         ((data_1302*)(set_date_struct.p_data))->month |= (num_address << 4);
         month_buffer.shiwei = 0x30 + num_address;
         set_date_struct.count++;
         break;
      case 3:
         ((data_1302*)(set_date_struct.p_data))->month &= 0xF0;
         ((data_1302*)(set_date_struct.p_data))->month |= num_address;
         month_buffer.gewei = 0x30 + num_address;
         set_date_struct.count++;
         break;
      //day
      case 4:
         if (num_address > 3) return; // >3
         ((data_1302*)(set_date_struct.p_data))->day &= 0xCF;
         ((data_1302*)(set_date_struct.p_data))->day |= (num_address << 4);
         day_buffer.shiwei = 0x30 + num_address;
         set_date_struct.count++;
         break;
      case 5:
         ((data_1302*)(set_date_struct.p_data))->day &= 0xF0;
         ((data_1302*)(set_date_struct.p_data))->day |= num_address;
         day_buffer.gewei = 0x30 + num_address;
         set_date_struct.count++;
         break;
      //week
      case 6:
         if (num_address > 7) return; // >7
         ((data_1302*)(set_date_struct.p_data))->week &= 0xF8;
         ((data_1302*)(set_date_struct.p_data))->week |= num_address;
         week_buffer.gewei = 0x30 + num_address;
         set_date_struct.count++;
         break;
      default:
         break;
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -