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

📄 e20_menu.c

📁 HSAV DR53E CF卡MP3录放板应用编程源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
#include "E20_main.h"           

//所有菜单显示均带一个反白光标参数,当参数为0时不反白显示,
//可以用一个变量代入此参数,然后以这个变量作显示和执行功能函数,
//注意:显示和执行功能的函数要独立分开。
//主  菜单英文显示
void MDIP_Main_Logo(){

    gTAB_HourMinsecond[0] = gRTC_Hour; //小时
    gTAB_HourMinsecond[1] = gRTC_Minute; //分钟
    gTAB_HourMinsecond[2] = gRTC_Second; //秒钟
    MDIP_SetupTime_List(0,cDOTLine2,0); //光标1~6

    gTAB_YearWeekDay[0] = gRTC_Year; //年
    gTAB_YearWeekDay[1] = gRTC_Month; //月
    gTAB_YearWeekDay[2] = gRTC_Day; //日
    MDIP_Year_Month_Day(0,0);//光标(即1,2,3,4,5,6)
    MDIP_Week_day(128-17*2-7*2,cDOTLine1,0,gRTC_Week);//光标7(7-6,即1) 

    FDIPReverse = 0;
    MDIPWriteEngChinese_String(64-3*16, cDOTLine3, "中讯");       
//    MDIPWriteEngChinese_String(64-3*16, cDOTLine3, "INJEL");       
//    MDIPWriteEngChinese_String(64-3*16, cDOTLine3, "英捷");       

    MDIPWriteEngChinese_String(64-3*16+17*2, cDOTLine3, " TP-100");       
    MDIPWriteChinese_String(64-3*16, cDOTLine4, "定时播放器");       

    if ((gReturnMenuBuffer == cMenu_Main02_Select_MP3)
        ||(gReturnMenuBuffer == cMenu_Main03_LoopPlayMP3)
        ||(gReturnMenuBuffer == cMenu_Main03_MP3Name)) MDIPWriteEngChinese_String(64+17, cDOTLine2, "播MP3");       
    else if(gReturnMenuBuffer == cMenu_Main02_Select_LINE) MDIPWriteEngChinese_String(64+17, cDOTLine2, "播LINE");       
    else if(gReturnMenuBuffer == cMenu_Main02_Select_MIC) MDIPWriteEngChinese_String(64+17, cDOTLine2, "播MIC");       
    else if(gReturnMenuBuffer == cMenu_Main02_Select_Tuner) MDIPWriteChinese_String(64+17, cDOTLine2, "播收音");       
    return;
}

