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

📄 key_30_11

📁 单片机控制的12864液晶显示器的驱动程序,通过按键控制
💻
📖 第 1 页 / 共 3 页
字号:
			ShowOneChar(z_zhen,0,4,12);
			ShowOneChar(z_chang,0,4,14);
		}
		else
		{
			ShowOneChar(z_gu,0,4,12);
			ShowOneChar(z_zhang,0,4,14);
		}		
		if((ErrorTemp&0x20)==0)
		{
			ShowOneChar(z_zhen,0,6,12);
			ShowOneChar(z_chang,0,6,14);
		}
		else
		{
			ShowOneChar(z_gu,0,6,12);
			ShowOneChar(z_zhang,0,6,14);
		}			
}			

void FillGuZhangPage2()
{
		unsigned int ErrorShuZiTemp;
		unsigned int ErrorMoNiTemp;
		ErrorShuZiTemp=DataRead25045EEROM(SAVEERROR_ADD);
		ErrorMoNiTemp=DataRead25045EEROM(SAVEERROR_ADD+2);
		Fill4NULL(2,15);
		Fill4NULL(4,15);
		Fill4NULL(6,15);
		if((ErrorShuZiTemp&0x40)!=0||(ErrorMoNiTemp&0x900)!=0)
		{
			ShowOneChar(z_guo,0,2,12);
			ShowOneChar(z_ya,0,2,14);
		}
		else if((ErrorShuZiTemp&0x80)!=0||(ErrorMoNiTemp&0x24!=0))
		{
			ShowOneChar(z_qian,0,2,12);
			ShowOneChar(z_ya,0,2,14);
		}
		else
		{
			ShowOneChar(z_zhen,0,2,12);
			ShowOneChar(z_chang,0,2,14);
		}

		if((ErrorShuZiTemp&0x100)!=0||(ErrorMoNiTemp&0x1200)!=0)
		{
			ShowOneChar(z_guo,0,4,12);
			ShowOneChar(z_ya,0,4,14);
		}
		else if((ErrorShuZiTemp&0x200)!=0||(ErrorMoNiTemp&0x48)!=0)
		{
			ShowOneChar(z_qian,0,4,12);
			ShowOneChar(z_ya,0,4,14);
		}
		else
		{
			ShowOneChar(z_zhen,0,4,12);
			ShowOneChar(z_chang,0,4,14);
		}

		if((ErrorShuZiTemp&0x400)!=0||(ErrorMoNiTemp&0x2400)!=0)
		{
			ShowOneChar(z_guo,0,6,12);
			ShowOneChar(z_ya,0,6,14);
		}
		else if((ErrorShuZiTemp&0x800)!=0||(ErrorMoNiTemp&0x90)!=0)
		{
			ShowOneChar(z_qian,0,6,12);
			ShowOneChar(z_ya,0,6,14);
		}
		else
		{
			ShowOneChar(z_zhen,0,6,12);
			ShowOneChar(z_chang,0,6,14);
		}

}

void FillGuZhangPage3()
{
		unsigned char ErrorShuZiTemp;
		unsigned int ErrorMoNiTemp;
		ErrorShuZiTemp=ByteRead25045EEROM(SAVEERROR_ADD+1);	//只取高8位
		ErrorMoNiTemp=DataRead25045EEROM(SAVEERROR_ADD+2);	//取2个字节
		Fill4NULL(0,15);
		Fill4NULL(2,15);
		Fill4NULL(4,15);
		Fill4NULL(6,15);
		if((ErrorMoNiTemp&0x01)!=0)
		{
			ShowOneChar(z_guo,0,0,12);
			ShowOneChar(z_ya,0,0,14);
		}
		else if((ErrorMoNiTemp&0x02)!=0)
		{
			ShowOneChar(z_qian,0,0,12);
			ShowOneChar(z_ya,0,0,14);
		}
		else
		{
			ShowOneChar(z_zhen,0,0,12);
			ShowOneChar(z_chang,0,0,14);
		}

		if((ErrorMoNiTemp&0x4000)!=0)
		{
			ShowOneChar(z_guo,0,2,12);
			ShowOneChar(z_liu,0,2,14);
		}
		else
		{
			ShowOneChar(z_zhen,0,2,12);
			ShowOneChar(z_chang,0,2,14);
		}

		if((ErrorShuZiTemp&0x10)!=0)
		{
			ShowOneChar(z_guo,0,4,12);
			ShowOneChar(z_ya,0,4,14);
		}
		else if((ErrorShuZiTemp&0x20)!=0)
		{
			ShowOneChar(z_qian,0,4,12);
			ShowOneChar(z_ya,0,4,14);
		}
		else
		{
			ShowOneChar(z_zhen,0,4,12);
			ShowOneChar(z_chang,0,4,14);
		}
		
		if((ErrorShuZiTemp&0x40)!=0)
		{
			ShowOneChar(z_guo,0,6,12);
			ShowOneChar(z_liu,0,6,14);
		}
		else
		{
			ShowOneChar(z_zhen,0,6,12);
			ShowOneChar(z_chang,0,6,14);
		}
		
}

