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

📄 disp.c

📁 HT1621液晶控制测试
💻 C
📖 第 1 页 / 共 3 页
字号:
		keyb_num[1]=keynumdata[close_num_b/10];
		keyb_num[2]=keynumdata[27];
		keyb_num[3]=keynumdata[1];  //"1-30"
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:显示中控地址
***************************************************************/
void  disp_address(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[gunadd_a%10];
		keya_num[1]=keynumdata[gunadd_a/10];
		keya_num[2]=keynumdata[0x0e];
		keya_num[3]=keynumdata[0x0a];  //"Ad30"
		keya_num[4]=0x02;
	}
	else
	{
		keyb_num[0]=keynumdata[gunadd_b%10];
		keyb_num[1]=keynumdata[gunadd_b/10];
		keyb_num[2]=keynumdata[0x0e];
		keyb_num[3]=keynumdata[0x0a];  //"Ad30"
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:显示小数点
***************************************************************/
void  disp_dot(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[decimal_a];
		keya_num[1]=keynumdata[27];
		keya_num[2]=keynumdata[0x8];
		keya_num[3]=keynumdata[0x0];  //"08-2"
		keya_num[4]=0x02;
		disp_lcd1(0,0x04);	
		disp_lcd1(0,0x0a);  //公升
		disp_lcd1(0,0x0);
		disp_dot1(decimal_a);   //LCD1小数点
	}
	else
	{
		keyb_num[0]=keynumdata[decimal_b];
		keyb_num[1]=keynumdata[27];
		keyb_num[2]=keynumdata[8];
		keyb_num[3]=keynumdata[0];  //"08-2"
		keyb_num[4]=0x02;
		disp_lcd2(0,0x04);	
		disp_lcd2(0,0x0a);  //公升
		disp_lcd2(0,0x0);
		disp_dot2(decimal_b);   //LCD2小数点
	}
}
/***************************************************************
*  功能:显示每秒增量--由于膨胀
***************************************************************/
void  disp_dilate(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[increment_a%10];
		keya_num[1]=keynumdata[increment_a/10];
		keya_num[2]=keynumdata[27];
		keya_num[3]=keynumdata[0x9];  //"09-3"
		keya_num[4]=0x02;
		
	}
	else
	{
		keyb_num[0]=keynumdata[increment_b%10];
		keyb_num[1]=keynumdata[increment_b/10];
		keyb_num[2]=keynumdata[27];
		keyb_num[3]=keynumdata[9];  //"09-3"
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:显示打印机工作方式  00--自动 01--手动
***************************************************************/
void  disp_printer_mode(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	if(printermode_a==0)
		{
			keya_num[0]=keynumdata[22];
			keya_num[1]=keynumdata[25];
			keya_num[2]=keynumdata[26];
			keya_num[3]=keynumdata[0x0a];  //"Auto"
		}
		else
		{
			keya_num[0]=keynumdata[0x0e];
			keya_num[1]=keynumdata[20];
			keya_num[2]=keynumdata[0x0a];
			keya_num[3]=keynumdata[17];  //"Hand"
		}
		keya_num[4]=0x02;
		
	}
	else
	{  if(printermode_b==0)
		{
			keyb_num[0]=keynumdata[22];
			keyb_num[1]=keynumdata[25];
			keyb_num[2]=keynumdata[26];
			keyb_num[3]=keynumdata[0x0a];  //"Auto"
		}
		else
		{
			keyb_num[0]=keynumdata[0x0e];
			keyb_num[1]=keynumdata[20];
			keyb_num[2]=keynumdata[0x0a];
			keyb_num[3]=keynumdata[17];  //"Hand"
		}
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:显示选择的打印机
***************************************************************/
void  disp_printselect(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[pirnt_select_a+1];
		keya_num[1]=keynumdata[27];
		keya_num[2]=keynumdata[27];
		keya_num[3]=keynumdata[23];  //"P--0"
		keya_num[4]=0x02;
		
	}
	else
	{
		keyb_num[0]=keynumdata[pirnt_select_b+1];
		keyb_num[1]=keynumdata[27];
		keyb_num[2]=keynumdata[27];
		keyb_num[3]=keynumdata[23];  //"P--1"
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:显示选择的油品
***************************************************************/
void  disp_product(uchar  gunidid)
{
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[oil_types_a];
		keya_num[1]=keynumdata[27];
		keya_num[2]=keynumdata[24];
		keya_num[3]=keynumdata[23];  //"Pr-0"
		keya_num[4]=0x02;
		
	}
	else
	{
		keyb_num[0]=keynumdata[oil_types_b];
		keyb_num[1]=keynumdata[27];
		keyb_num[2]=keynumdata[24];
		keyb_num[3]=keynumdata[23];  //"Pr-1"
		keyb_num[4]=0x02;
	}
}
/***************************************************************
*  功能:lcd1/lcd2显示--清屏
***************************************************************/
void  disp_lcd_clear(uchar  gunidid)
{  uchar  i;
	uchar  dispmem[16];
	uchar *ptr;
	for(i=0;i<16;i++)
	{
		dispmem[i]=0x0f;  //不显示
	}
	if(gunidid==0)
	{
		disp_dot1(8);   //LCD1小数点
		ptr=&dispmem;
		disp_updata_lcd(LCDAADD,ptr);
		
	}
	else
	{
		disp_dot2(8);   //LCD2小数点
		ptr=&dispmem;
		disp_updata_lcd(LCDBADD,ptr);
	}
}
/***************************************************************
*  功能:显示设置的单价
***************************************************************/
void  disp_setprice(uchar  gunidid)
{  uchar  i,endhide;
	uchar  dispmem[16];
	uchar *ptr;
	uint  mn;
	for(i=4;i<16;i++)
	{
		dispmem[i]=0x0f;  //不显示
	}
	
	if(gunidid==0)  //枪0
	{	
		keya_num[0]=keynumdata[23];
		keya_num[1]=keynumdata[27];
		keya_num[2]=keynumdata[0];
		keya_num[3]=keynumdata[0];  //"00-P"
		keya_num[4]=0x02;
		
		mn=price_a;  
		for(i=0;i<4;i++)
		{
			dispmem[i]=mn%10;mn/=10;
		}
      
		table_buf[2]=dispmem[1]*16+dispmem[0];
		table_buf[3]=dispmem[3]*16+dispmem[2];
		
		
		

		bbyte=dotmode[decimal_a];
		if (a2)	{a5=0;endhide=3;bbyte=6;}
		else if(a5) {endhide=2;bbyte=7;}
		else 	{endhide=0;bbyte=8;}
		for(i=3;i>0;i--)
		{  if(i==endhide)break;
			if(dispmem[i]==0) dispmem[i]=0x0f;
			else  break;
		}
		disp_dot1(bbyte);   //LCD1小数点
		ptr=&dispmem;
		disp_updata_lcd(LCDAADD,ptr);
		
	}
	else
	{
		keyb_num[0]=keynumdata[23];
		keyb_num[1]=keynumdata[27];
		keyb_num[2]=keynumdata[0];
		keyb_num[3]=keynumdata[0];  //"00-P"
		keyb_num[4]=0x02;
		
		mn=price_b;  
		for(i=0;i<4;i++)
		{
			dispmem[i]=mn%10;mn/=10;
		}

		table_buf[2+53]=dispmem[1]*16+dispmem[0];
		table_buf[3+53]=dispmem[3]*16+dispmem[2];

		bbyte=dotmode[decimal_b];
		if (a2)	{a5=0;endhide=3;bbyte=6;}
		else if(a5) {endhide=2;bbyte=7;}
		else 	{endhide=0;bbyte=8;}
		for(i=3;i>0;i--)
		{  if(i==endhide)break;
			if(dispmem[i]==0) dispmem[i]=0x0f;
			else  break;
		}
		disp_dot2(bbyte);   //LCD2小数点
		ptr=&dispmem;
		disp_updata_lcd(LCDBADD,ptr);
	}
}
/***************************************************************
*  功能:显示加油菜单项--1#
***************************************************************/
void disp_memu1_oil(void)
{
	switch(menu1)
	{
		case 1:   //查询前十次加油记录
			
			disp_eeprom_history(0,0);
			break;
		case 2:  //锁机
			disp_lock_a();
			break;
		case 3:  //查询时钟
			Get1302();
			disp_time(0);
			break;
		case 4:  //修改锁机密码
		  	disp_lock_a();
			break;
		case 5:   //显示版本号
			disp_ver(0);
			break;
		case 6:   //设置打印机工作方式  "Auto"戓"Hand"   00--[Auto]自动 01--[Hand]手动
			disp_printer_mode(0);
			writebyte(92,printermode_a);
			save_ok=1;
			break;
		case 7:   //选择打印机,"P--0/1"
			disp_printselect(0);
			writebyte(93,pirnt_select_a);
			save_ok=1;
			break;
		default:
			break;
	}
}
/***************************************************************
*  功能:显示加油菜单项--2#
***************************************************************/
void disp_memu2_oil(void)
{
	switch(menu2)
	{
		case 1:   //查询前十次加油记录
			
			disp_eeprom_history(1,0);
			break;
		case 2:  //锁机
			disp_lock_b();
			break;
		case 3:  //查询时钟
			Get1302();
			disp_time(1);
			break;
		case 4:  //修改锁机密码
		  	disp_lock_b();
			break;
		case 5:   //显示版本号
			disp_ver(1);
			break;
		case 6:   //设置打印机工作方式  "Auto"戓"Hand"   00--[Auto]自动 01--[Hand]手动
			disp_printer_mode(1);
			writebyte(99,printermode_b);
			save_ok=1;
			break;
		case 7:   //选择打印机,"P--0/1"
			disp_printselect(1);
			writebyte(100,pirnt_select_b);
			save_ok=1;
			break;
		default:
			break;
	}
}
/***************************************************************
*  功能:显示设置菜单项--1#
***************************************************************/
void disp_memu1_set(void)
{  void  *pt;
	if(menu1==2) menu1=3;
	switch(menu1)
	{
		case 1:   //设置提前量  "2--60"
			if(residue_a>60) residue_a=60;
			disp_lcd_clear(0);  //清屏
			disp_velocity_control(0);
			writebyte(87,residue_a);
			save_ok=1;
			break;
		case 2:  //设置提前关机量  "1--10"   //适用于没有电磁阀的加油机
			if(close_num_a>10) close_num_a=0;
			disp_lcd_clear(0);  //清屏
			disp_close_num(0);
			writebyte(88,close_num_a);
			save_ok=1;
			break;
		case 3:  //设置中控地址 "Ad-32"
			if(gunadd_a>32) gunadd_a=1;
			disp_lcd_clear(0);  //清屏
			disp_address(0);
			writebyte(89,gunadd_a);
			save_ok=1;
			break;
		case 4: //油品
 	      if(oil_types_a>7) oil_types_a=0;
			disp_lcd_clear(0);  //清屏
			disp_product(0);
			writebyte(78,oil_types_a);
			save_ok=1;
			break;
		case 5:   //设置每秒增量 "09-3"
			if(increment_a>23) increment_a=23;
			disp_lcd_clear(0);  //清屏
			disp_dilate(0);    
			writebyte(91,increment_a);
			save_ok=1;
			break;
		case 6:   //设置打印机工作方式  "Auto"戓"Hand"   00--[Auto]自动 01--[Hand]手动
			disp_printer_mode(0);
			writebyte(92,printermode_a);
			save_ok=1;
			break;
		case 7:   //选择打印机,"P--0/1"
			disp_printselect(0);
			writebyte(93,pirnt_select_a);
			save_ok=1;
			break;
		case 8:   //设置单价"00-P"
			disp_setprice(0);
			pt=&price_a;
			writebyteseq(502,pt,2);   //保存单价
			save_ok=1;
			table_buf[52] |=0x01;  //通知读单价
			break;
		case 9:   //修改时钟"t--t"
			if(temp_mema==0)Get1302();
			if(temp_mema==13)Set1302();
			disp_time(0);
			break;
		case 10:  //进入特殊菜单
			disp_pass_vital(0);
			break;
		default:
			break;
	}
}
/***************************************************************
*  功能:显示设置菜单项--2#
***************************************************************/
void disp_memu2_set(void)
{  void  *pt;
	if(menu2==2) menu2=3;
	switch(menu2)
	{
		case 1:   //设置提前量  "2--60"
			if(residue_b>60) residue_b=60;
			disp_lcd_clear(1);  //清屏
			disp_velocity_control(1);
			writebyte(94,residue_b);
			save_ok=1;
			break;
		case 2:  //设置提前关机量  "1--10"
			if(close_num_b>10) close_num_b=0;
			disp_lcd_clear(1);  //清屏
			disp_close_num(1);
			writebyte(95,close_num_b);
			save_ok=1;
			break;
		case 3:  //设置中控地址 "Ad-32"
			if(gunadd_a>32) gunadd_a=1;
			disp_lcd_clear(1);  //清屏
			disp_address(1);
			writebyte(96,gunadd_b);
			save_ok=1;
			break;
		case 4:   //油品
		   if(oil_types_b>7) oil_types_b=0;
			disp_lcd_clear(1);  //清屏
 	      disp_product(1);
			writebyte(79,oil_types_b);
			save_ok=1;
			break;
		case 5:   //设置每秒增量 "09-3"
			if(increment_b>23) increment_b=23;
			disp_lcd_clear(1);  //清屏
			disp_dilate(1);    
			writebyte(98,increment_b);
			save_ok=1;
			break;
		case 6:   //设置打印机工作方式  "Auto"戓"Hand"   00--[Auto]自动 01--[Hand]手动
			disp_printer_mode(1);
			writebyte(99,printermode_b);
			save_ok=1;
			break;
		case 7:   //选择打印机,"P--0/1"
			disp_printselect(1);
			writebyte(100,pirnt_select_b);
			save_ok=1;
			break;
		case 8:   //设置单价"00-P"
			disp_setprice(1);
			pt=&price_b;
			writebyteseq(504,pt,2);   //保存单价
			save_ok=1;
			table_buf[52+53] |=0x01;
			break;
		case 9:   //修改时钟"t--t"
			if(temp_mema==0)Get1302();
			if(temp_mema==13)Set1302();
			disp_time(1);
			break;
		case 10:  //进入特殊菜单
			disp_pass_vital(1);
			break;

		default:
			break;
	}
}
/***************************************************************
*  功能:显示特殊菜单项--1#
***************************************************************/
void disp_memu1_important(void)
{  if(!setpas_a) menu1=1;
	switch(menu1)
	{
		case 1: 	//设置小数点 "08-5"
			if(decimal_a>4) decimal_a=2;
		  	disp_dot(0);
			writebyte(90,decimal_a);
			save_ok=1;
			break;
		case 2:  	   	
			ration_mode_a=0;
			disp_total_a();
			break;
		case 3: 	   	
			ration_mode_a=1;
			disp_total_a();
			break;
		case 4: //Bare
			keya_num[0]=keynumdata[15];
			keya_num[1]=keynumdata[24];
			keya_num[2]=keynumdata[10];
			keya_num[3]=keynumdata[11];  //"bArE"
			keya_num[4]=0x02;
			break;
		default:
			break;
	}
}
/***************************************************************
*  功能:显示特殊菜单项--2#
***************************************************************/
void disp_memu2_important(void)
{  if(!setpas_b) menu2=1;
	switch(menu2)
	{  
		case 1: //设置小数点 "08-5"  
			if(decimal_b>4) decimal_b=2;
		  	disp_dot(1);
			writebyte(97,decimal_b); 
			save_ok=1;
			break;
		case 2: 	   	
			ration_mode_b=0;
			disp_total_b();
			break;
		case 3: 			
			ration_mode_b=1;
			disp_total_b();
			break;
		case 4:   //Bare
			keyb_num[0]=keynumdata[15];
			keyb_num[1]=keynumdata[24];
			keyb_num[2]=keynumdata[10];
			keyb_num[3]=keynumdata[11];  //"bArE"
			keyb_num[4]=0x02;
			break;
		default:
			break;
	}
}

⌨️ 快捷键说明

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