找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机+LCD1602在想显示65535时会显示65135?

[复制链接]
跳转到指定楼层
楼主
ID:860840 发表于 2022-5-6 20:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的LCD1602在想显示65535时会显示65135,
                                65435时会显示65035
不知道为啥,下面是程序
/**
* @brief  显示无符号数字
* @param  x 显示的行数 范围为1~2;
* @param  y 显示的列数 范围为1~40;但初始只显示前16列。
* @param  num 显示的数字 范围 0~65535
* @param  length 显示的数字长度  0~40 但初始只显示前16
* @retval 无
*/
void lcd1602_show_num(unsigned char x,y, unsigned int num, unsigned char length)
{
        unsigned char i=length;
        show_location(x,y);
        while(i)
        {
                lcd1602_w_data((num/(int)(pow(10,i-1)))%10+0x30);
                i--;
        }
}


/**
* @brief  写数据函数
* @param  dat 要写的数据
* @retval 无
*/
void lcd1602_w_data(unsigned char dat)
{
//        while(!check_busy());
        RS=1;
        RW=0;
        P0=dat;
        EN=1;
        _nop_ ();
        EN=0;        
        Delay(1);
}


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

使用道具 举报

沙发
ID:94031 发表于 2022-5-7 10:45 | 只看该作者
程序有问题,给的信息不全不好判断。
回复

使用道具 举报

板凳
ID:883242 发表于 2022-5-7 10:48 | 只看该作者
pow是浮点类型啊!你必须忍受误差。
回复

使用道具 举报

地板
ID:1012735 发表于 2022-5-8 16:40 | 只看该作者
把函数参数 “unsigned int num" 改成 unsigned long num
回复

使用道具 举报

5#
ID:1026496 发表于 2022-5-15 22:20 | 只看该作者
void lcd1602_show_num(unsigned char x,y, unsigned int num, unsigned char length) 中y 缺少类型
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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