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

📄 lcdshow.c

📁 单片机接LCD的程序
💻 C
📖 第 1 页 / 共 3 页
字号:
                            g_chLcdDriveBuf[3 + chI + g_chLcdDriveTail] = chActiveAlert_121[chI];
                        }
                        //已经保证了 g_chTemperature 》= 60
                        g_chLcdDriveBuf[11 + g_chLcdDriveTail] = (g_chTemperature - 60) / 100 + 48;
                        g_chLcdDriveBuf[12 + g_chLcdDriveTail] = ((g_chTemperature - 60) / 10) % 10 + 48;
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = (g_chTemperature - 60) % 10 + 48;
                        g_chLcdDriveBuf[15 + g_chLcdDriveTail] = chActiveAlert_121[6];
                        g_chLcdDriveBuf[16 + g_chLcdDriveTail] = chActiveAlert_121[7];
                        g_chIndex++;//工频 不可以 这样做
                        g_chLcdDriveTail += 16;
                    }
                }
                g_chMainLcdProcess_Stat++;
            break;
            case 28://
            //电压报告
                if((g_chEnv_Free & EnvFree_DC))
                {//不报告! 
                    //g_chMainLcdProcess_Stat++;
                }
                else
                {//电压报告
                    if((g_chEnv_Status & EnvStat_DC))
                    {
                        //直流电压  度 
                        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_122[chI];
                        }
                        g_chLcdDriveBuf[12 + g_chLcdDriveTail] = ((g_chDC) / 10) % 10 + 48;
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = (g_chDC) % 10 + 48;
                        g_chLcdDriveBuf[15 + g_chLcdDriveTail] = chActiveAlert_122[8];
                        g_chLcdDriveBuf[16 + g_chLcdDriveTail] = chActiveAlert_122[9];
                        g_chIndex++;//工频 不可以 这样做
                        g_chLcdDriveTail += 16;
                    }
                }
                g_chMainLcdProcess_Stat++;
            break;
            case 29://
            //有害气体
                if((g_chEnv_Free & EnvFree_BadGas))
                {//不报告! 
                    //
                }
                else
                {//有害气体
                    if((g_chEnv_Status & EnvStat_BadGas))
                    {
                        //有害气体 %
                        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_123[chI];
                        }
                        
                        g_chLcdDriveBuf[12 + g_chLcdDriveTail] = ((g_chBadGas) / 100) % 10 + 48;
                        g_chLcdDriveBuf[13 + g_chLcdDriveTail] = ((g_chBadGas) / 10) % 10 + 48;
                        g_chLcdDriveBuf[14 + g_chLcdDriveTail] = (g_chBadGas) % 10 + 48;
                        g_chLcdDriveBuf[16 + g_chLcdDriveTail] = '%';
                        g_chIndex++;//工频 不可以 这样做
                        g_chLcdDriveTail += 16;
                    }
                }
                g_chMainLcdProcess_Stat++;
            break;
            case 30://end
                if(g_chLcdDriveTail == 16)
                {
                    g_chLcdDriveTail = 32;
                }
                else
                {
                    g_chMainLcdProcess_Stat = 19;
                }
            break;
            //121-221 显示调试、维护信息
            case 120:
            //门
                //第一行 不报告门禁系统
                g_chLcdDriveBuf[1] = '1';
                //g_chLcdDriveBuf[2] = '1';
                for(chI = 0; chI < 14; chI++)
                {
                    g_chLcdDriveBuf[3 + chI] = chActiveAlert_120[chI];
                }
                if(g_chEnv_Free & EnvFree_Door)
                {//不报告!
                    //
                }
                else
                {//报告
                    g_chLcdDriveBuf[3] = ' ';
                    g_chLcdDriveBuf[4] = ' ';
                }
                //第二行 门的状态!
