کد BCD – به زبان ساده (+ دانلود فیلم آموزش گام به گام)


پیش از شروع لازم به ذکر است که قسمتهای اول، دوم، سوم و چهارم این مطلب را میتوانید از طریق کلیک کردن روی لینک مرتبط به هر بخش مطالعه کنید؛ «دهدهی کد شده به باینری» یا کد Binary Coded Decimal) BCD) روشی برای تبدیل اعداد دهدهی به معادل باینری آنهاست. همانگونه که در آموزش نخست اعداد باینری دیدیم، در مدارهای الکتریکی و دیجیتالی از کدهای باینری مختلفی استفاده میشود که هرکدام کاربرد خاص خود را دارند.
از آنجایی که در محاسبات روزمره از اعداد مبنای 10 یا دهدهی استفاده میشود اما کامپیوترها و دستگاههای دیجیتالی تنها اعداد باینری را درک میکنند، به روشی نیاز داریم که اعداد دهدهی را به باینری یا مبنای 2 تبدیل کنیم. استفاده از کد BCD یکی از بهترین روشها برای این کار است.
همانطور که میدانیم یک کد باینری n بیتی، مجموعهای از n بیت است که با آن میتوان تا 2n ترکیب متمایز ایجاد کرد. مزیت استفاده از سیستم BCD در این است که همانند سیستم هگزادسیمال، هر رقم دهدهی نمایندهی 4 بیت است؛ لذا برای نمایش هر رقم دهدهی (0 تا 9) از یک کد باینری چهار بیتی استفاده میشود.
البته کدهای BCD دقیقاً مانند اعداد هگزادسیمال نیستند و تفاوتهایی نیز وجود دارد. به عنوان مثال، حداکثر مقداری که یک عدد هگزادسیمال چهار بیتی میتواند اختیار کند F16 یا 11112 است که معادل 15 دهدهی است. اما یک کد BCD حداکثر میتواند تا عدد 9 یا 10012 باشد. این مسئله بدان معنی است که با وجود اینکه با چهار رقم باینری میتوان تا 16 عدد را نشان داد (24)، اما در سیستم شمارش BCD شش ترکیب آخر کاربردی ندارند؛ یعنی استفاده از اعداد 1010 (10 دهدهی)، 1011 (11 دهدهی)، 1100 (12 دهدهی)، 1101 (13 دهدهی)، 1110 (14 دهدهی) و 1111 (15 دهدهی) ممنوع است.
بزرگترین مزیت استفاده از کد BCD، راحتتر کردن تبدیل اعداد باینری و دهدهی به یکدیگر است. اگرچه کد BCD بدیهایی نیز دارد که مهمترین آن، عدم استفاده از اعداد 1010 (10 دهدهی) تا 1111 (15 دهدهی) است. با این وجود کد BCD کاربردهای بسیار مهمی مخصوصاً در نمایشدهندههای دیجیتال دارد.
در سیستم شمارهگذاری BCD، هر رقم از اعداد دهدهی به چهار بیت تقسیم میشود. برای ساخت یک کد BCD، تنها کافی است معادل باینری هر رقم دهدهی را در قالب چهار بیتی بنویسیم. لذا یک گروه چهار بیتی 10 حالت مختلف خواهد داشت که از 0000 برای صفر تا 1001 برای نه را شامل میشود.
به عنوان مثال، عدد دهدهی 35710 در کد BCD به شکل زیر نمایش داده میشود:
35710 = 0011 0101 0111 (BCD)
همانگونه که میبینیم، در سیستم BCD از «کدگذاری وزنی» استفاده میشود، زیرا جایگاه هر گروه چهار بیتی، وزنی دارد که در مقدار نهایی تأثیرگذار است. به عبارت دیگر، BCD یک کد وزندار است و وزنهای استفاده شده در کد BCD عبارتند از 8، 4، 2 و 1. لذا از آنجایی که کد BCD نشاندهندهی معادل باینری رقم دهدهی مربوطه است، عموماً به آن «کد 8421» نیز گفته میشود.
نمایش کد BCD یک عدد دهدهی
20 | 21 | 22 | 23 | توان باینری |
1 | 2 | 4 | 8 | وزن باینری |
در اعداد دهدهی با حرکت به سمت چپ، وزن هر رقم دهدهی با ضریب ده افزایش مییابد. اما همانگونه که نشان داده شده، در سیستم شمارهگذاری BCD، وزن باینری هر رقم با ضریبی از دو افزایش پیدا میکند. لذا اولین رقم وزنی معادل 1 (20)، دومین رقم وزنی معادل 2 (21)، سومین رقم وزنی معادل 4 (22) و چهارمین رقم وزنی معادل 8 (23) دارد.
جدول زیر رابطهی بین اعداد دهدهی و ارقام BCD وزندار را نشان میدهد.
جدول صحت BCD
عدد دهدهی | کد BCD 8421 |
0 | 0000 0000 |
1 | 0000 0001 |
2 | 0000 0010 |
3 | 0000 0011 |
4 | 0000 0100 |
5 | 0000 0101 |
6 | 0000 0110 |
7 | 0000 0111 |
8 | 0000 1000 |
9 | 0000 1001 |
10 (1+0) | 0001 0000 |
11 (1+1) | 0001 0001 |
12 (1+2) | 0001 0010 |
… | … |
20 (2+0) | 0010 0000 |
21 (2+1) | 0010 0001 |
22 (2+2) | 0010 0010 |
..... |
همانگونه که میبینیم، کد 8421 BCD همان وزنهای ارقام باینری است که در آن هر رقم دهدهی با معادل باینری چهار بیتی آن نمایش داده میشود.
تبدیل دهدهی به BCD
با توجه به جدول بالا قوانین تبدیل اعداد دهدهی به BCD، شباهت بسیار زیادی به قوانین تبدیل اعداد هگزادسیمال به باینری دارد. ابتدا، ارقام وزندار عدد دهدهی را جدا کرده و سپس معادل باینری هر رقم را در قالب چهار بیت مینویسیم. با کنار هم قرار دادن بیتهای مربوط به هر رقم، کد 8421 BCD عدد به دست میآید.
مثال شماره 1 کد BCD
با استفاده از جدول بالا، اعداد دهدهی زیر را به معادل 8421 BCD آنها تبدیل کنید.
8510 = 1000 0101 (BCD)
57210 = 0101 0111 0010 (BCD)
857910 = 1000 0101 0111 1001 (BCD)
توجه کنید که عدد باینری تولید شده بعد از تبدیل هر رقم دهدهی، باید چهار بیت باشد. اگر معادل باینری رقمی کمتر از چهار بیت بود، در سمت چپ آن به تعداد مورد نیاز صفر قرار میدهیم تا به چهار بیت برسد.
تبدیل BCD به دهدهی
تبدیل BCD به دهدهی دقیقاً عکس عملیات قبلی است. تنها لازم است عدد باینری را به گروههای چهار بیتی تقسیم کرده و با شروع از کم ارزشترین رقم، معادل دهدهی هر یک از گروههای چهار بیتی را بنویسیم. در صورت نیاز برای تشکیل یک گروه چهار بیتی کامل، در سمت چپ عدد صفرهای اضافی قرار میدهیم. به عنوان مثال، عدد 1101012 به 01012 0011 یا 3510 دهدهی تبدیل میشود.
مثال شماره 2 کد BCD
اعداد باینری 10012، 10102، 10001112 و 10100111000.1012 را به معادل دهدهی آنها تبدیل کنید.
10012 = 1001BCD = 910
خطا میدهد، زیرا معادل 1010 است که یک عدد BCD غیرمجاز است = 10102
10001112 = 0100 0111BCD = 4710
10100111000.1012 = 0101 0011 0001.1010BCD = 538.62510
تبدیل عدد BCD به دهدهی یا دهدهی به BCD معمولاً راحت است و پیچیدگی خاصی ندارد؛ البته باید همواره به یاد داشت هرچند که اعداد BCD با بیتهای 0 و 1 نشان داده میشوند، اما در واقع اعداد دهدهی هستند و نه باینری. درک نمایش BCD یک عدد دهدهی بسیار اهمیت دارد، زیرا لازم است که سیستمهای مبتنی بر میکروپروسسور رایج، از اعداد دهدهی استفاده کنند.
اگرچه کدگذاری (code) و کدگشایی (decode) اعداد BCD بسیار راحت است، اما روش مقرون به صرفهای برای ذخیرهی اعداد به شمار نمیروند. در کدگذاری یا انکود کردن (encoding) اعداد دهدهی به 8421 BCD، همواره تعداد بیتهای لازم برای نمایش یک عدد دهدهی فرضی، بیشتر از تعداد بیتهای لازم برای انکود کردن باینری همان عدد است.
به عنوان مثال، معادل باینری یک عدد دهدهی سه رقمی (از 0 تا 999) حداکثر 10 بیت خواهد بود (11111001112)، اما برای نمایش BCD همان عدد به حداقل 12 بیت نیاز داریم (001111100111BCD).
نکتهی دیگر اینکه انجام عملیات ریاضی روی اعداد BCD ممکن است مشکلاتی را ایجاد کند، زیرا ارقام نمیتوانند از 9 بزرگتر باشند. لذا ممکن است با جمع دو عدد دهدهی در سیستم BCD، بیت نقلی carry) 1) تولید شود که در اینگونه مواقع باید آن را به گروه چهار بیتی بعدی اضافه کنیم.
اگر حاصل جمع بیت نقلی با چهار بیت باینری کوچکتر مساوی 9 (1001) باشد، رقم BCD متناظر نیز بدون اشکال است. اما اگر این حاصل جمع از 9 بزرگتر باشد، یک رقم BCD غیرمجاز تولید میکند. در نتیجه ایدهی بهتری است که ابتدا اعداد BCD را به باینری تبدیل کرده، عملیات جمع را بر روی اعداد باینری انجام داده و در آخر نتیجهی به دست آمده را دوباره به BCD تبدیل کنیم.
با وجود این محدودیتها، در میکروالکترونیک و سیستمهای کامپیوتری استفاده از اعداد BCD بسیار رایج است، مخصوصاً برای نمایش یک یا چند رقم بر روی LED یا LCD های هفت قسمتی که به آنها «سونسگمنت» (7-segment) نیز گفته میشود. IC های بسیار متنوعی نیز برای این منظور ساخته شدهاند که ورودی BCD گرفته یا خروجی BCD تولید میکنند.
یکی از پرکاربردترین این آیسیها 74LS90 نام دارد که یک شمارنده/تقسیمکنندهی آسنکرون با خروجی BCD است. این آیسی از دو شمارندهی مجزا از هم «تقسیم بر 2» و «تقسیم بر 5» تشکیل شده که با ترکیب آنها میتوان یک شمارندهی «تقسیم بر 10» ساخت. یک آیسی دیگر 74LS390 است که در واقع از دو آیسی 74LS90 ساخته شده و میتوان بهگونهای آن را تنظیم کرد که خروجی BCD تولید کند.
پرکاربردترین IC های دیکود BCD عبارتند از 74LS47 و 74LS48 که دیکودر BCD به کد سونسگمنت (7segment) و درایور یا راهانداز آن هستند. 74LS48 یک کد BCD چهار بیتی را گرفته و آن را به کد سونسگمنت لازم برای راهاندازی یک نمایشگر LED سونسگمنت تبدیل میکند. اگرچه این دو آیسی تقریباً شبیه به یکدیگر عمل میکنند، اما تفاوتهایی نیز دارند. خروجیهای 74LS47 به صورت active-low بوده (یعنی اگر خروجی فعال باشد، صفر خواهد بود) و برای راهاندازی نمایشگرهای آند-مشترک استفاده میشود؛ اما خروجیهای 74LS48 به صورت active-high بوده (یعنی اگر خروجی فعال باشد، یک خواهد بود) و در راهاندازی نمایشگرهای کاتد-مشترک کاربرد دارد.
آیسی دیکودر BCD
خلاصه
در این آموزش دیدیم که BCD یا Binary Coded Decimal در حقیقت نمایش یک رقم دهدهی با 4 بیت باینری است؛ به این صورت که هر رقم دهدهی صحیح یا اعشاری، با معادل باینریش جایگزین میشود. کد BCD برای نمایش 10 رقم دهدهی 0 تا 9، از چهار بیت استفاده میکند.
لذا مثلاً برای نمایش اعداد دهدهی بازهی 0 تا 9 (یک رقم) به 4 بیت (یک نیبل)، اعداد دهدهی بازهی 0 تا 99 (دو رقم) به 8 بیت (یک بایت) و اعداد دهدهی بازهی 0 تا 999 (سه رقم) به 12 بیت نیاز داریم و الی آخر. همانگونه که میبینید تنها با استفاده از یک بایت (8 بیت) میتوان اعداد BCD در بازهی 00 تا 99 را ذخیرهسازی کرده و نمایش داد. به این عدد دو رقمی «BCD بستهبندی شده» (packed BCD) نیز گفته میشود.
کد BCD استاندارد معمولاً همان کد وزندار BCD 8421 است که 8، 4، 2 و 1 نشاندهندهی ترتیب و وزن بیتهای عدد با شروع از پر ارزشترین بیت (MSB) تا کم ارزشترین بیت (LSB) است. وزن هر یک از بیتهای کد BCD با توجه به موقعیت آنها برابرست با 23 = 8، 22 = 4، 21 = 2 و 20 = 1.
بزرگترین مزیت سیستم BCD در این است که در مقایسه با سیستمهای باینری محض، سیستم سریعتر و مؤثرتری برای تبدیل اعداد دهدهی به باینری به حساب میآید. اگرچه عدم به کارگیری شش وضعیت چهار بیتی 10 تا 16، از محبوبیتهای کد BCD میکاهد، اما کماکان کاربردهای بسیار مهمی در نمایشگرهای دهدهی دارد.
در پایان لازم است یادآور شویم قسمت ششم این مطلب را میتوانید از طریق این لینک مطالعه کنید، ضمناً اگر مطالب بالا برای شما مفید بوده است، شاید از این آموزشها نیز استفاده ببرید.
- مجموعه آموزش های مهندسی برق
- آموزش مبانی الکترونیک – مفاهیم تئوریک به همراه شبیه سازی عملی و کاربردی
- آموزش مبانی برنامه نویسی (الگوریتم و فلوچارت) با رویکرد حل مسأله
^^
معنی کلمه میشه باینری که شده به دهدهی نه دهدهی کد شده به باینری
سلام.
آنچه در متن نوشته شده صحیح است.
سپاس از همراهیتان.
عالی بود نکته bcd فقط در این است که درسته اعداد آن به صورت صفر و یک است ولی باینری نیست همان دسیمال است فقط به صورت چهار بیت چهار بیت معادل دودویی هر عدد دسیمال است
واقعا به صورت جامع توضیحات بود امیدوارم بهترین باشید
سلام. خسته نباشید. ببخشید چطور میشه مبدل باینری به Bcd تو پروتئوس شبیه سازی کرد؟ می شه راهنمایی کنید.
ممنون عالی بود.