پنل خورشیدی
ذخیره ساز انرژی
گارانتی محصول با ماست
برای شیراز و شهرستان
کد BCD روشی برای تبدیل اعداد دسیمال به معادل باینری آن است. همانطور که در مقالات پیشین اشاره شد، در مدارهای دیجیتالی و الکترونیکی از کدهای باینری بسیار متفاوتی استفاده میشود که هرکدام کاربرد خاص خود را دارند.
محاسبات روزانه در جهان بر مبنای ده (اعداد اعشاری) ارائه میشوند، از طرفی سیستمهای الکترونیکی و دیجیتال تنها قادر به درک اعداد باینری هستند، از این رو تبدیل اعداد دسیمال به اعداد باینری دارای اهمیت فراوان است، که یکی از این روشها استفاده از کد BCD است.
با توجه به آموزشهای قبلی، یک کد باینری n بیتی، شامل گروهی از n بیت خواهد بود که میتواند حداکثر ترکیب مجزا از ارقام ۰ و ۱ را ایجاد کند. یکی از ویژگیهای استفاده از کد BCD معرفی هر رقم اعشاری توسط مجموعهای از ۴ بیت باینری مشابه با اعداد هگزادسیمال است، بنابراین هر رقم دسیمال (۰ تا ۹) توسط یک کد باینری ۴ بیتی نمایش داده خواهد شد.
کدهای BCD و اعداد هگزادسیمال کاملا مشابه نیستند. در حالی که یک عدد هگزادسیمال ۴ بیتی، میتواند تا عدد F16 معادل عدد دسیمال ۱۵ (۱۱۱۱ باینری) را تولید کند، یک کد BCD میتواند تا عدد ۱۰۰۱ دسیمال یا باینری را تولید کند.
با وجود اینکه یک مجموعه ۴ رقم باینری میتواند حداکثر ۱۶ (۲ به توان ۴) ترکیب عددی را تولید کند، در سیستم شمارش BCD شش ترکیب باینری (۱۰۱۰)، (۱۰۱۱)، (۱۱۰۰)، (۱۱۰۱)، (۱۱۱۰)و (۱۱۱۱) به عنوان اعداد ممنوعه طبقهبندی میشوند و استفاده از آنها مجاز نخواهد بود.
مزیت اصلی استفاده از کد BCD فراهم کردن امکان تبدیل اعداد باینری و دسیمال به روشی ساده خواهد بود. با این حال عدم استفاده این کد از ارقام (۱۰۱۰ باینری) معادل ۱۰ دسیمال تا رقم (۱۱۱۱ باینری) معادل ۱۵ دسیمال، یکی از نقطه ضعفهای این روش است. با این وجود کد BCD کاربردهای بسیار مهمی به ویژه در نمایشگرهای دیجیتال دارد.
در سیستم شمارهگذاری BCD، هر رقم از اعداد دسیمال به ۴ بیت تقسیم خواهد شد. هر رقم دسیمال توسط مقدار وزن باینری خود، به صورت مجموعههای ۴ بیتی از رقم ۰۰۰۰ (صفر) تا ۱۰۰۱ (نه) را شامل خواهد شد.
به عنوان مثال، کد BCD معادل عدد دسیمال به صورت زیر معرفی خواهد شد.

واضح است که، سیستم شماره گذاری BCD از کدگذاری وزنی استفاده میکند، و هر گروه ۴ بیتی دارای وزن معینی از مقدار نهایی با توجه به جایگاه گروه خواهد بود. به بیان دیگر، BCD یک کد وزنی است و وزنهای معرفی شده در کد BCD عبارتند از ۸,۴,۲,۱. با توجه به اینکه روش کد BCD امکان نمایش اعداد دسیمال در قالب باینری را فراهم خواهد کرد، معمولا با نام کد ۸۴۲۱ نیز شناخته میشود.

وزن هر رقم در سیستم اعداد دسیمال با حرکت به سمت چپ با ضریب ۱۰ افزایش مییابد. همان طور که در جدول فوق نشان داده شده است، در سیستم اعداد BCD، وزن باینری هر رقم با ضریب ۲ افزایش مییابد. به این ترتیب، وزن رقم اول معادل ۱ (۰^۲)، رقم دوم وزنی معادل ۲ (۱^۲)، رقم سوم ۴ (۲^۲)، و وزن رقم چهارم برابر با ۸ (۳^۲) خواهد بود.
رابطه بین اعداد دسیمال و ارقام BCD در جدول زیر ارائه شده است.

