數字電路采用的基本數制是二進制,而人們熟悉和習慣使用的數制是十進制,因此有必要在二進制與十進制之間建立一種轉換機制,以方便數字電路的解讀和分析。
BCD碼就是一種用二進制數表示十進制數的碼制。
BCD是英文'Binary-Coded Decimal'的縮寫,直譯的意思是“二進制編碼的十進制數”,這種編碼的數制本質上是十進制。BCD碼用4個二進制數表示一個十進制數,每一位允許的范圍是2#0000~2#1001(注1),也就是十進制的0~9,采用“逢十進一”的規則。
BCD碼是有符號的,用最高位來表示符號,“0”表示正數,“1”表示負數。對于一個四位的BCD碼而言(16個二進制位),能表示的范圍是 “-999~+999”。為什么呢?其實比較好理解,你想,最高位是符號位,那么就剩下了三位,由于每一位BCD碼,其本質是十進制數,所以每一位最大的數都是9,所以三位數最大就是999,加上符號,所以四位BCD碼能表示的十進制數的范圍是 “-999~+999”。同樣的道理,八位BCD碼(32個二進制位)能表示的十進制數的范圍是“-9999999~+9999999”。
在西門子S7-300/400/1200/1500中,BCD16表示的十進制數范圍為-999到+999。位15為“0”,則符號為正,為“1”,則符號為負。位12至位14不使用。BCD32表示的十進制數范圍為-9999999 到 +9999999。
施耐德PLC中,如Unity Pro XL平臺,BCD16表示的十進制數范圍為0到9999。BCD32表示的十進制數范圍為0到99999999。
三菱PLC中,如GX Works2平臺,BCD16表示的十進制數范圍為0到9999。BCD32表示的十進制數范圍為0到99999999。
PLC內部總是按HEX格式(十六進制)進行數據計算的,在驅動非智能的顯示設備(如數碼管)顯示數據之前,往往需要將PLC內部的HEX格式數據先轉換為BCD碼,然后進行顯示輸出;將用戶以十進制方式設置的參數存入PLC內存之前,則往往需要將該BCD碼轉換為十六進制(HEX)格式。
人們在電腦顯示器上看到的十進制讀數,都是經過了計算機自動作BCD轉換后才顯示的;監控時修改的參數,則是電腦軟件作了HEX轉換后寫入的,無需人為干預而已。
BCD碼可以有多種編碼方式,例如8421碼、5421碼、2421碼、余3碼、格雷碼等。
8421碼是最常用的一種BCD編碼方式,在這種編碼方式中,每個十進制數字都由對應的四位二進制值表示,二進制值每一位的“1”都代表一個固定數值。將每位“1”所代表的十進制數加起來就可以得到它所代表的十進制數字。因為代碼中從左至右看每一位“1”分別代表數字“8”“4”“2”“1”,故得名8421碼。
以上是進制轉換的手動計算方法,在我們實際應用中,一般都是使用轉換工具的,微軟自帶的計算器,就帶這個功能。下面給大家介紹一下微軟自帶的計算器如何進行數據類型轉換:
Windows鍵+R,然后輸入“calc”回車,就能打開系統自帶的計算器。
點擊左上角的查看,然后選擇程序員模式,就能進行各個數進制之間的轉換了。
*注釋1:在PLC中,二進制數據通常以”2#”作為前綴,十六進制數據通常以”16#”作為前綴,十進制數據只需正常書寫即可。
上一篇:機器視覺與三菱PLC以太網通訊設置指南
下一篇:伺服電機絕對定位與相對定位控制技術
- 熱門資源推薦
- 熱門放大器推薦
- 電堂USB開發板
- 【RA】基于瑞薩MCU頻譜燈+1051772A
- LT8611 演示板、42V、2.5A 微功率同步降壓型穩壓器,具有電流檢測功能
- NCP301LSN30T1 3V 電壓檢測器的典型應用,用于具有附加遲滯的微處理器復位電路
- LT1172IS8、5V/1.25A 正降壓轉換器的典型應用
- 【訓練營】四腳機器狗
- 使用 Diodes Incorporated 的 PT8A3516 的參考設計
- DC2157A,用于 LTM4630EY-1 雙路 18A/單路 36A 降壓模塊穩壓器的演示板,4.5V = VIN = 15V,Vout1 = 1.5V @ 18A,Vout2 = 1V @ 18A
- 12Vnas
- 具有 ON/OFF 功能的 NCP3064B 1.5A 降壓型開關穩壓器的典型降壓應用