کد BCD

بازدید: 3870

maxresdefault

کد BCD

بازدید: 3870

کد BCD روشی برای تبدیل اعداد دسیمال به معادل باینری آن است. همانطور که در مقالات پیشین اشاره شد، در مدارهای دیجیتالی و الکترونیکی از کدهای باینری بسیار متفاوتی استفاده می‌­شود که هرکدام کاربرد خاص خود را دارند.

محاسبات روزانه در جهان بر مبنای ده (اعداد اعشاری) ارائه می‌­شوند، از طرفی سیستم­‌های الکترونیکی و دیجیتال تنها قادر به درک اعداد باینری هستند، از این رو تبدیل اعداد دسیمال به اعداد باینری دارای اهمیت فراوان است، که یکی از این روش­‌ها استفاده از کد BCD است.

با توجه به آموزش­‌های قبلی، یک کد باینری n بیتی، شامل گروهی از n بیت خواهد بود که می‌­تواند حداکثر  ترکیب مجزا از ارقام 0 و 1 را ایجاد کند. یکی از ویژگی­‌های استفاده از کد BCD معرفی هر رقم اعشاری توسط مجموعه‌­ای از 4 بیت باینری مشابه با اعداد هگزادسیمال است، بنابراین هر رقم دسیمال (0 تا 9) توسط یک کد باینری 4 بیتی نمایش داده خواهد شد.

کدهای BCD و اعداد هگزادسیمال کاملا مشابه نیستند. در حالی که یک عدد هگزادسیمال 4 بیتی، می‌­تواند تا عدد F16 معادل عدد دسیمال 15 (1111 باینری) را تولید کند، یک کد BCD می­‌تواند تا عدد 1001 دسیمال یا  باینری را تولید کند.

با وجود اینکه یک مجموعه 4 رقم باینری می­‌تواند حداکثر 16 (2 به توان 4) ترکیب عددی را تولید کند، در سیستم شمارش BCD شش ترکیب باینری (1010)، (1011)، (1100)، (1101)، (1110)و (1111) به عنوان اعداد ممنوعه طبقه‌بندی می‌­شوند و استفاده از آن­ها مجاز نخواهد بود.

مزیت اصلی استفاده از کد BCD فراهم کردن امکان تبدیل اعداد باینری و دسیمال به روشی ساده خواهد بود. با این حال عدم استفاده این کد از ارقام (1010 باینری) معادل 10 دسیمال تا رقم (1111 باینری) معادل 15 دسیمال، یکی از نقطه ضعف­‌های این روش است. با این وجود کد BCD کاربردهای بسیار مهمی به ویژه در نمایش‌گرهای دیجیتال دارد.

در سیستم شماره‌گذاری BCD، هر رقم از اعداد دسیمال به 4 بیت تقسیم خواهد شد. هر رقم دسیمال توسط مقدار وزن باینری خود، به صورت مجموعه­‌های 4 بیتی از رقم 0000 (صفر) تا 1001 (نه) را شامل خواهد شد.

به عنوان مثال، کد BCD معادل عدد دسیمال  به صورت زیر معرفی خواهد شد.

واضح است که، سیستم شماره گذاری BCD از کد‌گذاری وزنی استفاده می‌­کند، و هر گروه 4 بیتی دارای وزن معینی از مقدار نهایی با توجه به جایگاه گروه خواهد بود. به بیان دیگر، BCD یک کد وزنی است و وزن­‌های معرفی شده در کد BCD عبارتند از 8,4,2,1. با توجه به اینکه روش کد BCD امکان نمایش اعداد دسیمال در قالب باینری را فراهم خواهد کرد، معمولا با نام کد 8421 نیز شناخته می­‌شود.

ارائه کد BCD یک عدد دسیمال (Binary Coded Decimal Representation of a Decimal Number)

وزن هر رقم در سیستم اعداد دسیمال با حرکت به سمت چپ با ضریب 10 افزایش می‌­یابد. همان طور که در جدول فوق نشان داده شده است، در سیستم اعداد BCD، وزن باینری هر رقم با ضریب 2 افزایش می­‌یابد. به این ترتیب، وزن رقم اول معادل 1 (0^2)، رقم دوم وزنی معادل 2 (1^2)، رقم سوم 4 (2^2)، و وزن رقم چهارم برابر با 8 (3^2) خواهد بود.

رابطه بین اعداد دسیمال و ارقام BCD در جدول زیر ارائه شده است.

جدول صحت کد BCD

کاملا واضح است که کد BCD 8421 همان وزن هر رقم باینری است و هر رقم دسیمال توسط معادل باینری 4 بیتی آن نمایش داده خواهد شد.

