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

📄 lcdinterface.c

📁 实现了dsPIC30f6012a通过SPC3与PLC通信
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "Headfiles.h"


void Interface_Main(void)
{
     Code_Inputs("铣面机伺服控制系统  ",
                 "P1(MPa)             ",
                 "P2(MPa)             ",
                 "L(mm)               ",
                 "I(mA)               ");

    Number_Display(9, 1, 3, 1, (P1_Cylinder[0] - Channel_Parameter[0][0]) / 10);
    Number_Display(16, 1, 3, 1, (P1_Cylinder[1] - Channel_Parameter[1][0])/ 10); 
    
    Number_Display(9, 2, 3, 1, (P2_Cylinder[0] - Channel_Parameter[0][1]) / 10);
    Number_Display(16, 2, 3, 1, (P2_Cylinder[1] - Channel_Parameter[1][1]) / 10); 

    Number_Display(9, 3, 3, 1, (L_Cylinder[0] - Channel_Parameter[0][4]) / 10);
    Number_Display(16, 3, 3, 1, (L_Cylinder[1] - Channel_Parameter[1][4]) / 10); 
       
    Number_Display(8, 4, 4, 1, I_Sevovalve[0]);
    Number_Display(15, 4, 4, 1, I_Sevovalve[1]);
    
    switch (Arrow_Position)
    {
        case 0 : Code[3][14] = ' ';
                 Code[3][8] = 0x84;
                 break;
        case 1 : Code[3][14] = 0x84;
                 Code[3][8] = ' ';
                 break;
        default: break;
    }
}

void Interface_Menu(void)
{
    if (Arrow_Position <= 4)
    {
        Code_Inputs("  1.控制参数设定    ",
                    "  2.一通道参数设定  ",
                    "  3.二通道参数设定  ",
                    "  4.系统参数设定    ",
                    "  5.系统调试界面    ");
    }
    else if ((Arrow_Position <= 9))
    {
        Code_Inputs("  6.系统自检        ",
                    "  7.系统自整定      ",
                    "  8.历史信息查询    ",
                    "  9.帮助信息        ",
                    " 10.恢复默认设置    ");
    }
    LCD_Arrow_Display(Arrow_Position);
}

void Interface_ControlSet(void)
{
    if (Arrow_Position <= 4)
    {
        Code_Inputs("一通道PID 参数设定  ",
                    "  比例Kp1           ",
                    "  积分Ki1           ",
                    "  微分Kd1           ",
                    "  DF1               ");
        Number_Display(14, 1, 3, 1, Control_Parameter[0] / 10); //Kp1
        Number_Display(14, 2, 3, 1, Control_Parameter[1] / 10); //Ki1
        Number_Display(14, 3, 3, 1, Control_Parameter[2] / 10); //Kd1
        Number_Display(14, 4, 4, 1, Control_Parameter[3]); //DF1
    }
    else if (Arrow_Position <= 9)
    {
        Code_Inputs("  FN1               ",
                    "  Kpp1              ",
                    "  Sim1              ",
                    "二通道PID 参数设定  ",
                    "  比例Kp2           ");
        
        Number_Display(14, 0 , 4, 1, Control_Parameter[4]);
        Number_Display(14, 1 , 4, 1, Control_Parameter[5]);
        Number_Display(14, 2 , 4, 0, Control_Parameter[6]);
        Number_Display(14, 4 , 3, 1, Control_Parameter[7] / 10);

    }
    else if (Arrow_Position <= 14)
    {
        Code_Inputs("  积分Ki2           ",
                    "  微分Kd2           ",
                    "  DF2               ",
                    "  FN2               ",
                    "  Kpp2              ");
        
        Number_Display(14, 0, 3, 1, Control_Parameter[8] / 10);
        Number_Display(14, 1, 3, 1, Control_Parameter[9] / 10);
        Number_Display(14, 2, 4, 1, Control_Parameter[10]);
        Number_Display(14, 3, 4, 1, Control_Parameter[11]);
        Number_Display(14, 4, 4, 1, Control_Parameter[12]);
    }
    else if (Arrow_Position <= 19)
    {
        Code_Inputs("  Sim2               ",
                    "一通道PDF 参数设定  ",
                    "  比例1             ",
                    "  积分1             ",
                    "  微分1             ");
        Number_Display(14, 0 , 4, 0, Control_Parameter[13]);
        /*for (i = 0; i < 3; i++)
        {
            Number_Display(14, i , 4, 2, Control_Parameter[i + 14]);
        }*/
    }
    else if (Arrow_Position <= 24)
    {
        Code_Inputs("  积分限1           ",
                    "  压力限1(MPa)      ",
                    "  力增益1           ",
                    "二通道PDF 参数设定  ",
                    "  比例2             ");
        
        /*for (i = 0; i < 3; i++)
        {
            Number_Display(14, i + 2 , 4, 2, Control_Parameter[i + 17]);
        }
        Number_Display(14, 4 , 4, 2, Control_Parameter[20]);*/
    }
    else if (Arrow_Position <= 29)
    {
        Code_Inputs("  积分2             ",
                    "  微分2             ",
                    "  积分限2           ",
                    "  压力限2(MPa)      ",
                    "  力增益2           ");
        
        /*for (i = 0; i < 5; i++)
        {
            Number_Display(14, i , 4, 2, Control_Parameter[i + 21]);
        }*/
    }

    LCD_Arrow_Display(Arrow_Position);
}

