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

📄 display.c

📁 2005年电子设计竞赛悬挂运动控制系统源码
💻 C
📖 第 1 页 / 共 3 页
字号:
//函数:ZiDingYi(unsigned int y)
//描述:在(0,y)坐标上显示'自定义'选项
//参数:y坐标
//返回:无
//=======================================================
void ZiDingYi(unsigned int y)
{
	LCD501_Bitmap(0,y,ZI);
	LCD501_Bitmap(16,y,DING);
	LCD501_Bitmap(32,y,YI4);
}

//=======================================================
//函数:XunHeiXian(unsigned int y)
//描述:在(0,y)坐标上显示'寻黑线'选项
//参数:y坐标
//返回:无
//=======================================================
void XunHeiXian(unsigned int y)
{
	LCD501_Bitmap(0,y,XUN);
	LCD501_Bitmap(16,y,HEI);
	LCD501_Bitmap(32,y,XIAN);
}

//=======================================================
//函数:YiDong(unsigned int y)
//描述:在(0,y)坐标上显示'移动'选项
//参数:y坐标
//返回:无
//=======================================================
void YiDong(unsigned int y)
{
	LCD501_Bitmap(5,y,YI2);
	LCD501_Bitmap(27,y,DONG);
}

//=======================================================
//函数:ShuoMing(unsigned int y)
//描述:在(0,y)坐标上显示'说明'选项
//参数:y坐标
//返回:无
//=======================================================
void ShuoMing(unsigned int y)
{
	LCD501_Bitmap(5,y,SHUO);
	LCD501_Bitmap(27,y,MING);
}

//=======================================================
//函数:JiaoZheng(unsigned int y)
//描述:在(0,y)坐标上显示'校正'选项
//参数:y坐标
//返回:无
//=======================================================
void JiaoZheng(unsigned int y)
{
	LCD501_Bitmap(5,y,JIAO);
	LCD501_Bitmap(27,y,ZHENG);
}

//=======================================================
//函数:ArrowHead()
//描述:在(0,0)上显示向上箭头,在(0,56)上显示向下箭头
//参数:void
//返回:无
//=======================================================
void ArrowHead()
{
	LCD501_Bitmap(0,0,UPARROWHEAD);
	LCD501_Bitmap(0,56,DOWNARROWHEAD);
}

//=======================================================
//函数:Menu()
//描述:显示主菜单
//参数:void
//返回:无
//=======================================================
void Menu()
{
	LCD501_ClrScreen(0);
	ArrowHead();
	JiaoZheng(8);
	HuaYuan(24);
	ZiDingYi(40);

	LCD501_SetPaintMode(3);
	LCD501_Rectangle(0,8,47,23,1);
	//ShuoMing(56);
	LCD501_SetPaintMode(0);
	LCD501_Bitmap(56,8,encoding_10);
	LCD501_Bitmap(56,24,encoding_11);
	LCD501_Bitmap(56,40,encoding_12);
	LCD501_Bitmap(71,8,JIAN);
	LCD501_Bitmap(71,24,JIAN);
	LCD501_Bitmap(71,40,JIAN);
	LCD501_Bitmap(87,8,SHANG);
	LCD501_Bitmap(87,24,XIA);
	LCD501_Bitmap(87,40,QUE);
	LCD501_Bitmap(103,8,FAN);
	LCD501_Bitmap(103,24,FAN);
	LCD501_Bitmap(103,40,DING);
}

