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

📄 tasklcd.c

📁 Keil单片机软件开发平台下的一个51系列单片机工程
💻 C
📖 第 1 页 / 共 2 页
字号:
/*--------------文件信息--------------------------------------------------------------------------------
**文   件   名: TaskKey.C
**创   建   人: 刘宝贵
**最后修改日期: 
**描        述: 108只电池电压检测系统键盘处理任务源代码。
**
**--------------历史版本信息----------------------------------------------------------------------------
** 修改人: 
** 版  本: 
** 日 期: 
** 描 述: 
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include"includes.h"
/*********************************************************************************************************
** 函数名称: void DispRun()
** 功能描述: 
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年12月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void DispRun()
{
    switch(ErrorState)
    {
        case WITHOUT_ERROR:
        {
            if(Debug==0)//非调试状态,显示正常信息
            {
                unsigned int temp16;
                if(ErrorType==0)//如果没有故障
                {
                    temp16 = MeasureI;
                    temp16/=10;
                    if((MeasureI%10)>4)
                    {
                        temp16++;
                    }
                    Display16X8ItemWord(0,4,0);
                    Display16X8ItemWord(2,5,0);
                    Display16X8ItemWord(4,6,0);
                    Display16X8ItemWord(6,7,0);
                    Display16X8ItemData(0, 5*8,Step               ,0x00,0x80+0x00+0x2);
                    Display16X8ItemData(0,14*8,temp16             ,0x00,0x00+0x10+0x4);//显示电流
                    Display16X8ItemData(2, 6*8,Mode               ,0x00,0x80+0x00+0x2);
                    Display16X8ItemData(2,14*8,MeasureU           ,0x00,0x00+0x10+0x4);
                    Display16X8ItemData(4, 5*8,MeasureT           ,0x00,0x00+0x10+0x3);
                    Display16X8ItemData(4,15*8,AmountQ10S/3600    ,0x00,0x00+0x10+0x5);
                    Display16X8ItemData(6, 6*8,Address            ,0x00,0x80+0x00+0x3);
                    Display16X8ItemData(6, 9*8,LastTimeS/3600     ,0x00,0x80+0x00+0x2);
                    Display16X8ItemData(6,12*8,(LastTimeS%3600)/60,0x00,0x80+0x00+0x2);
                    Display16X8ItemData(6,15*8,LastTimeS%60       ,0x00,0x80+0x00+0x2);
                }
                else
                {
                    if(DeviceDLError)//断流故障
                    {
                        static bit tempbit;
                        if(tempbit==0)
                        {
                            tempbit = 1;
                            Display16X8ItemWord(0,12,0);
                            Display16X8ItemWord(2,13,0);
                            Display16X8ItemWord(4,14,0);
                            Display16X8ItemWord(6,15,0);
                        }
                        else
                        {
                            tempbit = 0;
                            Display16X8ItemWord(0,8,0);
                            Display16X8ItemWord(2,8,0);
                            Display16X8ItemWord(4,8,0);
                            Display16X8ItemWord(6,8,0);
                        }
                        os_wait(K_TMO, 500/OS_MSEL_PER_TICKS, 0);
                    }
                    if(DeviceGLError)//过流故障
                    {
                        static bit tempbit;
                        if(tempbit==0)
                        {
                            tempbit = 1;
                            Display16X8ItemWord(0,16,0);
                            Display16X8ItemWord(2,17,0);
                            Display16X8ItemWord(4,18,0);
                            Display16X8ItemWord(6,19,0);
                        }
                        else
                        {
                            tempbit = 0;
                            Display16X8ItemWord(0,8,0);
                            Display16X8ItemWord(2,8,0);
                            Display16X8ItemWord(4,8,0);
                            Display16X8ItemWord(6,8,0);
                        }
                        os_wait(K_TMO, 500/OS_MSEL_PER_TICKS, 0);
                    }
                    if(DeviceGWError)//充电机过温故障
                    {
                        static bit tempbit;
                        if(tempbit==0)
                        {
                            tempbit = 1;
                            Display16X8ItemWord(0,20,0);
                            Display16X8ItemWord(2,21,0);
                            Display16X8ItemWord(4,22,0);
                            Display16X8ItemWord(6,23,0);
                        }
                        else
                        {
                            tempbit = 0;
                            Display16X8ItemWord(0,8,0);
                            Display16X8ItemWord(2,8,0);
                            Display16X8ItemWord(4,8,0);
                            Display16X8ItemWord(6,8,0);
                        }
                        os_wait(K_TMO, 500/OS_MSEL_PER_TICKS, 0);
                    }
                }
            }
            else//调试状态,显示调试信息
            {
                Display5X8(0,0*6 ,'U',1); 
                Display5X8ItemData(0,5*6,MeasureRealU ,0x00,5);
                Display5X8(0,6*6 ,'K',1); 
                Display5X8ItemData(0,11*6,Uk ,0x00,5);
                Display5X8(0,12*6,'B',1); 
                Display5X8ItemData(0,17*6,Ub ,0x00,5);

                Display5X8(1,0*6 ,'I',1);
                Display5X8ItemData(1,5*6,MeasureI ,0x00,5);
                Display5X8(1,6*6 ,'K',1);
                Display5X8ItemData(1,11*6,Ik ,0x00,5);
                Display5X8(1,12*6,'B',1);
                Display5X8ItemData(1,17*6,Ib ,0x00,5);

                Display5X8(2,0*6 ,'T',1);
                Display5X8ItemData(2,5*6,MeasureTU ,0x00,5);
                Display5X8(2,6*6 ,'K',1);
                Display5X8ItemData(2,11*6,Tk ,0x00,5);
                Display5X8(2,12*6,'B',1);
                Display5X8ItemData(2,17*6,Tb ,0x00,5);

                Display5X8(3,0*6 ,'U',1); Display5X8ItemData(3,5*6 ,URealCount,0x00,5);
                Display5X8(3,6*6 ,'I',1); Display5X8ItemData(3,11*6,IRealCount,0x00,5);
                Display5X8(3,12*6,'T',1); Display5X8ItemData(3,17*6,TRealCount,0x00,5);

                Display5X8(4,0*6 ,'U',1); 
                Display5X8ItemData(4,5*6 ,SetupU,0x00,5);
                Display5X8(4,6*6 ,'I',1); 
                Display5X8ItemData(4,11*6,SetupI,0x00,5);
                Display5X8(4,12*6,'K',1); 
                Display5X8ItemData(4,17*6,DAk ,0x00,5);
                Display5X8(4,18*6,' ',0); 
                Display5X8ItemData(4,20*6,DAb ,0xFF,3);

                Display5X8ItemData(5,3*6 ,SetupIDA,0x00,4);
                Display5X8ItemData(5,7*6 ,RealTimeDA,0xFF,4);
                Display5X8ItemData(5,11*6 ,WriteOutDA,0x00,4);
                Display5X8(5,12*6,' ',0); 
            }
        }break;
        case DEVICE_ERROR:
        {
            Display16X8ItemWord(0,8,0);
            Display16X8ItemWord(2,9,0);
            Display16X8ItemWord(4,10,0);
            Display16X8ItemWord(6,11,0);
        }break;
        case DEVICE_DL_ERROR:
        {
            Display16X8ItemWord(0,12,0);
            Display16X8ItemWord(2,13,0);
            Display16X8ItemWord(4,14,0);
            Display16X8ItemWord(6,15,0);
        }break;
        case DEVICE_GL_ERROR:
        {
            Display16X8ItemWord(0,16,0);
            Display16X8ItemWord(2,17,0);
            Display16X8ItemWord(4,18,0);
            Display16X8ItemWord(6,19,0);
        }break;
        case DEVICE_GY_ERROR:
        {
            Display16X8ItemWord(0,20,0);
            Display16X8ItemWord(2,21,0);
            Display16X8ItemWord(4,22,0);
            Display16X8ItemWord(6,23,0);
        }break;
        default:break;
    }
}                                       
/*********************************************************************************************************
** 函数名称: void DispRun()
** 功能描述: 
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年12月15日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void DispSetParameter(void)
{
    uint8 temp8;
    if(Deep0Focus < 7)
    {
        Display16X8ItemWord(0,32,0);
        Display16X8ItemWord(2,33,0);
        Display16X8ItemWord(4,34,0);
        Display16X8ItemWord(6,35,0);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(0,11*8,Address ,(Deep0Focus==0)?temp8:0x00,0x80+0x00+0x3);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(2, 7*8,Ib,(Deep0Focus==1)?temp8:0x00,0x80+0x00+0x5);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(2,15*8,Ik,(Deep0Focus==2)?temp8:0x00,0x80+0x00+0x5);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(4, 7*8,Ub,(Deep0Focus==3)?temp8:0x00,0x80+0x00+0x5);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(4,15*8,Uk,(Deep0Focus==4)?temp8:0x00,0x80+0x00+0x5);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(6, 7*8,DAb,(Deep0Focus==5)?temp8:0x00,0x80+0x00+0x5);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(6,15*8,DAk,(Deep0Focus==6)?temp8:0x00,0x80+0x00+0x5);
    }
    else
    {
        Display16X8ItemWord(0,88,0);
        Display16X8ItemWord(2,89,0);
        Display16X8ItemWord(4,90,0);
        Display16X8ItemWord(6,91,0);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(0, 7*8,Tb,(Deep0Focus==7)?temp8:0x00,0x80+0x00+0x5);
    
        temp8 = 1;temp8=temp8<<(Deep1Focus==255?0:Deep1Focus);
        Display16X8ItemData(0,15*8,Tk,(Deep0Focus==8)?temp8:0x00,0x80+0x00+0x5);
    }
}
/*********************************************************************************************************
** 函数名称: void DispSetProgramStep(void)
** 功能描述: 

⌨️ 快捷键说明

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