📄 menu_second.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 + -