求教:诺基亚5110液晶如何显示变量?

2020-01-22 12:17发布

       我想在诺基亚5110上显示个浮点型变量,要怎么进行转换显示呢,弄了老半天都不行,请大虾们求教……
       或者有这方面资料的希望共享下,谢谢了·····
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
qinkaiabc
1楼-- · 2020-01-23 05:52
char a[10]={'0','1','2','3','4','5','6','7','8','9'};
void LCD_write_english_int(unsigned char X,unsigned char Y,char s)
{
        LCD_set_XY(X,Y);
        LCD_write_char(s);

}

LCD_write_english_int(0,3,a[i]);
qqwangte
2楼-- · 2020-01-23 10:17
同求、、、楼主弄好了没?求教、、、
fjzhangqin
3楼-- · 2020-01-23 14:04
qqwangte 发表于 2013-8-19 23:32
同求、、、楼主弄好了没?求教、、、

恩,已经调好了,就是用数组的方法。
首先设定一个数组:
uchar tempstr[7]={0x30,0x30,0x30,0x30,0x30,0x30,0x30} ;    //初始化 为0;
然后对你所求的变量进行分解
例如我所求的变量为V
        tempstr[0]=v/100+0x30;
        tempstr[1]=v%100/10+0x30;
        tempstr[2]=v%10+0x30;

显示时则调用:

         LCD_write_char(tempstr[0]);
         write_english_string(32,1,".");
        LCD_write_char(tempstr[1]);
        LCD_write_char(tempstr[2]);
        write_english_string(52,1,"m/s");

以下为相关的调用函数

void LCD_write_char(uchar c)      //写单个字符
{
        uchar line;
        c=c-32;
        for(line=0;line<6;line++)

                LCD_write_byte(font6x8[c][line],1);
               
}
void write_english_string(uchar X,uchar Y,uchar *s)   //写 字符串
{
        uchar i;
        LCD_set_XY(X,Y);
        for(i=0;i<strlen(s);i++)
        {
                LCD_write_char(s);
        }
}

zbj2014cn
4楼-- · 2020-01-23 15:13
 精彩回答 2  元偷偷看……
zbj2014cn
5楼-- · 2020-01-23 18:08
而且前面的0没法消掉啊
zbj2014cn
6楼-- · 2020-01-23 23:36
void LCD_write_count(unsigned long int count)
{
                unsigned char tempstr[9]={0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30} ;
        //将count送入缓冲区
              tempstr[0]=count/10000000+0x30;
              tempstr[1]=count%10000000/1000000+0x30;
              tempstr[2]=count%10000000%1000000/100000+0x30;
              tempstr[3]=count%10000000%1000000%100000/10000+0x30;
              tempstr[4]=count%10000000%1000000%100000%10000/1000+0x30;
              tempstr[5]=count%10000000%1000000%100000%10000%1000/100+0x30;
              tempstr[6]=count%10000000%1000000%100000%10000%1000%100/10+0x30;
              tempstr[7]=count%10000000%1000000%100000%10000%1000%100%10+0x30;
   //判断count显示位数
         if(count>10000000)
                     {

                             LCD_write_char(tempstr[0]);
                             LCD_write_char(tempstr[1]);
                             LCD_write_char(tempstr[2]);
                             LCD_write_char(tempstr[3]);
                             LCD_write_char(tempstr[4]);
                             LCD_write_char(tempstr[5]);
                             LCD_write_char(tempstr[6]);
                             LCD_write_char(tempstr[7]);
                     }

                     else if((10000000>count)&&(count>=1000000))
                     {

                              LCD_write_char(tempstr[1]);
                              LCD_write_char(tempstr[2]);
                              LCD_write_char(tempstr[3]);
                              LCD_write_char(tempstr[4]);
                              LCD_write_char(tempstr[5]);
                              LCD_write_char(tempstr[6]);
                              LCD_write_char(tempstr[7]);

                     }
                     else if((1000000>count)&&(count>=100000))
                     {
                             LCD_write_char(tempstr[2]);
                             LCD_write_char(tempstr[3]);
                             LCD_write_char(tempstr[4]);
                             LCD_write_char(tempstr[5]);
                             LCD_write_char(tempstr[6]);
                             LCD_write_char(tempstr[7]);

                     }
                     else if((100000>count)&&(count>=10000))
                     {

                             LCD_write_char(tempstr[3]);
                         LCD_write_char(tempstr[4]);
                         LCD_write_char(tempstr[5]);
                         LCD_write_char(tempstr[6]);
                         LCD_write_char(tempstr[7]);
                     }
                     else if((10000>count)&&(count>=1000))
                     {

                             LCD_write_char(tempstr[4]);
                             LCD_write_char(tempstr[5]);
                             LCD_write_char(tempstr[6]);
                             LCD_write_char(tempstr[7]);
                     }
                     else if((1000>count)&&(count>=100))
                     {

                              LCD_write_char(tempstr[5]);
                              LCD_write_char(tempstr[6]);
                              LCD_write_char(tempstr[7]);
                     }
                     else if((100>count)&&(count>=10))
                     {

                              LCD_write_char(tempstr[6]);
                              LCD_write_char(tempstr[7]);
                     }
                     else
                     {

                             LCD_write_char(tempstr[7]);
                     }
}

一周热门 更多>