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

📄 display.c

📁 2005年电子设计竞赛悬挂运动控制系统源码
💻 C
📖 第 1 页 / 共 3 页
字号:
//=======================================================
//函数:JiaoZhengTiShi2()
//描述:提示输入x坐标
//参数:void
//返回:无
//=======================================================
void JiaoZhengTiShi2()
{
	LCD501_Bitmap(8,24,QING);
	LCD501_Bitmap(24,24,SHU);
	LCD501_Bitmap(40,24,RU);
	LCD501_Bitmap(56,24,X);
	LCD501_Bitmap(70,24,ZHOU);
	LCD501_Bitmap(86,24,ZUO);
	LCD501_Bitmap(102,24,BIAO);
}

//=======================================================
//函数:JiaoZhengTiShi3()
//描述:提示输入y坐标
//参数:void
//返回:无
//=======================================================
void JiaoZhengTiShi3()
{
	LCD501_Bitmap(8,24,QING);
	LCD501_Bitmap(24,24,SHU);
	LCD501_Bitmap(40,24,RU);
	LCD501_Bitmap(56,24,Y);
	LCD501_Bitmap(70,24,ZHOU);
	LCD501_Bitmap(86,24,ZUO);
	LCD501_Bitmap(102,24,BIAO);
}

//=======================================================
//函数:GotoJiaoZheng()
//描述:进入校正菜单
//参数:void
//返回:无
//=======================================================
void GotoJiaoZheng()
{
	unsigned int flag_cler = 0;
StartJiaoZheng:
	Init_Coordinate();
	LCD501_ClrScreen(0);
	JiaoZhengTiShi1();
	JiaoZhengTiShi2();
	DisplayXY(X_Disp,2,112,40);
	SetX_flag = 1;
	while((SetX_flag !=0)|(SetY_flag !=0))
	{
		if(KeyProess() != 0)
		{
			Clear_Rectangle(5,7,127,0);
			if(SetY_flag == 0)
				DisplayXY(X_Disp,2,112,40);
			if(SetY_flag == 1)
			{
				if(flag_cler == 0)
				{
					flag_cler = 1;
					Clear_Rectangle(3,5,127,0);
					JiaoZhengTiShi3();
				}
				DisplayXY(Y_Disp,3,112,40);
			}
		}	
		*P_Watchdog_Clear = 1;
    }
//	if(flag_exit == 1)
//	{
//		GotoMenu();
//	}
	Init_Corrector(X_Coordinate,Y_Coordinate);
	Revise((double)X_Coordinate,(double)Y_Coordinate);
	flag_cler = 0;
	Ask();
	if(is_flag)
	{
		MODE_FLAG = 4;
		goto StartJiaoZheng;
	}
	else
		GotoMenu();
}

//=======================================================
//函数:GotoZiDingYi()
//描述:进入自定义菜单
//参数:void
//返回:无
//=======================================================
void GotoZiDingYi()
{
StartZiDingYi:
	LCD501_ClrScreen(0);
	Running();
	Rodam();
	while(ActOver != 1)
	{
		*P_Watchdog_Clear = 1;
	}
	ActOver = 0;
	//flag_cler = 0;
	Ask();
	if(is_flag)
	{
		MODE_FLAG = 4;
		Revise((double)X_Coordinate,(double)Y_Coordinate);
		goto StartZiDingYi;
	}
	else
		GotoMenu();
}

//=======================================================
//函数:GotoXunHeiXian()
//描述:进入寻黑线菜单
//参数:void
//返回:无
//=======================================================
void GotoXunHeiXian()
{
StartXunHeiXian:
	LCD501_ClrScreen(0);
	Running();
	BlkLinR();
	while(ActOver != 1|M1_Over==0|M2_Over==0)
	{
		*P_Watchdog_Clear = 1;
	}
	ActOver = 0;
	//flag_cler = 0;
	Ask();
	if(is_flag)
	{
		MODE_FLAG = 6;
		Revise((double)X_Coordinate,(double)Y_Coordinate);
		goto StartXunHeiXian;
	}
	else
		GotoMenu();
}

