📄 key.c.bak
字号:
if (i)
{
if (num[0]>0x39 || num[0]<0x30)
{
num[0]=0x31;
num[1]=0x20;
}
for (i=0;i<11;i++)
{
MobilePhone[i]=num[i];
}
disp_string(14,28,num);
}
LCD_CursorXY(14,28);
break;
case 68:
memset(num, 0x00, 25);
i=input_num(2);
if (i)
{
if (num[0]>0x39 || num[0]<0x30)
{
num[0]=0x31;
num[1]=0x20;
}
i=atoi(num);
fGrid=(float)i*0.1;
memset(strdata, 0x00, 15);
sprintf(strdata,"%3.1f",fGrid);
disp_string(14,68,strdata);
}
LCD_CursorXY(16,68);
break;
}
// LCD_CursorXY(14,CursorY);
// LCD_CursorSize(0x20);
// LCD_CursorOff();
// disp_title(1);
//return(1);
break;
default:
break;
}
}
}
// disp_title(1);
}
unsigned char set_alarmdata(void)
{
unsigned char key_value;
disp_title(2);
LCD_CursorSize(0x20);
LCD_CursorOn();
LCD_CursorXY(20,0);
delay_ms(1000);
while(1)
{
wdr();
if (check_key())
{
key_value=read_key();
switch(key_value)
{
case UP:
if (CursorY==0)
{
CursorY=112;
}
else
CursorY=CursorY-16;
LCD_CursorXY(20,CursorY);
break;
case DOWN:
if (CursorY==112)
{
CursorY=0;
}
else
CursorY=CursorY+16;
LCD_CursorXY(20,CursorY);
break;
case SETUP:
LCD_CursorSize(0x20);
LCD_CursorOff();
disp_title(1);
return(1);
// break;
case OK:
switch (CursorY)
{
case 0:
my_ombset.fPatrol10m=set_rain();
sprintf(num,"%5.1f",(float)my_ombset.fPatrol10m);
disp_string(20,0,num);
break;
case 16:
my_ombset.fPatrol1h=(float)set_rain();
sprintf(num,"%5.1f",my_ombset.fPatrol1h);
disp_string(20,16,num);
break;
case 32:
my_ombset.fPatrik1d=(float)set_rain();
sprintf(num,"%5.1f",my_ombset.fPatrik1d);
disp_string(20,32,num);
break;
case 48:
my_ombset.fPatrolCon=(float)set_rain();
sprintf(num,"%5.1f",my_ombset.fPatrolCon);
disp_string(20,48,num);
break;
case 64:
my_ombset.fRisk10m=set_rain();
sprintf(num,"%5.1f",(float)my_ombset.fRisk10m);
disp_string(20,64,num);
break;
case 80:
my_ombset.fRisk1h=(float)set_rain();
sprintf(num,"%5.1f",my_ombset.fRisk1h);
disp_string(20,80,num);
break;
case 96:
my_ombset.fRisk1d=(float)set_rain();
sprintf(num,"%5.1f",my_ombset.fRisk1d);
disp_string(20,96,num);
break;
case 112:
my_ombset.fRiskCon=(float)set_rain();
sprintf(num,"%5.1f",my_ombset.fRiskCon);
disp_string(20,112,num);
break;
}
LCD_CursorXY(20,CursorY);
LCD_CursorSize(0x20);
// LCD_CursorOff();
// disp_title(1);
//return(1);
break;
default:
break;
}
}
}
}
void key_call(void)
{
keyvalue=check_key();
}
void key_proc(unsigned char key)
{
// sprintf(strdata,"%u ",i);
// disp_string(0,0,strdata);
switch(key)
{
case PSW:
sclk=1;
psw_deal();
sclk=0;
break;
case UP:
sclk=0;
disp_title(1);
break;
case DOWN:
sclk=1;
disp_title(2);
break;
default:
break;
}
}
void psw_deal(void)
{
unsigned int inpsw=0;
memset(num, 0x00, 25);
disp_title(3);
LCD_CursorOn();
LCD_CursorXY(10,50);
input_num(5);
LCD_CursorOff();
if (num[0]>0x39 || num[0]<0x30)
{
num[0]=0x31;
num[1]=0x20;
}
inpsw=atoi(num);
if (inpsw==SETPSW)
{
disp_title(5);
key_deal();
}
else
{
disp_title(1);
}
}
void key_deal(void)
{
unsigned char i;
i=0;
while (i==0)
{
wdr();
if (check_key())
{
i=check_key();
switch(i)
{
case ONE:
set_alarmdata();
i=1;
break;
case TWO:
set_mobilephone();
i=1;
break;
case THREE:
set_clock();
i=1;
break;
case FOUR:
call_data();
i=1;
break;
case FIVE:
data_print();
i=1;
break;
case EIGHT:
disp_idip();
i=1;
break;
case DELETE:
disp_title(1);
i=1;
break;
default:
i=0;
break;
}
}
}
}
void disp_idip(void)
{
unsigned int i;
unsigned char strdata[30];
memset(strdata, 0x00, 30);
disp_title(9);
i=MY_ID;
sprintf((unsigned char*)strdata, "%d", i);
disp_string(12,38,strdata);
// sprintf((unsigned char*)strdata, "%d.%d.%d.%d", my_ipaddr.classA,my_ipaddr.classB,my_ipaddr.classC,my_ipaddr.classD);
// disp_stringf(12,68,strdata);
delay_ms(1000);
while(check_key()!=DELETE)
{
wdr();
}
disp_title(1);
}
void set_clock(void)
{
unsigned char i;
memset(num, 0x00, 25);
disp_title(6);
LCD_CursorOn();
LCD_CursorXY(6,60);
delay_ms(1000);
i=input_num(20);
LCD_CursorOff();
if (i)
{
if (num[0]>0x39 || num[0]<0x30)
{
num[0]=0x31;
num[1]=0x20;
}
num[0]=bcd_add(num[2],num[3]);
num[5]=0x00;
num[4]=bcd_add(num[5],num[6]);
num[3]=bcd_add(num[8],num[9]);
num[2]=bcd_add(num[11],num[12]);
num[1]=bcd_add(num[14],num[15]);
num[6]=num[0];
num[0]=bcd_add(num[17],num[18]);
v_Set1302(num);
CLK_YEAR=atoi(&num[0]);
CLK_MONTH=atoi(&num[5]);
CLK_DAY=atoi(&num[8]);
CLK_HOUR=atoi(&num[11]);
CLK_MIN=atoi(&num[14]);
CLK_SEC=atoi(&num[17]);
}
disp_title(1);
}
unsigned char bcd_add(unsigned char num1,unsigned char num2)
{
unsigned char i;
i=num1<<4;
num2=num2&0x0f;
i=i|num2;
return i;
}
unsigned char call_data(void)
{
unsigned char i;
unsigned char key_value;
unsigned char tempday = 0;
unsigned char tempmonth = 0;
unsigned char tempyear = 0;
memset(num, 0x00, 25);
disp_title(8);
LCD_CursorSize(0x20);
LCD_CursorOn();
LCD_CursorXY(14,111);
delay_ms(1000);
while(1)
{
wdr();
if (check_key())
{
key_value=read_key();
switch(key_value)
{
case UP:
break;
case DOWN:
break;
case DELETE:
LCD_CursorSize(0x20);
LCD_CursorOff();
disp_title(1);
return(1);
// break;
case OK:
memset(num, 0x00, 25);
i=input_num(9);
if (i)
{
if (num[0]>0x39 || num[0]<0x30)
{
num[0]=0x31;
num[1]=0x20;
}
disp_string(14,111,num);
tempyear=atoi(&num[0]);
tempmonth=atoi(&num[3]);
tempday=atoi(&num[6]);
}
LCD_CursorXY(14,111);
LCD_CursorSize(0x20);
break;
default:
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -