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

📄 key.c.bak

📁 使用avr--cc2420模块程序,需要原理图的联系 QQ:120304948
💻 BAK
📖 第 1 页 / 共 2 页
字号:
							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 + -