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

📄 lcd.c

📁 用GCC编写ATMEG128应用软件源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
}

/*************************************************************************************************/
//函数名称:XXX_XX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
//函数功能:有符号数值xxx.xx显示函数
//输入参数:Row   行
//输入参数:Col	  列
//输入参数:Layer		   显示区(Layer=2时在3区,否则在1区)
//输入参数:Number		   显示的数值
//输入参数:fs		       显示方式
//返 回 值:无
/*************************************************************************************************/
void SignedXXX_XX_Display(uchar Row,uchar Col,uchar Layer,int Number,uchar fs)
{
    uint Temp;
	
	if(Number>=0)
	{
	    if(Number>9999)
	    {
	        LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/10000)%10),fs);
		    LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/1000)%10),fs);
		    LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/100)%10),fs);
		    LCM_Screen_str(Row,(Col+3),".",Layer,1);
		    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Number/10)%10),fs);
		    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Number%10),fs);
	    }
	    else
	    {
	        if(Number>999)
		    {
		    LCM_Screen_str(Row,Col," ",Layer,1);
		    LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/1000)%10),fs);
		    LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/100)%10),fs);
		    LCM_Screen_str(Row,(Col+3),".",Layer,1);
		    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Number/10)%10),fs);
		    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Number%10),fs);
		    }
		    else
		    {
		        if(Number>99)
			    {
			        LCM_Screen_str(Row,Col,"  ",Layer,1);
		            LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/100)%10),fs);
		            LCM_Screen_str(Row,(Col+3),".",Layer,1);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Number/10)%10),fs);
		            LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Number%10),fs);
			    }
			    else
			    {
			        if(Number>9)
				    {
				        LCM_Screen_str(Row,Col,"  0.",Layer,1);
		                LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Number/10)%10),fs);
		                LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Number%10),fs);
				    }
				    else
				    {
				        if(Number!=0)
					    {
					        LCM_Screen_str(Row,Col,"  0.",Layer,1);
		                    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Number/10)%10),fs);
		                    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Number%10),fs);
					    }
					    else
					    {
					        LCM_Screen_str(Row,Col,"     ",Layer,1);
						    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Number%10),fs);
					    }
				    }
			    }
		    }
	    }
	}
	else
	{
	    Temp=abs(Number);
		if(Temp>9999)
	    {
	        LCM_Screen_str(Row,Col,"E",Layer,1);     //负数溢出!!!
		    LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Temp/1000)%10),fs);
		    LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Temp/100)%10),fs);
		    LCM_Screen_str(Row,(Col+3),".",Layer,1);
		    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Temp/10)%10),fs);
		    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Temp%10),fs);
	    }
	    else
	    {
	        if(Temp>999)
		    {
		    LCM_Screen_str(Row,Col,"-",Layer,1);
		    LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Temp/1000)%10),fs);
		    LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Temp/100)%10),fs);
		    LCM_Screen_str(Row,(Col+3),".",Layer,1);
		    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Temp/10)%10),fs);
		    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Temp%10),fs);
		    }
		    else
		    {
		        if(Temp>99)
			    {
			        LCM_Screen_str(Row,Col," -",Layer,1);
		            LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Temp/100)%10),fs);
		            LCM_Screen_str(Row,(Col+3),".",Layer,1);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Temp/10)%10),fs);
		            LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Temp%10),fs);
			    }
			    else
			    {
			        if(Temp>9)
				    {
				        LCM_Screen_str(Row,Col," -0.",Layer,1);
		                LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Temp/10)%10),fs);
		                LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Temp%10),fs);
				    }
				    else
				    {
				        if(Temp!=0)
					    {
					        LCM_Screen_str(Row,Col," -0.",Layer,1);
		                    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((Temp/10)%10),fs);
		                    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Temp%10),fs);
					    }
					    else
					    {
					        LCM_Screen_str(Row,Col,"     ",Layer,1);
						    LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)(Temp%10),fs);
					    }
				    }
			    }
		    }
	    }
	}
}