void FillGuZhangPage4()
{
		unsigned char ErrorTemp;
		ErrorTemp=ByteRead25045EEROM(SAVEERROR_ADD);
		Fill4NULL(2,15);
		Fill4NULL(4,15);
		Fill4NULL(6,15);
		if((ErrorTemp&0x01)==0)
		{
			ShowOneChar(z_zhen,0,2,12);
			ShowOneChar(z_chang,0,2,14);
		}
		else
		{
			ShowOneChar(z_guo,0,2,12);
			ShowOneChar(z_wen,0,2,14);
		}
		if((ErrorTemp&0x02)==0)
		{
			ShowOneChar(z_zhen,0,4,12);
			ShowOneChar(z_chang,0,4,14);
		}
		else
		{
			ShowOneChar(z_guo,0,4,12);
			ShowOneChar(z_wen,0,4,14);
		}		
		if((ErrorTemp&0x40)==0)
		{
			ShowOneChar(z_zhen,0,6,12);
			ShowOneChar(z_chang,0,6,14);
		}
		else
		{
			ShowOneChar(z_guo,0,6,12);
			ShowOneChar(z_wen,0,6,14);
		}			
}			
/*
void  GetError()			//取出故障
{
		unsigned char i;
		unsigned char TempNum;
		for(i=0;i<ERRORNUM;i++)		
			(ErrorStr+i) = 0;
		ErrorNum = 0;			//初始化
		if(Incomedata.ErrorCodeShuZi!=0)
		{
			for(i=0;i<16;i++)	
				if(((Incomedata.ErrorCodeShuZi>>i)&0x01)==1)
				{
					*(ErrorStr+ErrorNum) = i;
					ErrorNum ++;
				}
		}
		TempNum=ErrorNum;
		if(Incomedata.ErrorCodeMoNi==0)	return;
	    for(i=0;i<16;i++)
			if((Incomedata.ErrorCodeMoNi>>i)&0x01==1)
			{
				*(ErrorStr+ErrorNum) = i+TempNum;
				ErrorNum ++;
			}
		ErrorPageNum=(ErrorNum+1)/4; //加1是为了加上第一行的故障两个字
		if(ErrorNum%4!=0)	ErrorPageNum=ErrorPageNum+1;
}

void FillGuZhang()			//显示实际的故障信息,按下确定键才更新
{
		unsigned char i;
		unsigned char *MessageStartPtr;	//显示信息头地址在数组中的位置
		unsigned char xnum;		//显示的行数
		if(ErrorNum == 0)
		{
			ShowOneChar(z_wu,0,4,6);
		    return;
		}
		if(ErrorPage >= ErrorPageNum)
			return;
		if((ErrorPage == 0)&&(ErrorPageNum==1))//只有一页
		{	
			xnum = ErrorNum;
			MessageStartPtr = ErrorStr;
		}
		else  if((ErrorPage == 0)&&(ErrorPageNum>1))	//多页中的第一页
		{
			xnum = 3;
			MessageStartPtr = ErrorStr;
			ShowOneChar(z_downArrow,FALSE,6,14);
		}

		else  if(ErrorPage == ErrorPageNum-1)		//最后一页
		{
			xnum = (ErrorNum+1)%4
			MessageStartPtr = ErrorStr+(ErrorPage*4-1);
			ShowOneChar(z_upArrow,FALSE,0,14);
		}
		else										//中间页
		{
			xnum = 4;
			MessageStartPtr =ErrorStr+(ErrorPage*4-1)*MESSAGE_GUZHANG_YNUM;
			ShowOneChar(z_downArrow,FALSE,6,14);
			ShowOneChar(z_upArrow,FALSE,0,14);
		}
		LedFillNULL();
		for(i=0;i<xnum;i++)
		{
			MessageBox(MESSAGE_GUZHANG+(*MessageStartPtr)*MESSAGE_GUZHANG_YNUM,MESSAGE_GUZHANG_STARTX+i+i,MESSAGE_GUZHANG_STARTY,MESSAGE_GUZHANG_XNUM,MESSAGE_GUZHANG_YNUM);
			MessageStartPtr++;
		}
}
*/

//fill 2 null before y;y>1,在第y列前写两个字即写宽度*长度=16*32,可以认为是4个数字
void Fill4NULL(unsigned char x,unsigned char y)
{
	ShowOneHalfChar(z_NULL,FALSE,x,y);
	ShowOneHalfChar(z_NULL,FALSE,x,y-1);
	ShowOneHalfChar(z_NULL,FALSE,x,y-2);
	ShowOneHalfChar(z_NULL,FALSE,x,y-3);
}

