📄 1302_2.c
字号:
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 + -