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

📄 menu.c

📁 基于MST-G240128点阵液晶的 状态机机制 人机界面四级滚屏菜单 源代码 ,带时间片机制模拟操作系统
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "LZK.h"
//////////////////////////////////////////////////////////////////////////////////////////
void Menue(uint8 search)
{
   seek=search;
   switch(search)
   {
   case 0:LCD_CAstr(0,0,"主菜单",0,1);
          LCD_CAstr(16,2,"(1)静态参树设置",0,0);
		  LCD_CAstr(16,4,"(2)运行参树设置",0,0);
          LCD_CAstr(16,6,"(3)通讯与热备",0,0);
		  LCD_CAstr(16,8,"(4)录波与显波",0,0);
		  LCD_CAstr(16,10,"(5)继电器状态",0,0);
		  LCD_CAstr(16,12,"(6)历史故障",0,0);
		  LCD_CAstr(16,14,"(7)其它",0,0);
          break;
   case 1:LCD_CAstr(0,0,"静态参树设置",0,1);
          LCD_CAstr(16,2,"(101)一级系统参树设置",0,0);
          LCD_CAstr(16,4,"(102)二级系统参树设置",0,0);
          break;
   case 2:LCD_CAstr(0,0,"运行参树设置",0,1);

          LCD_CAstr(16,2,"(201)励磁方式:",0,0);
		  switch(EM_ModeCMD)
		  {
		  case 0:LCD_CAstr(160,2,"恒压",0,0);
				 break;
		  case 1:LCD_CAstr(160,2,"恒流",0,0);
				 break;
		  case 2:LCD_CAstr(160,2,"恒角度",0,0);
				 break;
		  case 3:LCD_CAstr(160,2,"恒功率因树",0,0);
				 break;
          case 4:LCD_CAstr(160,2,"恒无功    ",0,0);
		          break;
		  default:break;
		  }
          
		  LCD_CAstr(16,4,"(202)励磁电压:",0,0);
          LCD_Num(160,4,EM_VoltCMD,0,"V");

		  LCD_CAstr(16,6,"(203)励磁电流:",0,0);
          LCD_Num(160,6,EM_CurrCMD,0,"A");

		  LCD_CAstr(16,8,"(204)触发角度:",0,0);
          LCD_Num(160,8,EM_AnglCMD,0,"^");
          
		  LCD_CAstr(16,10,"(205)功率因树:",0,0);
          LCD_CAstr(160,10,"0.",0,0);
          LCD_Num(176,10,EM_PwrFactCMD,0," ");

          LCD_CAstr(16,12,"(206)无功功率:",0,0);
          LCD_Num(160,12,EM_NulPwrCMD,0,"Kvar");

          break;
   case 3:LCD_CAstr(0,0,"通讯与热备",0,1);

          LCD_CAstr(16,2,"(301)励磁柜地址:",0,0);
          LCD_Num(152,2,EM_arkadress,0," ");

          LCD_CAstr(16,4,"(302)控制器地址:",0,0);
          LCD_Num(152,4,EM_conadress,0," ");

		  LCD_CAstr(16,6,"(303)RS232波特率:",0,0);
          switch(EM_baud232)
		  {
		  case 1:LCD_CAstr(152,6,"4800bit/s",0,0);
		         break;
		  case 2:LCD_CAstr(152,6,"9600bit/s",0,0);
		         break;
          case 3:LCD_CAstr(152,6,"19200bit/s",0,0);
		         break;
		  default:break;
		  }

		  LCD_CAstr(16,8,"(304)RS485波特率:",0,0);
		  switch(EM_baud485)
		  {
		  case 1:LCD_CAstr(152,8,"9600bit/s",0,0);
		         break;
		  case 2:LCD_CAstr(152,8,"19200bit/s",0,0);
		         break;
          case 3:LCD_CAstr(152,8,"115200bit/s",0,0);
		         break;
		  default:break;
		  }

		  LCD_CAstr(16,10,"(305)双机热备:",0,0);
		  if(EM_BackUp==1)
		  LCD_CAstr(152,10,"开",0,0);
		  else
		  LCD_CAstr(152,10,"关",0,0);

          LCD_CAstr(16,12,"(306)手动切换:",0,0);
		  if( RTU_MaOrSlave==0 )
		  LCD_CAstr(152,12,"主机",0,0);
          else if( RTU_MaOrSlave==1 )
		  LCD_CAstr(152,12,"从机",0,0);
		         
          break;
   case 4:
	      LCD_CAstr(0,0,"录波与显波",0,1);
         LCD_CAstr(16,2,"(401)录波模式:",0,0);
			switch(EN_RecMode)
			{
			case 1:LCD_CAstr(136,2,"160点/周波",0,0);
			      break;
			case 2:LCD_CAstr(136,2,"80点/周波 ",0,0);
			      break;
			case 4:LCD_CAstr(136,2,"40点/周波 ",0,0);
			      break;
			default:break;
			}

			LCD_CAstr(16,4,"(402)手动录波:",0,0);
			switch(EN_ManualRec)
			{
			case 0:
					LCD_CAstr(136,4,"关",0,0);
					break;
			case 1:
					LCD_CAstr(136,4,"开",0,0);
					break;
         default:break;
			}
			      

			LCD_CAstr(16,6,"(403)启动录波:",0,0);
			switch(EN_StartRec)
			{
			case 0:
			   LCD_CAstr(136,6,"关",0,0);
				break;
			case 1:
			   LCD_CAstr(136,6,"开",0,0);
				break;
         default:break;
			}

			LCD_CAstr(16,8,"(404)故障录波:",0,0);
			switch(EN_ErrorRec)
			{
			case 0:
					LCD_CAstr(136,8,"关",0,0);
					break;
			case 1:
					LCD_CAstr(136,8,"开",0,0);
					break;
         default:break;
			}

			LCD_CAstr(16,10,"(405)*CH1波形:",0,0);
			switch(EN_ch1)
			{
			case 5:LCD_CAstr(136,10,"无",0,0);
			     break;
			case 1:LCD_CAstr(136,10,"励磁电压",0,0);
			     break;
			case 2:LCD_CAstr(136,10,"励磁电流",0,0);
			     break;
			case 3:LCD_CAstr(136,10,"定子电压",0,0);
			     break;
			case 4:LCD_CAstr(136,10,"定子电流",0,0);
			     break;
			default:break;
			}

		   LCD_CAstr(16,12,"(406)*CH2波形:",0,0);
			switch(EN_ch2)
			{
			case 5:LCD_CAstr(136,12,"无",0,0);
			     break;
			case 1:LCD_CAstr(136,12,"励磁电压",0,0);
			     break;
			case 2:LCD_CAstr(136,12,"励磁电流",0,0);
			     break;
			case 3:LCD_CAstr(136,12,"定子电压",0,0);
			     break;
			case 4:LCD_CAstr(136,12,"定子电流",0,0);
			     break;
			default:break;
			}

		   LCD_CAstr(16,14,"(407)波形显示:",0,0);
			switch(EN_SowType)
			{
			case 1:LCD_CAstr(136,14,"在线波形",0,0);
			     break;
			case 2:LCD_CAstr(136,14,"启动波形",0,0);
			     break;
			case 3:LCD_CAstr(136,14,"缺相波形",0,0);
			     break;
			case 4:LCD_CAstr(136,14,"投励失败波形",0,0);
			     break;
			case 5:LCD_CAstr(136,14,"失控波形",0,0);
			     break;
			case 6:LCD_CAstr(136,14,"失步波形",0,0);
			     break;
			case 7:LCD_CAstr(136,14,"PT断线波形",0,0);
			     break;
			default:break;
			}
			break;
   case 5:
			LCD_CAstr(0,0,"继电器状态",0,1);
			LCD_CAstr(16,2,"(501)输入继电器状态:",0,0);
			LCD_CAstr(16,4,"KRJ_   YCJ_   JCJ_   ZCJ_  ",0,0);
			LCD_CAstr(16,6,"JYJ_   FCJ_   RFJ_   DLJ_  ",0,0);
			LCD_CAstr(16,10,"(502)输出继电器状态:",0,0);
			LCD_CAstr(16,12,"FJJ_   YKJ_   TYJ_   BXJ_  ",0,0);
			LCD_CAstr(16,14,"SZJ_   LCJ_   LZJ_   KQJ_  ",0,0);
		  break;
   case 6:LCD_CAstr(0,0,"历史故障             Page 1/4",0,1);
          LCD_CAstr(16,2,"(601)20",0,0);
          LCD_CAstr(16,4,"     故障类型:",0,0);
          LCD_ErrorItem(72,2,Flash);
		  LCD_CAstr(16,7,"(602)20",0,0);
          LCD_CAstr(16,9,"     故障类型:",0,0);
          LCD_ErrorItem(72,7,Flash+7);
		  LCD_CAstr(16,12,"(603)20",0,0);
          LCD_CAstr(16,14,"     故障类型:",0,0);
          LCD_ErrorItem(72,12,Flash+14);
		  break;
   case 7:LCD_CAstr(0,0,"其它",0,1);

          LCD_CAstr(16,2,"(701)日期与时间设置:",0,0);
		    LCD_CAstr(104,4,"/",0,0);
			 LCD_CAstr(128,4,"/",0,0);
			 LCD_CAstr(184,4,":",0,0);
			 LCD_CAstr(208,4,":",0,0);
          LCD_Day(RTCData[6],RTCData[5],RTCData[3],RTCData[2],RTCData[1],RTCData[0],0);

          LCD_CAstr(16,6,"(702)累计运行时间:",0,0);
			 LCD_Num(160,6,AccDay,0,"天");
			 LCD_Num(208,6,AccHour,0,"时");

		  LCD_CAstr(16,8,"(703)风机开启温度:",0,0);
		  LCD_Num(168,8,StartTemper,0,"℃ ");

		  LCD_CAstr(16,10,"(704)风机关停温度:",0,0);
		  LCD_Num(168,10,CloseTemper,0,"℃ ");

		  LCD_CAstr(16,12,"(705)机柜报警温度:",0,0);
		  LCD_Num(168,12,AlarmTemper,0,"℃ ");

		  LCD_CAstr(16,14,"(706)机柜当前温度:",0,0);
		  LCD_Num(168,14,OutTemper,0,"℃ ");
		  
		  break;
   case 8:LCD_CAstr(32,5,"请输入密码:",0,0);
          LCD_CAstr(64,8,"* * * * * *",0,0);
		  LCD_CAstr(64,8,"*",1,0);
		  
		  break;
   case 9:LCD_CAstr(32,5,"对不起,密码输入错误!",0,0);
          LCD_CAstr(32,8,"请重新输入: Yes/No",0,0);
		  
		  break;
   case 10:LCD_CAstr(16,7,"运行状态禁止设置!",0,0);
           break;
   case 11:page=1;
           LCD_Stat1();
           break;
   case 12:page=1;
           LCD_Stat2();
           break;
   case 14:
				LCD_CAstr(32,5,"一级系统密码:",0,0);
				LCD_math(64,8,S1_Key1,0);
				LCD_math(80,8,S1_Key2,0);
				LCD_math(96,8,S1_Key3,0);
				LCD_math(112,8,S1_Key4,0);
				LCD_math(128,8,S1_Key5,0);
				LCD_math(144,8,S1_Key6,0);
				break;
   case 15:
				LCD_CAstr(32,5,"二级系统密码:",0,0);
				LCD_math(64,8,S2_Key1,0);
				LCD_math(80,8,S2_Key2,0);
				LCD_math(96,8,S2_Key3,0);
				LCD_math(112,8,S2_Key4,0);
				LCD_math(128,8,S2_Key5,0);
				LCD_math(144,8,S2_Key6,0);
		   break;
   case 16:
				if(page!=1&&page!=2&&page!=3)
				   page=1;
				LCD_ClearAll();
				LCD_RunPage();
				break;
   case 18:
				LCD_ClearAll();
				LCD_WByte(5,0,0x80);
				LCD_WByte(34,0,0x80);
				for(temp=0;temp<28;temp++)
				{
					LCD_WByte(6+temp,0,0xc0);
					LCD_WByte(6+temp,3,0x03);
				}
				LCD_WByte(5,3,0x01);
				LCD_WByte(34,3,0x01);

				LCD_CAstr(4,1,"YMKJ",1,0);
				LCD_CAstr(37,1,"苏州市友明科技有限公司",0,1);
				LCD_CAstr(40,4,"LZK-3G同步电动机励磁装置",0,1);
				LCD_CAstr(20,7,"控制器启动忠...",0,0);
           
				LCD_WByte(20,12,0xff);
				LCD_WByte(20,13,0xff);
				LCD_WByte(220,12,0xff);
				LCD_WByte(220,13,0xff);
				for(temp=1;temp<200;temp++)
				{
					LCD_WByte(20+temp,12,0x01);
					LCD_WByte(20+temp,13,0x80);
				}

				LCD_BLED=1;
				HI_RunLED=0;
				HI_ErrLED=0;
				HI_Bell=0;
				for(temp=1;temp<201;temp++)
				{
					DmS(10);
					if(temp%20==0)
					LCD_Num(112,10,temp/2,0,"%");
					LCD_WByte(19+temp,12,0xff);
					LCD_WByte(19+temp,13,0xff); 
				}
			   HI_RunLED=1;
			   HI_ErrLED=1;
				/********************************/
				//Dyn_to_Flash();
				//Stc_to_CFlash();
				//Flash_128_Write(0,Flash,128,0);
				//Flash_64K_Write(0xFA02,CFlash,100,0);
				/********************************/
				//Flash_128_Write(0,Flash,128,1);
				//Flash_64K_Write(0xFA02,CFlash,100,1);
				/********************************/
				Flash_128_Read(0,Flash,128);
				Flash_64K_Read(0xFA02,CFlash,100);
				Flash_to_Dyn();
				CFlash_to_Stc();
				/********************************/
				RTC8563_Read();
				AcctimeTemp=RTCData[2];
				/********************************/
				DmS(500);
				HI_RunLED=0;
				HI_ErrLED=0;
				HI_Bell=1;
				DmS(100);
				HI_RunLED=1;
				HI_ErrLED=1;
				HI_Bell=0;
				break;
   
   default:break;
   }
}
////////////////////////////////////////////////////////
void LCD_Stat1(void)
{ 
    	if(page==1)
        {
        LCD_ClearAll();

        LCD_CAstr(0,0,"一级系统参树",0,1);
		LCD_CAstr(168,0,"Page 1/5",0,1);

        
		LCD_CAstr(16,2,"(101)投励滑差:",0,0);
		LCD_Num(176,2,EM_NomalPhaDiffCMD,0,"%");

          
        LCD_CAstr(16,4,"(102)投全压滑差:",0,0);
        LCD_Num(176,4,EM_FulVoltPhaDiffCMD,0,"%");
		

		LCD_CAstr(16,6,"(103)长时间不投励时间:",0,0);
		LCD_Num(192,6,AsyncTimOutCMD,0,"s");
		
  
		LCD_CAstr(16,8,"(104)计时投励时间:",0,0);
        LCD_Num(176,8,EM_TimCMD,0,"s");

		  
		LCD_CAstr(16,10,"(105)电压量程:",0,0);
		LCD_Num(176,10,EM_VoltScaleCMD,0,"V");

		
		LCD_CAstr(16,12,"(106)电流量程:",0,0);
		LCD_Num(176,12,EM_CurrScaleCMD,0,"A");	
        }

        else if(page==2)
        {
        LCD_ClearAll();

        LCD_CAstr(0,0,"一级系统参树",0,1);
		LCD_CAstr(168,0,"Page 2/5",0,1);

		LCD_CAstr(16,2,"(107)电压上限:",0,0);
        LCD_Num(176,2,EM_VoltMaxCMD,0,"V");

        LCD_CAstr(16,4,"(108)电压下限:",0,0);
        LCD_Num(176,4,EM_VoltMinCMD,0,"V");
          
        LCD_CAstr(16,6,"(109)电流上限:",0,0);
        LCD_Num(176,6,EM_CurrMaxCMD,0,"A");
		  
        LCD_CAstr(16,8,"(110)电流下限:",0,0);
        LCD_Num(176,8,EM_CurrMinCMD,0,"A");
		  
        LCD_CAstr(16,10,"(111)角度上限:",0,0);
        LCD_Num(176,10,EM_AnglMaxCMD,0,"^");
		 
        LCD_CAstr(16,12,"(112)角度下限:",0,0);
        LCD_Num(176,12,EM_AnglMinCMD,0,"^");
        }

        else if(page==3)
        {
        LCD_ClearAll();

        LCD_CAstr(0,0,"一级系统参树",0,1);
		LCD_CAstr(168,0,"Page 3/5",0,1);

		LCD_CAstr(16,2,"(113)功率因树上限:",0,0);
		LCD_CAstr(176,2,"0.",0,0);
        LCD_Num(192,2,EM_PwrFactMaxCMD,0," ");
		  
	    LCD_CAstr(16,4,"(114)功率因树下限:",0,0);
		LCD_CAstr(176,4,"0.",0,0);
        LCD_Num(192,4,EM_PwrFactMinCMD,0," ");
        
        LCD_CAstr(16,6,"(115)无功功率上限:",0,0);
		LCD_Num(176,6,EM_NulPwrMaxCMD,0," ");

        LCD_CAstr(16,8,"(116)无功功率下限:",0,0);
		LCD_Num(176,8,EM_NulPwrMinCMD,0," ");

        LCD_CAstr(16,10,"(117)变压器次级线压:",0,0);
		LCD_Num(176,10,TransFormSubVoltCMD,0,"V");

        LCD_CAstr(16,12,"(118)计时投励使能:",0,0);
		if(EM_TimCntEnCMD==1)
		LCD_CAstr(176,12,"开",0,0);
		else
		LCD_CAstr(176,12,"关",0,0);
        }

        else if(page==4)
        {
        LCD_ClearAll();

        LCD_CAstr(0,0,"一级系统参树",0,1);
		LCD_CAstr(168,0,"Page 4/5",0,1);

		LCD_CAstr(16,2,"(119)强励方式:",0,0);
        switch(EM_ENH_ModeCMD)
		{
		case 0:LCD_CAstr(176,2,"电压",0,0);
			   break;
		case 1:LCD_CAstr(176,2,"电流",0,0);
			   break;
		case 2:LCD_CAstr(176,2,"角度",0,0);
			   break;
		default:break;

⌨️ 快捷键说明

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