تبدیل اعداد دسیمال به کد BCD (Decimal-to-BCD Conversion)

با توجه به توضیحات مطرح شده، تبدیل اعداد دسیمال به کد BCD مشابه با قوانین تبدیل اعداد هگزادسیمال به اعداد باینری خواهد بود. در ابتدا، ارقام وزن‌دار عدد دسیمال را مشخص کرده و سپس معادل باینری هر رقم در قالب چهار بیتی معرفی می­‌شوند. در نهایت معادل کد BCD 8421 عدد با کنار هم قرار دادن بیت­‌های مشخص شده بدست خواهد آمد.

مثال شماره یک

معادل کد BCD 8421 اعداد دسیمال (8579)، (572) و (85) با توجه به جدول بالا به صورت زیر محاسبه خواهد شد.

نکته مهم در تبدیل اعداد دسیمال به کد BCD توجه به معرفی ارقام در قالب 4 بیتی است. بنابراین درصورتی که معادل باینری رقمی کمتر از چهار بیت باشد، کافیست در سمت چپ رقم MSB به اندازه مورد نیاز صفر اضافه شود، تا قالب چهار بیتی مورد نظر ایجاد شود.

تبدیل کد BCD به عدد دسیمال (BCD-to-Decimal Conversion)

جهت تبدیل کد BCD به عدد دسیمال، کافیست عکس عملیات‌­های فوق عمل شود. به این ترتیب ابتدا عدد باینری به مجموعه‌­های چهار بیتی گروه‌بندی خواهد شد و سپس معادل دسیمال هر یک از ارقام گروه‌­های باینری به ترتیب از سمت کم ارزش ترین بیت محاسبه می‌­شود. به طور مشابه در صورت نیاز در سمت چپ عدد صفرهای اضافی جهت تشکیل گروه­‌های چهار بیتی اضافه خواهد شد. برای مثال عدد باینری 110101 به صورت 0011 0101 و یا 35 دسیمال بیان می‌­­شود.

مثال شماره دو

معادل دسیمال، اعداد باینری 10100111000.101، 1000111، 1010، 1001 به صورت زیر محاسبه خواهد شد.

 1010 باینری معادل با 10 دسیمال خواهد بود که یک عدد BCD غیر مجاز است.

تبدیل عدد BCD به دسیمال یا اعداد دسیمال به کد BCD نسبتا راحت است و پیچیدگی خاصی ندارد؛ البته همواره باید توجه داشت که اعداد BCD در واقع اعداد دسیمال هستند و نه اعداد باینری، هرچند با بیت‌های 0 و 1 نشان داده می‌شوند.

درک قالب BCD یک عدد دسیمال بسیار اهمیت دارد، زیرا سیستم‌های مبتنی بر میکروپروسسور (microprocessor) که کاربردهای فراوانی دارند، مبتنی بر اعداد دسیمال هستند.

با این حال، در حالی که کد گذاری و رمز گشایی (decode) توسط کد BCD بسیار ساده است، اما روش مناسبی جهت ذخیره اعداد نخواهد بود. در رمز گذاری استاندارد (encoding) اعداد دسیمال به BCD 8421، همواره تعداد بیت‌های لازم برای نمایش یک عدد دسیمال معین، بیشتر از تعداد بیت‌های لازم جهت رمزگذاری باینری همان عدد خواهد بود.

برای مثال، معادل باینری یک عدد دسیمال سه رقمی (0 تا 999) تنها به 10 بیت (1111100111 باینری) نیاز خواهد داشت، در حالی که جهت نمایش کد BCD همان عدد به حداقل 12 بیت (0011 1110 0111 BCD) نیاز است.

همچنین، اعمال عملیات­‌های محاسباتی روی اعداد BCD ممکن است مشکلاتی ایجاد کند. این اعداد نمی‌­توانند مقادیر بزرگتر از 9 را اختیار کنند، از این رو ممکن است حاصل جمع دو رقم اعشاری در این سیستم یک بیت کری (carry) ایجاد کند که باید به گروه چهار بیتی بعدی اضافه شود.

اگر حاصل جمع بیت (carry) با چهار بیت باینری کوچکتر مساوی 9 (1001) باشد، رقم BCD متناظر نیز صحیح خواهد بود. اما اگر این حاصل جمع بزرگتر از عدد 9 باشد، یک رقم BCD غیرمجاز تولید خواهد شد. بنابراین بهتر است که ابتدا اعداد BCD را به باینری تبدیل کرده، عملیات جمع را بر روی اعداد باینری انجام داده و در آخر نتیجه‌ی به دست آمده مجددا در قالب BCD بیان شود.