void Interface_ChannelSet(unsigned char channel)
{
    if (Arrow_Position <= 4)
    {
        Code_Inputs("  通道压力校零设定  ",
                    "  P1(MPa)           ",
                    "  P2(MPa)           ",
                    "  通道压力系数设定  ",
                    "  P1                ");
        
        if (channel == 0)
        {
            Code[0][0] = 0xd2;
            Code[0][1] = 0xbb;
            
            Code[3][0] = 0xd2;
            Code[3][1] = 0xbb;
        }
        else
        {
            Code[0][0] = 0xb6;
            Code[0][1] = 0xfe;
            
            Code[3][0] = 0xb6;
            Code[3][1] = 0xfe;
        }
        
        Number_Display(15, 1, 3, 1, Channel_Parameter[channel][0] / 10);
        Number_Display(15, 2, 3, 1, Channel_Parameter[channel][1] / 10);
        Number_Display(15, 4, 3, 1, Channel_Parameter[channel][2] / 10);
    }
    else if (Arrow_Position <= 9)
    {
        Code_Inputs("  P2                ",
                    "  通道位移参数设定  ",
                    "  校零(mm)          ",
                    "  增益              ",
                    "                    ");
        
        if (channel == 0)
        {
            Code[1][0] = 0xd2;
            Code[1][1] = 0xbb;    //Chinese character "one"
        }
        else
        {
            Code[1][0] = 0xb6;
            Code[1][1] = 0xfe;   //Chinese Character "two"
        }
        
        Number_Display(15, 0, 3, 1, Channel_Parameter[channel][3] / 10);
        Number_Display(15, 2, 3, 1, Channel_Parameter[channel][4] / 10);
        Number_Display(15, 3, 3, 1, Channel_Parameter[channel][5] / 10);
    }

    LCD_Arrow_Display(Arrow_Position);
}

void Interface_SystemSet(void)
{
    if (Arrow_Position <= 4)
    {
        Code_Inputs("液压系统参数设定    ",
                    "  最高压力(MPa)     ",
                    "  工作压力(MPa)     ",
                    "  温度限定(C)       ",
                    "开关机状态参数设定  ");
        
        Number_Display(16, 1, 3, 1, System_Parameter[0] / 10);
        Number_Display(16, 2, 3, 1, System_Parameter[1] / 10);
        Number_Display(16, 3, 3, 0, System_Parameter[2]);
    }
    else if (Arrow_Position <= 9)
    {
        Code_Inputs("  停机状态          ",
                    "  开机状态          ",
                    "  故障处理          ",
                    "  通讯模式          ",
                    "  通讯参数1         ");
        
        switch (System_Parameter_Asic[0])
        {
            case 0 : Code[0][15] = 'Z';
                     Code[0][16] = 'e';
                     Code[0][17] = 'r';
                     Code[0][18] = 'o';
                     break;
            case 1 : Code[0][15] = 'H';
                     Code[0][16] = 'o';
                     Code[0][17] = 'l';
                     Code[0][18] = 'd';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[1])
        {
            case 0 : Code[1][15] = 'Z';
                     Code[1][16] = 'e';
                     Code[1][17] = 'r';
                     Code[1][18] = 'o';
                     break;
            case 1 : Code[1][15] = 'P';
                     Code[1][16] = 'b';
                     Code[1][17] = 'j';
                     Code[1][18] = '.';
                     break;
            default : break;
        }
        switch (System_Parameter_Asic[2])
        {
            case 0 : Code[2][15] = 'Z';
                     Code[2][16] = 'e';
                     Code[2][17] = 'r';
                     Code[2][18] = 'o';
                     break;

⌨️ 快捷键说明

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