/*************************************************************************************************/
//函数名称:XX_XX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
//函数功能:xx.xx显示函数
//输入参数:Row   行
//输入参数:Col	  列
//输入参数:Layer		   显示区(Layer=2时在3区,否则在1区)
//输入参数:Number		   显示的数值
//输入参数:fs		       显示方式
//返 回 值:无
/*************************************************************************************************/
void XX_XX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
{
    if(Number>999)
	{
		LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/1000)%10),fs);
		LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/100)%10),fs);
		LCM_Screen_str(Row,(Col+2),".",Layer,1);
		LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
	}
	else
	{
	    if(Number>99)
		{
		    LCM_Screen_str(Row,Col," ",Layer,1);
		    LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/100)%10),fs);
		    LCM_Screen_str(Row,(Col+2),".",Layer,1);
		    LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
		}
		else
		{
		    if(Number>9)
			{
			    LCM_Screen_str(Row,Col," 0.",Layer,1);
		        LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		        LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
			}
			else
			{
			    if(Number!=0)
				{
				    LCM_Screen_str(Row,Col," 0.",Layer,1);
		            LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
				}
				else
				{
				    LCM_Screen_str(Row,Col,"    ",Layer,1);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
				}
			}
		}
	}
}

/*************************************************************************************************/
//函数名称:XX_X_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
//函数功能:xxx显示函数
//输入参数:Row   行
//输入参数:Col	  列
//输入参数:Layer		   显示区(Layer=2时在3区,否则在1区)
//输入参数:Number		   显示的数值
//输入参数:fs		       显示方式
//返 回 值:无
/*************************************************************************************************/
void XXX_Display(uchar Row,uchar Col,uchar Layer,uchar Number,uchar fs)
{
	if(Number>99)
	{
		LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/100)%10),fs);
		LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/10)%10),fs);
		LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)(Number%10),fs);
	}
	else
	{
		if(Number>9)
		{
			LCM_Screen_str(Row,Col," ",Layer,1);
		    LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/10)%10),fs);
		    LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)(Number%10),fs);
		}
		else
		{
			if(Number!=0)
			{
				LCM_Screen_str(Row,Col," ",Layer,1);
		        LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/10)%10),fs);
		        LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)(Number%10),fs);
			}
			else
			{
				LCM_Screen_str(Row,Col,"  ",Layer,1);
		        LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)(Number%10),fs);
			}
		}
	}
}

/*************************************************************************************************/
//函数名称:XX_XX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
//函数功能:xxx.x显示函数
//输入参数:Row   行
//输入参数:Col	  列
//输入参数:Layer		   显示区(Layer=2时在3区,否则在1区)
//输入参数:Number		   显示的数值
//输入参数:fs		       显示方式
//返 回 值:无
/*************************************************************************************************/
void XXX_X_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
{
    if(Number>999)
	{
		LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/1000)%10),fs);
		LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/100)%10),fs);
		LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/10)%10),fs);
		LCM_Screen_str(Row,(Col+3),".",Layer,1);
		LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
	}
	else
	{
        if(Number>99)
		{
		    LCM_Screen_str(Row,Col," ",Layer,1);
		    LCM_NumberDisplay(Row,(Col+1),Layer,(uchar)((Number/100)%10),fs);
		    LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/10)%10),fs);
		    LCM_Screen_str(Row,(Col+3),".",Layer,1);
		    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
		}
		else
		{
		    if(Number>9)
			{
			    LCM_Screen_str(Row,Col,"  ",Layer,1);
		        LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/10)%10),fs);
		        LCM_Screen_str(Row,(Col+3),".",Layer,1);
		        LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
			}
			else
			{
			    if(Number!=0)
				{
				    LCM_Screen_str(Row,Col,"  ",Layer,1);
		            LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/10)%10),fs);
		            LCM_Screen_str(Row,(Col+3),".",Layer,1);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
				}
				else
				{
				    LCM_Screen_str(Row,Col,"    ",Layer,1);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
				}
			}
		}
	}
}

/*************************************************************************************************/
//函数名称:X_XXX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
//函数功能:x.xxx显示函数
//输入参数:Row   行
//输入参数:Col	  列
//输入参数:Layer		   显示区(Layer=2时在3区,否则在1区)
//输入参数:Number		   显示的数值
//输入参数:fs		       显示方式
//返 回 值:无
/*************************************************************************************************/
void X_XXX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
{
    if(Number>999)
	{
		LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/1000)%10),fs);
		LCM_Screen_str(Row,(Col+1),".",Layer,1);
		LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/100)%10),fs);
		LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
	}
	else
	{
        if(Number>99)
        {
		    LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/1000)%10),fs);
		    LCM_Screen_str(Row,(Col+1),".",Layer,1);
		    LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/100)%10),fs);
		    LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		    LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
		}
		else
		{
		    if(Number>9)
			{
			    LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/1000)%10),fs);
		        LCM_Screen_str(Row,(Col+1),".",Layer,1);
		        LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/100)%10),fs);
		        LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		        LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
			}
			else
			{
			    if(Number!=0)
				{
				    LCM_NumberDisplay(Row,Col,Layer,(uchar)((Number/1000)%10),fs);
		            LCM_Screen_str(Row,(Col+1),".",Layer,1);
		            LCM_NumberDisplay(Row,(Col+2),Layer,(uchar)((Number/100)%10),fs);
		            LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((Number/10)%10),fs);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
				}
				else
				{
				    LCM_Screen_str(Row,Col,"    ",Layer,1);
		            LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)(Number%10),fs);
				}
			}
		}
	}
}