void MDIP_Main_Menu(BYTE gLocal_1){
    BYTE gLocal_0;
    //主菜单
    FDIPReverse = 0;
    if (gLocal_1 == 1) FDIPReverse = 1;  /*光标*/
    MDIPWriteChinese_String(7, cDOTLine1, "调时");       

    FDIPReverse = 0;
    if (gLocal_1 == 2) FDIPReverse = 1;  /*光标*/
    MDIPWriteChinese_String(7, cDOTLine2, "编程");       

    FDIPReverse = 0;
    if (gLocal_1 == 3) FDIPReverse = 1;  /*光标*/
    MDIPWriteChinese_String(7, cDOTLine3, "电源");       

    FDIPReverse = 0;
    if (gLocal_1 == 4) FDIPReverse = 1;  /*光标*/
    MDIPWriteChinese_String(64+7, cDOTLine1, "播音");       
    #ifndef OTG_MODE
        FDIPReverse = 0;
        if (gLocal_1 == 5) FDIPReverse = 1;  /*光标*/
        MDIPWriteChinese_String(64+7, cDOTLine2, "录音");       

        FDIPReverse = 0;
        if (gLocal_1 == 6) FDIPReverse = 1;  /*光标*/
        MDIPWriteChinese_String(64+7, cDOTLine3, "删");       
        MDIPChineseToScreen(64+7+16, cDOTLine3, cDIP_cu);
    #endif
    return;
}
//调时菜单    设参数gLocal_1 = 0,即无反光标。
void MDIP_Menu_TimerList(BYTE gLocal_1){
//有细字体
    BYTE gLocal_A;
    gLocal_A = 0;
    if (FPress_Enter_Modify && ((gLocal_1 == 1)||(gLocal_1 == 2))) gLocal_A = 1;
    else if (FPress_Enter_Modify && ((gLocal_1 == 3)||(gLocal_1 == 4))) gLocal_A = 2;
    else if (FPress_Enter_Modify && ((gLocal_1 == 5)||(gLocal_1 == 6))) gLocal_A = 3;
    else if (FPress_Enter_Modify && ((gLocal_1 == 7)||(gLocal_1 == 8))) gLocal_A = 4;
    else if (FPress_Enter_Modify && ((gLocal_1 == 9)||(gLocal_1 == 10))) gLocal_A = 5;
    else if (FPress_Enter_Modify && ((gLocal_1 == 11)||(gLocal_1 == 12))) gLocal_A = 6;
    else if (FPress_Enter_Modify && (gLocal_1 == 13)) gLocal_A = 7;

    if ((gLocal_A != 1)&&(gLocal_A != 2)&&(gLocal_A != 3)){
        gTAB_YearWeekDay[0] = gRTC_Year; //年
        gTAB_YearWeekDay[1] = gRTC_Month; //月
        gTAB_YearWeekDay[2] = gRTC_Day; //日
    }
    MDIP_Year_Month_Day(0,gLocal_1);//光标(即1,2,3,4,5,6)

    if ((gLocal_A != 4)&&(gLocal_A != 5)&&(gLocal_A != 6)){
        gTAB_HourMinsecond[0] = gRTC_Hour; //小时
        gTAB_HourMinsecond[1] = gRTC_Minute; //分钟
        gTAB_HourMinsecond[2] = gRTC_Second; //秒钟
        MDIP_SetupTime_List(0,cDOTLine2,gLocal_1-6);   //光标从7~12(7-6 即 1,2,3,4,5,6)
    }
    if (gLocal_A != 7) MDIP_Week_day(128-17*2-7*2,cDOTLine2,gLocal_1-12,gRTC_Week); //光标13(13-12,即1) 
    
    MDIP_Menu_Quit();
    return;
}


//编程菜单    设参数gLocal_1 = 0,即无反光标。
void MDIP_ProgramList_Menu(){

    FDIPReverse = 0;
    if (gCursorMove == 1) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16,cDOTLine1,"星期列表");

    FDIPReverse = 0;
    if (gCursorMove == 2) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16,cDOTLine2,"特别日子列表");

    FDIPReverse = 0;
    if (gCursorMove == 3) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16,cDOTLine3,"启动定时器");

    FDIPReverse = 0;
    if (gCursorMove == 4) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16,cDOTLine4,"预热开启时间");