//=======================================================
//函数:YiDongTiShi1()
//描述:提示输入目标点坐标
//参数:void
//返回:无
//=======================================================
void YiDongTiShi1()
{
	LCD501_Bitmap(0,6,QING);
	LCD501_Bitmap(16,6,SHU);
	LCD501_Bitmap(32,6,RU);
	LCD501_Bitmap(48,6,MU);
	LCD501_Bitmap(64,6,BIAO);
	LCD501_Bitmap(80,6,DIAN);
	LCD501_Bitmap(96,6,ZUO);
	LCD501_Bitmap(112,6,BIAO);
}

//=======================================================
//函数:YiDongTiShi2()
//描述:提示输入目标点x坐标
//参数:void
//返回:无
//=======================================================
void YiDongTiShi2()
{
	LCD501_Bitmap(8,24,QING);
	LCD501_Bitmap(24,24,SHU);
	LCD501_Bitmap(40,24,RU);
	LCD501_Bitmap(56,24,X);
	LCD501_Bitmap(70,24,ZHOU);
	LCD501_Bitmap(86,24,ZUO);
	LCD501_Bitmap(102,24,BIAO);
}

//=======================================================
//函数:YiDongTiShi3()
//描述:提示输入目标点y坐标
//参数:void
//返回:无
//=======================================================
void YiDongTiShi3()
{
	LCD501_Bitmap(8,24,QING);
	LCD501_Bitmap(24,24,SHU);
	LCD501_Bitmap(40,24,RU);
	LCD501_Bitmap(56,24,Y);
	LCD501_Bitmap(70,24,ZHOU);
	LCD501_Bitmap(86,24,ZUO);
	LCD501_Bitmap(102,24,BIAO);
}

//=======================================================
//函数:GotoYiDong()
//描述:进入移动菜单
//参数:void
//返回:无
//=======================================================
void GotoYiDong()
{	
	unsigned int flag_cler = 0;
StartYiDong:
	Init_Coordinate();
	LCD501_ClrScreen(0);
	YiDongTiShi1();
	YiDongTiShi2();
	DisplayXY(X_Disp,2,112,40);
	SetX_flag = 1;
	while((SetX_flag !=0)|(SetY_flag !=0))
	{
		if(KeyProess() != 0)
		{
			Clear_Rectangle(5,7,127,0);
			if(SetY_flag == 0)
				DisplayXY(X_Disp,2,112,40);
			if(SetY_flag == 1)
			{
				if(flag_cler == 0)
				{
					flag_cler = 1;
					Clear_Rectangle(3,5,127,0);
					YiDongTiShi3();
				}
				DisplayXY(Y_Disp,3,112,40);
			}
		}	
		*P_Watchdog_Clear = 1;
    }
//	if(flag_exit == 1)
//	{
//		GotoMenu();
//	}
	Running();
	XoYoStar((double)X_Coordinate,(double)Y_Coordinate);
	while(ActOver != 1|M1_Over==0|M2_Over==0)
	{
		*P_Watchdog_Clear = 1;
	}
	ActOver = 0;
	flag_cler = 0;
	Ask();
	if(is_flag)
	{
		MODE_FLAG = 3;
		Revise((double)X_Coordinate,(double)Y_Coordinate);
		goto StartYiDong;
	}
	else
		GotoMenu();
}

//=======================================================
//函数:Decide()
//描述:判断按选择键时应进入哪个菜单里
//参数:void
//返回:无
//=======================================================
void Decide()
{
	switch(Selection)
	{
		case 1:
			MODE_FLAG = 1;
			GotoJiaoZheng();
			break;
		case 2:
			MODE_FLAG = 2;
			GotoHuaYuan();
			break;
		case 3:
			MODE_FLAG = 3;
			GotoZiDingYi();
			break;
		case 4:
			MODE_FLAG = 4;
			GotoYiDong();
			break;
		case 5:
			MODE_FLAG = 6;
			GotoXunHeiXian();
			break;
		default:
			break;
	}
}

