📄 keyprc.c
字号:
}
if(set_dp_F == 1) // if when set dp ,then save dp
{
Savedata_prc();
// set_dp_F = 0;
// set_pra_seg = 0;
return;
}
switch(set_pra_seg ) //fouseg position set
{
case 0x10:
set_pra_seg = 0x08;
break;
case 0x08:
set_pra_seg = 0x04 ; //next seg set data
break;
case 0x04:
set_pra_seg = 0x02 ;
break ;
case 0x02 :
set_pra_seg = 0x01 ;
break ;
case 0x01 :
set_pra_seg = 0xf0 ;
break;
default : break ;
}
if(set_pra_seg ==0xf0) //queren hou culi
{
set_pra_seg = 0x00 ;
Savedata_prc();
}
}
}
/***************************************/
/*** System mima set ***/
/***************************************/
void Set_system_code(void)
{
multi_key_F = 1;
press_r_key = 0;
Set_sys_mima();
disp_time = TM100MS ;
disp_mode = PARA_DISP ;
disp_mode_old = disp_mode ;
disp_no_u = 7 ; // disp mima
return;
}
/******************************/
/******************************/
void Sys_biaodin(void)
{
multi_key_F = 1 ;
biaodin_F = 1;
press_r_key = 0;
disp_mode = PARA_SET;
disp_mode_old = disp_mode;
disp_no_u = 2 ; //set lchen range disp mode
set4_F =1 ; //first set fouth segment led
user_setdata.oneseg = 0;
user_setdata.twoseg = 0;
user_setdata.thrseg = 0;
user_setdata.fouseg = 0;
Set_sys_data();
return;
}
/******************************/
/******************************/
void Savedata_prc(void)
{
unsigned char i =0 ;
if(biaodin_F == 1)
{
Write1B(ADC_GAIN_16,0x25,0); //baochen system_gain = 16;
if((disp_no_u == 2)&&(set_dp_F == 0)) //baochen system lchen
{
set_dp_F = 1 ;
dp_point = 2; //mo ren
Save_dp_point(0x24); //baochen system dp
Save_dp_point(0x0e); //biaodin shi he xitong xiaosu din yiyang
Write1B(user_setdata.oneseg,0x20,0);
Write1B(user_setdata.twoseg,0x21,0);
Write1B(user_setdata.thrseg,0x22,0);
Write1B(user_setdata.fouseg,0x23,0);
// when biaodin,normal lchen = system lchen data
Write1B(user_setdata.oneseg,0x18,0);
Write1B(user_setdata.twoseg,0x19,0);
Write1B(user_setdata.thrseg,0x1a,0);
Write1B(user_setdata.fouseg,0x1b,0);
//set system moren dp_point
set_pra_seg = dp_blink_potion[dp_point] ;
}
return;
}
switch(disp_no_u)
{
case 0x00: //jin
if( Code_check() ) //jinnian mima
{
allow_set_F = 1; //mi ma zhenque
}
else
{
allow_set_F = 0;
disp_mode = PARA_DISP ;
}
break;
case 0x01: /* zhenxiang leiji liuliang qinglin*/
if((user_setdata.oneseg==1)&&(user_setdata.twoseg==1)&&(user_setdata.thrseg==1)
&&(user_setdata.fouseg==1))
{
p_count_data = 0 ;
n_count_data =0;
net_count_data = 0;
for(i=0;i<8;i++)
{
Write1B(0x00,page1_start_addr+i,1);
// page1_start_addr++;
}
}
break;
case 0x02:
if(set_dp_F == 0)
{
Write1B(user_setdata.oneseg,0x18,0);
Write1B(user_setdata.twoseg,0x19,0);
Write1B(user_setdata.thrseg,0x1a,0);
Write1B(user_setdata.fouseg,0x1b,0);
lchen_data = Get_lchen_data(0x18,dp_point);
set_dp_F = 1;
set_pra_seg = dp_blink_potion[dp_point];
}
else
{
Write1B(dp_point,0x0e,0);
lchen_data = Get_lchen_data(0x18,dp_point);
set_dp_F = 0 ;
set_pra_seg = 0 ;
}
break;
case 0x03: //dp baochen
if(set_dp_F == 0)
{
// Write1B(user_setdata.oneseg,0x26,0);
// Write1B(user_setdata.twoseg,0x27,0);
// Write1B(user_setdata.thrseg,0x28,0);
// Write1B(user_setdata.fouseg,0x29,0);
set_dp_F = 1;
set_pra_seg = dp_blink_potion[pulse_dp];
}
else
{
if(Judge_setdanlan_range())
{
Write1B(user_setdata.oneseg,0x26,0);
Write1B(user_setdata.twoseg,0x27,0);
Write1B(user_setdata.thrseg,0x28,0);
Write1B(user_setdata.fouseg,0x29,0);
Write1B(pulse_dp,0x2a,0);
set_pra_seg = 0;
set_dp_F = 0 ;
}
else
{
press_r_key = 0 ;
set_pra_seg = 0x08 ;
set_dp_F = 0;
}
}
break;
case 0x08: if(set_dp_F == 0) //sensor_k set option
{
Write1B(user_setdata.oneseg,0x30,0);
Write1B(user_setdata.twoseg,0x31,0);
Write1B(user_setdata.thrseg,0x32,0);
Write1B(user_setdata.fouseg,0x33,0);
sensor_k = Get_lchen_data(0x30,sensor_dp);
system_k = sensor_k*lchen_data/0x7fff ;
set_dp_F = 1;
set_pra_seg = dp_blink_potion[sensor_dp];
}
else
{
Write1B(sensor_dp,0x34,0);
sensor_k = Get_lchen_data(0x30,sensor_dp);
system_k = sensor_k*lchen_data/0x7fff ;
set_dp_F = 0;
set_pra_seg = 0 ;
}
break;
case 0x0a:
if(set_dp_F == 0)
{
Write1B(zero_symbol,0x38,0);
Write1B(user_setdata.oneseg,0x39,0);
Write1B(user_setdata.twoseg,0x3a,0);
Write1B(user_setdata.thrseg,0x3b,0);
Write1B(user_setdata.fouseg,0x3c,0);
// zero_offset = Get_lchen_data(0x39,zero_dp);
zero_code = (unsigned int)( Get_lchen_data(0x39,zero_dp)/10.0*32767);
set_dp_F = 1;
set_pra_seg = dp_blink_potion[zero_dp];
}
else
{
Write1B(zero_dp,0x3d,0);
// zero_offset = Get_lchen_data(0x39,zero_dp);
zero_code = (unsigned int)( Get_lchen_data(0x39,zero_dp)/10.0*32767);
set_dp_F = 0;
set_pra_seg = 0 ;
}
break;
case 0x04: /* lubo zisu baochen */
Write1B(user_setdata.oneseg,0x1c,0);
filter_data = user_setdata.oneseg ;
break;
case 0x05: /*xiaoliuliang xinhao qiecu bao chen */
Write1B(user_setdata.oneseg,0x1d,0);
cut_slope = user_setdata.oneseg ;
cut_data =(cut_slope/100.0)*lchen_data;
break;
case 0x06: //baojin shangxian
if((user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.oneseg) <=150)
{
Write1B(user_setdata.oneseg,0x12,0);
Write1B(user_setdata.twoseg,0x13,0);
Write1B(user_setdata.thrseg,0x14,0);
alarm_up_data = ((user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.oneseg)/100.0)*lchen_data;
} // update:2003-09-20
break;
case 0x07: //baojin xiaxian
Write1B(user_setdata.oneseg,0x15,0);
Write1B(user_setdata.twoseg,0x16,0);
alarm_dm_data = ((user_setdata.twoseg*10+user_setdata.oneseg)/100.0)*lchen_data;
break;
case 0x09:
Write1B(user_setdata.oneseg,0x35,0);
Write1B(user_setdata.twoseg,0x36,0);
Write1B(user_setdata.thrseg,0x37,0);
da_offset = user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.oneseg;
break;
case 0x0b: //chang mima
Write1B(user_setdata.oneseg,0x0d,0);
Write1B(user_setdata.twoseg,0x0c,0);
Write1B(user_setdata.thrseg,0x0b,0);
Write1B(user_setdata.fouseg,0x0a,0);
break;
default:
break;
}
}
/***************************/
/***************************/
void Set_sys_data(void)
{
unsigned char addr;
//set system mima
if(biaodin_F == 1) //SURE ONLY AT BIAODIN CAN PRECESS THIS SEGMENT
{
Set_sys_mima();
//clear page0 from 0x0e to 0x25 eeprom ram
for(addr=0x0e;addr<0x3d;addr++)
{
Write1B(0x00,addr,0);
}
Write1B(0x10,0x10,0); //set page1 start address is 0x10
Write1B(0x20,0x25,0); //set system adc_gain = ADC_GIAN_16
//set system sensor_k = 1.000
Write1B(0x03,0x34,0); //sensor_dp = 3 ;
Write1B(0x01,0x33,0); //sensor_K = 1.000
/* 4 mA stander out set: da_offset = 203 */
Write1B(0x03,0x35,0);
Write1B(0x00,0x36,0);
Write1B(0x02,0x37,0);
da_offset = 203 ;
//clear page1 from 0x10 to 0x1c ram
for(addr=0x10;addr<0x1c;addr++)
{
Write1B(0x00,addr,1);
}
}
}
/******************************/
void Set_sys_mima(void)
{
Write1B(0x01,0x0a,0);
// Delay_2us();
Write1B(0x02,0x0b,0);
// Delay_2us();
Write1B(0x03,0x0c,0);
// Delay_2us();
Write1B(0x04,0x0d,0);
// Delay_2us();
return;
}
/*******************************/
/*******************************/
unsigned char Dp_set_precess(void)
{
if(set_pra_seg == 0x08)
{
set_pra_seg = 0x04 ;
return(2) ;
}
else if(set_pra_seg == 0x04)
{
set_pra_seg = 0x02;
return(1) ;
}
else if(set_pra_seg == 0x02)
{
set_pra_seg = 0x00;
return(0);
}
else
{
set_pra_seg = 0x08;
return(3) ;
}
}
/*************************/
/*************************/
bit Judge_setdanlan_range(void)
{
float value;
unsigned int word ;
word = (user_setdata.fouseg*1000+user_setdata.thrseg*100+user_setdata.twoseg*10+user_setdata.oneseg);
if(pulse_dp == 3)
value = word /1000.0 ;
else if(pulse_dp == 2)
value = word/100.0 ;
else if(pulse_dp == 1)
value = word/10.0 ;
else
value = word ;
// if((unsigned int)((lchen_data*1.5*1000/3600)/value) >= MAX_SEND_NUMBER) //if set danlan over allow send max number
if((unsigned int)((lchen_data*1000/3600)/value) >= MAX_SEND_NUMBER)
return(SET_ERROR);
else
{
pulse_danlan = value ;
return(SET_OK);
}
}
/*************************************/
/*************************************/
unsigned char Sure_biaodin_dp(void)
{
switch(set_pra_seg)
{
case 0x08:
return(3);
case 0x04:
return(2);
case 0x02:
return(1);
default:
return(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -