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

📄 lcdinterface.c

📁 实现了dsPIC30f6012a通过SPC3与PLC通信
💻 C
📖 第 1 页 / 共 2 页
字号:
            case 1 : Code[2][15] = 'A';
                     Code[2][16] = 'l';
                     Code[2][17] = 'm';
                     Code[2][18] = '.';
                     break;
            case 2 : Code[2][15] = 'S';
                     Code[2][16] = 't';
                     Code[2][17] = 'o';
                     Code[2][18] = 'p';
                     break;
            case 3 : Code[2][15] = 'N';
                     Code[2][16] = 'u';
                     Code[2][17] = 'l';
                     Code[2][18] = 'l';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[3])
        {
            case 0 : Code[3][16] = 'O';
                     Code[3][17] = 'F';
                     Code[3][18] = 'F';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[4])
        {
            case 0 : Code[4][16] = 'O';
                     Code[4][17] = 'F';
                     Code[4][18] = 'F';
                     break;
            default : break;
        }
    }
    else if (Arrow_Position <= 14)
    {
        Code_Inputs("  通讯参数2         ",
                    "  控制策略          ",
                    "  控制切换          ",
                    "  切换确认          ",
                    "  颤振类型          ");
        
        switch (System_Parameter_Asic[5])
        {
            case 0 : Code[0][16] = 'O';
                     Code[0][17] = 'F';
                     Code[0][18] = 'F';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[6])
        {
            case 0 : Code[1][16] = 'P';
                     Code[1][17] = 'I';
                     Code[1][18] = 'D';
                     break;
            case 1 : Code[1][16] = 'P';
                     Code[1][17] = 'D';
                     Code[1][18] = 'F';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[7])
        {
            case 0 : Code[2][15] = 'U';
                     Code[2][16] = 's';
                     Code[2][17] = 'e';
                     Code[2][18] = 'r';
                     break;
            case 1 : Code[2][15] = 'D';
                     Code[2][16] = 'e';
                     Code[2][17] = 'f';
                     Code[2][18] = '.';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[8])
        {
            case 0 : Code[3][16] = 'Y';
                     Code[3][17] = 'e';
                     Code[3][18] = 's';
                     break;
            case 1 : Code[3][16] = 'N';
                     Code[3][17] = 'o';
                     Code[3][18] = ' ';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[9])
        {
            case 0 : Code[4][16] = 'S';
                     Code[4][17] = 'i';
                     Code[4][18] = 'n';
                     break;
            case 1 : Code[4][16] = 'P';
                     Code[4][17] = ' ';
                     Code[4][18] = ' ';
                     break;
            default : break;
        }
    }
    else if (Arrow_Position <= 19)
    {
        Code_Inputs("  颤振频率(Hz)      ",
                    "  C1颤振幅值      % ",
                    "  C2颤振幅值      % ",
                    "  压力补偿          ",
                    "                    ");

        Number_Display(16, 0, 3, 0, System_Parameter[3]);
        Number_Display(16, 1, 2, 0, System_Parameter[4]);
        Number_Display(16, 2, 2, 0, System_Parameter[5]);
        
        switch (System_Parameter_Asic[10])
        {
            case 0 : Code[3][16] = 'O';
                     Code[3][17] = 'F';
                     Code[3][18] = 'F';
                     break;
            case 1 : Code[3][16] = 'O';
                     Code[3][17] = 'N';
                     Code[3][18] = ' ';
                     break;
            default : break;
        }
    }
    LCD_Arrow_Display(Arrow_Position);
}


void Interface_SystemTest(void)
{
    if (Arrow_Position <= 4)
    {
        Code_Inputs("一通道PID 调试参数  ",
                    "  So1               ",
                    "  Lset1(mm)         ",
                    "  Lbck1(mm)         ",
                    "  e1(mm)            ");
        
        Number_Display(14, 1, 4, 0, System_Zero_Point[0]);
        Number_Display(14, 2, 4, 2, L_Set[0]);
        Number_Display(14, 3, 4, 2, L_Cylinder[0]);
        Number_Display(14, 4, 4, 0, L_Set[0] - L_Cylinder[0]);
    }
    else if (Arrow_Position <= 9)
    {
        Code_Inputs("  比例项1           ",
                    "  积分项1           ",
                    "  微分项1           ",
                    "  PID 输出1         ",
                    "  Ibck1(mA)         ");
        
        Number_Display(14, 0, 5, 0, PID_Proportional[0]);
        Number_Display(14, 1, 5, 0, PID_Integral[0]);
        Number_Display(14, 2, 5, 0, PID_Derivative[0]);
        Number_Display(14, 3, 5, 0, Output[0]);
        Number_Display(14, 4, 4, 1, I_Sevovalve[0]);
    }
    else if (Arrow_Position <= 14)
    {
        Code_Inputs("二通道PID 调试参数  ",
                    "  So2               ",
                    "  Lset2(mm)         ",
                    "  Lbck2(mm)         ",
                    "  e2(mm)            ");
        
        Number_Display(14, 1, 4, 0, System_Zero_Point[1]);
        Number_Display(14, 2, 4, 2, L_Set[1]);
        Number_Display(14, 3, 4, 2, L_Cylinder[1]);
        Number_Display(14, 4, 4, 0, L_Set[1] - L_Cylinder[1]);
    }
    else if (Arrow_Position <= 19)
    {
        Code_Inputs("  比例项2           ",
                    "  积分项2           ",
                    "  微分项2           ",
                    "  PID 输出2         ",
                    "  Ibck2(mA)         ");
        
        Number_Display(14, 0, 5, 0, PID_Proportional[1]);
        Number_Display(14, 1, 5, 0, PID_Integral[1]);
        Number_Display(14, 2, 5, 0, PID_Derivative[1]);
        Number_Display(14, 3, 5, 0, Output[1]);
        Number_Display(14, 4, 4, 1, I_Sevovalve[1]);
    }
    
    LCD_Arrow_Display(Arrow_Position);
}

void Interface_SystemCheck(void)
{
}
void Interface_SystemAdjust(void)
{
}
void Interface_HistoryInfor(void)
{
}
void Interface_Help(void)
{
}
void Interface_Default(void)
{
}


void Interface_SaveAsk(void)
{
    Code_Inputs("                    ",
                "  确定要保存数据吗? ",
                "     ENTER =  是    ",
                "     MENU  =  否    ",
                "                    ");
    Code[2][3] = 0x86;
    Code[3][3] = 0x86;
}

void Interface_SaveComplete(void)
{
    Code_Inputs("                    ",
                "  数据保存完毕      ",
                "                    ",
                "        请稍候...   ",
                "                    ");

    System_Delay++;
    if (System_Delay >= 5)
    {
        Interface = MAIN_VIEW;
        System_Delay = 0;
    }
}

void LCD_Display(void)
{
    switch (Interface)
    {
        case MAIN_VIEW : Interface_Main(); break;
        case ENTER_ASK_VIEW : Interface_SaveAsk(); break;
        case ENTER_ANS_VIEW : Interface_SaveComplete(); break;
        case MENU_VIEW : Interface_Menu(); break;
        case CONTROL_SET_VIEW : Interface_ControlSet(); break;
        case CHANNEL_1SET_VIEW : Interface_ChannelSet(0); break;
        case CHANNEL_2SET_VIEW : Interface_ChannelSet(1); break;
        case SYSTEM_SET_VIEW : Interface_SystemSet(); break;
        case SYSTEM_TEST_VIEW : Interface_SystemTest(); break;
        case SYSTEM_CHECK_VIEW : Interface_SystemCheck(); break;
        case SYSTEM_ADJUST_VIEW : Interface_SystemAdjust(); break;
        case HISTORY_INFOR_VIEW : Interface_HistoryInfor(); break;
        case HELP_VIEW : Interface_Help(); break;
        default: break;
    }
    
    LCD_Drive();
}

⌨️ 快捷键说明

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