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

📄 main__.c

📁 CVAVR完整程序
💻 C
📖 第 1 页 / 共 2 页
字号:
						    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 != clock_nomal))
			    {                               // 日期、时间设置状态超过10秒无按键设置时,返回正常显示状态
				    clock_state = clock_nomal;
				    set_state = 0;
			    }
		    }
		    else                            // 按键处理
		    {
			    key_temp = read_key();		// 调用按键接口程序
			    if (key_temp)				// 确认有键按下
			    {
				    return_time = 0;
				    if (key_temp == key_set_1)
				    {
					    if (clock_state == clock_nomal)
					    {
						    clock_state = clock_set_1;
						    set_state = 0;
						    for (i=0;i<=2;i++)
						    { time_set[i] = time[i];}
					    }
					    else if (clock_state == clock_set_1 && set_state == 0)
					    {
						    clock_state = clock_set_2;
						    set_state = 0;
						    for (i=0;i<=2;i++)
						    { time_set[i] = date[i];}
					    }
					    else if (clock_state == clock_set_2 && set_state == 0)
					    {
						    clock_state = clock_nomal;
						    set_state = 0;
					    }
				    }

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

				    if (key_temp == key_enter && clock_state != clock_nomal)
				    {
					    set_state++;

					    if ((set_state == 4 || set_state ==5) && (clock_state == clock_set_2 || clock_state == clock_set_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 == clock_set_1)
							    rtc_set_time(time_set[0],time_set[1],time_set[2]);
						    else if (clock_state == clock_set_2)
							    rtc_set_date(time_set[2],time_set[1],time_set[0]);
						    else if (clock_state == clock_set_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 = clock_nomal;
						    set_state = 0;
					    }
				    }

				    if (key_temp == key_up && clock_state != clock_nomal)
				    {
					    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 == clock_set_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 clock_nomal:
				    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 clock_set_1:
				    time_to_disbuffer(time_set);
				    dis_buff[9] = 10;
				    break;
			    case clock_set_2:
				    time_to_disbuffer(time_set);
				    dis_buff[9] = 11;
				    break;
			    case clock_set_3:
				    time_to_disbuffer(time_set);
				    dis_buff[9] = 11;
				    break;
		    }
	    }
    }
}

⌨️ 快捷键说明

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