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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2104|回復: 12
打印 上一主題 下一主題
收起左側

單片機C語言如何把高低位整合在一起?

[復制鏈接]
跳轉到指定樓層
樓主
ID:447439 發表于 2022-5-23 08:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
U8RH_data_H_temp=U8comdata;    COM();    U8RH_data_L_temp=U8comdata;    COM();    U8T_data_H_temp=U8comdata;    COM();    U8T_data_L_temp=U8comdata;    COM();
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 2022-5-23 11:40 | 只看該作者
U16RH_data_temp = U8RH_data_H_temp;
U16RH_data_temp <<= 8;
U16RH_data_temp |= U8RH_data_L_temp;
回復

使用道具 舉報

板凳
ID:685462 發表于 2022-5-23 13:35 | 只看該作者

c習慣這么寫,也可以
#include <stdint.h>
uint16_t temp = (uint16_t)(U8RH_data_H_temp<<8) + (uint16_t) U8RH_data_L_temp;
回復

使用道具 舉報

地板
ID:891041 發表于 2022-5-24 09:58 | 只看該作者
用union
回復

使用道具 舉報

5#
ID:447439 發表于 2022-5-24 11:25 | 只看該作者
lose2836 發表于 2022-5-23 13:35
c習慣這么寫,也可以
#include
uint16_t temp = (uint16_t)(U8RH_data_H_temp

寫的仔細,學習了。謝謝
回復

使用道具 舉報

6#
ID:883242 發表于 2022-5-24 11:36 | 只看該作者
移位太浪費時間了,用union或者指針操作。
回復

使用道具 舉報

7#
ID:161164 發表于 2022-5-24 14:12 | 只看該作者
Hephaestus 發表于 2022-5-24 11:36
移位太浪費時間了,用union或者指針操作。

我想到的指針用法是這樣,請指教
  1. #include <reg52.h>

  2. typedef         unsigned char        u8;  //0 to 255
  3. typedef         unsigned int        u16;  //0 to 65535
  4. typedef         unsigned long        u32;  //0 to 4294967295

  5. u8 U8RH_data_temp[2] = {0x12, 0x23};//{High Byte, Low Byte}
  6. u16 *U16RH_data_temp;

  7. void main()
  8. {
  9.                 U16RH_data_temp = (u16*)U8RH_data_temp;
  10.     while (1)
  11.     {
  12.     }
  13. }
復制代碼



回復

使用道具 舉報

8#
ID:844772 發表于 2022-5-24 14:35 | 只看該作者
union U16_union
{
unsigned int U16RH_data_temp;
unsigned char U8RH_H,U8RH_L;
} U16_data;
U16_data.U8RH_H= U8RH_data_H_temp;
U16_data.U8RH_L= U8RH_data_L_temp;
U16_data.U16RH_data_temp     //你要的合并的值,但這個用法跟芯片大小數有關,51沒問題
回復

使用道具 舉報

9#
ID:624769 發表于 2022-5-24 14:53 | 只看該作者
sfr  DPL = 0x82;
sfr  DPH = 0x83;
sfr16 DPTR = 0x82;
unsigned char testbyte_H = 0x12;   //8位
unsigned char testbyte_L = 0x34;   //8位
unsigned short testword;        //16位

void main()
{
            DPL = testbyte_L;          //存入低8位字節
            DPH = testbyte_H;        //存入高8位字節

            testword = DPTR;    //讀出 16位 字
            while(1);
}
回復

使用道具 舉報

10#
ID:883242 發表于 2022-5-24 17:08 | 只看該作者
lkc8210 發表于 2022-5-24 14:12
我想到的指針用法是這樣,請指教

可以用,但是要注意大小端問題。8位單片機本身不存在大小端問題,但是編譯器會給超過1個字節的數據按大端和小端來分配地址。
回復

使用道具 舉報

11#
ID:1026496 發表于 2022-5-24 20:49 | 只看該作者
可以使用共用體
回復

使用道具 舉報

12#
ID:161164 發表于 2022-5-24 21:37 | 只看該作者
Hephaestus 發表于 2022-5-24 17:08
可以用,但是要注意大小端問題。8位單片機本身不存在大小端問題,但是編譯器會給超過1個字節的數據按大端 ...

受教了~
回復

使用道具 舉報

13#
ID:1012735 發表于 2022-5-25 00:24 | 只看該作者
U16 data_Value = u8_HIGH * 0x100 + u8_LOW
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清一区二区 | 久久激情视频 | www久久久 | 色狠狠一区 | 国产精久久久久久 | 中文字幕欧美在线观看 | 国产精品美女久久久久aⅴ国产馆 | 激情在线视频网站 | 久久成 | 中文字幕av免费 | 全免费a级毛片免费看视频免 | 日韩久久综合 | 亚洲精品v日韩精品 | 最新中文字幕在线 | 色资源在线视频 | 欧美成年黄网站色视频 | 久久久久久久久久一区二区 | 精品国产一区二区久久 | 日韩欧美精品一区 | 日韩欧美二区 | 黑人精品欧美一区二区蜜桃 | 欧美区日韩区 | 在线中文字幕av | 午夜精品三区 | 日韩视频在线观看一区二区 | 欧美乱操 | 国产一区久久久 | 久久九九99 | 自拍偷拍第一页 | 日韩影音 | 看一级毛片视频 | 日韩精品 电影一区 亚洲 | 欧美日韩一区二区三区不卡视频 | 亚洲精品久久久久久一区二区 | 国产高清精品一区二区三区 | 午夜影院视频在线观看 | 久久综合一区 | 9999国产精品欧美久久久久久 | 久草欧美 | 福利片在线 | 99精品视频免费观看 |