精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

什么是BCD碼

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-09-07 09:10 ? 次閱讀

在使用RTC外設時,我們常常會接觸 BCD碼的概念,同時魚鷹在介紹 USB協議版本時也說了 BCD碼,那么什么是 BCD碼? BCD 碼分為多種,今天魚鷹介紹最常用的 8421 BCD碼。

進制 高四位 低四位
BCD碼 4 5
十六進制 4 5
十進制 6 9

假如我們需要設置 RTC時鐘的秒值為 45 秒,因為一般芯片會使用 BCD碼進行存儲,所以我們需要存儲到芯片寄存器的值就是 0x45,注意這是十六進制表示,如果你寫入寄存器時用十進制表示,那么就是 69。 代碼表示如下:

//假設 REG_SEC 為秒寄存器 REG_SEC = 0x45;  // 十六進制寫入寄存器
REG_SEC = 69;  // 十進制寫入寄存器
不管你使用哪種方式,最終寫入的二進制都是一樣的,沒有任何區別。不過因為是 BCD碼格式,當寫入的值為立即數時,建議使用十六進制,這樣看起來更直觀一些。 從這個例子中我們其實也可以看出一點規律,那就是所謂的 BCD 碼就是把十六進制的寫法直接認為是十進制的值。 實際上也確實如此。 BCD 碼中,使用4個位(二進制位)來表示一個十進制的值,范圍 0~9。 也就是說,本來十六進制 4 個位可以表示0~15,但因為十進制的范圍是 0~9,所以這四個位的范圍也因此被限制住了。 同時在一個字節中,高四位代表十進制的十位,低四位代表十進制的個位。 了解這一點,你就知道該如何把十進制轉化成BCD碼的形式進行存儲,又該如何將 BCD碼轉化為十進制了。 還是以存儲秒寄存器(BCD碼存儲)為例:

// BCD 碼 轉 十進制#define BCD_TO_DECIMAL(x)   ((((x) & 0xf0) >> 4) * 10 + ((x) & 0x0f))
// 十進制 轉 BCD 碼#define DECIMAL_TO_BCD(x)   ((((x) / 10) << 4) + ((x) % 10))

// 以十進制形式寫入秒寄存器,最終將以 BCD 碼存儲REG_SEC = DECIMAL_TO_BCD(45); // 設置為 45 秒 
// 讀取秒寄存器中的 BCD 碼,并轉化為十進制值,方便處理second = BCD_TO_DECIMAL(REG_SEC);
通過以上兩個宏,我們就可以在0 ~ 99 范圍內隨意轉化,當需要更大范圍時,理解原理,修改起來也不就是那么麻煩了。
審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 時鐘
    +關注

    關注

    10

    文章

    1720

    瀏覽量

    131362
  • RTC
    RTC
    +關注

    關注

    2

    文章

    528

    瀏覽量

    66309
  • BCD碼
    +關注

    關注

    1

    文章

    52

    瀏覽量

    18273

原文標題:啥是 BDC 碼?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    BCD輸出靜態顯示電路圖

    BCD輸出靜態顯示電路圖如下圖所示。CD4511是BCD七段共陰譯碼/驅動IC; 4511是4線-7段鎖存/譯碼/驅動電路,能將BCD
    發表于 07-31 11:33 ?8009次閱讀
    <b class='flag-5'>BCD</b><b class='flag-5'>碼</b>輸出靜態顯示電路圖

    什么是BCD、8421、余三、格雷

    用四位二進制代碼來表示一位十進制數,稱為二--十進制編碼,簡稱BCD(Binary Coded Decimal)。根據代碼的每一位是否有權值BCD可分為有權
    發表于 11-03 17:36

    關于BCD轉換的問題

    if((TIME[SetPlace]&0x0f)>9)//換成BCD。{TIME[SetPlace]=TIME[SetPlace]+6;}BCD代碼。Binary-Coded
    發表于 03-08 11:59

    如何改變計數值為壓縮BCD

    @C51單片機題目如下問:如何改變計數值為壓縮BCD,使發光二極管顯示壓縮BCD?(注:壓縮型BCD
    發表于 12-08 07:03

    DS1302的BCD相關資料推薦

    儲存在DS1302中的數據是BCD以4位二進制數來表示一位十進制數如0010 0011 的BCD就是230100 1010由于第二位為10,就不合法表示為16進制就更明顯了如0x1
    發表于 01-19 06:51

    什么是BCD

    文章目錄什么是BCD ?什么是BCD ?在日常生產生活中用的最多的數字是十進制數字,而單片機系統的所有數據本質上都是二進制的,所以聰明的前輩們就給我們創造了
    發表于 01-20 08:08

    BCD交流調壓電路

    BCD交流調壓電路
    發表于 02-18 22:04 ?1003次閱讀
    <b class='flag-5'>BCD</b><b class='flag-5'>碼</b>交流調壓電路

    BCD模擬轉換器電路圖

    BCD模擬轉換器電路圖
    發表于 03-25 08:58 ?2371次閱讀
    <b class='flag-5'>BCD</b><b class='flag-5'>碼</b>模擬轉換器電路圖

    多路BCD并行BCD變換器電路圖

    多路BCD并行BCD變換器電路圖
    發表于 03-25 09:01 ?1020次閱讀
    多路<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>并行<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>變換器電路圖

    bcd加法器

    BCD(Binary-Coded Decimal?)亦稱二進十進數或二-十進制代碼。用4位二進制數來表示1位十進制數中的0~9這10個數碼。是一種二進制的數字編碼形式,用二進制編碼的十進制代碼。
    發表于 11-23 18:07 ?1.2w次閱讀
    <b class='flag-5'>bcd</b><b class='flag-5'>碼</b>加法器

    bcd是什么_bcd的編碼方式是什么

    BCD亦稱二進十進數或二-十進制代碼。用4位二進制數來表示1位十進制數中的0~9這10個數碼。是一種二進制的數字編碼形式,用二進制編碼的十進制代碼。BCD
    發表于 11-24 08:48 ?4.2w次閱讀
    <b class='flag-5'>bcd</b><b class='flag-5'>碼</b>是什么_<b class='flag-5'>bcd</b><b class='flag-5'>碼</b>的編碼方式是什么

    余3至8421BCD的轉換_8421BCD轉換成余3

    二進制編碼的十進制數,簡稱BCD。這種方法是用4位二進制的組合代表十進制數的0,1,2,3,4,5,6 ,7,8,9 十個數符。由8421加3后形成的余3
    的頭像 發表于 03-02 09:38 ?19.2w次閱讀
    余3<b class='flag-5'>碼</b>至8421<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>的轉換_8421<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>轉換成余3<b class='flag-5'>碼</b>

    8421bcd運算規則

    BCD的運算規則:BCD是十進制數,而運算器對數據做加減運算時,都是按二進制運算規則進行處理的。這樣,當將 BCD
    的頭像 發表于 03-02 09:53 ?5.6w次閱讀
    8421<b class='flag-5'>bcd</b><b class='flag-5'>碼</b>運算規則

    8421BCD轉換成5421BCD

    5421BCD,是二—十進制代碼(BCD)的一種;二—十進制代碼(BCD)的一種;5421
    的頭像 發表于 03-02 13:48 ?8w次閱讀
    8421<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>轉換成5421<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>

    使用流水燈顯示壓縮BCD

    @C51單片機題目如下問:如何改變計數值為壓縮BCD,使發光二極管顯示壓縮BCD?(注:壓縮型BCD
    發表于 11-25 17:36 ?11次下載
    使用流水燈顯示壓縮<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>