//=========================================================
//函数:SelectShow(unsigned int cursel, unsigned int fl)
//描述:根据现在所在的的菜单项和向上或向下的动作显示显示菜单
//参数:cursel为现在游标所在的菜单代号,fl为向上或向下的标志
//返回:无
//=========================================================
void SelectShow(unsigned int cursel, unsigned int fl)
{
	LCD501_SetPaintMode(0);
	Clear_Rectangle(1,7,48,0);
	if(fl)
	{
		switch(cursel)
		{
			case 2:	
			/*	YiDong(8);
				JiaoZheng(24);
				HuaYuan(40);*/
				JiaoZheng(8);
				HuaYuan(24);
				ZiDingYi(40);
				break;
			case 3:	
			/*	JiaoZheng(8);
				HuaYuan(24);
				ZiDingYi(40);*/
				HuaYuan(8);
				ZiDingYi(24);
				YiDong(40);
				break;
			default:
				break;
		}
	}
	else
	{
		switch(cursel)
		{
			case 3:	
				/*JiaoZheng(8);
				HuaYuan(24);
				ZiDingYi(40);*/
				HuaYuan(8);
				ZiDingYi(24);
				YiDong(40);
				break;
			case 4:	
				/*HuaYuan(8);
				ZiDingYi(24);
				YiDong(40);*/
				ZiDingYi(8);
				YiDong(24);
				XunHeiXian(40);
				break;
			default:
				break;
		}
	}
}

//=======================================================
//函数:Select(unsigned int flag)
//描述:根据向上或向下动作显示菜单和移动游标
//参数:flag为向上或向下的标志
//返回:无
//=======================================================
void Select(unsigned int flag)
{
	unsigned int pg;
	if(flag)	//up
	{	
		LCD501_SetPaintMode(3);
		LCD501_Rectangle(0,0,15,7,1);
		LCD501_SetPaintMode(0);
		CurrentLine -= 1;
		if((CurrentLine < 1) & (Selection == 1))
		{
			CurrentLine = 1;
			Selection = 1;
		}
		else
		{
			if((CurrentLine < 1) & (Selection != 1))
			{
				CurrentLine = 1;
				SelectShow(Selection,flag);
				LCD501_SetPaintMode(3);
				LCD501_Rectangle(0,8,47,23,1);
				LCD501_SetPaintMode(0);
			}
			else
			{
				LCD501_SetPaintMode(3);
				LCD501_Rectangle(0,8+(CurrentLine-1)*16,47,7+(CurrentLine+1)*16,1);
				LCD501_SetPaintMode(0);
			}
			Selection -= 1;
			if(Selection == 0)
			{
				Selection = 1;
			}
		}
		LCD501_SetPaintMode(3);
		LCD501_Rectangle(0,0,15,7,1);
		LCD501_SetPaintMode(0);
	}
	else		//down
	{
		LCD501_SetPaintMode(3);
		LCD501_Rectangle(0,56,15,63,1);
		LCD501_SetPaintMode(0);
		CurrentLine += 1;
		if((CurrentLine >3) & (Selection == 5))
		{
			CurrentLine = 3;
			Selection = 5;
		}
		else
		{
			if((CurrentLine > 3) & (Selection != 5))
			{
				CurrentLine = 3;
				SelectShow(Selection,flag);
				LCD501_SetPaintMode(3);
				LCD501_Rectangle(0,40,47,55,1);
				LCD501_SetPaintMode(0);
			}
			else
			{
				LCD501_SetPaintMode(3);
				LCD501_Rectangle(0,8+(CurrentLine-2)*16,47,7+CurrentLine*16,1);
				//LCD501_Rectangle(0,8+(CurrentLine-2)*16,48,8+(CurrentLine-1)*16,1);
				LCD501_SetPaintMode(0);
			}
			Selection += 1;
			if(Selection == 6)
			{
				Selection = 5;
			}
		}
		LCD501_SetPaintMode(3);
		LCD501_Rectangle(0,56,15,63,1);
		LCD501_SetPaintMode(0);
	}
}

//=======================================================
//函数:HuaYuanTiShi1()
//描述:提示输入画圆的坐标
//参数:void
//返回:无
//=======================================================	
void HuaYuanTiShi1()
{
	LCD501_Bitmap(8,6,QING);
	LCD501_Bitmap(24,6,SHU);
	LCD501_Bitmap(40,6,RU);
	LCD501_Bitmap(56,6,YUAN);
	LCD501_Bitmap(70,6,DIAN);
	LCD501_Bitmap(86,6,ZUO);
	LCD501_Bitmap(102,6,BIAO);
}

