标题: 单片机+LCD为什么显示不了小数点? [打印本页]

作者: shankmorder    时间: 2021-12-4 09:26
标题: 单片机+LCD为什么显示不了小数点?
if(L>=100)
        {
                  write_com(0x80+0x40+0x09);
                  write_data(((L*10)/1000)+0x30);    //百
                  write_data(((L*10)%1000/100)+0x30);  //十
                  write_data(((L*10)%100/10)+0x30);     //个
                  write_data(46);           //点
                  write_data(((L*10)%10)+0x30);
}
                else if(L>=10 && L<100)
                {
                  write_com(0x80+0x40+0x09);
                  write_data((L*10/100)+0x30);  //十
                  write_data((L*10%100/10)+0x30);     //个
                  write_data(46);           //点
                  write_data((L*10%10)+0x30); //小数位1
}
                else if(L>=0 && L<10)
                {
                  write_com(0x80+0x40+0x09);
                        write_data((L*10/10)+0x30);  //个
                        write_data(46);           //点
                  write_data((L*10%10)+0x30);     //小数位1
}


作者: shankmorder    时间: 2021-12-4 09:31
比如只能显示十位数,12.0的数字,没有小数位
作者: 13205495918    时间: 2021-12-4 10:55
我记得1602有专门显示字符的函数哎。我看可能太久没玩记错了。
作者: shankmorder    时间: 2021-12-4 11:01
13205495918 发表于 2021-12-4 10:55
我记得1602有专门显示字符的函数哎。我看可能太久没玩记错了。

是有的,但是我的意思是直接判断它的数字,然后我就知道在哪里显示,小数点位置我是确定的,就小数点位置后面不显示,就很尬

作者: logan0279    时间: 2021-12-4 16:00
你这段代码看不出啥呀。
不显示小数点以后的数字还得看你的驱动代码是怎么写的。
作者: shankmorder    时间: 2021-12-6 00:06
logan0279 发表于 2021-12-4 16:00
你这段代码看不出啥呀。
不显示小数点以后的数字还得看你的驱动代码是怎么写的。

比如哪里的驱动代码?我做的是超声波测距
作者: wulin    时间: 2021-12-6 05:40
shankmorder 发表于 2021-12-4 11:01
是有的,但是我的意思是直接判断它的数字,然后我就知道在哪里显示,小数点位置我是确定的,就小数点位置 ...

  1.         unsigned char i;
  2.     unsigned char dis_buf[5];

  3.         L*=10;
  4.         if(L%10==0)//没有小数
  5.         {
  6.                 if(L>=1000)
  7.                 {
  8.                         dis_buf[0]=L/1000%10+'0';
  9.                         dis_buf[1]=L/100%10+'0';
  10.                         dis_buf[2]=L/10%10+'0';
  11.                         dis_buf[3]=' ';
  12.                         dis_buf[4]=' ';
  13.                 }
  14.                 else if(L>=100 && L<1000)
  15.                 {
  16.                         dis_buf[0]=L/100%10+'0';
  17.                         dis_buf[1]=L/10%10+'0';
  18.                         dis_buf[2]=' ';
  19.                         dis_buf[3]=' ';
  20.                         dis_buf[4]=' ';
  21.                 }
  22.                 else if(L>=10 && L<100)
  23.                 {
  24.                         dis_buf[0]=L/10%10+'0';
  25.                         dis_buf[1]=' ';
  26.                         dis_buf[2]=' ';
  27.                         dis_buf[3]=' ';
  28.                         dis_buf[4]=' ';
  29.                 }
  30.         }
  31.         else //有小数
  32.         {
  33.                 if(L>=1000)
  34.                 {
  35.                         dis_buf[0]=L/1000%10+'0';
  36.                         dis_buf[1]=L/100%10+'0';
  37.                         dis_buf[2]=L/10%10+'0';
  38.                         dis_buf[3]='.';
  39.                         dis_buf[4]=%10+'0';
  40.                 }
  41.                 else if(L>=100 && L<1000)
  42.                 {
  43.                         dis_buf[0]=L/100%10+'0';
  44.                         dis_buf[1]=L/10%10+'0';
  45.                         dis_buf[2]='.';
  46.                         dis_buf[3]=L%10+'0';
  47.                         dis_buf[4]=' ';
  48.                 }
  49.                 else if(L>=10 && L<100)
  50.                 {
  51.                         dis_buf[0]=L/10%10+'0';
  52.                         dis_buf[1]='.';
  53.                         dis_buf[2]=L%10+'0';
  54.                         dis_buf[3]=' ';
  55.                         dis_buf[4]=' ';
  56.                 }
  57.         }
  58.         write_com(0x80+0x40+0x09);
  59.         for(i=0;i<5;i++)
  60.                 write_data(dis_buf[i]);
复制代码

作者: shankmorder    时间: 2021-12-7 10:30
wulin 发表于 2021-12-6 05:40

你的回复很好的,谢谢你,就是我这个还是解决不了
作者: AUG    时间: 2021-12-7 10:44
shankmorder 发表于 2021-12-7 10:30
你的回复很好的,谢谢你,就是我这个还是解决不了

你先试试其他特殊的字符是否能显示先,如果可以的话在看是不是你程序哪里出问题

作者: 君工创    时间: 2021-12-7 11:40
12864的点是:0x2E。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1