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

📄 disp.c

📁 HT1621液晶控制测试
💻 C
📖 第 1 页 / 共 3 页
字号:
		else keya_num[3]=keynumdata[17];  //手动
		keya_num[0]=keynumdata[pirnt_select_a+1];
		keya_num[1]=0x00;keya_num[2]=0x00;keya_num[4]=0x00;  */
		//------------------------------------------------------
      if(vip_mode_a) {keya_num[4]=0x04;}  //定升
		else  {keya_num[4]=0x08;}  //定元
		keya_num[0]=keynumdata[0];
		keya_num[1]=keynumdata[28];
		keya_num[2]=keynumdata[28];
		keya_num[3]=keynumdata[28];
		//------------------------------------------------------
	}
	else
	{  keya_num[0]=keynumdata[27];keya_num[3]=keynumdata[27];
		keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[27];keya_num[4]=0x02;
	}
}
/*****************************************
*   功能:键盘小屏清屏b
*******************************************/
void disp_key_clear_b(void)
{  
	if(k2key)
	{
	   /*if(printermode_b==0) keyb_num[3]=keynumdata[0x0a];  //自动
		else keyb_num[3]=keynumdata[17];  //手动
		keyb_num[0]=keynumdata[pirnt_select_b+1];
		keyb_num[1]=0x00;keyb_num[2]=0x00;keyb_num[4]=0x00;*/
		//-----------------------------------------------------
		if(vip_mode_b) {keyb_num[4]=0x04;}  //定升
		else  {keyb_num[4]=0x08;}  //定元
		keyb_num[0]=keynumdata[0];
		keyb_num[1]=keynumdata[28];
		keyb_num[2]=keynumdata[28];
		keyb_num[3]=keynumdata[28];
		//-----------------------------------------------------
	}
	else
	{  keyb_num[0]=keynumdata[27];keyb_num[3]=keynumdata[27];
		keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[27];keyb_num[4]=0x02;
	}
}
/***********************************************************************
*  功能:显示TOTAL数据a
************************************************************************/
void disp_total_a(void)
{	uchar  i;
	uchar  dispmem[16],tt[10];
	uchar dotdata;
	ulong  ma;
	uchar *ptr;
	dispmem[4]=0x0f;dispmem[5]=0x0f;dispmem[6]=0x0f;dispmem[7]=0x0f;
   if((menu1==1 && state1==6) ||state1==8)
	{  
		if(!ration_mode_a)
		{	bbyte=dotmode[decimal_a];
			if(a3) {dotdata=2;disp_dot1(7);}   //LCD1小数点	
			else if(a0) {dotdata=1;disp_dot1(7);}   //LCD1小数点	
			else {dotdata=0;disp_dot1(0x8);}   //LCD1小数点
			dispmem[8]=0x0c;dispmem[9]=0x0c;
			if(state1!=8 || ration_num_a==0) ma=gun1.sum_sale;   //总累--锁售额  PP
			else	ma=ration_num_a;
			if(state1!=8)
			{
				keya_num[0]=0x1f;keya_num[1]=0x01;keya_num[2]=0x48;keya_num[3]=0x48;
				keya_num[4]=0x02;
			}
			else
			{
				keya_num[0]=keynumdata[27];
				keya_num[1]=keynumdata[27];
				keya_num[2]=keynumdata[23];
				keya_num[3]=keynumdata[23];  //"PP--"
				keya_num[4]=0x02;
			}
			
		}
		else
		{	bbyte=dotmode[decimal_a];
			if(a4) {dotdata=2;disp_dot1(0x7);}   //LCD1小数点	
			else if(a1) {dotdata=3;disp_dot1(0x6);}   //LCD1小数点	
			else {dotdata=0;disp_dot1(0x8);}   //LCD1小数点
			dispmem[8]=0x0a;dispmem[9]=0x0a;
		   if(state1!=8 || ration_num_a==0) ma=gun1.sum_liter;   //总累--升  LL
			else  ma=ration_num_a;
			if(state1!=8)
			{
				keya_num[0]=0x32;keya_num[1]=0x01;keya_num[2]=0x48;keya_num[3]=0x48;
				keya_num[4]=0x02;
			}
			else
			{
				keya_num[0]=keynumdata[27];
				keya_num[1]=keynumdata[27];
				keya_num[2]=keynumdata[19];
				keya_num[3]=keynumdata[19];  //"LL--"
				keya_num[4]=0x02;
			}
			
		}
	}
	else
	{
		if(!ration_mode_a)
		{	bbyte=dotmode[decimal_a];
			if(a3) {dotdata=2;disp_dot1(0x7);}   //LCD1小数点	
			else if(a0) {dotdata=1;disp_dot1(0x7);}   //LCD1小数点	
			else {dotdata=0;disp_dot1(0x8);}   //LCD1小数点
			dispmem[8]=0x0f;dispmem[9]=0x0c;
		   ma=gun1.work_sale;   //班累--锁售额   P
			keya_num[0]=0x1f;keya_num[1]=0x01;keya_num[2]=0x3d;keya_num[3]=0x48;
			keya_num[4]=0x02;
		}
		else
		{	bbyte=dotmode[decimal_a];
			if(a4) {dotdata=2;disp_dot1(0x7);}   //LCD1小数点	
			else if(a1) {dotdata=3;disp_dot1(0x6);}   //LCD1小数点	
			else {dotdata=0;disp_dot1(0x8);}   //LCD1小数点
			dispmem[8]=0x0f;dispmem[9]=0x0a;
		   ma=gun1.work_liter;   //班累--升  L
			keya_num[0]=0x32;keya_num[1]=0x01;keya_num[2]=0x3d;keya_num[3]=0x48;
			keya_num[4]=0x02;
		}
	} 
	for(i=0;i<10;i++)
	{
		tt[i]=ma%10;ma/=10;
	}
	for(i=9;i>0;i--)
	{  if(i==dotdata) break;
		if(tt[i]==0) tt[i]=0x0f;   //去前导零
		else break;

	}
	if(dotdata!=1)
	{
		for(i=0;i<4;i++)
		{
			dispmem[i]=tt[i];
		}
		for(i=4;i<10;i++)
		{
			dispmem[i+6]=tt[i];
		}
	}
	else  //因不能显示1位小数点,全左移1位,最后一位的位置空
	{
		for(i=0;i<3;i++)
		{
			dispmem[i+1]=tt[i];
		}
		for(i=3;i<9;i++)
		{
			dispmem[i+7]=tt[i];
		}
		dispmem[4]=tt[9];
		dispmem[0]=0x0f;  //最后一位的位置空
	}
	ptr=&dispmem;
	disp_updata_lcd(LCDAADD,ptr);
	
	
}
/***********************************************************************
*  功能:显示TOTAL数据b
************************************************************************/
void disp_total_b(void)
{	uchar  i;
	uchar  dispmem[16],tt[10];
	uchar dotdata;
	ulong  ma;
	uchar *ptr;
	dispmem[4]=0x0f;dispmem[5]=0x0f;dispmem[6]=0x0f;dispmem[7]=0x0f;
   if((menu2==1 && state2==6) || state2==8)
	{  
		if(!ration_mode_b)
		{	bbyte=dotmode[decimal_b];
			if(a3) {dotdata=2;disp_dot2(7);}   //LCD1小数点	
			else if(a0) {dotdata=1;disp_dot2(7);}   //LCD1小数点	
			else {dotdata=0;disp_dot2(0x8);}   //LCD1小数点
			dispmem[8]=0x0c;dispmem[9]=0x0c;
		   if(state2!=8 || ration_num_b==0) ma=gun2.sum_sale;   //总累--锁售额  PP
			else ma=ration_num_b;
			if(state2!=8)
			{
				keyb_num[0]=0x1f;keyb_num[1]=0x01;keyb_num[2]=0x48;keyb_num[3]=0x48;
				keyb_num[4]=0x02;
			}
			else
			{
				keyb_num[0]=keynumdata[27];
				keyb_num[1]=keynumdata[27];
				keyb_num[2]=keynumdata[23];
				keyb_num[3]=keynumdata[23];  //"PP--"
				keyb_num[4]=0x02;
			}
			
		}
		else
		{	bbyte=dotmode[decimal_b];
			if(a4) {dotdata=2;disp_dot2(0x7);}   //LCD1小数点	
			else if(a1) {dotdata=3;disp_dot2(0x6);}   //LCD1小数点	
			else {dotdata=0;disp_dot2(0x8);}   //LCD1小数点
			dispmem[8]=0x0a;dispmem[9]=0x0a;
		   if(state2!=8 || ration_num_b==0)	ma=gun2.sum_liter;   //总累--升  LL
			else ma=ration_num_b;
			if(state2!=8)
			{
				keyb_num[0]=0x32;keyb_num[1]=0x01;keyb_num[2]=0x48;keyb_num[3]=0x48;
				keyb_num[4]=0x02;
			}
			else
			{
				keyb_num[0]=keynumdata[27];
				keyb_num[1]=keynumdata[27];
				keyb_num[2]=keynumdata[19];
				keyb_num[3]=keynumdata[19];  //"LL--"
				keyb_num[4]=0x02;
			}
			
		}
	}
	else
	{
		if(!ration_mode_b)
		{	bbyte=dotmode[decimal_b];
			if(a3) {dotdata=2;disp_dot2(0x7);}   //LCD2小数点	
			else if(a0) {dotdata=1;disp_dot2(0x7);}   //LCD2小数点	
			else {dotdata=0;disp_dot2(0x8);}   //LCD2小数点
			dispmem[8]=0x0f;dispmem[9]=0x0c;
		   ma=gun2.work_sale;   //班累--锁售额   P
			keyb_num[0]=0x1f;keyb_num[1]=0x01;keyb_num[2]=0x3d;keyb_num[3]=0x48;
			keyb_num[4]=0x02;
		}
		else
		{	bbyte=dotmode[decimal_b];
			if(a4) {dotdata=2;disp_dot2(0x7);}   //LCD2小数点	
			else if(a1) {dotdata=3;disp_dot2(0x6);}   //LCD1小数点	
			else {dotdata=0;disp_dot2(0x8);}   //LCD2小数点
			dispmem[8]=0x0f;dispmem[9]=0x0a;
		   ma=gun2.work_liter;   //班累--升  L
			keyb_num[0]=0x32;keyb_num[1]=0x01;keyb_num[2]=0x3d;keyb_num[3]=0x48;
			keyb_num[4]=0x02;
		}
	} 
	for(i=0;i<10;i++)
	{
		tt[i]=ma%10;ma/=10;
	}
	for(i=9;i>0;i--)
	{  if(i==dotdata) break;
		if(tt[i]==0) tt[i]=0x0f;   //去前导零
		else break;

	}
	if(dotdata!=1)
	{
		for(i=0;i<4;i++)
		{
			dispmem[i]=tt[i];
		}
		for(i=4;i<10;i++)
		{
			dispmem[i+6]=tt[i];
		}
	}
	else  //因不能显示1位小数点,全左移1位,最后一位的位置空
	{
		for(i=0;i<3;i++)
		{
			dispmem[i+1]=tt[i];
		}
		for(i=3;i<9;i++)
		{
			dispmem[i+7]=tt[i];
		}
		dispmem[4]=tt[9];
		dispmem[0]=0x0f;  //最后一位的位置空
	}
	ptr=&dispmem;
	disp_updata_lcd(LCDBADD,ptr);
	
	
}
/**********************************************************
*  功能:查询及菜单返回的显示界面a
**********************************************************/
void  disp_return_a(void)
{  
	disp_key_clear_a();
	//disp_lcd1(0,0x04);	
	//disp_lcd1(0,0x0a);  //公升
	//disp_lcd1(price_a,0x0);
	//disp_dot1(decimal_a);   //LCD1小数点
	if(!cease_power)disp_lcd1(price_a,0x0);
	state1=0;
	updatea=1;
}
/**********************************************************
*  功能:查询及菜单返回的显示界面b
**********************************************************/
void  disp_return_b(void)
{  
	disp_key_clear_b();
	//disp_lcd2(0,0x04);	
	//disp_lcd2(0,0x0a);  //公升
	//disp_lcd2(price_b,0x0);
	//disp_dot2(decimal_b);   //LCD2小数点
	if(!cease_power)disp_lcd2(price_b,0x0);
	state2=0;
	updateb=1;
}
/***********************************************************************
*  功能:显示更新显示数据LCD1/LCD2
************************************************************************/
void  disp_updata_lcd(uint addab,uchar *ptr)
{	uchar  i,j,temp;	
	bit   bymem;
	AUXR |=0x02;
	for(i=0;i<16;i++)
	{   ACC=0x38;
		XBYTE[addab]=ACC;   //ST
		bbyte=*(ptr+i);	
		temp=bbyte*16+i;   //+lcdadd-1;
		for(j=8;j>0;j--)
		{  bbyte=temp;
		   bymem=(bit)(bbyte&0x80);
			temp<<=1;
			bbyte=0x38;
			a1= bymem;   //DS-->DATA
			XBYTE[addab]=bbyte; 
			ACC|=0x01;  
			XBYTE[addab]=ACC;   //CP-->CLK ↑
			ACC&=0xfe;
			XBYTE[addab]=ACC;   //CP-->CLK ↓ 
		} 
		ACC=0x3c;
		XBYTE[addab]=ACC;   //ST-->INH
 	   
	}
	
   AUXR &=0xfd;
}
/************************************************************
*  功能:显示枪1/2历史加油记录
*************************************************************/
void disp_eeprom_history(uchar gunid,uchar sequence)
{	void  *pt;
	union{
		uchar c[4];
		ulong x;
		uint  y;
   }temp;
	uint add;
	char dypass;
   pt=&temp.c[0];
   if(gunid==0)
	{
		keya_num[0]=keynumdata[sequence];keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[0];keya_num[3]=keynumdata[1];
		keya_num[4]=0x02;
	}
	else
	{
		keyb_num[0]=keynumdata[sequence];keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[0];keyb_num[3]=keynumdata[1];
		keyb_num[4]=0x02;
	}
	dypass=readbyte(gunid*300)-sequence;  //枪0在0000H; 枪1在0300;
	if(dypass<0) dypass+=10;
	if(dypass>9) dypass=0;
	add=dypass*10+200*gunid+101;
	readbyteseq(add,pt,4);
	if(gunid==0) disp_lcd1(temp.x,0x0a);  //公升
	else  disp_lcd2(temp.x,0x0a);  //公升

	//pt=&temp.c[0];
	dypass=readbyte(gunid*300)-sequence;  //枪0在0000H; 枪1在0300;
	if(dypass<0) dypass+=10;
	//add=dypass*10+256*gunid+105;
	add+=4;
	readbyteseq(add,pt,4);
	if(gunid==0) disp_lcd1(temp.x,0x04);  //公升
	else  disp_lcd2(temp.x,0x04);  //公升

	add+=4;
	readbyteseq(add,pt,2);

	if(gunid==0) {disp_lcd1(temp.y,0x0);disp_dot1(decimal_a);}
	else 	{disp_lcd2(temp.y,0x0);disp_dot2(decimal_b);}   
}
/***************************************************************
*  功能:显示锁机a
*  输入密码过程中是从右到左,即第1个输入的在最右边--个位。
***************************************************************/
void disp_lock_a(void)
{	void  *ptr;
	uchar i,j;
	uchar  dispmem[16];
	if(menu1==4) 
	{
		if(temp_mema!=4)
		{
			keya_num[0]=keynumdata[temp_mema];
			keya_num[1]=keynumdata[27];
			keya_num[2]=keynumdata[3];
			keya_num[3]=keynumdata[0];
		}
		else
		{  ptr=&ration_num_a;
			writebyteseq(PASSSTARTADD,ptr,4);
			keya_num[0]=keynumdata[3];
			keya_num[1]=keynumdata[3];
			keya_num[2]=keynumdata[3];
			keya_num[3]=keynumdata[3];
		}
	}
	else 
	{
		keya_num[0]=keynumdata[19];
		keya_num[1]=keynumdata[27];
		keya_num[2]=keynumdata[3];
		keya_num[3]=keynumdata[0];
	}
	if(locknooil_a) keya_num[4]=0x01;
	else keya_num[4]=0x02;

   if(multiple_a==1)j=0;
	else if(multiple_a==10)j=1;
	else if(multiple_a==100)j=2;
	else if(multiple_a==1000)j=3;
	else j=4;
	for(i=0;i<j;i++)
	{
		dispmem[i]=0x0e;  //'-'
	}
	for(i=j;i<16;i++)
	{
		dispmem[i]=0x0f;
	}
	

	ptr=&dispmem;
	disp_updata_lcd(LCDAADD,ptr);
	disp_dot1(5);   //LCD1小数点--无
}
/**************************************************************
*  功能:显示时钟a/b
**************************************************************/
void disp_time(uchar  gunidid)
{   uchar  dispmem[16];
	uchar *ptr;
	if(gunidid==0)
	{	
		keya_num[0]=keynumdata[25];keya_num[1]=keynumdata[27];keya_num[2]=keynumdata[27];keya_num[3]=keynumdata[25];  //"t--t"
		keya_num[4]=0x02;
		dispmem[9]=0x02;
		dispmem[8]=0x00;
		dispmem[7]=ucCurtime[6]/16;
		dispmem[6]=ucCurtime[6]%16;
		dispmem[5]=ucCurtime[4]/16;
		dispmem[4]=ucCurtime[4]%16;

		dispmem[15]=ucCurtime[3]/16;
		dispmem[14]=ucCurtime[3]%16;
		dispmem[13]=ucCurtime[2]/16;
		dispmem[12]=ucCurtime[2]%16;
		dispmem[11]=ucCurtime[1]/16;
		dispmem[10]=ucCurtime[1]%16;

		dispmem[3]=ucCurtime[0]/16;;
		dispmem[2]=ucCurtime[0]%16;;
		dispmem[1]=0x0f;
		dispmem[0]=ucCurtime[5]%16;
      disp_dot1(0x08);   //LCD1小数点  08--全无小数点
		ptr=&dispmem;
		disp_updata_lcd(LCDAADD,ptr);
	}
	else
	{
		keyb_num[0]=keynumdata[25];keyb_num[1]=keynumdata[27];keyb_num[2]=keynumdata[27];keyb_num[3]=keynumdata[25];  //"t--t"
		keyb_num[4]=0x02;
		dispmem[9]=0x02;
		dispmem[8]=0x00;
		dispmem[7]=ucCurtime[6]/16;
		dispmem[6]=ucCurtime[6]%16;
		dispmem[5]=ucCurtime[4]/16;
		dispmem[4]=ucCurtime[4]%16;

		dispmem[15]=ucCurtime[3]/16;
		dispmem[14]=ucCurtime[3]%16;
		dispmem[13]=ucCurtime[2]/16;
		dispmem[12]=ucCurtime[2]%16;
		dispmem[11]=ucCurtime[1]/16;
		dispmem[10]=ucCurtime[1]%16;

		dispmem[3]=ucCurtime[0]/16;;
		dispmem[2]=ucCurtime[0]%16;;
		dispmem[1]=0x0f;
		dispmem[0]=ucCurtime[5]%16;
      disp_dot2(0x08);   //LCD2小数点  08--全无小数点
		ptr=&dispmem;
		disp_updata_lcd(LCDBADD,ptr);
	}
}
/**************************************************************
*  功能:显示版本号a/b
**************************************************************/
void disp_ver(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[ver_num[1]%10];keya_num[1]=keynumdata[ver_num[1]/10];keya_num[2]=keynumdata[ver_num[0]%10];keya_num[3]=keynumdata[26];  //"U123"
		keya_num[4]=0x02;
	}
	else
	{
		keyb_num[0]=keynumdata[ver_num[1]%10];keyb_num[1]=keynumdata[ver_num[1]/10];keyb_num[2]=keynumdata[ver_num[0]%10];keyb_num[3]=keynumdata[26];  //"U123"
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:显示提前量---流量控制
***************************************************************/
void  disp_velocity_control(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[residue_a%10];
		keya_num[1]=keynumdata[residue_a/10];
		keya_num[2]=keynumdata[27];
		keya_num[3]=keynumdata[2];  //"2-30"
		keya_num[4]=0x02;
	}
	else
	{
		keyb_num[0]=keynumdata[residue_b%10];
		keyb_num[1]=keynumdata[residue_b/10];
		keyb_num[2]=keynumdata[27];
		keyb_num[3]=keynumdata[2];  //"2-30"
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:显示提前关机量---关机控制
***************************************************************/
void  disp_close_num(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[close_num_a%10];
		keya_num[1]=keynumdata[close_num_a/10];
		keya_num[2]=keynumdata[27];
		keya_num[3]=keynumdata[1];  //"1-30"
		keya_num[4]=0x02;
	}
	else
	{
		keyb_num[0]=keynumdata[close_num_b%10];

⌨️ 快捷键说明

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