在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用8位單片機對16位INT型數據進行操作

j4AI_wujianying ? 來源:未知 ? 2019-06-30 10:29 ? 次閱讀

在8位單片機中沒有16位數的操作指令,所有的int型數據都要通過兩個字節分開操作,使用的方法不用,生成的代碼也不相同,當然效率也不一樣,通過指針對16位數進行操作可以得到高效的代碼。

比如通過串行口接收數據,或者從串行的EEPROM中讀取的數據,或者從大于8位的A/D讀取的數據,由于8位單片機的數據線是8位的,高于8位的數據都要分成兩個字節分別讀取,然后寫入到RAM中去再進行計算,或者把16位的int型數據從RAM中讀出再分別把高低字節存到EEPROM或者送到D/A,或者通過串行口發送出去,方法有很多種,下面用多種方法進行實現該操作,這里只演示寫入到16位的情況,讀取的情況非常相似,不贅述。

(1)使用聯合 (union)

typedef union{

unsigned int i;

unsigned char c[2];

}u_int;

unsigned char dH = 0x11, dL=0x22;

unsigned int d;

u_int ud;

ud.c[0] = dH;

ud.c[1] = dL;

d = ud.i;

此時d = 0x1122;

(2) 使用移位指令

數據定義與前面相同

d = ((unsigned int)dH)<<8 + dL;

或者

d = dH;

d <<= 8; // or: d = d<<8; 但后者編譯的代碼可能不是最簡的

d |= dL; // or: d = d | dL; 后者編譯的代碼可能不是最簡的

(3)使用指針

unsigned char *cptr;

cptr = (unsigned char*)(&d);

cptr[0] = dH;

cptr[1] = dL;

(4)強制指針類型轉換

*((unsigned char*)(&d)) = dH;

*((unsigned char*)(&d)+1) = dL;

((unsigned char*)(&d))[0] = dH;

((unsigned char*)(&d))[1] = dL;

這兩種方式看似相同但由Keil編譯出的代碼是不用的,前都有一次加法運算,而后者沒有,后者生成的代碼更簡潔,這種方式與用聯合成生的代碼是完全一樣的,

在這幾種方法中第(1)與第(4)的第二種生成的代碼是最乘潔的,是推薦使用的,從軟件工程的角度出發,推薦使用方法(1),這樣沒有強制類型轉換,沒有用到指針,更不容易出錯。從書寫的代碼來講,第(4)的第二種方法是最好的,代碼簡潔而且效率最高,但語法有點兒復雜。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6060

    文章

    44829

    瀏覽量

    645086
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1386

    瀏覽量

    116501
  • EEPROM
    +關注

    關注

    9

    文章

    1061

    瀏覽量

    83071

原文標題:8位單片機中如何對16位INT型數據進行操作?

