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

📄 lcdshow.c

📁 单片机接LCD的程序
💻 C
📖 第 1 页 / 共 3 页
字号:
                //第一行 消音键坏
                if(g_intMarkA & KeyStokeMute_MarkA)
                {
                    for(chI = 0; chI < 8; chI++)
                    {
                        g_chLcdDriveBuf[3 + chI] = chActiveAlert_8[chI];
                    }
                }
                //第二行 自校验键坏
                if(g_intMarkA & KeyStokeAuto_MarkA)
                {
                    for(chI = 0; chI < 10; chI++)
                    {
                        g_chLcdDriveBuf[19 + chI] = chActiveAlert_8[chI + 8];
                    }
                }
                g_chLcdDriveTail = 32;
                //g_chMainLcdProcess_Stat = 10 在这里死等待!
            break;
            //11-20 显示正常信息
            case 10:
            //无活动告警 时间
                //第一行 无活动告警
                for(chI = 0; chI < 13; chI++)
                {
                    g_chLcdDriveBuf[3 + chI] = chInitiativeReport_10[chI];
                }
                //第二行 时间
                g_chLcdDriveBuf[17] = '2';
                g_chLcdDriveBuf[18] = '0';
                g_chLcdDriveBuf[19] = (g_chYear / 10) % 10 + 48;
                g_chLcdDriveBuf[20] = (g_chYear % 10) + 48;
                g_chLcdDriveBuf[21] = '-';
                g_chLcdDriveBuf[22] = (g_chMonth / 10) % 10 + 48;
                g_chLcdDriveBuf[23] = (g_chMonth % 10) + 48;
                g_chLcdDriveBuf[24] = '-';
                g_chLcdDriveBuf[25] = (g_chDay / 10) % 10 + 48;
                g_chLcdDriveBuf[26] = (g_chDay % 10) + 48;
                
                g_chLcdDriveBuf[28] = (g_chHour / 10) % 10 + 48;
                g_chLcdDriveBuf[29] = (g_chHour % 10) + 48;
                g_chLcdDriveBuf[30] = ':';
                g_chLcdDriveBuf[31] = (g_chMinute / 10) % 10 + 48;
                g_chLcdDriveBuf[32] = (g_chMinute % 10) + 48;
                g_chLcdDriveTail = 32;
                g_chMainLcdProcess_Stat = 20;//--------no 
            break;
            case 19:
                g_chMainLcdProcess_Stat = 20;//--------no 
            break;
            //21---120 显示告警信息,其中 要有告警声音--只有这里不是成对地严格出现!
            case 20://活动告警xx共05条
            {
                unsigned char m_chSum;
                m_chSum = AlertSum();
                if(m_chSum == 0)
                {//无告警信息
                    g_chMainLcdProcess_Stat = 10;
                }
                else
                {//有告警信息--chActiveAlert_20---
                    
                    //第一行 活动告警xx共05条
                    for(chI = 0; chI < 16; chI++)
                    {
                        g_chLcdDriveBuf[1 + chI] = chActiveAlert_20[chI];
                    }
                    g_chLcdDriveBuf[13] = (m_chSum / 10) + 48;
                    g_chLcdDriveBuf[14] = (m_chSum % 10) + 48;
                    g_chLcdDriveTail = 16;
                    g_chIndex = 1;//处理成功后,才加
                    g_chBit = 0;
                    g_chMainLcdProcess_Stat = 21;
                }
            }
            break;
            case 21://g_chGP_SelfCheck_Status
                if(g_chGP_SelfCheck_Status > 0)
                {
                    if(g_chGP_SelfCheck_Status & (1 << g_chBit))
                    {//有告警
                        //05工频设备第01列   
                        g_chLcdDriveBuf[1 + g_chLcdDriveTail] = (g_chIndex / 10) % 10 + 48;
                        g_chLcdDriveBuf[2 + g_chLcdDriveTail] = (g_chIndex % 10) + 48;
                        for(chI = 0; chI < 10; chI++)
                        {
                            g_chLcdDriveBuf[3 + chI + g_chLcdDriveTail] = chActiveAlert_21[chI];
                        }
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = ((g_chBit + 1) / 10) % 10 + 48;
                        g_chLcdDriveBuf[14 + g_chLcdDriveTail] = ((g_chBit + 1) % 10) + 48;
                        for(chI = 0; chI < 2; chI++)
                        {
                            g_chLcdDriveBuf[15 + chI + g_chLcdDriveTail] = chActiveAlert_21_1[chI];
                        }
                        g_chIndex++;//工频 不可以 这样做
                        g_chBit++;
                        g_chLcdDriveTail += 16;
                    }
                    else
                    {
                        g_chBit++;
                        if(g_chBit >= 8)
                        {//该 字节 处理完了
                            g_chMainLcdProcess_Stat++;
                            g_chBit = 0;
                        }
                    }
                }
                else
                {
                    g_chMainLcdProcess_Stat++;
                }
            break;
            case 22://g_chGP_Status--采用自动调节的方法来处理
                if(g_chGP_Status > 0)
                {
                    if(g_chGP_Status & (1 << g_chBit))
                    {//有告警
                        //第一行 04强电01列9999mA 
                        g_chLcdDriveBuf[1 + g_chLcdDriveTail] = (g_chIndex / 10) % 10 + 48;
                        g_chLcdDriveBuf[2 + g_chLcdDriveTail] = (g_chIndex % 10) + 48;
                        //强电
                        for(chI = 0; chI < 4; chI++)
                        {
                            g_chLcdDriveBuf[3 + chI + g_chLcdDriveTail] = chActiveAlert_124[chI];
                        }
                        //01
                        g_chLcdDriveBuf[7 + g_chLcdDriveTail] = ((g_chBit + 1) / 10) % 10 + 48;
                        g_chLcdDriveBuf[8 + g_chLcdDriveTail] = ((g_chBit + 1) % 10) + 48;
                        //列
                        for(chI = 0; chI < 2; chI++)
                        {
                            g_chLcdDriveBuf[9 + chI + g_chLcdDriveTail] = chActiveAlert_21_1[chI];
                        }
                        //9999mA
                        g_chLcdDriveBuf[11 + g_chLcdDriveTail] = ((g_intGP_Current[g_chBit] / 1000) % 10) + 48;//
                        g_chLcdDriveBuf[12 + g_chLcdDriveTail] = ((g_intGP_Current[g_chBit] / 100) % 10) + 48;//
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = ((g_intGP_Current[g_chBit] / 10) % 10) + 48;//
                        g_chLcdDriveBuf[14 + g_chLcdDriveTail] = ((g_intGP_Current[g_chBit]) % 10) + 48;//
                        g_chLcdDriveBuf[15 + g_chLcdDriveTail] = 'm';
                        g_chLcdDriveBuf[16 + g_chLcdDriveTail] = 'A';
                        //看是否可以 显示 第二行
                        if(g_chLcdDriveTail == 16)
                        {
                            g_chLcdDriveTail = 32;
                            break;
                        }
                        //第二行 xx固有值:x 0000 mA 
                        for(chI = 0; chI < 6; chI++)
                        {
                            g_chLcdDriveBuf[19 + chI] = chActiveAlert_124[chI + 4];
                        }
                        g_chLcdDriveBuf[27] = ((g_intGP_FixedCurrent[g_chBit] / 1000) % 10) + 48;//
                        g_chLcdDriveBuf[28] = ((g_intGP_FixedCurrent[g_chBit] / 100) % 10) + 48;//
                        g_chLcdDriveBuf[29] = ((g_intGP_FixedCurrent[g_chBit] / 10) % 10) + 48;//
                        g_chLcdDriveBuf[30] = ((g_intGP_FixedCurrent[g_chBit]) % 10) + 48;//
                        g_chLcdDriveBuf[31] = 'm';
                        g_chLcdDriveBuf[32] = 'A';
                        g_chIndex++;//工频 不可以 这样做
                        g_chBit++;
                        g_chLcdDriveTail = 32;
                    }
                    else
                    {
                        g_chBit++;
                        if(g_chBit >= 8)
                        {//该 字节 处理完了
                            g_chMainLcdProcess_Stat++;
                            g_chBit = 0;
                        }
                    }
                }
                else
                {
                    g_chMainLcdProcess_Stat++;
                }
            break;
            case 23://g_chFS_Status
                if(g_chFS_Status > 0)
                {
                    if(g_chFS_Status & (1 << g_chBit))
                    {//有告警
                        //01配线架第xx01列
                        g_chLcdDriveBuf[1 + g_chLcdDriveTail] = (g_chIndex / 10) % 10 + 48;
                        g_chLcdDriveBuf[2 + g_chLcdDriveTail] = (g_chIndex % 10) + 48;
                        for(chI = 0; chI < 8; chI++)
                        {
                            g_chLcdDriveBuf[3 + chI + g_chLcdDriveTail] = chActiveAlert_23[chI];
                        }
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = ((g_chBit + 1) / 10) % 10 + 48;
                        g_chLcdDriveBuf[14 + g_chLcdDriveTail] = ((g_chBit + 1) % 10) + 48;
                        for(chI = 0; chI < 2; chI++)
                        {
                            g_chLcdDriveBuf[15 + chI + g_chLcdDriveTail] = chActiveAlert_21_1[chI];
                        }
                        g_chIndex++;//工频 不可以 这样做
                        g_chBit++;
                        g_chLcdDriveTail += 16;
                    }
                    else
                    {
                        g_chBit++;
                        if(g_chBit >= 8)
                        {//该 字节 处理完了
                            g_chMainLcdProcess_Stat++;
                            g_chBit = 0;
                        }
                    }
                }
                else
                {
                    g_chMainLcdProcess_Stat++;
                }
            break;
            case 24://g_chFS_SelfCheck_Status
                if(g_chFS_SelfCheck_Status > 0)
                {
                    if(g_chFS_SelfCheck_Status & (1 << g_chBit))
                    {//有告警
                        //03信号线第xx01列
                        g_chLcdDriveBuf[1 + g_chLcdDriveTail] = (g_chIndex / 10) % 10 + 48;
                        g_chLcdDriveBuf[2 + g_chLcdDriveTail] = (g_chIndex % 10) + 48;
                        for(chI = 0; chI < 8; chI++)
                        {
                            g_chLcdDriveBuf[3 + chI + g_chLcdDriveTail] = chActiveAlert_24[chI];
                        }
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = ((g_chBit + 1) / 10) % 10 + 48;
                        g_chLcdDriveBuf[14 + g_chLcdDriveTail] = ((g_chBit + 1) % 10) + 48;
                        for(chI = 0; chI < 2; chI++)
                        {
                            g_chLcdDriveBuf[15 + chI + g_chLcdDriveTail] = chActiveAlert_21_1[chI];
                        }
                        g_chIndex++;//工频 不可以 这样做
                        g_chBit++;
                        g_chLcdDriveTail += 16;
                    }
                    else
                    {
                        g_chBit++;
                        if(g_chBit >= 8)
                        {//该 字节 处理完了
                            g_chMainLcdProcess_Stat++;
                            g_chBit = 0;
                        }
                    }
                }
                else
                {
                    g_chMainLcdProcess_Stat++;
                }
            break;
            case 25://g_chCable_Status
                if(g_chCable_Status > 0)
                {
                    if(g_chCable_Status & (1 << g_chBit))
                    {//有告警
                        //02主干电缆第01列   
                        g_chLcdDriveBuf[1 + g_chLcdDriveTail] = (g_chIndex / 10) % 10 + 48;
                        g_chLcdDriveBuf[2 + g_chLcdDriveTail] = (g_chIndex % 10) + 48;
                        for(chI = 0; chI < 10; chI++)
                        {
                            g_chLcdDriveBuf[3 + chI + g_chLcdDriveTail] = chActiveAlert_25[chI];
                        }
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = ((g_chBit + 1) / 10) % 10 + 48;
                        g_chLcdDriveBuf[14 + g_chLcdDriveTail] = ((g_chBit + 1) % 10) + 48;
                        for(chI = 0; chI < 2; chI++)
                        {
                            g_chLcdDriveBuf[15 + chI + g_chLcdDriveTail] = chActiveAlert_21_1[chI];
                        }
                        g_chIndex++;//工频 不可以 这样做
                        g_chBit++;
                        g_chLcdDriveTail += 16;
                    }
                    else
                    {
                        g_chBit++;
                        if(g_chBit >= 8)
                        {//该 字节 处理完了
                            g_chMainLcdProcess_Stat++;
                            g_chBit = 0;
                        }
                    }
                }
                else
                {
                    g_chMainLcdProcess_Stat++;
                }
            break;
            case 26://g_chEnv_Status
            //门
                if((g_chEnv_Free & EnvFree_Door) || (g_chDoorStat != 2))
                {//不报告! 
                    //g_chMainLcdProcess_Stat++;
                }
                else
                {//非法开门
                    //02非法开门   
                    g_chLcdDriveBuf[1 + g_chLcdDriveTail] = (g_chIndex / 10) % 10 + 48;
                    g_chLcdDriveBuf[2 + g_chLcdDriveTail] = (g_chIndex % 10) + 48;
                    for(chI = 0; chI < 8; chI++)
                    {
                        g_chLcdDriveBuf[3 + chI + g_chLcdDriveTail] = chActiveAlert_120_1[chI + 8];
                    }
                    g_chIndex++;//工频 不可以 这样做
                    g_chLcdDriveTail += 16;
                }
                g_chMainLcdProcess_Stat++;
            break;
            case 27://
            //温度报告
                if((g_chEnv_Free & EnvFree_Temperature))
                {//不报告! 
                    //g_chMainLcdProcess_Stat++;
                }
                else
                {//温度报告
                    if((g_chEnv_Status & EnvStat_Temperature))
                    {
                        //08温度01xxxx 50度  10温度01 xxxx 故障--由人工去判断!因为温度数值不对! 
                        g_chLcdDriveBuf[1 + g_chLcdDriveTail] = (g_chIndex / 10) % 10 + 48;
                        g_chLcdDriveBuf[2 + g_chLcdDriveTail] = (g_chIndex % 10) + 48;
                        for(chI = 0; chI < 6; chI++)
                        {

⌨️ 快捷键说明

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