//=======================================================
//函数:DisplayCoordinate(unsigned int x,unsigned int y)
//描述:在x,y上显示现在悬挂物所在坐标
//参数:x,y坐标
//返回:无
//=======================================================
void DisplayCoordinate(unsigned int x,unsigned int y)
{
	LCD501_Bitmap(x,y,LEFTC);
	DisplayXY(X_Disp,2,x+16,y);//
	LCD501_Bitmap(x+24,y,COMMA);
	DisplayXY(Y_Disp,3,x+48,y);//
	LCD501_Bitmap(x+56,y,RIGHTC);
}

//=======================================================
//函数:DisplayCorr(unsigned int x,unsigned int y)
//描述:在x,y上显示现在悬挂物所在坐标(动态显示时用)
//参数:x,y坐标
//返回:无
//=======================================================
void DisplayCorr(unsigned int x,unsigned int y)
{
	unsigned int tempx[2];
	unsigned int tempy[3];
	tempx[0] = x%10;
	tempx[1] = ((x-tempx[0])%100)/10;

	tempy[0] = y%10;
	tempy[1] = ((y-tempy[0])%100)/10;
	tempy[2] = ((y-tempy[1]*10-tempy[0])%1000)/100;
	
	Clear_Rectangle(6,8,128,0);
	LCD501_Bitmap(8,48,LEFTC);
	DisplayXY(tempx,2,24,48);//
	LCD501_Bitmap(32,48,COMMA);
	DisplayXY(tempy,3,56,48);//
	LCD501_Bitmap(64,48,RIGHTC);
}

//=======================================================
//函数:ShowAsk()
//描述:运动完后问是否继续
//参数:void
//返回:无
//=======================================================
void ShowAsk()
{
	LCD501_ClrScreen(0);
	
	LCD501_Bitmap(8,8,ZUO);
	LCD501_Bitmap(24,8,BIAO);
	LCD501_Bitmap(40,8,SHI);
	
	DisplayCoordinate(56,8);
	
	LCD501_Bitmap(16,24,JI);
	LCD501_Bitmap(32,24,XU);
	LCD501_Bitmap(48,24,ASKF);
	
	LCD501_Bitmap(16,40,SHI);
	LCD501_Bitmap(48,40,FOU);
	LCD501_SetPaintMode(3);
	LCD501_Rectangle(16,40,31,55,1);
	LCD501_SetPaintMode(0);
}

//=======================================================
//函数:Ask()
//描述:处理是否继续
//参数:void
//返回:无
//=======================================================
void Ask()
{
	ask_flag = 1;
	MODE_FLAG = 5;
	chose_flag = 0;
	ShowAsk();
	while(chose_flag != 1)
	{
		KeyProess();
		*P_Watchdog_Clear = 1;
	}
}

//=======================================================
//函数:SelectLR(unsigned int j)
//描述:问是否继续时对左右键的处理
//参数:j为左或右的标志位,1左0右
//返回:无
//=======================================================
void SelectLR(unsigned int j)
{
	if(j)
	{
		if(ask_flag != 1)
		{
			LCD501_SetPaintMode(3);
			LCD501_Rectangle(16,40,31,55,1);
			LCD501_Rectangle(48,40,63,55,1);
			LCD501_SetPaintMode(0);
			ask_flag = 1;
		}
	}
	else
	{
		if(ask_flag ==1)
		{
			LCD501_SetPaintMode(3);
			LCD501_Rectangle(16,40,31,55,1);
			LCD501_Rectangle(48,40,63,55,1);
			LCD501_SetPaintMode(0);
			ask_flag = 0;
		}
	}
}

//=======================================================
//函数:Chose()
//描述:处理是否继续的选择
//参数:void
//返回:无
//=======================================================
void Chose()
{
	if(ask_flag == 1)
		is_flag = 1;
	if(ask_flag ==0)
	{
		is_flag = 0;
		MODE_FLAG = 0;
	}
	chose_flag = 1;
}

//=======================================================
//函数:GotoMenu()
//描述:调用主菜单
//参数:void
//返回:无
//=======================================================
void GotoMenu()
{
	Init();
	Menu();
	while(1)
	{
		KeyProess();
		*P_Watchdog_Clear = 1;
	}
}

⌨️ 快捷键说明

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