标题: 我是小白,求思路,如何用at89c52将十进制数转换为十六进制数,后在LCD上显示 [打印本页]

作者: 丢车保帅    时间: 2023-11-5 23:24
标题: 我是小白,求思路,如何用at89c52将十进制数转换为十六进制数,后在LCD上显示
我是小白,求思路,如何用at89c52将十进制数转换为十六进制,然后在LCD上显示
作者: rayin    时间: 2023-11-6 07:31
与10进制显数方法一样的, 向右位移4位,每位数取余,然后每位根据余数值显示0-f.
作者: zhuls    时间: 2023-11-6 07:51
给你思路,8位(1字节)10进制的高4位是10,低4位是1,16制制的高4位是16,低4 位是1


作者: man1234567    时间: 2023-11-6 08:14
将十进制数除以16,得到结果后在LCD上显示就可以
作者: hi等你    时间: 2023-11-6 08:53
我是高手,求问题,这十进制数字有多少位?个位还是百位还是千位,还是上亿?

您给我分辨率多大的LCD?
作者: TTL.    时间: 2023-11-6 08:54
把十进制数转换成十六进制在转换成字符串,在输出到lcd上就行了。




给你个参考程序:
/*八位无符号整型->字符串(十六进制)*/
void u82str(u8* x,u8* Str,u8 lenth)
{
        u8 i;
        for(i=0;i<lenth;i++)
        {
                *(Str+2*i)   = (*(x+i)/16<=9)?(*(x+i)/16+'0'):(*(x+i)/16-10+'A');
                *(Str+2*i+1) = (*(x+i)%16<=9)?(*(x+i)%16+'0'):(*(x+i)%16-10+'A');
        }
        *(Str+2*lenth) = '\0';
}
作者: IdeaMing    时间: 2023-11-6 08:58
思路就是
1、先在屏幕上实现画点
2、将0-F取模并且能在屏幕上显示
3、DecToHex需要自己实现
4、屏幕显示
作者: lkc8210    时间: 2023-11-6 09:00
Hex_H =Uchar_dat/16;
Hex_L = Uchar_dat%16;
作者: Hephaestus    时间: 2023-11-6 13:41
我觉得楼主未能理解十进制和二进制的区别。应该举例说明原始数据和想显示的数据。
作者: 丢车保帅    时间: 2023-11-6 13:50
在LCD1602上先显示所要计算的四位十六进制数,然后在第二行输出计算后的十进制数,想法是这样的
作者: 金玉之食    时间: 2023-11-6 15:52
按你这个说法是已经知道十六进制数了,现在想问的是如何显示吗?这个你去搜如何控制LCD1602或者看看数据手册通过指令去控制输出就好了
作者: Hephaestus    时间: 2023-11-6 18:08
丢车保帅 发表于 2023-11-6 13:50
在LCD1602上先显示所要计算的四位十六进制数,然后在第二行输出计算后的十进制数,想法是这样的

你还是举例说明吧,比如有个“四位十六进制数”0x7fff,你想显示32767???还是别的什么东西,你现在这么说没人能看懂。
作者: 丢车保帅    时间: 2023-11-6 21:44
那我举个例子,我输四位十进制数2222,然后转换成十六进制数8AE,最后在LCD上显示
作者: Hephaestus    时间: 2023-11-6 21:58
丢车保帅 发表于 2023-11-6 21:44
那我举个例子,我输四位十进制数2222,然后转换成十六进制数8AE,最后在LCD上显示

那就根本不用转换,原始数据是0,按2,原始数据变成2,再按2,原始数据*10加上刚刚输入的2,……如此反复就可以了。你是不明白2222在内存里面就是8AE,不要转换。
作者: longwu357    时间: 2023-11-8 10:16
结合2楼和14楼的回答就能搞定了。14楼:数据在内存里都是二进制存储的,不存在十进制和16进制的转换问题,这个是前提要理解。LCD上的东西只是给人看的,是按照单个字符逐一显示出来的。所以你想在LCD上显示一个数据,不管用什么进制显示,只要按照进制取出每一位字符,然后逐一显示出来就行了。二楼通过移位的方式可以很方便的满足一个数据取16进制的各位字符,如果是10进制,那就是不断除以10取余就可以了。
作者: 圣博朗西斯    时间: 2023-11-13 15:17
程序里面的十进制你可以直接转化的




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