کاملا واضح است که کد BCD ۸۴۲۱ همان وزن هر رقم باینری است و هر رقم دسیمال توسط معادل باینری ۴ بیتی آن نمایش داده خواهد شد.
با توجه به توضیحات مطرح شده، تبدیل اعداد دسیمال به کد BCD مشابه با قوانین تبدیل اعداد هگزادسیمال به اعداد باینری خواهد بود. در ابتدا، ارقام وزندار عدد دسیمال را مشخص کرده و سپس معادل باینری هر رقم در قالب چهار بیتی معرفی میشوند. در نهایت معادل کد BCD ۸۴۲۱ عدد با کنار هم قرار دادن بیتهای مشخص شده بدست خواهد آمد.
معادل کد BCD ۸۴۲۱ اعداد دسیمال (۸۵۷۹)، (۵۷۲) و (۸۵) با توجه به جدول بالا به صورت زیر محاسبه خواهد شد.

نکته مهم در تبدیل اعداد دسیمال به کد BCD توجه به معرفی ارقام در قالب ۴ بیتی است. بنابراین درصورتی که معادل باینری رقمی کمتر از چهار بیت باشد، کافیست در سمت چپ رقم MSB به اندازه مورد نیاز صفر اضافه شود، تا قالب چهار بیتی مورد نظر ایجاد شود.
جهت تبدیل کد BCD به عدد دسیمال، کافیست عکس عملیاتهای فوق عمل شود. به این ترتیب ابتدا عدد باینری به مجموعههای چهار بیتی گروهبندی خواهد شد و سپس معادل دسیمال هر یک از ارقام گروههای باینری به ترتیب از سمت کم ارزش ترین بیت محاسبه میشود. به طور مشابه در صورت نیاز در سمت چپ عدد صفرهای اضافی جهت تشکیل گروههای چهار بیتی اضافه خواهد شد. برای مثال عدد باینری ۱۱۰۱۰۱ به صورت ۰۰۱۱ ۰۱۰۱ و یا ۳۵ دسیمال بیان میشود.
معادل دسیمال، اعداد باینری ۱۰۱۰۰۱۱۱۰۰۰.۱۰۱، ۱۰۰۰۱۱۱، ۱۰۱۰، ۱۰۰۱ به صورت زیر محاسبه خواهد شد.

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

تبدیل عدد BCD به دسیمال یا اعداد دسیمال به کد BCD نسبتا راحت است و پیچیدگی خاصی ندارد؛ البته همواره باید توجه داشت که اعداد BCD در واقع اعداد دسیمال هستند و نه اعداد باینری، هرچند با بیتهای ۰ و ۱ نشان داده میشوند.
درک قالب BCD یک عدد دسیمال بسیار اهمیت دارد، زیرا سیستمهای مبتنی بر میکروپروسسور (microprocessor) که کاربردهای فراوانی دارند، مبتنی بر اعداد دسیمال هستند.
با این حال، در حالی که کد گذاری و رمز گشایی (decode) توسط کد BCD بسیار ساده است، اما روش مناسبی جهت ذخیره اعداد نخواهد بود. در رمز گذاری استاندارد (encoding) اعداد دسیمال به BCD ۸۴۲۱، همواره تعداد بیتهای لازم برای نمایش یک عدد دسیمال معین، بیشتر از تعداد بیتهای لازم جهت رمزگذاری باینری همان عدد خواهد بود.
برای مثال، معادل باینری یک عدد دسیمال سه رقمی (۰ تا ۹۹۹) تنها به ۱۰ بیت (۱۱۱۱۱۰۰۱۱۱ باینری) نیاز خواهد داشت، در حالی که جهت نمایش کد BCD همان عدد به حداقل ۱۲ بیت (۰۰۱۱ ۱۱۱۰ ۰۱۱۱ BCD) نیاز است.
همچنین، اعمال عملیاتهای محاسباتی روی اعداد BCD ممکن است مشکلاتی ایجاد کند. این اعداد نمیتوانند مقادیر بزرگتر از ۹ را اختیار کنند، از این رو ممکن است حاصل جمع دو رقم اعشاری در این سیستم یک بیت کری (carry) ایجاد کند که باید به گروه چهار بیتی بعدی اضافه شود.
اگر حاصل جمع بیت (carry) با چهار بیت باینری کوچکتر مساوی ۹ (۱۰۰۱) باشد، رقم BCD متناظر نیز صحیح خواهد بود. اما اگر این حاصل جمع بزرگتر از عدد ۹ باشد، یک رقم BCD غیرمجاز تولید خواهد شد. بنابراین بهتر است که ابتدا اعداد BCD را به باینری تبدیل کرده، عملیات جمع را بر روی اعداد باینری انجام داده و در آخر نتیجهی به دست آمده مجددا در قالب BCD بیان شود.
با این وجود، استفاه از سیستم کد گذاری BCD در سیستمهای میکروالکترونیکی و سیستمهای کامپیوتری بسیار رایج است، به طور ویژه جهت نمایش یک یا چند رقم دسیمال بر روی LED یا LCD های هفت قسمتی که با نام (۷-Segment) نیز شناخته میشوند. مدارهای مجتمع (integrated circuits) بسیار متنوعی نیز جهت دریافت ورودی BCD یا تولید خروجی BCD ارائه شدهاند.
آی سی 74LS90 یکی از رایج ترین و پرکاربردترین شمارنده و یا تقسیم کنندهی آسنکرون (asynchronous) با خروجی BCD است. این آیسی درای دو شمارنده مجزا تقسیم بر دو و تقسیم بر پنج است که از ترکیب هر دو میتوان یک شمارنده تقسیم بر ده تولید کرد. همچنین آی سی 74LS390 که نسخه دوگانه آی سی 74LS90 اصلی است و میتواند جهت تولید خروجیهای BCD با توجه به نیاز در مدارهای مختلف مورد استفاده قرار گیرد.
رایجترین آیسیهای رمزگذاری BCD (BCD encoded IC’s) عبارتند از 74LS47 و 74LS48 که کد BCD رمز گذاری شده را به کد ۷-segment تبدیل خواهند کرد. آی سی 74LS48 یک کد BCD چهار بیتی را به کد ۷-segment که جهت راه اندازی یک نمایشگر LED سون سگمنت لازم است، تبدیل خواهد کرد.
در حالی که عملکرد هر دو آیسی یکسان است، خروجی آیسی 74LS47 به صورت (active-low) خواهد بود و معمولا جهت راهاندازی نمایشگرهای (common-anode) استفاده خواهد شد، در حالی که خروجی آیسی 74LS48 به صورت (active-high) است و در راه اندازی نمایشگرهای (common-cathode) استفاده میشود.

