📄 lcd.c
字号:
LCM_Screen_HZ(Row,(Col+16),8,Layer,fs);
LCM_Screen_HZ(Row,(Col+18),9,Layer,fs);
LCM_Screen_HZ(Row,(Col+20),10,Layer,fs);
LCM_Screen_HZ(Row,(Col+22),11,Layer,fs);
}
/****************************************************************/
//函数名称:GTZJ_Display(uchar Row,uchar Col,uchar Layer,uchar fs)
//函数功能:钢套直径显示函数
//输出参数:无
//返 回 值:无
/****************************************************************/
void GTZJ_Display(uchar Row,uchar Col,uchar Layer,uchar fs)
{
LCM_Screen_str(Row,Col,"#1:",Layer,fs);
if(GT_ZJ1_1>99) //显示#1缸套直径参数1
{
LCM_NumberDisplay(Row,(Col+3),Layer,(uchar)((GT_ZJ1_1/100)%10),fs);
LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((GT_ZJ1_1/10)%10),fs);
LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)((GT_ZJ1_1)%10),fs);
LCM_Screen_str(Row,(Col+6)," ",Layer,fs);
}
else
{
if(GT_ZJ1_1>9)
{
LCM_Screen_str(Row,(Col+3)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+4),Layer,(uchar)((GT_ZJ1_1/10)%10),fs);
LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)((GT_ZJ1_1)%10),fs);
LCM_Screen_str(Row,(Col+6)," ",Layer,fs);
}
else
{
LCM_Screen_str(Row,(Col+3)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+5),Layer,(uchar)((GT_ZJ1_1)%10),fs);
LCM_Screen_str(Row,(Col+6)," ",Layer,fs);
}
}
if(GT_ZJ1_2>99) //显示#1缸套直径参数2
{
LCM_NumberDisplay(Row,(Col+7),Layer,(uchar)((GT_ZJ1_2/100)%10),fs);
LCM_NumberDisplay(Row,(Col+8),Layer,(uchar)((GT_ZJ1_2/10)%10),fs);
LCM_NumberDisplay(Row,(Col+9),Layer,(uchar)((GT_ZJ1_2)%10),fs);
LCM_Screen_str(Row,(Col+10)," ",Layer,fs);
}
else
{
if(GT_ZJ1_2>9)
{
LCM_Screen_str(Row,(Col+7)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+8),Layer,(uchar)((GT_ZJ1_2/10)%10),fs);
LCM_NumberDisplay(Row,(Col+9),Layer,(uchar)((GT_ZJ1_2)%10),fs);
LCM_Screen_str(Row,(Col+10)," ",Layer,fs);
}
else
{
LCM_Screen_str(Row,(Col+7)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+9),Layer,(uchar)((GT_ZJ1_2)%10),fs);
LCM_Screen_str(Row,(Col+10)," ",Layer,fs);
}
}
if(GT_ZJ1_3>99) //显示#1缸套直径参数3
{
LCM_NumberDisplay(Row,(Col+11),Layer,(uchar)((GT_ZJ1_3/100)%10),fs);
LCM_NumberDisplay(Row,(Col+12),Layer,(uchar)((GT_ZJ1_3/10)%10),fs);
LCM_NumberDisplay(Row,(Col+13),Layer,(uchar)((GT_ZJ1_3)%10),fs);
}
else
{
if(GT_ZJ1_3>9)
{
LCM_Screen_str(Row,(Col+11)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+12),Layer,(uchar)((GT_ZJ1_3/10)%10),fs);
LCM_NumberDisplay(Row,(Col+13),Layer,(uchar)((GT_ZJ1_3)%10),fs);
}
else
{
LCM_Screen_str(Row,(Col+11)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+13),Layer,(uchar)((GT_ZJ1_3)%10),fs);
}
}
LCM_Screen_str(Row,(Col+14),",#2: ",Layer,fs);
if(GT_ZJ2_1>99) //显示#2缸套直径参数1
{
LCM_NumberDisplay(Row,(Col+18),Layer,(uchar)((GT_ZJ2_1/100)%10),fs);
LCM_NumberDisplay(Row,(Col+19),Layer,(uchar)((GT_ZJ2_1/10)%10),fs);
LCM_NumberDisplay(Row,(Col+20),Layer,(uchar)((GT_ZJ2_1)%10),fs);
LCM_Screen_str(Row,(Col+21)," ",Layer,fs);
}
else
{
if(GT_ZJ2_1>9)
{
LCM_Screen_str(Row,(Col+18)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+19),Layer,(uchar)((GT_ZJ2_1/10)%10),fs);
LCM_NumberDisplay(Row,(Col+20),Layer,(uchar)((GT_ZJ2_1)%10),fs);
LCM_Screen_str(Row,(Col+21)," ",Layer,fs);
}
else
{
LCM_Screen_str(Row,(Col+18)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+20),Layer,(uchar)((GT_ZJ2_1)%10),fs);
LCM_Screen_str(Row,(Col+21)," ",Layer,fs);
}
}
if(GT_ZJ2_2>99) //显示#2缸套直径参数2
{
LCM_NumberDisplay(Row,(Col+22),Layer,(uchar)((GT_ZJ1_2/100)%10),fs);
LCM_NumberDisplay(Row,(Col+23),Layer,(uchar)((GT_ZJ1_2/10)%10),fs);
LCM_NumberDisplay(Row,(Col+24),Layer,(uchar)((GT_ZJ1_2)%10),fs);
LCM_Screen_str(Row,(Col+25)," ",Layer,fs);
}
else
{
if(GT_ZJ2_2>9)
{
LCM_Screen_str(Row,(Col+22)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+23),Layer,(uchar)((GT_ZJ2_2/10)%10),fs);
LCM_NumberDisplay(Row,(Col+24),Layer,(uchar)((GT_ZJ2_2)%10),fs);
LCM_Screen_str(Row,(Col+25)," ",Layer,fs);
}
else
{
LCM_Screen_str(Row,(Col+22)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+24),Layer,(uchar)((GT_ZJ2_2)%10),fs);
LCM_Screen_str(Row,(Col+25)," ",Layer,fs);
}
}
if(GT_ZJ2_3>99) //显示#2缸套直径参数3
{
LCM_NumberDisplay(Row,(Col+26),Layer,(uchar)((GT_ZJ2_3/100)%10),fs);
LCM_NumberDisplay(Row,(Col+27),Layer,(uchar)((GT_ZJ2_3/10)%10),fs);
LCM_NumberDisplay(Row,(Col+28),Layer,(uchar)((GT_ZJ2_3)%10),fs);
}
else
{
if(GT_ZJ2_3>9)
{
LCM_Screen_str(Row,(Col+26)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+27),Layer,(uchar)((GT_ZJ2_3/10)%10),fs);
LCM_NumberDisplay(Row,(Col+28),Layer,(uchar)((GT_ZJ2_3)%10),fs);
}
else
{
LCM_Screen_str(Row,(Col+26)," ",Layer,fs);
LCM_NumberDisplay(Row,(Col+28),Layer,(uchar)((GT_ZJ2_3)%10),fs);
}
}
}
/****************************************************************/
//函数名称:HZ_JingLou(uchar Row,uchar Col,uchar Layer,uchar fs)
//函数功能:"井漏"显示函数
//输出参数:无
//返 回 值:无
/****************************************************************/
void HZ_JingLou(uchar Row,uchar Col,uchar Layer,uchar fs)
{
LCM_Screen_HZ(Row,Col,29,Layer,fs); //井漏
LCM_Screen_HZ(Row,(Col+2),56,Layer,fs);
}
/****************************************************************/
//函数名称:HZ_JingLou(uchar Row,uchar Col,uchar Layer,uchar fs)
//函数功能:"井喷"显示函数
//输出参数:无
//返 回 值:无
/****************************************************************/
void HZ_JingPen(uchar Row,uchar Col,uchar Layer,uchar fs)
{
LCM_Screen_HZ(Row,Col,29,Layer,fs); //井喷
LCM_Screen_HZ(Row,(Col+2),66,Layer,fs);
}
/****************************************************************/
//函数名称:HZ_JingLou(uchar Row,uchar Col,uchar Layer,uchar fs)
//函数功能:"井涌"显示函数
//输出参数:无
//返 回 值:无
/****************************************************************/
void HZ_JingYong(uchar Row,uchar Col,uchar Layer,uchar fs)
{
LCM_Screen_HZ(Row,Col,29,Layer,fs); //井涌
LCM_Screen_HZ(Row,(Col+2),67,Layer,fs);
}
/****************************************************************/
//函数名称:HZ_Zhengchang(uchar Row,uchar Col,uchar Layer,uchar fs)
//函数功能:"正常"显示函数
//输出参数:无
//返 回 值:无
/****************************************************************/
void HZ_Zhengchang(uchar Row,uchar Col,uchar Layer,uchar fs)
{
LCM_Screen_HZ(Row,Col,68,Layer,fs); //正常
LCM_Screen_HZ(Row,(Col+2),69,Layer,fs);
}
/****************************************************************/
//函数名称:YJ_Display(uchar x)
//函数功能:预警类型显示函数
//输入参数:x 1:井喷,2:井漏,3:井涌,否则正常
//输出参数:无
//返 回 值:无
/****************************************************************/
void YJ_Display(uchar x)
{
switch (x)
{
case 1:
{
HZ_JingPen(197,10,1,1);//井喷
break;
}
case 2:
{
HZ_JingLou(197,10,1,1);//井漏
break;
}
case 3:
{
HZ_JingYong(197,10,1,1);//井涌
break;
}
default:
{
HZ_Zhengchang(197,10,1,1);//正常
break;
}
}
}
/****************************************************************/
//函数名称:On_Pic(void)
//函数功能:开机界面显示
//输出参数:无
//返 回 值:无
/****************************************************************/
void On_Pic(void)
{
uchar i;
RowLine(0,0,40,0xff,1);
RowLine(239,0,40,0xff,1);
ColLine(1,0,0x80,238,1);
ColLine(1,39,0x01,238,1);
LCM_Screen_str(116,12,"Tel:0427-7802456",2,1);
LCM_Screen_str(132,12,"Fax:0427-7802456",2,1);
LCM_Screen_str(148,12,"zhx_lfdn@sina.com",2,1);
GS_NameDisplay(98,8,2,1); //盘锦利方石油科技有限公司
for(i=0;i<100;i++) //延时100*20ms=2s
{
_delay_ms(20); //延时20ms
}
ClearScreen(); //清屏
}
/*******************************************************************/
//函数名称:RowLine(uchar Row,uchar Col,uchar Length,uchar Position)
//函数功能:画直线函数(水平线)
//输入参数:low、high(行、列),Position直线参数,Length长度,Layer层
//输出参数:无
//返 回 值:无
/*******************************************************************/
void RowLine(uchar Row,uchar Col,uchar Length,uchar Position,uchar Layer)
{
uchar i,low,high;
uint Screen_Addr; //屏幕地址
if(Layer==2)
{
Screen_Addr=Row*40+Col+0x5000; //3区
}
else
{
Screen_Addr=Row*40+Col+0x2800; //1区
}
low=(uchar)(Screen_Addr);
high=(uchar)(Screen_Addr>>8);
CmdWrite(0x4c); //恢复光标自动移动方向
CmdWrite(0x46); //光标显示位置设置
DataWrite(low);
DataWrite(high);
CmdWrite(0x42);
for(i=0;i<Length;i++){DataWrite(Position);} //画一条直线
}
/*******************************************************************/
//函数名称:ColLine(uchar Row,uchar Col,uchar Position,uchar Length)
//函数功能:画竖线函数(垂直线)
//输入参数:low、high(行、列),Position竖线参数,Length长度,Layer层
//输出参数:无
//返 回 值:无
/*******************************************************************/
void ColLine(uchar Row,uchar Col,uchar Position,uchar Length,uchar Layer)
{
uchar i,low,high;
uint Screen_Addr; //屏幕地址
if(Layer==2)
{
Screen_Addr=Row*40+Col+0x5000; //3区
}
else
{
Screen_Addr=Row*40+Col+0x2800; //1区
}
low=(uchar)(Screen_Addr);
high=(uchar)(Screen_Addr>>8);
CmdWrite(0x4f); //恢复光标自动移动方向
CmdWrite(0x46); //光标显示位置设置
DataWrite(low);
DataWrite(high);
CmdWrite(0x42);
for(i=0;i<Length;i++){DataWrite(Position);} //画一条竖线
CmdWrite(0x4c); //恢复光标自动移动方向
}
/*******************************************************************/
//函数名称:Pic_Screen(unsigned char Row,unsigned char Col)
//函数功能:写入图片数据函数
//输入参数:Row,Col 行列地址
//输出参数:无
//返 回 值:无
/******************************************************************/
void Pic_Screen(uchar Row,uchar Col)
{
uchar i,j,low,high,Temp;
const prog_char *STR_p;
uint Screen_Addr; //屏幕地址
STR_p=&Picture_CX[0]; //取图片点阵库地址
for(i=0;i<240;i++)
{
Screen_Addr=Row*40+Col+0x5000;
low=(uchar)(Screen_Addr);
high=(uchar)(Screen_Addr>>8);
CmdWrite(0x4c); //恢复光标自动移动方向
CmdWrite(0x46); //光标显示位置设置
DataWrite(low);
DataWrite(high);
CmdWrite(0x42);
for(j=0;j<40;j++)
{
Temp=pgm_read_byte(STR_p);
DataWrite(Temp);
STR_p++;
}
Row++;
}
}
/*************************************************************************************************/
//函数名称: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 XXX_XX_Display(uchar Row,uchar Col,uchar Layer,uint Number,uchar fs)
{
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);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -