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

📄 display.c

📁 充电车的控制板程序
💻 C
📖 第 1 页 / 共 3 页
字号:
				put_string(0,32,1,SCGY,0);
				put_string(0,48,1,SCGL,0);
				}
			if(update_flag)
				{
				j=0;
				for(i=0;i<4;i++)
					{
					d=0;
					k=2;
					if(i==3)k=1;
					if(i==cursor_flag)d=0xFF;
					
					put_number(74,j,dis_temp[i],1,5,1,k,d);
					j+=16;
					}
				}			
			break;
		default:
			break;
		}
	change_flag=0;
	update_flag=0;
	}

/********************************************************************/
//                             通道校准
/********************************************************************/
void screen6_handle(void)
	{
	unsigned char j,k,v;
	
	switch(page_flag)
		{
		case 0:/********************通道校准第1屏******************/
		case 1:/********************通道校准第2屏******************/
		case 2:/********************通道校准第3屏******************/
		case 3:/********************通道校准第4屏******************/
		case 4:/********************通道校准第5屏******************/
			if(change_flag)
				{
				put_string(0,8,1,TDJZP[page_flag],0);
				put_string(0,24,1,XS,0);
				put_string(0,40,1,LD,0);
				}
			if(update_flag)
				{
				switch(page_flag)
					{
					case 0:
					case 2:
					case 3:
						v=2;
						break;
					case 1:
						v=1;
						break;
					case 4:
						v=3;
						break;
					default:
						break;
					}
				put_number(74,8,ad_result[page_flag],1,6,1,v,0);
				
				if(cursor_flag){j=0;k=0xFF;}
				else {j=0xFF;k=0;}
					
				put_number(81,24,dis_temp[0],0,5,1,0,j);
				put_number(81,40,dis_temp[1],0,5,1,0,k);
				}
			break;
		case 5:/********************通道校准第6屏******************/
		case 6:/********************通道校准第7屏******************/
			if(change_flag)
				{
				put_string(0,0,1,TDJZP[page_flag-5],0);
				put_string(0,17,1,DAMX,0);
				put_string(72,17,1,DAMN,0);
				v=1;
				if(page_flag==5)v=2;
				put_number(8,48,da_para[page_flag-5],1,5,1,v,0);
				put_number(82,48,da_para[page_flag-1],1,5,1,v,0);
				draw_line(0,16,127,16,0);
				draw_line(63,17,63,63,0);
				}
			if(update_flag)
				{
				v=1;
				if(page_flag==5)v=2;
				put_number(74,0,ad_result[page_flag-5],1,6,1,v,0);
				
				if(cursor_flag){j=0;k=0xFF;}
				else {j=0xFF;k=0;}
				
				put_number(8,32,dis_temp[0],0,5,1,0,j);
				put_number(82,32,dis_temp[1],0,5,1,0,k);
				}
			break;
		default:
			break;
		}
	change_flag=0;
	update_flag=0;
	}

/********************************************************************/
//                             设置已保存
/********************************************************************/
void screen90_handle(void)
	{
	if(change_flag)
		{
		change_flag=0;
		draw_picture(16,8,96,48,SZYBC,0);
		change_flag=0;
		tips_count=2;
		}
	else if(!tips_count)
		{
		screen_flag=screen_flag_temp;
		page_flag=page_flag_temp;
		cursor_flag=cursor_flag_temp;
		change_flag=1;
		update_flag=1;
		lcd_clear();
		}
	}

/********************************************************************/
//                             重新充电
/********************************************************************/
void screen91_handle(void)
	{
	unsigned char j,k,l;
	if(change_flag)
		{
		draw_picture(16,8,96,48,XZKSCD,0);
		}
	if(update_flag)
		{
		if(cursor_flag==0){j=1;k=0;l=0;}
		else if(cursor_flag==1){j=0;k=1;l=0;}
		else if(cursor_flag==2){j=0;k=0;l=1;}
		
		draw_picture(22,34,25,13,QD,j);
		draw_picture(50,34,25,13,QX,k);
		draw_picture(78,34,25,13,TJbmp,l);
		}
	change_flag=0;
	update_flag=0;
	}
/********************************************************************/
//                        运行监控(按键处理)
/********************************************************************/
void key0_handle(void)
	{
	if(!(key&(1<<AVAIL))||(!(blight_state&0x01)))return;
	
	key&=~(1<<AVAIL);
	
	switch(key)
		{
		case SETUP:
				screen_flag=1;//主菜单
				page_flag=0;
				cursor_flag=0;
				change_flag=1;
				update_flag=1;
				lcd_clear();
				break;
		case PgUp:
				if(++page_flag>1)page_flag=0; //翻页
				change_flag=1;
				update_flag=1;
				lcd_clear();
				break;
		case ENTER:
				screen_flag=91;
				change_flag=1;
				update_flag=1;
				cursor_flag=1;
				break;
		default:
			break;
		}
	}

/********************************************************************/
//                        主菜单(按键处理)
/********************************************************************/
void key1_handle(void)
	{
	unsigned char i;
	
	if(!(key&(1<<AVAIL)))return;
	
	key&=~(1<<AVAIL);
	
	switch(key)
		{
		case SETUP:
		case ENTER:
			switch(cursor_flag)
				{
				case 0:
					screen_flag=0;//运行监控
					page_flag=0;
					change_flag=1;
					lcd_clear();
					break;
				case 1:
					screen_flag=2;//充电参数
					page_flag=0;
					cursor_flag=0;
					change_flag=1;
					update_flag=1;
					for(i=0;i<2;i++)dis_temp[i]=charge_para[i];
					lcd_clear();
					break;
				case 2:
					screen_flag=3;//电池管理
					page_flag=0;
					cursor_flag=0;
					change_flag=1;
					update_flag=1;
					lcd_clear();
					break;
				case 3:
					screen_flag=4;//当前告警
					page_flag=0;
					change_flag=1;
					lcd_clear();
					break;
				case 4:
					screen_flag=5;//告警参数
					page_flag=0;
					cursor_flag=0;
					change_flag=1;
					update_flag=1;
					for(i=0;i<4;i++)dis_temp[i]=alarm_val[i];
					lcd_clear();
					break;
				case 5:
					screen_flag=6;//通道校准
					page_flag=0;
					cursor_flag=0;
					change_flag=1;
					update_flag=1;
					dis_temp[0]=amp[0];
					dis_temp[1]=zero[0];
					lcd_clear();
					break;
				default:
					break;
				}
			break;
		case LEFT:
		case RIGHT:
				if(cursor_flag<3)cursor_flag+=3;
				else cursor_flag-=3;
				update_flag=1;
				break;
		case UP:
				if(cursor_flag==0)cursor_flag=2;
				else if(cursor_flag==3)cursor_flag=5;
				else cursor_flag--;
				update_flag=1;
				break;
		case DOWN:
				if(cursor_flag==2)cursor_flag=0;
				else if(cursor_flag==5)cursor_flag=3;
				else cursor_flag++;
				update_flag=1;
				break;
		case PgUp:
				if(++cursor_flag==6)cursor_flag=0;
				update_flag=1;
				break;
		default:
				break;
		}
	}

/********************************************************************/
//                        充电参数(按键处理)
/********************************************************************/
void key2_handle(void)
	{
	unsigned char i,j;
	
	if(!(key&(1<<AVAIL)))return;
	
	key&=~(1<<AVAIL);
	
	switch(page_flag)
		{
		case 0:
			switch(key)
				{
				case PgUp:
						if(period_all)
							{
							for(i=0;i<6;i++)dis_temp[i]=charge_para[i+14];
							page_flag=1;
							}
						else 
							{
							for(i=0;i<3;i++)dis_temp[i]=charge_para[i+2];
							page_flag=3;
							}
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case LEFT:
				case RIGHT:
						cursor_flag^=0x01;
						change_flag=1;
						update_flag=1;
						break;
				case UP:
						if(++dis_temp[cursor_flag]>=7)dis_temp[cursor_flag]=0;
						if(dis_temp[0]>dis_temp[1])dis_temp[0]=0;
						update_flag=1;
						break;
				case DOWN:
						if(dis_temp[cursor_flag])dis_temp[cursor_flag]--;
						else dis_temp[cursor_flag]=6;
						if(dis_temp[0]>dis_temp[1])dis_temp[0]=dis_temp[1];
						update_flag=1;
						break;
				case SETUP:
						screen_flag=1;
						page_flag=0;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case ENTER:
						for(i=0;i<2;i++)charge_para[i]=dis_temp[i];
						charge_init(dis_temp[0]);
						//mode=charge_para[0];
						//period=1;
						//if(mode==2)charge_time=(charge_para[9]*60+charge_para[10])*60;
						//if(mode==3)charge_time=(charge_para[12]*60+charge_para[13])*60;
						goto_saved();
						break;
				default:
						break;
				}
			break;
		//----------------------------------------------------------
		case 1:
			switch(key)
				{
				case PgUp:
						if(period_all<=4)
							{
							for(i=0;i<3;i++)dis_temp[i]=charge_para[i+2];
							page_flag=3;
							}
						else page_flag=2;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case LEFT:
						j=period_all;
						if(j>4)j=4;
						if(cursor_flag)cursor_flag--;
						else cursor_flag=j-1;
						update_flag=1;
						break;
				case RIGHT:
						j=period_all;
						if(j>4)j=4;
						if(++cursor_flag>=j)cursor_flag=0;
						update_flag=1;
						break;
				case UP:
						if(++dis_temp[cursor_flag]>=5)dis_temp[cursor_flag]=0;
						update_flag=1;
						break;
				case DOWN:
						if(dis_temp[cursor_flag])dis_temp[cursor_flag]--;
						else dis_temp[cursor_flag]=4;
						update_flag=1;
						break;
				case SETUP:
						screen_flag=1;
						page_flag=0;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case ENTER:
						for(i=0;i<6;i++)charge_para[i+14]=dis_temp[i];
						//mode=charge_para[0];
						//period=1;
						//if(mode==2)charge_time=(charge_para[9]*60+charge_para[10])*60;
						//if(mode==3)charge_time=(charge_para[12]*60+charge_para[13])*60;
						goto_saved();
						break;
				default:
						break;
				}
			break;
		//----------------------------------------------------------
		case 2:
			switch(key)
				{
				case PgUp:
						for(i=0;i<3;i++)dis_temp[i]=charge_para[i+2];
						page_flag=3;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case LEFT:
						if(cursor_flag)cursor_flag--;
						else cursor_flag=period_all-5;
						update_flag=1;
						break;
				case RIGHT:
						if(++cursor_flag>=(period_all-4))cursor_flag=0;
						update_flag=1;
						break;
				case UP:
						if(++dis_temp[cursor_flag+4]>=5)dis_temp[cursor_flag+4]=0;
						update_flag=1;
						break;
				case DOWN:
						if(dis_temp[cursor_flag+4])dis_temp[cursor_flag+4]--;
						else dis_temp[cursor_flag+4]=4;
						update_flag=1;
						break;
				case SETUP:
						screen_flag=1;
						page_flag=0;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case ENTER:
						for(i=0;i<6;i++)charge_para[i+14]=dis_temp[i];
						//mode=charge_para[0];
						//period=1;
						//if(mode==2)charge_time=(charge_para[9]*60+charge_para[10])*60;
						//if(mode==3)charge_time=(charge_para[12]*60+charge_para[13])*60;
						goto_saved();
						break;
				default:
						break;
				}
			break;
		//----------------------------------------------------------
		case 3:
			switch(key)
				{
				case PgUp:
						for(i=0;i<3;i++)dis_temp[i]=charge_para[i+5];
						page_flag=4;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case LEFT:
						if(cursor_flag)cursor_flag--;
						else cursor_flag=2;
						update_flag=1;
						break;
				case RIGHT:
						if(++cursor_flag>=3)cursor_flag=0;
						update_flag=1;
						break;
				case UP:
						dis_temp[cursor_flag]++;
						update_flag=1;
						break;
				case DOWN:
						dis_temp[cursor_flag]--;
						update_flag=1;
						break;
				case SETUP:
						screen_flag=1;
						page_flag=0;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case ENTER:
						for(i=0;i<3;i++)charge_para[i+2]=dis_temp[i];
						goto_saved();
						break;
				default:
						break;
				}
			break;
		//----------------------------------------------------------
		case 4:
			{
			switch(key)
				{
				case PgUp:
						for(i=0;i<3;i++)dis_temp[i]=charge_para[i+8];
						page_flag=5;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case LEFT:
						if(cursor_flag)cursor_flag--;
						else cursor_flag=2;
						update_flag=1;
						break;
				case RIGHT:
						if(++cursor_flag>=3)cursor_flag=0;
						update_flag=1;
						break;
				case UP:
						dis_temp[cursor_flag]++;
						update_flag=1;
						break;
				case DOWN:
						dis_temp[cursor_flag]--;
						update_flag=1;
						break;
				case SETUP:
						screen_flag=1;
						page_flag=0;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case ENTER:
						for(i=0;i<3;i++)charge_para[i+5]=dis_temp[i];
						goto_saved();
						break;
				default:
						break;
				}
			}
			break;
		//----------------------------------------------------------
		case 5:
			{
			switch(key)
				{
				case PgUp:
						for(i=0;i<3;i++)dis_temp[i]=charge_para[i+11];
						page_flag=6;
						cursor_flag=0;
						change_flag=1;
						update_flag=1;
						lcd_clear();
						break;
				case LEFT:
						if(cursor_flag)cursor_flag--;
						else cursor_flag=2;
						update_flag=1;
						break;
				case RIGHT:
						if(++cursor_flag>=3)cursor_flag=0;

⌨️ 快捷键说明

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