找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3108|回復(fù): 15
打印 上一主題 下一主題
收起左側(cè)

我是小白,求思路,如何用at89c52將十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù),后在LCD上顯示

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1090450 發(fā)表于 2023-11-5 23:24 來自觸屏版 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
50黑幣
我是小白,求思路,如何用at89c52將十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制,然后在LCD上顯示

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:517951 發(fā)表于 2023-11-6 07:31 | 只看該作者
與10進(jìn)制顯數(shù)方法一樣的, 向右位移4位,每位數(shù)取余,然后每位根據(jù)余數(shù)值顯示0-f.
回復(fù)

使用道具 舉報(bào)

板凳
ID:69038 發(fā)表于 2023-11-6 07:51 | 只看該作者
給你思路,8位(1字節(jié))10進(jìn)制的高4位是10,低4位是1,16制制的高4位是16,低4 位是1

回復(fù)

使用道具 舉報(bào)

地板
ID:584814 發(fā)表于 2023-11-6 08:14 | 只看該作者
將十進(jìn)制數(shù)除以16,得到結(jié)果后在LCD上顯示就可以
回復(fù)

使用道具 舉報(bào)

5#
ID:996773 發(fā)表于 2023-11-6 08:53 | 只看該作者
我是高手,求問題,這十進(jìn)制數(shù)字有多少位?個(gè)位還是百位還是千位,還是上億?

您給我分辨率多大的LCD?
回復(fù)

使用道具 舉報(bào)

6#
ID:819526 發(fā)表于 2023-11-6 08:54 | 只看該作者
把十進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制在轉(zhuǎn)換成字符串,在輸出到lcd上就行了。




給你個(gè)參考程序:
/*八位無符號(hào)整型->字符串(十六進(jìn)制)*/
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';
}
回復(fù)

使用道具 舉報(bào)

7#
ID:276663 發(fā)表于 2023-11-6 08:58 | 只看該作者
思路就是
1、先在屏幕上實(shí)現(xiàn)畫點(diǎn)
2、將0-F取模并且能在屏幕上顯示
3、DecToHex需要自己實(shí)現(xiàn)
4、屏幕顯示
回復(fù)

使用道具 舉報(bào)

8#
ID:161164 發(fā)表于 2023-11-6 09:00 | 只看該作者
Hex_H =Uchar_dat/16;
Hex_L = Uchar_dat%16;
回復(fù)

使用道具 舉報(bào)

9#
ID:883242 發(fā)表于 2023-11-6 13:41 | 只看該作者
我覺得樓主未能理解十進(jìn)制和二進(jìn)制的區(qū)別。應(yīng)該舉例說明原始數(shù)據(jù)和想顯示的數(shù)據(jù)。
回復(fù)

使用道具 舉報(bào)

10#
ID:1090450 發(fā)表于 2023-11-6 13:50 | 只看該作者
在LCD1602上先顯示所要計(jì)算的四位十六進(jìn)制數(shù),然后在第二行輸出計(jì)算后的十進(jìn)制數(shù),想法是這樣的
回復(fù)

使用道具 舉報(bào)

11#
ID:1088099 發(fā)表于 2023-11-6 15:52 | 只看該作者
按你這個(gè)說法是已經(jīng)知道十六進(jìn)制數(shù)了,現(xiàn)在想問的是如何顯示嗎?這個(gè)你去搜如何控制LCD1602或者看看數(shù)據(jù)手冊(cè)通過指令去控制輸出就好了
回復(fù)

使用道具 舉報(bào)

12#
ID:883242 發(fā)表于 2023-11-6 18:08 | 只看該作者
丟車保帥 發(fā)表于 2023-11-6 13:50
在LCD1602上先顯示所要計(jì)算的四位十六進(jìn)制數(shù),然后在第二行輸出計(jì)算后的十進(jìn)制數(shù),想法是這樣的

你還是舉例說明吧,比如有個(gè)“四位十六進(jìn)制數(shù)”0x7fff,你想顯示32767???還是別的什么東西,你現(xiàn)在這么說沒人能看懂。
回復(fù)

使用道具 舉報(bào)

13#
ID:1090450 發(fā)表于 2023-11-6 21:44 來自觸屏版 | 只看該作者
那我舉個(gè)例子,我輸四位十進(jìn)制數(shù)2222,然后轉(zhuǎn)換成十六進(jìn)制數(shù)8AE,最后在LCD上顯示
回復(fù)

使用道具 舉報(bào)

14#
ID:883242 發(fā)表于 2023-11-6 21:58 | 只看該作者
丟車保帥 發(fā)表于 2023-11-6 21:44
那我舉個(gè)例子,我輸四位十進(jìn)制數(shù)2222,然后轉(zhuǎn)換成十六進(jìn)制數(shù)8AE,最后在LCD上顯示

那就根本不用轉(zhuǎn)換,原始數(shù)據(jù)是0,按2,原始數(shù)據(jù)變成2,再按2,原始數(shù)據(jù)*10加上剛剛輸入的2,……如此反復(fù)就可以了。你是不明白2222在內(nèi)存里面就是8AE,不要轉(zhuǎn)換。
回復(fù)

使用道具 舉報(bào)

15#
ID:272612 發(fā)表于 2023-11-8 10:16 | 只看該作者
結(jié)合2樓和14樓的回答就能搞定了。14樓:數(shù)據(jù)在內(nèi)存里都是二進(jìn)制存儲(chǔ)的,不存在十進(jìn)制和16進(jìn)制的轉(zhuǎn)換問題,這個(gè)是前提要理解。LCD上的東西只是給人看的,是按照單個(gè)字符逐一顯示出來的。所以你想在LCD上顯示一個(gè)數(shù)據(jù),不管用什么進(jìn)制顯示,只要按照進(jìn)制取出每一位字符,然后逐一顯示出來就行了。二樓通過移位的方式可以很方便的滿足一個(gè)數(shù)據(jù)取16進(jìn)制的各位字符,如果是10進(jìn)制,那就是不斷除以10取余就可以了。
回復(fù)

使用道具 舉報(bào)

16#
ID:1097455 發(fā)表于 2023-11-13 15:17 | 只看該作者
程序里面的十進(jìn)制你可以直接轉(zhuǎn)化的
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表