文章出處:【微信號:wujianying_danpianji,微信公眾號:單片機精講吳鑒鷹】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    單片機開發設計,如何通過指針對16進行操作

    8單片機中沒有16數的操作指令,所有的int
    的頭像 發表于 09-27 15:21 ?9262次閱讀

    一文看懂8,16和32單片機的區別

    8單片機 16 32區別? 指CPU處理的數據
    的頭像 發表于 07-15 11:07 ?12.5w次閱讀

    16單片機有哪些

    在實際運用中,很多人使用16單片機16單片機有哪些呢?本文給大家帶來
    發表于 12-20 11:41 ?4.4w次閱讀

    串行口接收數據,如何對16INT數據進行操作

    過串行口接收數據,或者從串行的EEPROM中讀取的數據,或者從大于8的A/D讀取的數據,由于8
    的頭像 發表于 12-27 06:02 ?1.3w次閱讀

    單片機816是怎么區分的

    本文開始介紹了單片機的概念和單片機的硬件特性,其次介紹了單片機的種類及介紹了8單片機
    的頭像 發表于 04-10 16:00 ?2.7w次閱讀

    8單片機和32單片機的應用

     現在在單片機應用市場,仍然是以8單片機和32單片機為主導。在產品應用上,當然是物盡其用。那
    發表于 06-26 14:31 ?6636次閱讀

    816、32單片機的xx含義

    816、32是指單片機的“字長”,也就是一次運算中參與運算的
    發表于 04-30 10:04 ?2次下載

    8OTP IO單片機PMS154C系列數據手冊

    8OTP IO單片機PMS154C系列數據手冊
    發表于 06-21 09:32 ?27次下載

    816、32單片機中的“XX”指什么?

    處理的數據寬度不同,總線寬度小于CPU一次處理的數據寬度,則以CPU的數據寬度定義單片機的位數,但稱為準多少。比如某CPU是
    發表于 11-16 09:21 ?29次下載
    <b class='flag-5'>8</b><b class='flag-5'>位</b>、<b class='flag-5'>16</b><b class='flag-5'>位</b>、32<b class='flag-5'>位</b><b class='flag-5'>單片機</b>中的“XX<b class='flag-5'>位</b>”指什么?

    816、32單片機(MCU)

    1、 816、32是什么?? ?? ????指CPU處理的
    發表于 11-18 17:36 ?11次下載
    <b class='flag-5'>8</b><b class='flag-5'>位</b>、<b class='flag-5'>16</b><b class='flag-5'>位</b>、32<b class='flag-5'>位</b><b class='flag-5'>單片機</b>(MCU)

    8單片機做多位乘除操作

    8單片機做多位乘除操作今日在8單片機中做乘除運算
    發表于 11-18 19:51 ?12次下載
    <b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>單片機</b>做多位乘除<b class='flag-5'>操作</b>

    8單片機中對16int數據操作技巧

    如何把兩個8位數據合在一起變成16位數據呢?
    發表于 02-08 16:22 ?0次下載
    <b class='flag-5'>8</b><b class='flag-5'>位</b><b class='flag-5'>單片機</b>中對<b class='flag-5'>16</b><b class='flag-5'>位</b><b class='flag-5'>int</b><b class='flag-5'>型</b><b class='flag-5'>數據</b>的<b class='flag-5'>操作</b>技巧

    8單片機的優缺點有哪些?

    單片機自上世紀70年代問世以來,在電子設備現代化中發揮了巨大作用。單片機也從最初的4發展到8單片機
    的頭像 發表于 08-08 16:58 ?2017次閱讀

    8單片機16單片機的區別

    的4單片機發展到如今的32單片機,其中8單片機
    的頭像 發表于 08-12 13:50 ?3778次閱讀

    8單片機和32單片機如何選擇?8單片機和32單片機的區別

    8和32單片機如何選擇適合,以及主要區別!
    的頭像 發表于 09-16 10:51 ?1751次閱讀
    主站蜘蛛池模板: 看片福利| 久久波多野结衣 | 狼色视频在线观免费观看 | 青青草99热久久 | 天天搞天天干 | 日韩欧美不卡片 | 四虎永久免费影院在线 | 国产福利乳摇在线播放 | 国产在线播放成人免费 | 色综合天 | 久久99国产精品久久99 | 9久久99久久久精品齐齐综合色圆 | 国产三区视频 | 亚洲性天堂 | 国产综合色精品一区二区三区 | 人与禽一级一级毛片 | 91视频精品| 高清欧美日本视频免费观看 | bt天堂在线www最新版资源网 | 奇米视频7777 | 亚洲福利一区 | 欧美日韩亚洲色图 | 精品久久看 | 亚洲国产婷婷综合在线精品 | 四虎影院在线视频 | 性生活一区| 亚洲va国产日韩欧美精品色婷婷 | 天堂a免费视频在线观看 | 日本不卡一区二区三区在线观看 | 四虎永久精品视频在线 | 免费看污视频软件 | 男人操女人视频在线观看 | 毛片特黄| 2022国产情侣真实露脸在线 | www.亚洲欧美| 成人性生活免费视频 | 国产精品露脸脏话对白 | 欧美一级高清免费播放 | 久久国产精品99久久久久久老狼 | 香港澳门a级三级三级全黄 香港经典a毛片免费观看爽爽影院 | 色的视频网站 |