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

📄 1302.c

📁 芯片
💻 C
📖 第 1 页 / 共 5 页
字号:
            	temp = temp | 0x30;
            	DispOneChar(12,1,temp );

            	key = 0x00;
            	//Delay200ms();
            	key = kbscan();
            	Delay10ms();
            	if(key != 0x00) break; 					// 月份十位仅限于 1/0
     	}
}


/*------------------------------------------------------------------------------
* 函数名称: ModifyDateTime
* 说    明: 修改日期时间
* 函数功能: 修改VS1302 的日历时钟时间值
* 调    用: v_W1302()
* 输    入: 无
* 返 回 值: 无
------------------------------------------------------------------------------*/
void ModifyDateTime(void)
{
        uchar Modifytime[7];

        bit monthflag;            // 月份 十位的标志
        bit dayflagthree;         // 日 十位为3的标志
        bit dayflagtwo;           // 日 十位为2的标志
        bit dayflagzero;          // 日 十位为0的标志

        bit hour12flag;
        bit hour12flag1;
        bit hour24flag;

        LcdClear();
        ePutstr(0,0,exampl03);    // Modify Date
        ePutstr(0,1,exampl04);    // Modify Time
        while(1)
        {
                Delay200ms();
                key = kbscan();
                Delay10ms();
                ///////////////////////////////////////////////////////////////////////////////////////////////
                if(key == 0x21)   // 1  Modify Date
                {
                        LcdClear();
                        ePutstr(0,0,exampl05);
                        ePutstr(0,1,exampl10);
                        ///////////////////////////////////////////////////////////////////////////////////////
                        LcdWriteCommand(0x0d,1);   //光标开闪
                        //LcdWriteCommand(0x02,1); //显示光标回原位
                        Disp_XY(2,1);              //光标定位
                        Delay400ms();
                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();
                                if(key == 0x48 || key == 0x21 || key == 0x41 || key == 0x81 || key == 0x22 || key == 0x42 || key == 0x82 || key == 0x24 || key == 0x44 || key == 0x84 )
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[6] = (key & 0x0f) << 4;             // 年 十位
                                        break;
                                }
                        }

                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();
                                if(key == 0x48 || key == 0x21 || key == 0x41 || key == 0x81 || key == 0x22 || key == 0x42 || key == 0x82 || key == 0x24 || key == 0x44 || key == 0x84 )
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[6] = (key & 0x0f ) | Modifytime[6]; // 年 个位
                                        Disp_XY(5,1);                                  // 光标定位
                                        break;
                                }
                        }
                        ///////////////////////////////////////////////////////////////////////////////////////
                        Delay400ms();
                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();
                                if((key == 0x21) || (key == 0x48))                     // 月份十位仅限于 1/0
                                {
                                        if(key == 0x21)
                                        {
                                                monthflag = 1;                         // 月份十位为1标志为1
                                        }
                                        else if(key == 0x48)
                                        {
                                                monthflag = 0;                         // 月份十位不位1标志为0
                                        }
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[4] = (key & 0x0f ) << 4;            // 月 十位
                                        break;
                                }
                        }

                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();                                           // 月份十位为1时个位仅为0/1/2
                                if((key == 0x48 || key == 0x21 || key == 0x41 ) && (monthflag == 1 ))
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[4] = (key & 0x0f ) | Modifytime[4]; // 月 个位
                                        Disp_XY(8,1);                                  // 光标定位
                                        break;
                                }                                                      // 月份十位为0时个位不能为0
                                else if((key == 0x48 || key == 0x21 || key == 0x41 || key == 0x81 || key == 0x22 || key == 0x42 || key == 0x82 || key == 0x24 || key == 0x44 || key == 0x84 ) && key != 0x48 && monthflag == 0 )
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[4] = (key & 0x0f ) | Modifytime[4]; // 月 个位
                                        Disp_XY(8,1);                                  // 光标定位
                                        break;
                                }
                        }
                        ///////////////////////////////////////////////////////////////////////////////////////
                        Delay400ms();
                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();                                           // 日 十位仅限于 0/1/2/3
                                if((key == 0x48) || (key == 0x21) || (key == 0x41) || (key == 0x81))
                                {
                                        if(key == 0x48)
                                        {
                                                dayflagzero = 1;                       // 日 十位为0标志为1
                                        }
                                        else if(key != 0x48)
                                        {
                                                dayflagzero = 0;                       // 日 十位不为0标志为0
                                        }
                                        if(key == 0x81)
                                        {
                                                dayflagthree = 1;                      // 日 十位为3标志为1
                                        }
                                        else if(key != 0x81)
                                        {
                                                dayflagthree = 0;                      // 日 十位不为3标志为0
                                        }
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[3] = (key & 0x0f ) << 4;            // 日 十位
                                        break;
                                }
                        }

                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();                                           // 日 十位为3时个位仅为0/1
                                if((key == 0x48 || key == 0x21 || key == 0x41 || key == 0x81 || key == 0x22 || key == 0x42 || key == 0x82 || key == 0x24 || key == 0x44 || key == 0x84 ) && (key == 0x48 || key == 0x21 ) && (dayflagthree == 1 ))
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[3] = (key & 0x0f ) | Modifytime[3]; // 日 个位
                                        Disp_XY(11,1);                                 // 光标定位
                                        break;
                                }                                                      // 日 十位为0时个位不能为0
                                else if((key == 0x48 || key == 0x21 || key == 0x41 || key == 0x81 || key == 0x22 || key == 0x42 || key == 0x82 || key == 0x24 || key == 0x44 || key == 0x84 ) && key != 0x48 && dayflagzero == 1 )
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[3] = (key & 0x0f ) | Modifytime[3]; // 日 个位
                                        Disp_XY(11,1);                                 // 光标定位
                                        break;
                                }
                                else if((key == 0x48 || key == 0x21 || key == 0x41 || key == 0x81 || key == 0x22 || key == 0x42 || key == 0x82 || key == 0x24 || key == 0x44 || key == 0x84 ) && dayflagthree == 0 && dayflagzero == 0 )
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[3] = (key & 0x0f ) | Modifytime[3]; // 日 个位
                                        Disp_XY(11,1);                                 // 光标定位
                                        break;
                                }
                        }
                        ///////////////////////////////////////////////////////////////////////////////////////
                        Delay400ms();
                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();                                           //星期仅限于 1-7
                                if((key == 0x21) || (key == 0x41) || (key == 0x81) || (key == 0x22) || (key == 0x42) || (key == 0x82) || (key == 0x24))
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        Modifytime[5] = key & 0x07;                    //星期
                                        Disp_XY(15,1);                                 //光标定位
                                        break;
                                }
                        }
                        ///////////////////////////////////////////////////////////////////////////////////////
                        ePutstr(13,1,exampl14);                       //显示 OK?
                        Disp_XY(15,1);                                //光标定位
                        ///////////////////////////////////////////////////////////////////////////////////////
                        Delay400ms();
                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();
                                if(key == 0x88)                       // 确认下发修改日期
                                {
                                        v_W1302(0x8e,0x00);           // 控制命令,WP=0,写操作
                                        v_W1302(0x86,Modifytime[3]);  // 日
                                        v_W1302(0x88,Modifytime[4]);  // 月
                                        v_W1302(0x8a,Modifytime[5]);  // 星期
                                        v_W1302(0x8c,Modifytime[6]);  // 年
                                        v_W1302(0x8e,0x80);           // 控制命令,WP=1,写保护

                                        LcdWriteCommand(0x0c,1);      // 光标关闪

                                        LcdClear();
                                        ePutstr(0,0,exampl15);        // 修改日期
                                        ePutstr(0,1,exampl17);        // 成功修改
                                        Delay400ms();Delay400ms();
                                        Delay400ms();Delay400ms();
                                        Delay400ms();Delay400ms();
                                        // DisplyDateTime();
                                        break;
                                }
                                else if(key == 0x28)                  // 取消下发修改日期
                                {
                                        LcdWriteCommand(0x0c,1);      // 光标关闪
                                        LcdClear();
                                        ePutstr(0,0,exampl15);        // 修改日期
                                        ePutstr(0,1,exampl18);        // 取消了修改
                                        Delay400ms();Delay400ms();
                                        Delay400ms();Delay400ms();
                                        Delay400ms();Delay400ms();
                                        // DisplyDateTime();
                                        break;
                                }
                        }
                        ///////////////////////////////////////////////////////////////////////////////////////
                        LcdWriteCommand(0x0c,1);                      // 光标关闪
                        break;
                }
                ///////////////////////////////////////////////////////////////////////////////////////////////
                else if(key == 0x41)   // 2  Modify Time
                {
                        LcdClear();
                        ePutstr(0,0,exampl21);                        // TimeMode  12/24
                        ePutstr(0,1,exampl22);
                        ///////////////////////////////////////////////////////////////////////////////////////
                        for(;;)
                        {
                                key = 0x00;
                                Delay400ms();
                                key = kbscan();
                                Delay10ms();
                                if(key == 0x21 )           // 1----12小时
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        //Modifytime[2] = (key & 0x01) << 7;
                                        hour12flag = 1;
                                        break;
                                }
                                else if(key == 0x41 )      // 2----24小时
                                {
                                        key = GetKeyMa(key );
                                        LcdWriteData(key );
                                        //Modifytime[2] = (key & 0x01) << 7;
                                        hour12flag = 0;
                                        break;
                                }
                        }

                        ///////////////////////////////////////////////////////////////////////////////////////
                        if(hour12flag == 1)       // 12  0-11
                        {

⌨️ 快捷键说明

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