//    MDIP_Menu_Quit();
    return;
}
void MDIP_Menu_Quit(){
    FDIPReverse = 0;
    MDIPWriteChinese_String(64-3*16,cDOTLine4,"按'EXIT'返回"); //按"EXIT"返回   
    return;
}
//年月日  设参数gLocal_1 = 0,即无反白光标。
void MDIP_Year_Month_Day(BYTE gLocal_Cursor,BYTE gLocal_1){

    FDIPReverse = 0;
    MDIPWriteString(gLocal_Cursor, cDOTLine1, "20");//N年N月N日
    FDIPReverse = 0;
    if ((gLocal_1 == 1) && (gMenuSelect !=cMenu_Main02_OtherDay)) FDIPReverse = 1;  //光标3
    
    MDIPASCIIToScreen(gLocal_Cursor+8*2,cDOTLine1,gTAB_YearWeekDay[0]/16+'0');
    FDIPReverse = 0;
    
    if ((gLocal_1 == 2) && (gMenuSelect !=cMenu_Main02_OtherDay))  FDIPReverse = 1;  //光标4
    MDIPASCIIToScreen(gLocal_Cursor+8*3,cDOTLine1,gTAB_YearWeekDay[0]%16+'0');
    FDIPReverse = 0;
    MDIPWriteString(gLocal_Cursor+8*4, cDOTLine1, "-");//N年N月N日
    FDIPReverse = 0;
    
    if (gLocal_1 == 3) FDIPReverse = 1;  //光标5
    MDIPASCIIToScreen(gLocal_Cursor+8*5,cDOTLine1,gTAB_YearWeekDay[1]/16+'0');
    FDIPReverse = 0;
    
    if (gLocal_1 == 4) FDIPReverse = 1;  //光标6
    MDIPASCIIToScreen(gLocal_Cursor+8*6,cDOTLine1,gTAB_YearWeekDay[1]%16+'0');
    FDIPReverse = 0;
    MDIPWriteString(gLocal_Cursor+8*7, cDOTLine1, "-");//N年N月N日
    
    FDIPReverse = 0;
    if (gLocal_1 == 5) FDIPReverse = 1;  //光标7
    MDIPASCIIToScreen(gLocal_Cursor+8*8,cDOTLine1,gTAB_YearWeekDay[2]/16+'0');
    
    FDIPReverse = 0;
    if (gLocal_1 == 6) FDIPReverse = 1;  //光标8
    MDIPASCIIToScreen(gLocal_Cursor+8*9,cDOTLine1,gTAB_YearWeekDay[2]%16+'0');

    return;
}
void MDIP_Menu_OtherDay(BYTE gLocal_1){
    FDIPReverse = 0;
    MDIP_Option_group(0,cDOTLine1,gLocal_1); //光标1~2
    MDIP_Year_Month_Day(17*2+8*2-1,gLocal_1);//光标3~6(3-6 即1,2,3,4,5,6)
    MDIP_Menu_Select_Group(gLocal_1-6); //光标7~9 (7-6 1,2,3)

    return;
}
void MDIP_Menu_OtherDay_Broadcast01(BYTE gLocal_1){
    FDIPReverse = 0;
    MDIP_Option_group(0,cDOTLine1,gLocal_1); //光标0
    MDIPWriteChinese_String(128-17*3, cDOTLine1, "共");       
    MDIPASCIIToScreen(128-17*2, cDOTLine1, gAdd_Option_groupMax/10+'0');
    MDIPASCIIToScreen(128-17*2+8*1, cDOTLine1,gAdd_Option_groupMax%10+'0');
    MDIPWriteChinese_String(128-17*1, cDOTLine1, "项");       

    if (FEEP_Already_Write){
        FDIPReverse = 0;
        MDIPASCIIToScreen(16*2, cDOTLine2, ':');
        MDIPASCIIToScreen(16*2+8*1, cDOTLine2, ' ');

        gTAB_HourMinsecond[0] = gBroadcast[0]; //小时
        gTAB_HourMinsecond[1] = gBroadcast[1]; //小时
        gTAB_HourMinsecond[2] = gBroadcast[2]; //小时
        MDIP_SetupTime_List(16*2+8*2,cDOTLine2,0);   //光标从1~6( 即 1,2,3,4,5,6)

        FDIPReverse = 0;
        MDIPWriteChinese_String(0, cDOTLine2, "开始");       

        MDIPASCIIToScreen(16*2, cDOTLine3, ':');
        MDIPASCIIToScreen(16*2+8, cDOTLine3, ' ');

        gTAB_HourMinsecond[0] = gBroadcast[3];//小时
        gTAB_HourMinsecond[1] = gBroadcast[4];//分钟
        gTAB_HourMinsecond[2] = gBroadcast[5];//秒钟
        MDIP_SetupTime_List(16*2+8*2,cDOTLine3,0);   //光标从7~12(7-6 即 1,2,3,4,5,6)

        FDIPReverse = 0;
        MDIPWriteChinese_String(0, cDOTLine3, "停止");       

        FDIPReverse = 0;
        if (gLocal_1 == 3) FDIPReverse = 1;  //光标
        MDIPWriteChinese_String(64-3*16, cDOTLine4, "其它控制");       
    }
    else {
        MDIPWriteChinese_String(64-16*2,cDOTLine2, "未编程");        
        MDIP_Option_group(0,cDOTLine1,gCursorMove); //光标0
    }
    return;
}
void MDIP_Menu_OtherDay_List(BYTE gLocal_1){ // 参数gLocal_1为反白光标,参数gLocal_2为对应N项的内容
    FDIPReverse = 0;

    MDIP_Option_group(0,cDOTLine1,0); //光标0
    MDIP_Year_Month_Day(17*2+8*2,0);//光标0

    FDIPReverse = 0;
    MDIPASCIIToScreen(16*2, cDOTLine2, ':');
    MDIPASCIIToScreen(16*2+8*1, cDOTLine2, ' ');

    gTAB_HourMinsecond[0] = gBroadcast[0]; //小时
    gTAB_HourMinsecond[1] = gBroadcast[1]; //小时
    gTAB_HourMinsecond[2] = gBroadcast[2]; //小时
    MDIP_SetupTime_List(16*2+8*2,cDOTLine2,gLocal_1);   //光标从1~6( 即 1,2,3,4,5,6)

    FDIPReverse = 0;
    MDIPWriteChinese_String(0, cDOTLine2, "开始");       

    MDIPASCIIToScreen(16*2, cDOTLine3, ':');
    MDIPASCIIToScreen(16*2+8, cDOTLine3, ' ');

    gTAB_HourMinsecond[0] = gBroadcast[3];//小时
    gTAB_HourMinsecond[1] = gBroadcast[4];//分钟
    gTAB_HourMinsecond[2] = gBroadcast[5];//秒钟
    MDIP_SetupTime_List(16*2+8*2,cDOTLine3,gLocal_1-6);   //光标从7~12(7-6 即 1,2,3,4,5,6)

    FDIPReverse = 0;
    MDIPWriteChinese_String(0, cDOTLine3, "停止");       

    FDIPReverse = 0;
    if (gLocal_1 == 13) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16, cDOTLine4, "其它控制");       

    return;
}
void MDIP_Menu_Select_Group(gLocal_1){
    FDIPReverse = 0;
    if (gLocal_1 == 1) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16, cDOTLine2, "查询此项内容");       

    FDIPReverse = 0;
    if (gLocal_1 == 2) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16, cDOTLine3, "修改此项内容");       
    FDIPReverse = 0;
    if (gLocal_1 == 3) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16,cDOTLine4, "删");
    MDIPChineseToScreen(64-2*16, cDOTLine4, cDIP_cu);
    MDIPWriteChinese_String(64-1*16, cDOTLine4, "此项内容");       
}
void MDIP_Menu_week(BYTE gLocal_1){
    MDIP_Week_day(0,cDOTLine1,gLocal_1,gCOL_Week);  //光标1(gLocal_1 = 1时,执行反白显示),0 位置/第一行/gLocal_1 反白光标/gLocal_2 星期N
    MDIP_Option_group(128-17*2-8*2,cDOTLine1,gLocal_1-1); //光标2~3(2-1, 即1,2)

    MDIP_Menu_Select_Group(gLocal_1-3); //光标4~6 (4-3 1,2,3)
    return;
}