با این وجود، استفاه از سیستم کد گذاری BCD در سیستم‌­های میکروالکترونیکی و سیستم‌های کامپیوتری بسیار رایج است، به طور ویژه جهت نمایش یک یا چند رقم دسیمال بر روی LED یا LCD های هفت قسمتی که با نام (7-Segment) نیز شناخته می‌شوند. مدارهای مجتمع (integrated circuits) بسیار متنوعی نیز جهت دریافت ورودی BCD یا تولید خروجی BCD ارائه شده‌­اند.

آی سی 74LS90 یکی از رایج ترین و پرکاربردترین شمارنده و یا تقسیم کننده‌­ی آسنکرون (asynchronous) با خروجی BCD است. این آی­سی درای دو شمارنده مجزا تقسیم بر دو و تقسیم بر پنج است که از ترکیب هر دو می‌­توان یک شمارنده تقسیم بر ده تولید کرد. همچنین آی سی 74LS390 که نسخه دوگانه آی سی 74LS90 اصلی است و می‌­تواند جهت تولید خروجی­‌های BCD با توجه به نیاز در مدارهای مختلف مورد استفاده قرار گیرد.

رایج‌­ترین آی­سی­‌های رمزگذاری BCD (BCD encoded IC’s) عبارتند از 74LS47 و 74LS48 که کد BCD رمز گذاری شده را به کد 7-segment تبدیل خواهند کرد. آی سی 74LS48 یک کد BCD چهار بیتی را به کد 7-segment که جهت راه اندازی یک نمایشگر LED سون سگمنت لازم است، تبدیل خواهد کرد.

در حالی که عملکرد هر دو آی­سی یکسان است، خروجی آی­سی 74LS47 به صورت (active-low) خواهد بود و معمولا جهت راه‌اندازی نمایشگرهای (common-anode) استفاده خواهد شد، در حالی که خروجی آی­سی 74LS48 به صورت (active-high) است و در راه اندازی نمایشگرهای (common-cathode) استفاده می‌­شود.

خلاصه

کد BCD نمایش یک عدد دسیمال توسط گروه­‌های چهار بیتی باینری است، به بیان دیگر هر رقم دسیمال یا صحیح با معادل باینری خود جایگزین خواهد شد. کد BCD از چهار بیت جهت نمایش 10 رقم دسیمال 0 تا 9 استفاده خواهد کرد.

بنابراین به عنوان مثال، جهت نمایش اعداد دسیمال در محدوده 0 تا 9 (یک رقم) 4 بیت معادل یک Nibble نیاز است، به طور مشابه برای نشان دادن اعداد دسیمال در بازه 0 تا 99 (دو رقم) به 8 بیت معادل یک بایت و اعداد دسیمال در بازه 0 تا 999 (سه رقمی) به  12 بیت نیاز است. تنها استفاده از یک بایت (8 بیت) امکان ذخیره سازی و یا نمایش ارقام BCD در بازه 00 تا 99 را فراهم خواهد کرد. این عدد دو رقمی با نام packed BCD نیز شناخته می‌­شود.

کد BCD استاندارد معمولا با نام کد وزن دار BCD 8421 شناخته می‌­شود، و اعداد 8، 4، 2 و 1 نشان دهنده وزن بیت­‌های مختلف با شروع از پر ارزش ­­ترین  (MSB) تا کم ­ارزش ­ترین بیت (LSB) است. به عبارت دیگر وزن هر یک از بیت‌­های کد BCD با توجه به موقعیت آن برابر با  8=3^2، 4=2^2 ، 2=1^2 و 1=0^2 است.

مهمترین مزیت کدهای BCD در مقایسه با سیستم اعداد باینری خالص، سریع‌تر بودن و کارآمدی بالای آن­ها در تبدیل اعداد دسیمال به باینری است. لازم به ذکر است که عدم به کارگیری شش ترکیب باینری چهار بیتی 10 تا 16 از گسترش کاربرد این کد جلوگیری خواهد کرد، اما همچنان در نمایشگرهای دسیمال کاربردهای بسیار مهمی دارد.

نظرتان را درباره این مقاله بگویید 43 نظر

کد BCD

با ثبت نظر و نوشتن کامنت، تیم ما را در راستای بهبود و افزایش کیفیت محتوا یاری خواهید کرد :)

فهرست مطالب

مقالات مرتبط

مشاهده محصولات

بروزترین مقالات

این مقاله را با دوستانتان به اشتراک بگذارید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سه × 4 =

فروشگاه