📄 lcd.c
字号:
}
/*************************************************************************************************/
//函数名称: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 + -