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

📄 menu.c

📁 51单片机C语言菜单编程和演示
💻 C
📖 第 1 页 / 共 2 页
字号:
				 P0=table[10];
			     P2=0xef;
				 delayms(2);
		         break;}	   
		case 4:	{P2=0xff;				   //显示第二层第3个菜单 oN
		         P0=table[15];
			     P2=0xdf;
				 delayms(2);
 				 P2=0xff;
				 P0=table[14];
			     P2=0xef;
				 delayms(2);
		         break;}	   
		case 5:	{P2=0xff;				   //显示第二层第4个菜单 oFF
		         P0=table[16];
			     P2=0xbf;
				 delayms(2);
 				 P2=0xff;
				 P0=table[16];
			     P2=0xdf;
				 delayms(2);
 				 P2=0xff;
				 P0=table[14];
			     P2=0xef;
				 delayms(2);
		         break;}	   			   
        case 6: {							//显示第三层第1个菜单 dateval 2007.12.10
				 
				 P2=0xff;                  
		         P0=table[(DateVal[0]%10)]&0xDF;
				 if (index_shanshuo == 0)  	          //选闪烁位
				 {
                    if (en_shanshuo == 0)  P2=0x7f;	  //闪烁控制
				 }
				 else  P2=0x7f;
				 delayms(2);

 				 P2=0xff;
				 P0=table[(DateVal[0]/10)];
				 if (index_shanshuo == 0)
				 {
                    if (en_shanshuo == 0)  P2=0xbf;
				 }
				 else  P2=0xbf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DateVal[1]%10)]&0xDF;
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xdf;
				 }
				 else  P2=0xdf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DateVal[1]/10)];
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xef;
				 }
				 else  P2=0xef;
				 delayms(2);
				 
				 P2=0xff;
				 P0=table[(DateVal[2]%10)]&0xDF;
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xf7;
				 }
				 else  P2=0xf7;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DateVal[2]/10)];
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xfb;
				 }
				 else  P2=0xfb;
				 delayms(2);

				 P2=0xff;
				 P0=table[0];
				 P2=0xfd;
				 delayms(2);

				 P2=0xff;
				 P0=table[2];
				 P2=0xfe;
				 delayms(2);

		         break;}	   
		case 7:	{P2=0xff;			   //显示第三层第2个菜单 time值
		         P0=table[(TimeVal[0]%10)]&0xDF;
				 if (index_shanshuo == 0)  	          //选闪烁位
				 {
                    if (en_shanshuo == 0)  P2=0x7f;	  //闪烁控制
				 }
				 else  P2=0x7f;
				 delayms(2);

 				 P2=0xff;
				 P0=table[(TimeVal[0]/10)];
				 if (index_shanshuo == 0)
				 {
                    if (en_shanshuo == 0)  P2=0xbf;
				 }
				 else  P2=0xbf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(TimeVal[1]%10)]&0xDF;
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xdf;
				 }
				 else  P2=0xdf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(TimeVal[1]/10)];
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xef;
				 }
				 else  P2=0xef;
				 delayms(2);
				 
				 P2=0xff;
				 P0=table[(TimeVal[2]%10)]&0xDF;
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xf7;
				 }
				 else  P2=0xf7;
				 delayms(2);

				 P2=0xff;
				 P0=table[(TimeVal[2]/10)];
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xfb;
				 }
				 else  P2=0xfb;
				 delayms(2);

		         break;}	   
		case 8:	{P2=0xff;			   //显示第三层第3个菜单 timeON
		         P0=table[(DingTimeOnVal[0]%10)]&0xDF;
				 if (index_shanshuo == 0)  	          //选闪烁位
				 {
                    if (en_shanshuo == 0)  P2=0x7f;	  //闪烁控制
				 }
				 else  P2=0x7f;
				 delayms(2);

 				 P2=0xff;
				 P0=table[(DingTimeOnVal[0]/10)];
				 if (index_shanshuo == 0)
				 {
                    if (en_shanshuo == 0)  P2=0xbf;
				 }
				 else  P2=0xbf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DingTimeOnVal[1]%10)]&0xDF;
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xdf;
				 }
				 else  P2=0xdf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DingTimeOnVal[1]/10)];
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xef;
				 }
				 else  P2=0xef;
				 delayms(2);
				 
				 P2=0xff;
				 P0=table[(DingTimeOnVal[2]%10)]&0xDF;
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xf7;
				 }
				 else  P2=0xf7;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DingTimeOnVal[2]/10)];
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xfb;
				 }
				 else  P2=0xfb;
				 delayms(2);

		         break;}	   
		case 9:	{P2=0xff;			   //显示第三层第4个菜单 timeOFF
		         P0=table[(DingTimeOffVal[0]%10)]&0xDF;
				 if (index_shanshuo == 0)  	          //选闪烁位
				 {
                    if (en_shanshuo == 0)  P2=0x7f;	  //闪烁控制
				 }
				 else  P2=0x7f;
				 delayms(2);

 				 P2=0xff;
				 P0=table[(DingTimeOffVal[0]/10)];
				 if (index_shanshuo == 0)
				 {
                    if (en_shanshuo == 0)  P2=0xbf;
				 }
				 else  P2=0xbf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DingTimeOffVal[1]%10)]&0xDF;
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xdf;
				 }
				 else  P2=0xdf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DingTimeOffVal[1]/10)];
				 if (index_shanshuo == 1)
				 {
                    if (en_shanshuo == 0)  P2=0xef;
				 }
				 else  P2=0xef;
				 delayms(2);
				 
				 P2=0xff;
				 P0=table[(DingTimeOffVal[2]%10)]&0xDF;
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xf7;
				 }
				 else  P2=0xf7;
				 delayms(2);

				 P2=0xff;
				 P0=table[(DingTimeOffVal[2]/10)];
				 if (index_shanshuo == 2)
				 {
                    if (en_shanshuo == 0)  P2=0xfb;
				 }
				 else  P2=0xfb;
				 delayms(2);

		         break;}	   

		case 10:{if (n_yanshi < 150)
		         {							 //延时显示“sav ok”过2秒后跳到显示第二层菜单
			         n_yanshi++;
					 P2=0xff;
					 P0=table[18];			 // k
				   	 P2=0x7f;
					 delayms(2);
					 P2=0xff;
					 P0=table[14];			 // o
				   	 P2=0xbf;
					 delayms(2);
					 P2=0xff;
					 P0=table[19];			 // v
				   	 P2=0xef;
					 delayms(2);
					 P2=0xff;
					 P0=table[12];			 // a
				   	 P2=0xf7;
					 delayms(2);
					 P2=0xff;
					 P0=table[5];			 // s
				   	 P2=0xfb;
					 delayms(2);
				 }else
				 {
			         switch (KeyFuncIndex)
					 {
					      case 3:{index_dis = 2;	 //显示第二层第1个菜单
						          break;}              
					      case 4:{index_dis = 3;	 //显示第二层第2个菜单
						          break;}
					      case 5:{index_dis = 4;	 //显示第二层第3个菜单
						          break;}
					      case 6:{index_dis = 5;	 //显示第二层第4个菜单
						          break;}
        				  default:break;
					 }
				 }
		         break;}	   
		case 11:{P2=0xff;			   //正常显示运行值
		         P0=table[(TimeVal[0]%10)]&0xDF;
				 P2=0x7f;
				 delayms(2);

 				 P2=0xff;
				 P0=table[(TimeVal[0]/10)];
				 P2=0xbf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(TimeVal[1]%10)]&0xDF;
				 P2=0xdf;
				 delayms(2);

				 P2=0xff;
				 P0=table[(TimeVal[1]/10)];
				 P2=0xef;
				 delayms(2);
				 
				 P2=0xff;
				 P0=table[(TimeVal[2]%10)]&0xDF;
				 P2=0xf7;
				 delayms(2);

				 P2=0xff;
				 P0=table[(TimeVal[2]/10)];
				 P2=0xfb;
				 delayms(2);

		         break;}
    	  default:{index_dis = 11;
		           KeyFuncIndex = 0;
		           break;}
	}
}

void main(void)
{
	timecontrol[0]=0x20;
	timecontrol[1]=0x00;
//	wr_tdata(timecontrol,0x0e,2);  //初始化RTC8025,写控制字
	DateVal[0] = 10; DateVal[1] = 12; DateVal[2] = 7;	 //07-12-10
	TimeVal[0] = 0; TimeVal[1] = 0; TimeVal[2] = 12;	//12:00:00

	while(1)
	{
		if (enable_key)   GetKeyInput();
		if ((P3 & 0x07) == 0x07)  enable_key = 1;
		
		Display();
	}
}

⌨️ 快捷键说明

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