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

📄 main.i

📁 CVAVR完整程序
💻 I
📖 第 1 页 / 共 2 页
字号:
						    tian_1 += 30;                   // 小月为30天
					    }	
				    }

				    for (i=1;i<date_set[1];i++)
				    {
					    if ( i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
					        tian_2 += 31;
					    else if (i == 2)
					    {
						    y_temp = 2000 + (int) date_set[0];
						    if ((y_temp % 400 == 0)  || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
							    tian_2 += 29;
						    else
							    tian_2 += 28;
					    }	
					    else
					       tian_2 += 30;
					}
				    tian = tian + tian_2 - tian_1 + (int)date_set[2] - (int)date[2];
    			}
			    else
			    {
				    for (i=date_set[0]; i<date[0];i++)
				    {
					    y_temp = 2000+(int)i;
					    if ((y_temp % 400 == 0)  || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
						    tian += 366;
					    else
						    tian += 365;
				    }

				    for (i=1;i<date[1];i++)
				    {
					    if ( i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
					       tian_1 += 31;
						else if (i == 2)
					    {
						    y_temp = 2000 + (int) date[0];
						    if ((y_temp % 400 == 0)  || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
							    tian_1 += 29;
						    else
							    tian_1 += 28;
					    }
					    else
					    	tian_1 += 30;
				    }

				    for (i=1;i<date_set[1];i++)
				    {
					    if ( i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
					        tian_2 += 31;
					    else if (i == 2)
					    {
						    y_temp = 2000 + (int) date_set[0];
						    if ((y_temp % 400 == 0)  || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
							    tian_2 += 29;
						    else
							    tian_2 += 28;
					    }	
					    else
					    	tian_2 += 30;
					}
                    tian = tian + tian_1 - tian_2 + (int)date[2] - (int)date_set[2] + 1;
			    }

			    if (tian > 0)                   // 剩余天数大于0,显示剩余天数
			    {
				    dis_buff[8] = (tian % 10);
			 	    dis_buff[7] = ((tian / 10) % 10);
			 	    dis_buff[6] = ((tian/100) % 10);
				    if (dis_buff[6] == 0) dis_buff[6] = 12;
				    if (dis_buff[6] == 12 && dis_buff[7] == 0) dis_buff[7] = 12;
			    }
			    else
			    {
				    dis_buff[8] = 0;            // 小于0则显示全0天
				    dis_buff[7] = 0;
				    dis_buff[6] = 0;
                }    

			    if ((++return_time >= 10) && (clock_state != 0       ))
			    {                               // 日期、时间设置状态超过10秒无按键设置时,返回正常显示状态
				    clock_state = 0       ;
				    set_state = 0;
			    }	
		    }	
		    else                            // 按键处理
		    {
			    key_temp = read_key();		// 调用按键接口程序
			    if (key_temp)				// 确认有键按下
			    {
				    return_time = 0;
				    if (key_temp == 1               )
				    {
					    if (clock_state == 0       )
					    {
						    clock_state = 1       ;
						    set_state = 0;
						    for (i=0;i<=2;i++)
						    { time_set[i] = time[i];}
					    }
					    else if (clock_state == 1        && set_state == 0)
					    {
						    clock_state = 2       ;
						    set_state = 0;
						    for (i=0;i<=2;i++)
						    { time_set[i] = date[i];}
					    }
					    else if (clock_state == 2        && set_state == 0)
					    {
						    clock_state = 0       ;
						    set_state = 0;
					    }
				    }

				    if (key_temp == 4                &&  clock_state == 0       )
				    {
					    clock_state = 3       ;
					    set_state = 0;
					    for (i=0;i<=2;i++)
					    {  time_set[i] = date_set[i];}
				    }

				    if (key_temp == 3                && clock_state != 0       )
				    {
					    set_state++;

					    if ((set_state == 4 || set_state ==5) && (clock_state == 2        || clock_state == 3       ))
					    {
						    if (time_set[1] == 0) time_set[1] = 1;
						    i = time_set[1];
						    if ( i == 4 || i == 6 || i == 9 || i == 11 )
						    {
							    if (!(set_state%2))
							    {
								    if (time_set[2] >= 31) time_set[2] = 0;	    // 以下设置时间调整
							    }
							    else
							    {
								    if (time_set[2] >= 31) time_set[2] = 30;	// 以下设置时间调整
							    }
						    }
						    else if (i == 2)
						    {
							    y_temp = 2000 + (int) time_set[0];
							    if ((y_temp % 400 == 0)  || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
							    {
								    if (!(set_state%2))
								    {
									    if (time_set[2] >= 30) time_set[2] = 0;	// 以下设置时间调整
								    }
								    else
								    {
									    if (time_set[2] >= 30) time_set[2] = 30;	// 以下设置时间调整
								    }
							    }
							    else
							    {
								    if (!(set_state%2))
								    {
									    if (time_set[2] >= 29) time_set[2] = 0;	// 以下设置时间调整
								    }
								    else
								    {
									    if (time_set[2] >= 29) time_set[2] = 20;	// 以下设置时间调整
								    }
							    }
						    }	
						    else
						    {
							    if (!(set_state%2))
							    {
								    if (time_set[2] >= 32) time_set[2] = 0;	// 以下设置时间调整
							    }
							    else
							    {
								    if (time_set[2] >= 32) time_set[2] = 30;	// 以下设置时间调整
							    }
						    }
						    if (time_set[2] == 0) time_set[2] = 1;
					    }
					
					    if (set_state >= 6)
					    {
						    if (clock_state == 1       )
							    rtc_set_time(time_set[0],time_set[1],time_set[2]);
						    else if (clock_state == 2       )
							    rtc_set_date(time_set[2],time_set[1],time_set[0]);
						    else if (clock_state == 3       )
						    {
							    e_date_set[0] = time_set[0];
							    e_date_set[1] = time_set[1];
							    e_date_set[2] = time_set[2];
							    date_set[0] = time_set[0];
							    date_set[1] = time_set[1];
							    date_set[2] = time_set[2];
						    }
						    clock_state = 0       ;
						    set_state = 0;
					    }
				    }

				    if (key_temp == 2                && clock_state != 0       )
				    {
					    if (!(set_state%2))
						    time_set[set_state/2] += 10;
					    else
					    {
						    if ((time_set[set_state/2] % 10) == 9)
					 		    time_set[set_state/2] -= 9;
					 	    else
					 		    time_set[set_state/2]+=1;
					    }
					
					    if (clock_state == 1       )
					    {
						    if (!(set_state%2))
						    {
							    if (time_set[0] >= 24)	time_set[0] = 0;
						    }
						    else
						    {
							    if (time_set[0] >= 24)	time_set[0] = 20;
						    }
						    if (time_set[1] >= 60)	time_set[1]-= 60;	
						    if (time_set[2] >= 60) time_set[2]-= 60;	// 以下设置时间调整
					    }
					    else
					    {
						    if (time_set[0] >= 100) time_set[0] -= 100;

						    if (!(set_state%2))
						    {
							    if (time_set[1] >= 13)	time_set[1] = 0;
						    }	
						    else
						    {
							    if (time_set[1] >= 13)	time_set[1] = 10;
						    }	
						    if (time_set[1] == 0) time_set[1] = 1;
						
						    if (set_state == 4 || set_state == 5)
						    {
							    i = time_set[1];
							    if ( i == 4 || i == 6 || i == 9 || i == 11 )
							    {
								    if (!(set_state%2))
								    {
									    if (time_set[2] >= 31) time_set[2] = 0;	// 以下设置时间调整
								    }
								    else
								    {
									    if (time_set[2] >= 31) time_set[2] = 30;	// 以下设置时间调整
								    }
							    }	
							    else if (i == 2)
							    {
								    y_temp = 2000 + (int) time_set[0];
								    if ((y_temp % 400 == 0)  || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
								    {
									    if (!(set_state%2))
									    {
										    if (time_set[2] >= 30) time_set[2] = 0;	// 以下设置时间调整
									    }
									    else
									    {
										    if (time_set[2] >= 30) time_set[2] = 30;	// 以下设置时间调整
									    }
								    }
								    else
								    {
									    if (!(set_state%2))
									    {
										    if (time_set[2] >= 29) time_set[2] = 0;	// 以下设置时间调整
									    }
									    else
									    {
										    if (time_set[2] >= 29) time_set[2] = 20;	// 以下设置时间调整
									    }
								    }
							    }	
							    else
							    {
								    if (!(set_state%2))
								    {
									    if (time_set[2] >= 32) time_set[2] = 0;	// 以下设置时间调整
								    }
								    else
								    {
									    if (time_set[2] >= 32) time_set[2] = 30;	// 以下设置时间调整
								    }
							    }	
						    }	
					    }
                    }
			    }	
		    }
	    }
	    else
	    {
		    rtc_get_time(&time[0],&time[1],&time[2]);       // 读当前时间	

		    switch (clock_state)                            // 根据系统不同状态显示不同内容
		    {
			    case 0       :
				    if (time_dis_on)
				    {
					    time_to_disbuffer(time);
					    if (point_on)	
						    dis_buff[9] = 10;
					    else
						    dis_buff[9] = 12;
				    }	
				    else
				    {
					    time_to_disbuffer(date);
					    if (point_on)	
						    dis_buff[9] = 11;
					    else
						    dis_buff[9] = 12;
				    }
				    break;
			    case 1       :
				    time_to_disbuffer(time_set);
				    dis_buff[9] = 10;
				    break;
			    case 2       :
				    time_to_disbuffer(time_set);
				    dis_buff[9] = 11;
				    break;
			    case 3       :
				    time_to_disbuffer(time_set);
				    dis_buff[9] = 11;
				    break;
		    }
	    }
    }
}

⌨️ 快捷键说明

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