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

📄 lcd.c

📁 用GCC编写ATMEG128应用软件源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
	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 + -