找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1518|回复: 9
打印 上一主题 下一主题
收起左侧

单片机+LCD为什么显示不了小数点?

[复制链接]
跳转到指定楼层
楼主
ID:913310 发表于 2021-12-4 09:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:913310 发表于 2021-12-4 09:31 | 只看该作者
比如只能显示十位数,12.0的数字,没有小数位
回复

使用道具 举报

板凳
ID:908826 发表于 2021-12-4 10:55 | 只看该作者
我记得1602有专门显示字符的函数哎。我看可能太久没玩记错了。
回复

使用道具 举报

地板
ID:913310 发表于 2021-12-4 11:01 | 只看该作者
13205495918 发表于 2021-12-4 10:55
我记得1602有专门显示字符的函数哎。我看可能太久没玩记错了。

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

使用道具 举报

5#
ID:508718 发表于 2021-12-4 16:00 | 只看该作者
你这段代码看不出啥呀。
不显示小数点以后的数字还得看你的驱动代码是怎么写的。
回复

使用道具 举报

6#
ID:913310 发表于 2021-12-6 00:06 来自手机 | 只看该作者
logan0279 发表于 2021-12-4 16:00
你这段代码看不出啥呀。
不显示小数点以后的数字还得看你的驱动代码是怎么写的。

比如哪里的驱动代码?我做的是超声波测距
回复

使用道具 举报

7#
ID:213173 发表于 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]);
复制代码
回复

使用道具 举报

8#
ID:913310 发表于 2021-12-7 10:30 | 只看该作者

你的回复很好的,谢谢你,就是我这个还是解决不了
回复

使用道具 举报

9#
ID:313048 发表于 2021-12-7 10:44 | 只看该作者
shankmorder 发表于 2021-12-7 10:30
你的回复很好的,谢谢你,就是我这个还是解决不了

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

使用道具 举报

10#
ID:965189 发表于 2021-12-7 11:40 | 只看该作者
12864的点是:0x2E。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表