/*************************************************************************************************/
//函数名称:X_XXX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
//函数功能:起始时间显示函数
//输入参数:Row   行
//输入参数:Col	  列
//输入参数:Layer		   显示区(Layer=2时在3区,否则在1区)
//输入参数:Number		   显示的数值
//输入参数:fs		       显示方式
//返 回 值:无
/*************************************************************************************************/
void Start_Timer_Display(uchar Row,uchar Col,uchar Layer,uchar fs)
{
    LCM_NumberDisplay(Row,Col,Layer,((Start_Month/10)%10),fs);
	LCM_NumberDisplay(Row,(Col+1),Layer,(Start_Month%10),fs);
	LCM_Screen_str(Row,(Col+2),"-",Layer,1);
	LCM_NumberDisplay(Row,(Col+3),Layer,((Start_Date/10)%10),fs);
	LCM_NumberDisplay(Row,(Col+4),Layer,(Start_Date%10),fs);
	LCM_Screen_str(Row,(Col+5)," ",Layer,1);
	
	LCM_NumberDisplay(Row,(Col+6),Layer,((Start_HH/10)%10),fs);
	LCM_NumberDisplay(Row,(Col+7),Layer,(Start_HH%10),fs);
	LCM_Screen_str(Row,(Col+8),":",Layer,1);
	LCM_NumberDisplay(Row,(Col+9),Layer,((Start_MM/10)%10),fs);
	LCM_NumberDisplay(Row,(Col+10),Layer,(Start_MM%10),fs);
}

/****************************************************************/
//函数名称:On_Pic(void)
//函数功能:监控界面函数
//输出参数:无
//返 回 值:无
/****************************************************************/
void Surveillance(void)
{
    if(JK_Pic_OK==0)      //监控界面未显示
	{
		ClearScreen();    //清屏
		Pic_Screen(0,0);
		Updat_Cn=0;       //更新屏幕计数器清零
	}
	JK_Pic_OK=1;      //监控界面显示
	
	LCM_Screen_str(17,34,"Y:",1,1);	
	LCM_NumberDisplay(17,36,1,((AddrNuber/100)%10),1);
	LCM_NumberDisplay(17,37,1,((AddrNuber/10)%10),1);
	LCM_NumberDisplay(17,38,1,(AddrNuber%10),1);

    XXX_XX_Display(42,9,1,BPL,1);        //泵排量(升/秒)

	X_XXX_Display(42,31,1,CKYW,1);       //出口液位(米)

    XXX_XX_Display(72,9,1,CKLL,1);       //出口流量(升/秒)

    XX_XX_Display(72,30,1,CKLS,1);       //出口流速(米/秒)
	
	SignedXXX_XX_Display(104,9,1,LLC_S,1);//流量差(升/秒)
	
	XXX_XX_Display(104,31,1,LJLL,1);     //累计流量(方)
	
	XXX_XX_Display(135,9,1,LLPL,1);      //理论排量(升/秒)
	
	XXX_X_Display(135,31,1,LJSJ,1);      //累计时间(小时)
	
	Start_Timer_Display(167,9,1,1);      //起始时间
	
	XXX_Display(167,31,1,BXL_1,1);       //泵效率xxx%
	LCM_Screen_str(167,34,"%",1,1);
	LCM_Screen_str(167,35,",",1,1);
	XXX_Display(167,36,1,BXL_2,1);       //泵效率xxx%
	LCM_Screen_str(167,39,"%",1,1);
	
	YJ_Display(YJ_Type);                 //预警类型显示
	
	SYS_DateDisplay(197,20);
	SYS_TimerDisplay(197,31);
	
	GTZJ_Display(222,10,1,1);   //钢套直径
}

⌨️ 快捷键说明

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