void Fill2NULL(unsigned char x,unsigned char y)
{
	ShowOneHalfChar(z_NULL,FALSE,x,y);
	ShowOneHalfChar(z_NULL,FALSE,x,y-1);
}

/*
void FillNULL(unsigned char xnum,unsigned char ynum,unsigned char x,unsigned char y)
{
	unsigned char i;
	unsigned char j;
	for(i=0;i<xnum;i++)
		for(j=0;j<ynum;j++)
			ShowOneHalfChar(z_NULL,FALSE,x,y+i);
}
*/
void DefaultPageProcess()
{
	if(Incomedata.SourceState==00)  ShowWait();
	else  ShowCharPage(PAGE_DEFAULT,PAGE_DEFAULT_LINE,PAGE_DEFAULT_SEL);//显示默认界面	
}

/*--------------key in default page,缺省状态下有键按下的处理程序-----------------------*/
void KeyInLedDefault()
{
        FeedDog();
		switch (gKeyCode)	
        {
		case KEY_CANCEL :
				MenuLayer = LED_DEFAULT;
				DefaultPageProcess();
				FillDefault();
		break;
		case KEY_UP :
				if( MenuLayer == LED_DEFAULT)  //当前显示的是缺省状态
				{
						MenuLayer = LED_DEFAULT_4;	//菜单回到缺省状态时的累计量查询
				}
				else MenuLayer = MenuLayer - 2;
				switch(MenuLayer)
				{
				 case LED_DEFAULT:	//液晶显示缺省状态
				 	DefaultPageProcess();
					FillDefault();
				 break;
				 case LED_DEFAULT_1:	//显示缺省状态下快捷查询的输入量
    	         	ShowCharPage(PAGE_MENU_MAIN1,PAGE_MENU_MAIN1_LINE,PAGE_MENU_MAIN1_SEL);
					FillInput();
				 break;
				 case LED_DEFAULT_2:	//输出量
    	         	ShowCharPage(PAGE_MENU_MAIN2,PAGE_MENU_MAIN2_LINE,PAGE_MENU_MAIN2_SEL);
					FillOutput();
				 break;
				 case LED_DEFAULT_3:	//直流量
				 	LedFillNULL();
				 	MessageBox(MESSAGE_MENU3,MESSAGE_MENU3_STARTX,MESSAGE_MENU3_STARTY,MESSAGE_MENU3_XNUM,MESSAGE_MENU3_YNUM);
					FillDirectCurrent();
				 break;
				 case LED_DEFAULT_4:	//故障查询
				 	LedFillNULL();
				 	MessageBox(MESSAGE_MENU5,MESSAGE_MENU5_STARTX,MESSAGE_MENU5_STARTY,MESSAGE_MENU5_XNUM,MESSAGE_MENU5_YNUM);
					FillGuZhangCode();
				 break;
				}
		break;
		case KEY_DOWN :
				if( MenuLayer == LED_DEFAULT_4)
				{
						MenuLayer = LED_DEFAULT;
				}
				else MenuLayer = MenuLayer + 2;
				switch(MenuLayer)
				{
				 case LED_DEFAULT:	//液晶显示缺省状态
					DefaultPageProcess();
					FillDefault();
				 break;
				 case LED_DEFAULT_1:	//显示缺省状态下快捷查询的输入量
    	         	ShowCharPage(PAGE_MENU_MAIN1,PAGE_MENU_MAIN1_LINE,PAGE_MENU_MAIN1_SEL);
					FillInput();
				 break;
				 case LED_DEFAULT_2:	//输出量
    	         	ShowCharPage(PAGE_MENU_MAIN2,PAGE_MENU_MAIN2_LINE,PAGE_MENU_MAIN2_SEL);
					FillOutput();
				 break;
				 case LED_DEFAULT_3:	//直流量
				 	LedFillNULL();
				 	MessageBox(MESSAGE_MENU3,MESSAGE_MENU3_STARTX,MESSAGE_MENU3_STARTY,MESSAGE_MENU3_XNUM,MESSAGE_MENU3_YNUM);
					FillDirectCurrent();
				 break;
				 case LED_DEFAULT_4:	//故障查询
				 	LedFillNULL();
				 	MessageBox(MESSAGE_MENU5,MESSAGE_MENU5_STARTX,MESSAGE_MENU5_STARTY,MESSAGE_MENU5_XNUM,MESSAGE_MENU5_YNUM);
					FillGuZhangCode();
				}
		break;
        case KEY_OK :
                MenuLayer  = LED_MENU_MAIN;
                MenuSelect = PAGE_MENU_MAIN_SEL;
                ShowCharPage(PAGE_MENU_MAIN,PAGE_MENU_MAIN_LINE,PAGE_MENU_MAIN_SEL);
        break;
        case KEY_UPDATE:

⌨️ 快捷键说明

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