//星期列表   设参数gLocal_1 = 0,即无反白光标。
void MDIP_Menu_weekList(BYTE gLocal_1){ // 参数gLocal_1为第N项移动光标,参数gLocal_2为对应N项的内容

    MDIP_Week_day(0,cDOTLine1,0,gCOL_Week);  //光标1(gLocal_1 = 1时,执行反白显示),0 位置/第一行/gLocal_1 反白光标/gLocal_2 星期N
    MDIP_Option_group(128-17*2-8*2,cDOTLine1,0); //光标2~3(2-1, 即1,2)

    gTAB_HourMinsecond[0] = gBroadcast[0]; //小时
    gTAB_HourMinsecond[1] = gBroadcast[1]; //小时
    gTAB_HourMinsecond[2] = gBroadcast[2]; //小时
    MDIP_SetupTime_List(16*2+8*2,cDOTLine2,gLocal_1);   //光标从1~6( 即 1,2,3,4,5,6)

    gTAB_HourMinsecond[0] = gBroadcast[3];//小时
    gTAB_HourMinsecond[1] = gBroadcast[4];//分钟
    gTAB_HourMinsecond[2] = gBroadcast[5];//秒钟
    MDIP_SetupTime_List(16*2+8*2,cDOTLine3,gLocal_1-6);   //光标从7~12(7-6 即 1,2,3,4,5,6)

    FDIPReverse = 0;
    MDIPASCIIToScreen(16*2, cDOTLine2, ':');
    MDIPASCIIToScreen(16*2+8*1, cDOTLine2, ' ');
    MDIPWriteChinese_String(0, cDOTLine2, "开始");       

    FDIPReverse = 0;
    MDIPASCIIToScreen(16*2, cDOTLine3, ':');
    MDIPASCIIToScreen(16*2+8, cDOTLine3, ' ');
    MDIPWriteChinese_String(0, cDOTLine3, "停止");       


    FDIPReverse = 0;
    if (gLocal_1 == 13) FDIPReverse = 1;  //光标
    MDIPWriteChinese_String(64-3*16, cDOTLine4, "其它控制");       
    return;
}