//              g_chLcdDriveBuf[17] = '0';
//              g_chLcdDriveBuf[18] = '2';
                switch(g_chDoorStat)
                {//0-门关 1-密码开门 2-非法开门 3-中心开门 4-禁用门禁 5-启用 6-门开
                    case 0:
                        for(chI = 0; chI < 4; chI++)
                        {
                            g_chLcdDriveBuf[19 + chI] = chActiveAlert_120_2[chI + 4];
                        }
                    break;
                    case 1://
                        for(chI = 0; chI < 8; chI++)
                        {
                            g_chLcdDriveBuf[21 + chI] = g_chOpenDoorID[chI];
                        }
                        for(chI = 0; chI < 8; chI++)
                        {
                            g_chLcdDriveBuf[25 + chI] = chActiveAlert_120_1[chI];
                        }
                    break;
                    case 2:
                        for(chI = 0; chI < 8; chI++)
                        {
                            g_chLcdDriveBuf[19 + chI] = chActiveAlert_120_1[chI + 8];
                        }
                    break;
                    case 3:
                        for(chI = 0; chI < 8; chI++)
                        {
                            g_chLcdDriveBuf[19 + chI] = chActiveAlert_120_1[chI + 16];
                        }
                    break;
                    case 4:
                        for(chI = 0; chI < 4; chI++)
                        {
                            g_chLcdDriveBuf[19 + chI] = chActiveAlert_120_2[chI + 8];
                        }
                        for(chI = 0; chI < 8; chI++)
                        {
                            g_chLcdDriveBuf[23 + chI] = chActiveAlert_120[chI + 6];
                        }
                    break;
                    case 6:
                        for(chI = 0; chI < 4; chI++)
                        {
                            g_chLcdDriveBuf[19 + chI] = chActiveAlert_120_2[chI];
                        }
                    break;
                }
                g_chLcdDriveTail = 32;
                g_chMainLcdProcess_Stat = 121;//
            break;
            case 121:
            //温度报告
                //第一行 温度01 不报告
                g_chLcdDriveBuf[1] = '2';
                //g_chLcdDriveBuf[2] = '3';
                for(chI = 0; chI < 6; chI++)
                {
                    g_chLcdDriveBuf[9 + chI] = chActiveAlert_121[chI];
                }
                for(chI = 0; chI < 6; chI++)
                {
                    g_chLcdDriveBuf[3 + chI] = chActiveAlert_120[chI];
                }
                if(g_chEnv_Free & EnvFree_Temperature)
                {//不报告!
                    //
                }
                else
                {//报告
                    g_chLcdDriveBuf[3] = ' ';
                    g_chLcdDriveBuf[4] = ' ';
                }
                //第二行 温度01  度
//              g_chLcdDriveBuf[17] = '0';
//              g_chLcdDriveBuf[18] = '4';
                for(chI = 0; chI < 6; chI++)
                {
                    g_chLcdDriveBuf[19 + chI] = chActiveAlert_121[chI];
                }
                g_chLcdDriveBuf[27] = (g_chTemperature - 60) / 100 + 48;
                g_chLcdDriveBuf[28] = ((g_chTemperature - 60) / 10) % 10 + 48;
                g_chLcdDriveBuf[29] = (g_chTemperature - 60) % 10 + 48;
                g_chLcdDriveBuf[31] = chActiveAlert_121[6];
                g_chLcdDriveBuf[32] = chActiveAlert_121[7];
                g_chLcdDriveTail = 32;
                g_chMainLcdProcess_Stat = 122;//
            break;
            case 122:
            //电压报告
                //第一行 直流电压 不报告
                g_chLcdDriveBuf[1] = '3';
                //g_chLcdDriveBuf[2] = '5';
                for(chI = 0; chI < 8; chI++)
                {
                    g_chLcdDriveBuf[9 + chI] = chActiveAlert_122[chI];
                }
                for(chI = 0; chI < 6; chI++)
                {
                    g_chLcdDriveBuf[3 + chI] = chActiveAlert_120[chI];
                }
                if(g_chEnv_Free & EnvFree_DC)
                {//不报告!
                    //
                }
                else
                {//报告
                    g_chLcdDriveBuf[3] = ' ';
                    g_chLcdDriveBuf[4] = ' ';
                }
                //第二行 直流电压  度
