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

📄 main.c

📁 使用显示芯片ZLG7290
💻 C
📖 第 1 页 / 共 2 页
字号:
							}
							break;
					}
					break;
				case 3:				 //移位键盘
					if((bRealkey2==1)&&(cNum_key1!=4))
					{
						cNum_key2>>=1;
						if ( cNum_key2 ==0x00 )
						{
							cNum_key2=0x80;
						}
					}
					if ((cNum_key1==4)&&(bRealkey2==0))
					{
						bClear_stopwatch=0;
						iCounter_Inter3_temp=0;
						for (j=0;j<8 ;j++ )
						{
							uStopwatch_DisBuffer[j]=0;
						}
						uStopwatch_DisBuffer[2]=27;
						uStopwatch_DisBuffer[5]=27;
					}
					
			    	break;
				case 4:				//在设置时钟时等为上移键(增大)
					if (bRealkey2==1) //处于设置模式下
					{
						switch (cNum_key1)
						{
							case 1:	//对时间进行处理
								switch (cNum_key2)
								{
									case 0x01:
									case 0x02:
										uHour = uTime_DisBuffer[0]*10+uTime_DisBuffer[1];
										if (uHour<23)
										{
											uHour++;
										}else
										{
											uHour = 0;
										}
										uTime_DisBuffer[0] = uHour/10;
										uTime_DisBuffer[1] = uHour%10;
										break;
									//case 0X04:
									//	break;
									case 0X08:
										if (uTime_DisBuffer[3]==5)
										{
											uTime_DisBuffer[3]=0;
										}else{
											uTime_DisBuffer[3]++;
										}
										break;
									case 0X10:
										if (uTime_DisBuffer[4]==9)
										{
											uTime_DisBuffer[4]=0;
										}else{
											uTime_DisBuffer[4]++;
										}
										break;
									//case 0X20:
									//	break;
									case 0X40:
										if (uTime_DisBuffer[6]==5)
										{
											uTime_DisBuffer[6]=0;
										}else{
											uTime_DisBuffer[6]++;
										}
										break;
									case 0X80:
										if (uTime_DisBuffer[7]==9)
										{
											uTime_DisBuffer[7]=0;
										}else{
											uTime_DisBuffer[7]++;
										}
										break;
								
								}
								break;
							case 2:	//对年月日进行处理
							iAll_time=0;
								switch (cNum_key2)
								{
									case 0x01:
										if (uYear_DisBuffer[0]<9)
										{
											uYear_DisBuffer[0]++;
										}else
										{
											uYear_DisBuffer[0]=0;
										}
										break;
									case 0x02:
										if (uYear_DisBuffer[1]<9)
										{
											uYear_DisBuffer[1]++;
										}else
										{
											uYear_DisBuffer[1]=0;
										}	
										break;
									case 0X08:
									case 0X10:
										uMonth =uYear_DisBuffer[3]*10+uYear_DisBuffer[4];
										if (uMonth<12)
										{
											uMonth++;
										}else
										{
											uMonth=1;
										}
										uYear_DisBuffer[3]=uMonth/10;//////////////////////////////////////////////
										uYear_DisBuffer[4]=uMonth%10;//////////////////////////////////////////////
										break;
									case 0X40:
									case 0X80:
										uMonth =uYear_DisBuffer[3]*10+uYear_DisBuffer[4];
										uDate=uYear_DisBuffer[6]*10+uYear_DisBuffer[7];
										switch (uMonth)  //几月份,大月小月
										{	//大月
											case 1:
											case 3:
											case 5:
											case 7:
											case 8:
											case 10:
											case 12:
												if (uDate<31)
												{
													uDate++;
												}else
												{
													uDate=1;
												}
												break;
											//平月
											case 2:
												iYear = 2000+uYear_DisBuffer[0]*10+uYear_DisBuffer[1];
												if( (!(iYear%4)) && ( ((!(iYear%100))&&(!(iYear%400))) || (iYear%100) ) )
												{
													if (uDate<29)
													{
														uDate++;
													}else
													{
														uDate=1;
													}
												}else
												{
													if (uDate<28)
													{
														uDate++;
													}else
													{
														uDate=1;
													}	
												}
												break;
											//小月
											case 4:
											case 6:
											case 9:
											case 11:
												if (uDate<30)
												{
													uDate++;
												}else
												{
													uDate=1;
												}
												break;										
										}
										uYear_DisBuffer[6]=uDate/10;//////////////////////////////////////////////
										uYear_DisBuffer[7]=uDate%10;/////////////////////////////////////////////
										break;
								
								}
								//与星期关联
								//iAll_time=2000+uYear_DisBuffer[0]*10+uYear_DisBuffer[1];
								iYear = 2000+uYear_DisBuffer[0]*10+uYear_DisBuffer[1];
								uMonth =uYear_DisBuffer[3]*10+uYear_DisBuffer[4];
								uDate=uYear_DisBuffer[6]*10+uYear_DisBuffer[7];
								//年份
								for (i=2000;i<iYear;i++)
								{
									if( (!(i%4)) && ( ((!(i%100))&&(!(i%400))) || (i%100) ) ) //闰年
									{
										iAll_time+=366;	
									}else
									{
										iAll_time+=365;	
									}
								}
								//月份
								if (uMonth==2)
								{
									iAll_time+=31;
															}
								if ( (!(i%4)) && ( ((!(i%100))&&(!(i%400))) || (i%100) ) )   //闰年
								{								
									if (uMonth==3)
									{
										iAll_time+=60;										
									}
									if (uMonth==4)
									{
										iAll_time+=91;
									}
									if (uMonth==5)
									{
										iAll_time+=121;
									}
									if (uMonth==6)
									{
										iAll_time+=152;
									}
									if (uMonth==7)
									{
										iAll_time+=182;
									}
									if (uMonth==8)
									{
										iAll_time+=213;
									}
									if (uMonth==9)
									{
										iAll_time+=244;
									}
									if (uMonth==0)
									{
										iAll_time+=274;
									}
									if (uMonth==11)
									{
										iAll_time+=304;
									}
									if (uMonth==12)
									{
										iAll_time+=335;
									}
									//if (uMonth==12)
									//{
									//	iAll_time+=366;
									//}
								}else
								{
									if (uMonth==3)
									{
										iAll_time+=59;										
									}
									if (uMonth==4)
									{
										iAll_time+=90;
									}
									if (uMonth==5)
									{
										iAll_time+=120;
									}
									if (uMonth==6)
									{
										iAll_time+=151;
									}
									if (uMonth==7)
									{
										iAll_time+=181;
									}
									if (uMonth==8)
									{
										iAll_time+=212;
									}
									if (uMonth==9)
									{
									iAll_time+=243;
									}
									if (uMonth==10)
									{
										iAll_time+=273;
									}
									if (uMonth==11)
									{
										iAll_time+=303;
									}
									if (uMonth==12)
									{
										iAll_time+=334;
									}
								//if (uMonth==12)
								//{
									//	iAll_time+=365;
								//}
								}
								iAll_time+=(uDate-1);
								uWeek_DisBuffer[7]=(iAll_time%7+6)%7;
								if(uWeek_DisBuffer[7]==0)
								{
									uWeek_DisBuffer[7]=7;	
								}
								//日期
								break;
							case 3:	//对星期进行处理
								if (cNum_key2==0x10)
								{
									if (uWeek_DisBuffer[7]<7)
									{
										uWeek_DisBuffer[7]++;
									}else
									{
										uWeek_DisBuffer[7]=1;
									}
								}
								break;
							case 4: //对秒表进行处理
								break;
							case 5:	//对闹钟进行处理
								switch (cNum_key2)
								{
									case 0x01:
									case 0x02:
										uHour = uAlarm_DisBuffer[0]*10+uAlarm_DisBuffer[1];
										if (uHour<23)
										{
											uHour++;
										}else
										{
											uHour = 0;
										}
										uAlarm_DisBuffer[0] = uHour/10;
										uAlarm_DisBuffer[1] = uHour%10;
										break;
									//case 0X04:
									//	break;
									case 0X08:
										if (uAlarm_DisBuffer[3]==5)
										{
											uAlarm_DisBuffer[3]=0;
										}else{
											uAlarm_DisBuffer[3]++;
										}
										break;
									case 0X10:
										if (uAlarm_DisBuffer[4]==9)
										{
											uAlarm_DisBuffer[4]=0;
										}else{
											uAlarm_DisBuffer[4]++;
										}
										break;
									//case 0X20:
									//	break;
									case 0X40:
										if (uAlarm_DisBuffer[6]==5)
										{
											uAlarm_DisBuffer[6]=0;
										}else{
											uAlarm_DisBuffer[6]++;
										}
										break;
									case 0X80:
										if (uAlarm_DisBuffer[7]==9)
										{
											uAlarm_DisBuffer[7]=0;
										}else{
											uAlarm_DisBuffer[7]++;
										}
										break;
								}
								break;
						}
						
					}
					break;
				case 5:				//在设置时钟时等为下移键(减小)
					break;
				default:			//默认无操作
					break;
			
			}
		}
		//显示

		switch (cNum_key1)
		{
			case 0:
			case 1:
				DispBuf(uTime_DisBuffer);
				//设置闪烁控制寄存器
				ZLG7290_WriteReg(ZLG7290_FlashOnOff,0x11);
				ZLG7290_Flash(cNum_key2);
				break;
			case 2:
				DispBuf(uYear_DisBuffer);
				ZLG7290_Flash(cNum_key2);
				break;
			case 3:
				DispBuf(uWeek_DisBuffer);
				ZLG7290_Flash(cNum_key2);
				break;
			case 4:
				DispBuf(uStopwatch_DisBuffer);
				ZLG7290_Flash(cNum_key2);
				break;
			case 5:
				DispBuf(uAlarm_DisBuffer);
				ZLG7290_Flash(cNum_key2);
				break;
		}
		PCON |= 0x01;	//使CPU进入空闲状态,任一中断可唤醒
	}
}

⌨️ 快捷键说明

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