//函数功能 显示时间  " 00 : 00 : 00 " 所有显示以上内容都可调用函数 设参数gLocal_1 = 0,即无反白光标。
//参数gLocal_Cursor 固定显示位置,参数gLocal_Line 显示行数,gLocal_1 光标反白位置
//此函数时分秒 显示用gTAB_HourMinsecond[3],在调用前改变gTAB_HourMinsecond[3],即可显示所需时分秒  

void MDIP_SetupTime_List(BYTE gLocal_Cursor,BYTE gLocal_Line,BYTE gLocal_1){
    if (FErase_UpData) return;

    FDIPReverse = 0;
    if (gLocal_1 == 1) FDIPReverse = 1;  //光标
    MDIPASCIIToScreen(gLocal_Cursor, gLocal_Line, (gTAB_HourMinsecond[0]>>4)+'0');

    FDIPReverse = 0;
    if (gLocal_1 == 2) FDIPReverse = 1;  //光标
    MDIPASCIIToScreen(gLocal_Cursor+8*1, gLocal_Line, (gTAB_HourMinsecond[0]&0x0f)+'0');

    FDIPReverse = 0;
    MDIPASCIIToScreen(gLocal_Cursor+8*2, gLocal_Line, ':');
    FDIPReverse = 0;

    if (gLocal_1 == 3) FDIPReverse = 1;  //光标
    MDIPASCIIToScreen(gLocal_Cursor+8*3, gLocal_Line, (gTAB_HourMinsecond[1]>>4)+'0');

    FDIPReverse = 0;
    if (gLocal_1 == 4) FDIPReverse = 1;  //光标
    MDIPASCIIToScreen(gLocal_Cursor+8*4, gLocal_Line, (gTAB_HourMinsecond[1]&0x0f)+'0');

    FDIPReverse = 0;
    MDIPASCIIToScreen(gLocal_Cursor+8*5, gLocal_Line, ':');
   
    FDIPReverse = 0;
    if (gLocal_1 == 5) FDIPReverse = 1;  //光标
    MDIPASCIIToScreen(gLocal_Cursor+8*6, gLocal_Line, (gTAB_HourMinsecond[2]>>4)+'0');

    FDIPReverse = 0;
    if (gLocal_1 == 6) FDIPReverse = 1;  //光标
    MDIPASCIIToScreen(gLocal_Cursor+8*7, gLocal_Line, (gTAB_HourMinsecond[2]&0x0f)+'0');
    return;
}
//启动节目定时器菜单
void MDIP_Start_up_TimerList(BYTE gLocal_1){
    gTAB_HourMinsecond[0] = gRTC_Hour; //小时
    gTAB_HourMinsecond[1] = gRTC_Minute; //分钟
    gTAB_HourMinsecond[2] = gRTC_Second; //秒钟

    MDIP_SetupTime_List(0,cDOTLine2,0); //光标1~6

    gTAB_YearWeekDay[0] = gRTC_Year; //年
    gTAB_YearWeekDay[1] = gRTC_Month; //月
    gTAB_YearWeekDay[2] = gRTC_Day; //日
    MDIP_Year_Month_Day(0,0);//光标(即1,2,3,4,5,6)
    MDIP_Week_day(128-17*2-7*2,cDOTLine1,0,gRTC_Week);//光标7(7-6,即1) 
    return;
}
void MDIP_Prewarming_SetupTimeList(BYTE gLocal_1){
    BYTE gLocal_2;
    FDIPReverse = 0;

    MDIPWriteChinese_String(64-16*3, cDOTLine2, "预热开启");
    MDIPASCIIToScreen(64+17, cDOTLine2, ':');
    MDIPWriteChinese_String(64+17+7*4, cDOTLine2, "秒");
    MDIPWriteChinese_String(64-16*3, cDOTLine3, "延时关闭");
    MDIPASCIIToScreen(64+17, cDOTLine3, ':');

⌨️ 快捷键说明

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