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

📄 lcddrive12864.c

📁 Keil单片机软件开发平台下的一个51系列单片机工程
💻 C
📖 第 1 页 / 共 3 页
字号:
                    }
                }
            }
        }break;
        case 2://小数点后2位
        {
            Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
            lcdline-=8;
            DotNot = DotNot>>1;

            Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=8;

            Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=8;

            Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=8;
            if(number>3)
            {
                if(dispzero)//显示前导0
                {
                    Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
                }
                else//不显示前导0
                {
                    Display16X8(lcdrow, lcdline,(temp16>=1000) ? (temp16/1000)%10+0x30 : ' ',(bit)(DotNot&1) );
                }
                DotNot = DotNot>>1;
                lcdline-=8;
                if(number>4)
                {
                    if(dispzero)//显示前导0
                    {
                        Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
                    }
                    else//不显示前导0
                    {
                        Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bit)(DotNot&1) );
                    }
                }
            }
        }break;
        case 3://小数点后3位
        {
            Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
            lcdline-=8;
            DotNot = DotNot>>1;

            Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=8;

            Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=8;

            Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=8;

            Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=8;

            if(number>4)
            {
                if(dispzero)//显示前导0
                {
                    Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
                }
                else//不显示前导0
                {
                    Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bit)(DotNot&1) );
                }
            }
        }break;
    }
}
/*********************************************************************************************************
** 函数名称: void Display8X8ItemData(uint8 lcdrow,uint8 lcdline,uint8 item,uint8 DotNot,uint8 style);
** 功能描述: DotNot bit0~7为1则对应位反显
** 输 入:   style:显示数据的个数.
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2006年4月7日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void Display5X8ItemData(uint8 lcdrow,uint8 lcdline,uint16 temp16,uint8 DotNot,uint8 style)
{
    uint8 number;
    number = style &0x0F;                           //取出显示数据的个数
    lcdinit();                                      //left and right show open
    Display5X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
    lcdline-=6;
    DotNot = DotNot>>1;
    if(number>1)
    {
        Display5X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
        DotNot = DotNot>>1;
        lcdline-=6;
        if(number>2)
        {
            Display5X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
            DotNot = DotNot>>1;
            lcdline-=6;
            if(number>3)
            {
                Display5X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
                DotNot = DotNot>>1;
                lcdline-=6;
                if(number>4)
                {
                    Display5X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
                }
            }
        }
    }        
}
/*********************************************************************************************************
** 函数名称: Display16X16Item
** 功能描述: 在指定的行列绘一16X16点阵数组
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void Display16X16Item(uint8 dlcdrow,uint8 dlcdline,uint8 item)
{

    uint8 i;
    for(i=0;i<7;i++)
    {
        if(mb[item][i]==0xFF)
        {
            break;
        }
        Display16X16(dlcdrow,(dlcdline+i*16), mb[item][i]);
    }
}
/*********************************************************************************************************
** 函数名称: Display16X8WithDot3
** 功能描述: 在指定的行列绘一16X8点阵数组,小数点后三位数字
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void DisplayInt16X8WithDot3(uint8 lcdrow ,uint8 lcdline, uint16 temp16)
{
    Display16X8(lcdrow, lcdline+8*0,(temp16>=10000) ? (temp16/10000)%10 : 17 );
    Display16X8(lcdrow, lcdline+8*1,(temp16/1000)%10 );
    Display16X8(lcdrow, lcdline+8*2,10 );
    Display16X8(lcdrow, lcdline+8*3,(temp16/100)%10 );
    Display16X8(lcdrow, lcdline+8*4,(temp16/10)%10 );
    Display16X8(lcdrow, lcdline+8*5,(temp16%10) );
}
/*********************************************************************************************************
** 函数名称: Display16X8WithDot2
** 功能描述: 在指定的行列绘一16X8点阵数组,小数点后二位数字
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void DisplayInt16X8WithDot2(uint8 lcdrow ,uint8 lcdline, uint16 temp16)
{
    Display16X8(lcdrow, lcdline+8*0,(temp16>=10000) ? (temp16/10000)%10 : 17 );
    Display16X8(lcdrow, lcdline+8*1,(temp16>=1000) ? (temp16/1000)%10 : 17 );
    Display16X8(lcdrow, lcdline+8*2,(temp16/100)%10 );
    Display16X8(lcdrow, lcdline+8*3,10 );
    Display16X8(lcdrow, lcdline+8*4,(temp16/10)%10 );
    Display16X8(lcdrow, lcdline+8*5,(temp16%10) );
}
/*********************************************************************************************************
** 函数名称: DisplayInt16X8WithoutDot
** 功能描述: 在指定的行列绘一16X8点阵数组,无小数点,不显示前导0
** 输 入:   number为显示字符的个数
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void DisplayInt16X8WithoutDot(uint8 lcdrow ,uint8 lcdline, uint16 temp16,uint8 number)
{
    Display16X8(lcdrow, lcdline+8*4-(5-number)*8,(temp16/1)%10);
    if(number>1)
    {
        Display16X8(lcdrow, lcdline+8*3-(5-number)*8,(temp16>=10) ? (temp16/10)%10 : 17 );
        if(number>2)
        {
            Display16X8(lcdrow, lcdline+8*2-(5-number)*8,(temp16>=100) ? (temp16/100)%10 : 17 );
            if(number>3)
            {
                Display16X8(lcdrow, lcdline+8*1-(5-number)*8,(temp16>=1000) ? (temp16/1000)%10 : 17 );
                if(number>4)
                {
                    Display16X8(lcdrow, lcdline+8*0-(5-number)*8,(temp16>=10000) ? (temp16/10000)%10 : 17 );
                }
            }
        }
    }
}
/*********************************************************************************************************
** 函数名称: DisplayInt16X8WithoutDotWithZero
** 功能描述: 在指定的行列绘一16X8点阵数组,无小数点,显示前导0
** 输 入:   number为显示字符的个数
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void DisplayInt16X8WithoutDotWithZero(uint8 lcdrow ,uint8 lcdline, uint16 temp16,uint8 number)
{
    Display16X8(lcdrow, lcdline+8*4-(5-number)*8,(temp16/1)%10);
    if(number>1)
    {
        Display16X8(lcdrow, lcdline+8*3-(5-number)*8,(temp16/10)%10 );
        if(number>2)
        {
            Display16X8(lcdrow, lcdline+8*2-(5-number)*8,(temp16/100)%10 );
            if(number>3)
            {
                Display16X8(lcdrow, lcdline+8*1-(5-number)*8,(temp16/1000)%10 );
                if(number>4)
                {
                    Display16X8(lcdrow, lcdline+8*0-(5-number)*8,(temp16/10000)%10);
                }
            }
        }
    }
}
/*********************************************************************************************************
** 函数名称: Display16X8WithDot3
** 功能描述: 在指定的行列绘一16X8点阵数组,小数点后三位数字
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void DisplayChar6X8WithoutDot(uint8 lcdrow ,uint8 lcdline, uint8 temp8)
{
    Display6X8(lcdrow, lcdline+6*0,(temp8/100)%10);
    Display6X8(lcdrow, lcdline+6*1,(temp8/10)%10);
    Display6X8(lcdrow, lcdline+6*2,(temp8/1)%10);
}
/*********************************************************************************************************
** 函数名称: DisplayInt6X8WithDot3
** 功能描述: 在指定的行列绘INT型数,小数点后三位数字
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void DisplayInt6X8WithDot3(uint8 lcdrow ,uint8 lcdline, uint16 temp16)
{
    Display6X8(lcdrow, lcdline+6*0,(temp16>=10000) ? (temp16/10000)%10 : 15 );
    Display6X8(lcdrow, lcdline+6*1,(temp16/1000)%10 );
//    Display2X8(lcdrow, lcdline+6*2,10 );
    Display6X8(lcdrow, lcdline+6*3-4,(temp16/100)%10 );
    Display6X8(lcdrow, lcdline+6*4-4,(temp16/10)%10 );
    Display6X8(lcdrow, lcdline+6*5-4,(temp16%10) );
}
/*********************************************************************************************************
** 函数名称: DisplaySpace
** 功能描述: 在指定的行列绘一指定个数的16X8空白
** 输 入:   
** 输 出:   
** 全局变量:
** 调用模块:
**
** 作 者: 刘宝贵
** 日 期: 2005年1月26日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
/*void DisplaySpace(uint8 lcdrow ,uint8 lcdline, uint8 number)
{
    do
    {
        Display16X8(lcdrow, lcdline,17);
        number--;
        lcdline+=8;
    }while(number>0);
}
*/





⌨️ 快捷键说明

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