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

📄 menu.c

📁 基于AT89S52单片机的时钟温度显示程序
💻 C
📖 第 1 页 / 共 2 页
字号:
							/**/
							/**/				sub1_2();
							/**/
							/**/				temp_D[0]=TIME.YEAR;
							/**/				temp_D[1]=TIME.MONTH;
							/**/				temp_D[2]=TIME.DATE;
							/**/				temp_D[3]=TIME.DAY;
							/**/
							/**/				for(i=0;i<4;i++)
							/**/				{
							/**/					x[i][0]=(temp_D[i]-temp_D[i]%10)/10+0x30;
							/**/					x[i][1]=temp_D[i]%10+0x30;
							/**/					DIS_LCD(3,2*i+1,x[i],2);
							/**/				}
							/***********************************************年月日周输入*********************************************/
							/**/				for(i=0;i<4;i++)
							/**/				{
							/**/					jump=1;
							/**/					while(jump)
							/**/					{
							/**/						do
							/**/						{
							/**/							keynum=KEY_SCAN();
							/**/						}while(!keynum);
							/**/	
							/**/						switch(keynum)
							/**/						{
							/**/							case 1: if(temp_D[0]==99)  {temp_D[0]=0; 	break;}
							/**/									if(temp_D[1]==12)  {temp_D[1]=0; 	break;}
							/**/									if(temp_D[2]==28&&temp_D[1]==2&&temp_D[0]%4==0) 
							/**/													   {temp_D[2]=0; 	break;}
							/**/									if(temp_D[2]==29&&temp_D[1]==2) 
							/**/									                   {temp_D[2]=0; 	break;}
							/**/									if(temp_D[2]==30&&temp_D[1]==4&&temp_D[1]==6&&temp_D[1]==9&&temp_D[1]==11) 
							/**/													   {temp_D[2]=0; 	break;}
							/**/									if(temp_D[2]==31)  {temp_D[2]=0; 	break;}
							/**/									if(temp_D[3]== 7)  {temp_D[2]=0; 	break;}
							/**/									temp_D[i]++;	break;
							/**/							case 2: if(temp_D[0]== 0)  {temp_D[0]=99; 	break;}
							/**/									if(temp_D[1]== 0)  {temp_D[1]=12; 	break;}
							/**/									if(temp_D[2]== 0&&temp_D[1]==2&&temp_D[0]%4==0) 
							/**/													   {temp_D[2]=28; 	break;}
							/**/									if(temp_D[2]== 0&&temp_D[1]==2) 
							/**/									                   {temp_D[2]=29; 	break;}
							/**/									if(temp_D[2]== 0&&temp_D[1]==4&&temp_D[1]==6&&temp_D[1]==9&&temp_D[1]==11) 
							/**/													   {temp_D[2]=30; 	break;}
							/**/									if(temp_D[2]== 0)  {temp_D[2]=31; 	break;}
							/**/									if(temp_D[3]== 0)  {temp_D[2]=7; 	break;}
							/**/									temp_D[i]--;	break;
							/**/							case 3: if(temp_D[0]>=95)  {temp_D[0]-=95; 	break;}
							/**/									if(temp_D[1]>= 8)  {temp_D[1]-=8; 	break;}
							/**/									if(temp_D[2]>=24&&temp_D[1]==2&&temp_D[0]%4==0) 
							/**/													   {temp_D[2]-=24; 	break;}
							/**/									if(temp_D[2]>=25&&temp_D[1]==2) 
							/**/									                   {temp_D[2]-=25; 	break;}
							/**/									if(temp_D[2]>=26&&temp_D[1]==4&&temp_D[1]==6&&temp_D[1]==9&&temp_D[1]==11) 
							/**/													   {temp_D[2]-=26; 	break;}
							/**/									if(temp_D[2]>=27)  {temp_D[2]-=27; 	break;}
							/**/									if(temp_D[3]>= 3)  {temp_D[2]-=3; 	break;}
							/**/									temp_D[i]+=5;	break;
							/**/				   			case 4: if(temp_D[0]<=4)   {temp_D[0]+=95; 	break;}
							/**/									if(temp_D[1]<=4)   {temp_D[1]+=8; 	break;}
							/**/									if(temp_D[2]<=4&&temp_D[1]==2&&temp_D[0]%4==0) 
							/**/													   {temp_D[2]+=24; 	break;}
							/**/									if(temp_D[2]<=4&&temp_D[1]==2) 
							/**/									                   {temp_D[2]+=25; 	break;}
							/**/									if(temp_D[2]<=4&&temp_D[1]==4&&temp_D[1]==6&&temp_D[1]==9&&temp_D[1]==11) 
							/**/													   {temp_D[2]+=26; 	break;}
							/**/									if(temp_D[2]<=4)   {temp_D[2]+=27; 	break;}
							/**/									if(temp_D[3]<=4)   {temp_D[2]+=3; 	break;}
							/**/									temp_D[i]-=5;	break;
							/**/							case 5: jump=0;
							/**/						}	//switch
							/**/
							/**/						x[i][0]=(temp_D[i]-temp_D[i]%10)/10+0x30;
							/**/						x[i][1]=temp_D[i]%10+0x30;
							/**/						DIS_LCD(3,2*i+1,x[i],2);
							/**/					}	//while
							/**/				}	//for
							/**/		
							/**/				TIME.YEAR  	= temp_D[0];
							/**/				TIME.MONTH 	= temp_D[1];
							/**/				TIME.DATE 	= temp_D[2];
							/**/				TIME.DAY	= temp_D[3];
							/**/
							/**/				return TRUE;
							/**/			}	//fun1_1
							/********************************************************************************************************/
						
						
							/********************************1)扩展菜单_子3功能服务函数(保存设置)************************************/
							/**/		bool fun1_3(void)
							/**/		{
							/**/			v_Set1302();
							/**/			return TRUE;
							/**/		}
							/********************************************************************************************************/
			


				/************************************2)扩展菜单功能服务函数(LCD背光)*************************************************/	
				/**/			
				/**/			bool fun2(void)
				/**/			{
				/**/				sub2();			//2)扩展菜单调用
				/**/				while(1)
				/**/				{
				/**/					do			//扫描并等待按键
				/**/					{
				/**/						keynum=KEY_SCAN();
				/**/					}while(!keynum);
				/**/					
				/**/					switch(keynum)
				/**/					{
				/**/						case 2:
				/**/							W_8255(0x06,1);	//LCD背光点亮
				/**/							break;
				/**/					    case 3:
				/**/							W_8255(0x07,1);	//LCD背光取消
				/**/							break;
				/**/						case 4:
				/**/							return TRUE;
				/**/					}	//switch
				/**/				}	//while
				/**/			}	//fun2
				/********************************************************************************************************************/
				
				

				/****************************************4)扩展菜单功能服务函数******************************************************/
				/**/			bool fun4(void)
				/**/			{
				/**/				sub4();			//4)扩展菜单调用
				/**/				while(1)
				/**/				{
				/**/					do			//扫描并等待按键
				/**/					{
				/**/						keynum=KEY_SCAN();
				/**/					}while(!keynum);
				/**/		
				/**/					switch(keynum)
				/**/					{
				/**/						case 2:
				/**/							fun4_0();
				/**/						case 3:
				/**/							fun4_1();
				/**/							break;
				/**/						case 4:
				/**/							return TRUE;
				/**/					}	//switch				
				/**/				}	//while
				/**/			}	//fun4
				/********************************************************************************************************************/

				
							/********************************4)扩展菜单_子0功能服务函数(测试阶段)************************************/
							/**/		bool fun4_0(void)
							/**/		{
							/**/			char str[8],a,b,tph_t,tpl_t;
							/**/			struct S_TIME x; 
							/**/
							/**/			W_LCD(0x01,1);		//清屏
							/**/			delayms(10);
							/**/
							/**/			LCDLineXy(0,0,62,0);
							/**/			LCDLineXy(62,1,62,62);
							/**/			LCDLineXy(61,62,0,62);
							/**/			LCDLineXy(0,61,0,1);
							/**/
							/**/			DIS_LCD(1,5,"时间:",5);
							/**/
							/**/			INDEX(TIME.HR,TIME.MIN,TIME.SEC);
							/**/			
							/**/			while(1)
							/**/			{
							/**/				x=TIME;	
							/**/				v_Get1302();
							/**/
							/**/				INDEX(TIME.HR,TIME.MIN,TIME.SEC);
							/**/				a=TIME.HR>>4;
							/**/				b=TIME.HR&0x0F;
							/**/				str[0]=a+0x30;
							/**/				str[1]=b+0x30;
							/**/				str[2]=':';
							/**/				a=TIME.MIN>>4;
							/**/				b=TIME.MIN&0x0F;
							/**/				str[3]=a+0x30;
							/**/				str[4]=b+0x30;
							/**/				str[5]=':';
							/**/				a=TIME.SEC>>4;
							/**/				b=TIME.SEC&0x0F;
							/**/				str[6]=a+0x30;
							/**/				str[7]=b+0x30;
							/**/					
							/**/				DIS_LCD(2,5,str,8);
							/**/			}	//while
							/**/
							/**/			return TRUE;
							/**/		}
							/********************************************************************************************************/
						
							/********************************4)扩展菜单_子1功能服务函数(运行开始)************************************/
							/**/		bool fun4_1(void)
							/**/		{
							/**/			uchar tph_t,tpl_t;
							/**/			struct S_TIME x; 
							/**/
							/**/			sub4_1();
							/**/			DIS_D_Z();
							/**/			DIS_LCD(1,7,DIS_BUF_D[0],2);	//年
							/**/			DIS_LCD(2,1,DIS_BUF_D[1],2);	//月
							/**/			DIS_LCD(2,3,DIS_BUF_D[2],2);	//日
							/**/			DIS_LCD(2,8,DIS_BUF_D[3],2);	//星期
							/**/			DIS_LCD(3,2,DIS_BUF_D[4],2);	//时
							/**/			DIS_LCD(3,4,DIS_BUF_D[5],2);	//分
							/**/			DIS_LCD(3,6,DIS_BUF_D[6],2);	//秒
					
							/**/			//DIS_T_Z();
							/**/			//DIS_LCD(4,3,DIS_BUF_T,9);
							/**/
							/**/			while(1)
							/**/			{	
							/**/				v_Get1302();
							/**/				DIS_D_Z();

							/**/				DIS_LCD(1,7,DIS_BUF_D[0],2);
							/**/				DIS_LCD(2,1,DIS_BUF_D[1],2);	
							/**/				DIS_LCD(2,3,DIS_BUF_D[2],2);	
							/**/				DIS_LCD(2,8,DIS_BUF_D[3],2);	
							/**/				DIS_LCD(3,2,DIS_BUF_D[4],2);	
							/**/				DIS_LCD(3,4,DIS_BUF_D[5],2);
												DIS_LCD(3,6,DIS_BUF_D[6],2);
												
												delayms(500);

							/**/			}	//while
							/**/			return TRUE;
							/**/		}
							/********************************************************************************************************/

⌨️ 快捷键说明

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