//=======================================================
//函数:HuaYuanTiShi2()
//描述:提示输入画圆的x坐标
//参数:void
//返回:无
//=======================================================	
void HuaYuanTiShi2()
{
	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);
}

//=======================================================
//函数:HuaYuanTiShi3()
//描述:提示输入画圆的y坐标
//参数:void
//返回:无
//=======================================================	
void HuaYuanTiShi3()
{
	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);
}

//=======================================================
//函数:Running()
//描述:提示悬挂物运行中
//参数:void
//返回:无
//=======================================================	
void Running()
{
	LCD501_ClrScreen(0);
	LCD501_Bitmap(16,12,YUN);
	LCD501_Bitmap(48,12,XING);
	LCD501_Bitmap(80,12,ZHONG);
	LCD501_Bitmap(16,32,QING);
	LCD501_Bitmap(48,32,DENG);
	LCD501_Bitmap(80,32,DAI);
}

//=============================================================================
//函数:DisplayXY(unsigned int *a,unsigned int b,unsigned int x,unsigned int y)
//描述:在(x,y)中显示b位数字,数字从a指向的位置取 
//参数:*a为指针变量,b为显示数的位数,x,y为显示坐标
//返回:无
//=============================================================================	
void DisplayXY(unsigned int *a,unsigned int b,unsigned int x,unsigned int y)
{
	unsigned int i;
	for(i=0; i<b; i++)
	{
		switch(*(a+i))
		{
			case 0:
				LCD501_Bitmap(x-i*8,y,ZERO);
				break;
			case 1:
				LCD501_Bitmap(x-i*8,y,ONE);
				break;
			case 2:
				LCD501_Bitmap(x-i*8,y,TWO);
				break;
			case 3:
				LCD501_Bitmap(x-i*8,y,THREE);
				break;
			case 4:
				LCD501_Bitmap(x-i*8,y,FOUR);
				break;
			case 5:
				LCD501_Bitmap(x-i*8,y,FIVE);
				break;
			case 6:
				LCD501_Bitmap(x-i*8,y,SIX);
				break;
			case 7:
				LCD501_Bitmap(x-i*8,y,SEVEN);
				break;
			case 8:
				LCD501_Bitmap(x-i*8,y,EIGHT);
				break;
			case 9:
				LCD501_Bitmap(x-i*8,y,NINE);
				break;
			default:
				break;
		}
	}
}

//=======================================================
//函数:GotoHuaYuan()
//描述:进入画圆菜单
//参数:void
//返回:无
//=======================================================	
void GotoHuaYuan()
{
	unsigned int flag_cler = 0;
StartHuaYuan:
	Init_Coordinate();
	LCD501_ClrScreen(0);
	HuaYuanTiShi1();
	HuaYuanTiShi2();
	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);
					HuaYuanTiShi3();
				}
				DisplayXY(Y_Disp,3,112,40);
			}
		}	
		*P_Watchdog_Clear = 1;
    }
//	if(flag_exit == 1)
//	{
//		GotoMenu();
//	}
	Running();
	CirculGo((double)X_Coordinate,(double)Y_Coordinate,25.0);
	while(ActOver != 1)
	{
		*P_Watchdog_Clear = 1;
	}
	ActOver = 0;
	flag_cler = 0;
	Ask();
	if(is_flag)
	{
		MODE_FLAG = 1;
		Revise((double)X_Coordinate,(double)Y_Coordinate);
		goto StartHuaYuan;
	}
	else
		GotoMenu();
}

//=======================================================
//函数:JiaoZhengTiShi1()
//描述:提示输入校正坐标
//参数:void
//返回:无
//=======================================================	
void JiaoZhengTiShi1()
{
	LCD501_Bitmap(2,6,QING);
	LCD501_Bitmap(18,6,SHU);
	LCD501_Bitmap(34,6,RU);
	LCD501_Bitmap(50,6,JIAO);
	LCD501_Bitmap(64,6,ZHENG);
	LCD501_Bitmap(80,6,DIAN);
	LCD501_Bitmap(96,6,ZUO);
	LCD501_Bitmap(112,6,BIAO);
}

⌨️ 快捷键说明

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