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

📄 menu_second.c

📁 关于SPLC501C的液晶编程
💻 C
字号:
//***************************************************************************//
//文件描述:SPLC501菜单应用范例程序--二级菜单UI程序
//
//声明:	小丑	20050810	Sunnorth	Mz Design
//			xinqiang@sunnorth.com.cn
//
//***************************************************************************//
#define Clear_Watchdog()	*(unsigned *)0x7012=1;		// 清看门狗
#define P_SystemClock       	(unsigned int *)0x7013 
#include "SPLC501User.h"
#include "ChineseMenu.h"
#include "Chinese.h"

void UpDateMenu(unsigned int First_Index,unsigned int Menu_Index,unsigned int* Menu_List);
unsigned int GetMLNum(unsigned int* Menu_List);
unsigned int GetMLiNum_Page(unsigned int* Menu_List);
//=====================================================================//
//函数:void ASCII_Menu(void)
//描述:ASCII字符显示效果演示的二级菜单
//参数:无
//返回:无
//注意:无号        
//=====================================================================//
void ASCII_Menu(void)
{
	unsigned int uiKey;
	unsigned int Item_Num,Update_Flag=0,Enter_Flag=0;
	unsigned int PageItem_Num;
	unsigned int First_Index=0,Active_Index=0,Temp_Index=0;
	
	Item_Num = GetMLNum((unsigned int *)Menu_List2);
	PageItem_Num = GetMLiNum_Page((unsigned int *)Menu_List2);
	UpDateMenu(0,0,(unsigned int *)Menu_List2);
	while(1)
	{
		uiKey = SP_GetCh();
		if(uiKey)
		{
			switch(uiKey)
			{
				case 0x0001:				//
					Enter_Flag=1;			//enter flag set
					break;
				case 0x0002:				//down
					if(Active_Index<Item_Num)	
					{
						Active_Index++;
						if(Temp_Index<PageItem_Num-1) Temp_Index++;
						else if(First_Index<Item_Num) First_Index++;
						Update_Flag = 1;
					}
					break;
				case 0x0004:				//up
					if(Active_Index>0)
					{
						Active_Index--;
						if(Temp_Index>0) Temp_Index--;
						else if(First_Index>0) First_Index--;
						Update_Flag = 1;
					}
					break;
				default:break;
			}
		}
		if(Update_Flag)
		{
			UpDateMenu(First_Index,Active_Index,(unsigned int *)Menu_List2);
			Update_Flag=0;
		}
		if(Enter_Flag)
		{
			Enter_Flag = 0;
			switch(Active_Index)
			{
				case 0:SingleASII_Show();Update_Flag = 1;break;
				case 1:SingleASII_Show_Type();Update_Flag = 1;break;
				case 2:String_Show();Update_Flag = 1;break;
				case 3:String_Show_Type();Update_Flag = 1;break;
				case 4: return;break;
				case 5:break;
				default:break;
			}
		}
		F_Key_Scan_ServiceLoop();
		Clear_Watchdog();
	}
}

//=====================================================================//
//函数:void Chinese_Menu(void)
//描述:中文显示效果演示的二级菜单
//参数:无
//返回:无
//注意:无
//=====================================================================//
void Chinese_Menu(void)
{
	unsigned int uiKey;
	unsigned int Item_Num,Update_Flag=0,Enter_Flag=0;
	unsigned int PageItem_Num;
	unsigned int First_Index=0,Active_Index=0,Temp_Index=0;
	
	Item_Num = GetMLNum((unsigned int *)Menu_List3);
	PageItem_Num = GetMLiNum_Page((unsigned int *)Menu_List3);
	UpDateMenu(0,0,(unsigned int *)Menu_List3);
	while(1)
	{
		uiKey = SP_GetCh();
		if(uiKey)
		{
			switch(uiKey)
			{
				case 0x0001:				//
					Enter_Flag=1;			//enter flag set
					break;
				case 0x0002:				//down
					if(Active_Index<Item_Num)	
					{
						Active_Index++;
						if(Temp_Index<PageItem_Num-1) Temp_Index++;
						else if(First_Index<Item_Num) First_Index++;
						Update_Flag = 1;
					}
					break;
				case 0x0004:				//up
					if(Active_Index>0)
					{
						Active_Index--;
						if(Temp_Index>0) Temp_Index--;
						else if(First_Index>0) First_Index--;
						Update_Flag = 1;
					}
					break;
				default:break;
			}
		}
		if(Update_Flag)
		{
			UpDateMenu(First_Index,Active_Index,(unsigned int *)Menu_List3);
			Update_Flag=0;
		}
		if(Enter_Flag)
		{
			Enter_Flag = 0;
			switch(Active_Index)
			{
				case 0:Chinese_Show_Type();Update_Flag = 1;break;
				case 1:Chinese_Show();Update_Flag = 1;break;
				case 2: return; break;
				default:break;
			}
		}
		F_Key_Scan_ServiceLoop();
		Clear_Watchdog();
	}
}
//=====================================================================//
//函数:void BMP_Menu(void)
//描述:图像显示效果演示的二级菜单
//参数:无
//返回:无
//注意:无
//=====================================================================//
void BMP_Menu(void)
{
	unsigned int uiKey;
	unsigned int Item_Num,Update_Flag=0,Enter_Flag=0;
	unsigned int PageItem_Num;
	unsigned int First_Index=0,Active_Index=0,Temp_Index=0;
	
	Item_Num = GetMLNum((unsigned int *)Menu_List4);
	PageItem_Num = GetMLiNum_Page((unsigned int *)Menu_List4);
	UpDateMenu(0,0,(unsigned int *)Menu_List4);
	while(1)
	{
		uiKey = SP_GetCh();
		if(uiKey)
		{
			switch(uiKey)
			{
				case 0x0001:				//
					Enter_Flag=1;			//enter flag set
					break;
				case 0x0002:				//down
					if(Active_Index<Item_Num)	
					{
						Active_Index++;
						if(Temp_Index<PageItem_Num-1) Temp_Index++;
						else if(First_Index<Item_Num) First_Index++;
						Update_Flag = 1;
					}
					break;
				case 0x0004:				//up
					if(Active_Index>0)
					{
						Active_Index--;
						if(Temp_Index>0) Temp_Index--;
						else if(First_Index>0) First_Index--;
						Update_Flag = 1;
					}
					break;
				default:break;
			}
		}
		if(Update_Flag)
		{
			UpDateMenu(First_Index,Active_Index,(unsigned int *)Menu_List4);
			Update_Flag=0;
		}
		if(Enter_Flag)
		{
			Enter_Flag = 0;
			switch(Active_Index)
			{
				case 0:BMP_Show((unsigned int *)encoding_36);Update_Flag = 1;break;
				case 1:BMP_Show((unsigned int *)encoding_37);Update_Flag = 1;break;
				case 2:BMP_Show((unsigned int *)encoding_38);Update_Flag = 1;break;
				case 3:BMP_Show_Mode();Update_Flag = 1;break;
				case 4: return; break;
				default:break;
			}
		}
		F_Key_Scan_ServiceLoop();
		Clear_Watchdog();
	}
}

⌨️ 快捷键说明

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