//              g_chLcdDriveBuf[17] = '0';
//              g_chLcdDriveBuf[18] = '6';
                for(chI = 0; chI < 8; chI++)
                {
                    g_chLcdDriveBuf[19 + chI] = chActiveAlert_122[chI];
                }
                
                g_chLcdDriveBuf[28] = ((g_chDC) / 10) % 10 + 48;
                g_chLcdDriveBuf[29] = (g_chDC) % 10 + 48;
                g_chLcdDriveBuf[31] = chActiveAlert_122[8];
                g_chLcdDriveBuf[32] = chActiveAlert_122[9];
                g_chLcdDriveTail = 32;
                g_chMainLcdProcess_Stat = 123;//--------no 
            break;
            case 123:
            //有害气体
                //第一行 有害气体 不报告
                g_chLcdDriveBuf[1] = '4';
                //g_chLcdDriveBuf[2] = '5';
                for(chI = 0; chI < 8; chI++)
                {
                    g_chLcdDriveBuf[9 + chI] = chActiveAlert_123[chI];
                }
                for(chI = 0; chI < 6; chI++)
                {
                    g_chLcdDriveBuf[3 + chI] = chActiveAlert_120[chI];
                }
                if(g_chEnv_Free & EnvFree_BadGas)
                {//不报告!
                    //
                }
                else
                {//报告
                    g_chLcdDriveBuf[3] = ' ';
                    g_chLcdDriveBuf[4] = ' ';
                }
                //第二行 有害气体 99 %
//              g_chLcdDriveBuf[17] = '0';
//              g_chLcdDriveBuf[18] = '6';
                for(chI = 0; chI < 8; chI++)
                {
                    g_chLcdDriveBuf[19 + chI] = chActiveAlert_123[chI];
                }
                
                g_chLcdDriveBuf[28] = ((g_chBadGas) / 100) % 10 + 48;
                g_chLcdDriveBuf[29] = ((g_chBadGas) / 10) % 10 + 48;
                g_chLcdDriveBuf[30] = (g_chBadGas) % 10 + 48;
                g_chLcdDriveBuf[32] = '%';
                g_chLcdDriveTail = 32;
                g_chMainLcdProcess_Stat = 124;//--------no 
                g_chBit = 0;
            break;
            //下面是八个 工频
            case 124:
            //工频
                //第一行 04强电01列9999mA
                g_chLcdDriveBuf[1] = (g_chBit + 5) / 10 + 48;//'5';
                g_chLcdDriveBuf[2] = ((g_chBit + 5) % 10) + 48;//'5';
                for(chI = 0; chI < 4; chI++)
                {
                    g_chLcdDriveBuf[3 + chI] = chActiveAlert_124[chI];
                }
                g_chLcdDriveBuf[7] = (g_chBit + 1) / 10 + 48;//'5';
                g_chLcdDriveBuf[8] = ((g_chBit + 1) % 10) + 48;//'5';
                for(chI = 0; chI < 2; chI++)
                {
                    g_chLcdDriveBuf[9 + chI] = chActiveAlert_21_1[chI];
                }
                g_chLcdDriveBuf[11] = ((g_intGP_Current[g_chBit] / 1000) % 10) + 48;//
                g_chLcdDriveBuf[12] = ((g_intGP_Current[g_chBit] / 100) % 10) + 48;//
                g_chLcdDriveBuf[13] = ((g_intGP_Current[g_chBit] / 10) % 10) + 48;//
                g_chLcdDriveBuf[14] = ((g_intGP_Current[g_chBit]) % 10) + 48;//
                g_chLcdDriveBuf[15] = 'm';
                g_chLcdDriveBuf[16] = 'A';
                //第二行 xx固有值:x 0000 mA 
//              g_chLcdDriveBuf[17] = '0';
//              g_chLcdDriveBuf[18] = '6';
                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_chLcdDriveTail = 32;
                g_chBit++;
                if(g_chBit >= 8)
                {
                    g_chMainLcdProcess_Stat = 19;//--------no 
                }
            break;
            default:
                g_chMainLcdProcess_Stat = 0;
            break;  
        }
    }
    else
    {
        if(g_chMainLcdProcess_1s > 10)
        {//状态 = 0   缓冲区 != 0  有问题---是防止程序有问题,但如果 LCD 有问题,?无办法
            g_chLcdDriveTail = 0;
            g_chLcdDriveHead = 0;
            g_chLcdDrive_Stat = 0;
        }   
    }
}

⌨️ 快捷键说明

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