找回密码
 立即注册

QQ登录

只需一步,快速开始

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

16进制转10进制 在12864液晶上显示 遇到问题了

[复制链接]
跳转到指定楼层
楼主
ID:94808 发表于 2016-1-14 10:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
低字节  0xC1:  12*16+1=193
高字节 0x04:    0*16+4=4
(4*256+193)/10=121.7
我有一个程序函数可以把0xc1和0x04转换成10进制显示在12864液晶上显示。做不到(4*256+193)/10=121.7这一步。我把0x04c1用计算器直接得到1217.
                   Int_To_Str((ch5),time1);//ch5换成0x04c1能显示1217,如果ch5=0x04c1,就不行了。
                   Lcd_SetPos(0, 0);
                       i = 0;
                        while(time[ i] != '\0')
                        {
                                ch7 = time[ i++];
                                
                                Lcd_WriteDat(ch7);              //
                        }
求高手
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:71525 发表于 2016-1-15 21:48 来自手机 | 只看该作者
你的程序,这些貌似不能解决问题吧?
回复

使用道具 举报

板凳
ID:94808 发表于 2016-1-16 08:03 | 只看该作者
void Int_To_Str(int x,char *Str)
{
        int t;
        char *Ptr,Buf[5];
        int i = 0;
        Ptr = Str;
        if(x < 10)                //
        {
                *Ptr ++ = '0';
                *Ptr ++ = x+0x30;
        }
        else
        {
                while(x > 0)
                {
                        t = x % 10;
                        x = x / 10;
                        Buf[i++] = t+0x30;        //
                }
                i -- ;
                for(;i >= 0;i --)                 //
                {
                        *(Ptr++) = Buf[i];
                }
        }
        *Ptr = '\0';
}
这个是转换函数
回复

使用道具 举报

地板
ID:103475 发表于 2016-1-16 17:04 | 只看该作者
是不是超过长度了?
回复

使用道具 举报

5#
ID:103547 发表于 2016-1-17 11:17 来自手机 | 只看该作者
数组算对了吗
回复

使用道具 举报

6#
ID:94808 发表于 2016-1-18 07:33 | 只看该作者
曾繁华 发表于 2016-1-16 17:04
是不是超过长度了?

在函数直接输入0x04c1可以在12864上显示1217,用ch1=0x04c1,把ch1放在函数里就不行了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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