کد BCD نمایش یک عدد دسیمال توسط گروههای چهار بیتی باینری است، به بیان دیگر هر رقم دسیمال یا صحیح با معادل باینری خود جایگزین خواهد شد. کد BCD از چهار بیت جهت نمایش ۱۰ رقم دسیمال ۰ تا ۹ استفاده خواهد کرد.
بنابراین به عنوان مثال، جهت نمایش اعداد دسیمال در محدوده ۰ تا ۹ (یک رقم) ۴ بیت معادل یک Nibble نیاز است، به طور مشابه برای نشان دادن اعداد دسیمال در بازه ۰ تا ۹۹ (دو رقم) به ۸ بیت معادل یک بایت و اعداد دسیمال در بازه ۰ تا ۹۹۹ (سه رقمی) به ۱۲ بیت نیاز است. تنها استفاده از یک بایت (۸ بیت) امکان ذخیره سازی و یا نمایش ارقام BCD در بازه ۰۰ تا ۹۹ را فراهم خواهد کرد. این عدد دو رقمی با نام packed BCD نیز شناخته میشود.
کد BCD استاندارد معمولا با نام کد وزن دار BCD ۸۴۲۱ شناخته میشود، و اعداد ۸، ۴، ۲ و ۱ نشان دهنده وزن بیتهای مختلف با شروع از پر ارزش ترین (MSB) تا کم ارزش ترین بیت (LSB) است. به عبارت دیگر وزن هر یک از بیتهای کد BCD با توجه به موقعیت آن برابر با ۸=۳^۲، ۴=۲^۲ ، ۲=۱^۲ و ۱=۰^۲ است.
مهمترین مزیت کدهای BCD در مقایسه با سیستم اعداد باینری خالص، سریعتر بودن و کارآمدی بالای آنها در تبدیل اعداد دسیمال به باینری است. لازم به ذکر است که عدم به کارگیری شش ترکیب باینری چهار بیتی ۱۰ تا ۱۶ از گسترش کاربرد این کد جلوگیری خواهد کرد، اما همچنان در نمایشگرهای دسیمال کاربردهای بسیار مهمی دارد.
برای جستجو، کلمه کلیدی مورد نظر خود را بنویسید.
هنوز حساب کاربری ندارید؟
ایجاد حساب کاربریپشتیبانی آرشیدپارس
با ما در اتباط باشید!