久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3184|回復: 15
收起左側

我是小白,求思路,如何用at89c52將十進制數轉換為十六進制數,后在LCD上顯示

  [復制鏈接]
ID:1090450 發表于 2023-11-5 23:24 來自觸屏版 | 顯示全部樓層 |閱讀模式
50黑幣
我是小白,求思路,如何用at89c52將十進制數轉換為十六進制,然后在LCD上顯示

回復

使用道具 舉報

ID:517951 發表于 2023-11-6 07:31 | 顯示全部樓層
與10進制顯數方法一樣的, 向右位移4位,每位數取余,然后每位根據余數值顯示0-f.
回復

使用道具 舉報

ID:69038 發表于 2023-11-6 07:51 | 顯示全部樓層
給你思路,8位(1字節)10進制的高4位是10,低4位是1,16制制的高4位是16,低4 位是1

回復

使用道具 舉報

ID:584814 發表于 2023-11-6 08:14 | 顯示全部樓層
將十進制數除以16,得到結果后在LCD上顯示就可以
回復

使用道具 舉報

ID:996773 發表于 2023-11-6 08:53 | 顯示全部樓層
我是高手,求問題,這十進制數字有多少位?個位還是百位還是千位,還是上億?

您給我分辨率多大的LCD?
回復

使用道具 舉報

ID:819526 發表于 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';
}
回復

使用道具 舉報

ID:276663 發表于 2023-11-6 08:58 | 顯示全部樓層
思路就是
1、先在屏幕上實現畫點
2、將0-F取模并且能在屏幕上顯示
3、DecToHex需要自己實現
4、屏幕顯示
回復

使用道具 舉報

ID:161164 發表于 2023-11-6 09:00 | 顯示全部樓層
Hex_H =Uchar_dat/16;
Hex_L = Uchar_dat%16;
回復

使用道具 舉報

ID:883242 發表于 2023-11-6 13:41 | 顯示全部樓層
我覺得樓主未能理解十進制和二進制的區別。應該舉例說明原始數據和想顯示的數據。
回復

使用道具 舉報

ID:1090450 發表于 2023-11-6 13:50 | 顯示全部樓層
在LCD1602上先顯示所要計算的四位十六進制數,然后在第二行輸出計算后的十進制數,想法是這樣的
回復

使用道具 舉報

ID:1088099 發表于 2023-11-6 15:52 | 顯示全部樓層
按你這個說法是已經知道十六進制數了,現在想問的是如何顯示嗎?這個你去搜如何控制LCD1602或者看看數據手冊通過指令去控制輸出就好了
回復

使用道具 舉報

ID:883242 發表于 2023-11-6 18:08 | 顯示全部樓層
丟車保帥 發表于 2023-11-6 13:50
在LCD1602上先顯示所要計算的四位十六進制數,然后在第二行輸出計算后的十進制數,想法是這樣的

你還是舉例說明吧,比如有個“四位十六進制數”0x7fff,你想顯示32767???還是別的什么東西,你現在這么說沒人能看懂。
回復

使用道具 舉報

ID:1090450 發表于 2023-11-6 21:44 來自觸屏版 | 顯示全部樓層
那我舉個例子,我輸四位十進制數2222,然后轉換成十六進制數8AE,最后在LCD上顯示
回復

使用道具 舉報

ID:883242 發表于 2023-11-6 21:58 | 顯示全部樓層
丟車保帥 發表于 2023-11-6 21:44
那我舉個例子,我輸四位十進制數2222,然后轉換成十六進制數8AE,最后在LCD上顯示

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

使用道具 舉報

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

使用道具 舉報

ID:1097455 發表于 2023-11-13 15:17 | 顯示全部樓層
程序里面的十進制你可以直接轉化的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合国产精品 | 日韩欧美国产一区二区三区 | 欧美日韩综合视频 | 国产乱码精品一区二区三区五月婷 | 一级大片 | 密色视频 | 国产乱码久久久久久 | 欧美乱大交xxxxx另类电影 | 午夜丁香视频在线观看 | 国产精品久久久久久久久久久久久 | 国产精品久久久久久久久久免费看 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 国产传媒视频在线观看 | av中文在线 | 黄色一级大片在线免费看产 | 欧美一区二区三区在线观看 | 天堂av中文在线 | 国产免费让你躁在线视频 | h片免费看 | 97视频在线观看网站 | 日韩国产一区二区三区 | 国产成人精品久久二区二区91 | 国产免费一级一级 | 久久久免费精品 | 亚洲区一区二 | 亚洲第一视频网 | 国产一二区视频 | 亚洲码欧美码一区二区三区 | 欧美日韩一区二区三区四区五区 | 亚洲 欧美 在线 一区 | 久久久久久久一区 | 天天综合网91 | 国产精品亚洲成在人线 | 久久久毛片| 99reav| 欧美一区二 | 国产在线视频一区二区 | 亚洲第一成人影院 | 日韩在线一区二区 | 日韩精品一区二区三区中文在线 | 99久久久久久 |