یک شمارندهی BCD، نوع خاصی از شمارنده دیجیتال میباشد که میتواند با اعمال سیگنال کلاک تا ۱۰ بشمارد.
در گذشته دیدیم که فلیپفلاپهای نوع T میتوانند به عنوان شمارندههایی که سیگنال کلاک را تقسیم بر ۲ میکنند مورد استفاده قرار بگیرند. اگر ما چندین فلیپفلاپ نوع T را به یکدیگر متصل کنیم، یک شمارندهی دیجیتال به وجود میآید که میتواند تعداد دفعاتی که مدار تغییر وضعیت داده را در خود ذخیره کند یا نمایش دهد.
فلیپفلاپهای نوع T همانند یک شمارندهی باینری دو قسمتی عمل میکند و در شمارندههای آسنکرون خروجی یک مرحله، پالس کلاک مرحله بعد را تأمین میکند.
در ضمن یک شمارنده که از فلیپفلاپ درست شده ۲ سطح خروجی خواهد داشت و با اضافه کردن فلیپفلاپهای دیگر میتوان تعداد اعدادی که فلیپفلاپ قادر به شمردن آنهاست را تغییر داد. متأسفانه شمارندههای ۴ بیتی تنها از ۰۰۰۰ تا ۱۱۱۱ ( یعنی ۰ تا ۱۵) میشمارند.
برای ساخت یک شمارندهی دیجیتال که از ۱ تا ۱۰ می شمارد نیاز داریم تا شمارنده از مقدار باینری ۱۰۱۰ تجاوز نکند. IC های شمارندههای دهدهی در بازار در دسترس هستند. یکی از این IC ها شمارندهی غیرسنکرون دهدهی 74LS90 می باشد.
شمارندههای دیجیتال که از پایین به بالا ( از صفر تا مقداری تعیین شده) شمارش میکنند، با رسیدن به یک مقدار خاص ریست میشوند تا شمارنده دوباره به صفر بازگردد و شمارش از ابتدا آغاز شود.
یک شمارندهی دهدهی که از صفر تا ۹ می شمارد باید حداقل دارای ۴ فلیپفلاپ باشد تا بتواند کد باینری مقادیر دسیمال را تولید کند.
دیاگرام وضعیت شمارندهی BCD
یک شمارندهی دهدهی دارای ۴ فلیپفلاپ و ۱۶ حالت است. البته از این ۱۶ حالت تنها ۱۰ تای آن به کار ما می آید. اگر ما تعدادی از شمارندهها را به یکدیگر متصل کنیم، میتوان تا ۱۰۰ یا تا ۱۰۰۰ یا هر عدد دلخواه دیگری شمارش داشته باشیم.
حداکثر عددی که یک شمارنده میتواند تا آن بشمارد، Modulus(MOD) شمارنده نامیده میشود. یک شمارنده که پس از n شمارش دوباره ریست میشود، شمارنده Modulo-n نامیده میشود. به عنوان مثال، Modulo-8، Modulo-16 و …. برای یک شمارنده n بیتی حداکثر میزان شمارش از ۰ تا 2n-1 می باشد.
همانطور که در بخش شمارندههای آسنکرون دیدیم، شمارندهای که پس از رسیدن به مقدار (۱۰۰۱) ۹ دسیمال دوباره ریست میشوند و به صفر بازمیگردند، شمارندهی دسیمالی که به صورت باینری کدگذاری شدهاند نامیده میشوند.
(Binary-Coded-Decimal Counter) (BCD) یک شمارنده MOD-10 میتواند با استفاده از ۴ فلیپفلاپ تولید شود.
یک شمارندهی BCD تک مرحلهای مانند 74LS90 میتواند از عدد دسیمال صفر تا دسیمال ۹ بشمارد و بنابراین حداکثر ۹ پالس را شمارش کند همچنین در نظر داشته باشید که یک شمارندهی دیجیتال میتواند از بالا به پایین، از پایین به بالا یا در هر دو جهت شمارش کند البته ترتیب شمارش بستگی به سیگنال کنترل ورودی دارد.
برای تبدیل کدهای باینری به دسیمال، ضریبهای عدد ۲ را به ترتیب از بیارزش ترین تا باارزشترین، بالای ارقام متناظر آن مینویسیم. به عنوان مثال، برای عدد ۴ رقمی باینری 8421 (۸=۲۳، ۴=۲۲، ۲=۲۱، ۱=۲۰) بالای کد باینری درج میکنیم و با ضرب اعداد متناظر در یکدیگر، حاصل دسیمال به دست ميآید. یکی از بزرگترین مزایای کد BCD این است که اجازه میدهد به راحتی اعداد باینری و دسیمال را به یکدیگر تبدیل کنیم.
شمارندهی BCD 74LS90
مدار مجتمع 74LS90 یک شمارنده دهدهی (MOD-10) میباشد که خروجیاش یک کد BCD میباشد. قطعه 74LS90 شامل ۴ فلیپفلاپ مسترـاسلیو JK میباشد که از داخل به یکدیگر اتصال پیدا کردهاند تا یک شمارندهی MOD-2 و یک شمارنده MOD-5 را به وجود بیاورند. قطعهی 74LS90 یک فلیپفلاپ مستقل JK دارد که به وسیلهی پایه ورودی CLKA راهاندازی میشود و ۳ فلیپفلاپ JK دیگر یک شمارندهی آسنکرون را تشکیل میدهند که توسط ورودی CLKB راهاندازی می شود.
شمارندهی 74LS90-BCD
۴ خروجی شمارنده با حرف Q نشان داده شدهاند و اندیس زیرین آنها ارزش بیتی که از آنها خارج میشود را نشان میدهد. به عنوان مثال، QA، QB، QC و QD هر شمارش قطعه 74LS90 در قسمت پایین روندهی سیگنال کلاک رخ میدهد. یعنی اگر سیگنالی که از پایه CLK دریافت میشود از سطح بالا ( منطق ۱) به سطح پایین ( منطق ۰) برود، یک شماره تغییر میکند.
پینهای ورودی R1 و R2 پینهای ریست شمارنده هستند در حالیکه ورودی های S1 و S2 پینهای SET میباشند. هنگامی که پین R1 و R2 به منطق یک متصل شوند، شمارنده به عدد صفر بازمیگردد و هنگامی که ورودیهای S1 و S2 به منطق یک متصل شوند، شمارنده فارغ از اینکه مشغول شمارش چه عددی بوده روی مقدار ماکزیمم (۹) می رود.
همانطور که در گذشته گفته شد، شمارندهی 74LS90 شامل یک شمارندهی دو قسمتی و یک شمارندهی ۵ قسمتی است و میتوان از یکی از شمارندهها یا از هر دوی آنها برای ساخت یک شمارندهی BCD دهدهی استفاده کرد.
اگر شمارندهی ۵ قسمتی غیرفعال شود و یک سیگنال کلاک به پین ورودی ۱۴(CLKA) ارسال شود و خروجی از پین ۱۲ (QA) گرفته شود، میتوان یک شمارندهی باینری دو قسمتی را برای استفاده در مدارات تقسیم کننده فرکانس مانند شکل زیر به وجود آورد.
شمارنده دو قسمتی 74LS90
برای ساختن یک شمارنده استاندارد ۵ قسمتی میتوانیم فلیپفلاپ اول را غیرفعال کنیم و سیگنال کلاک ورودی را مستقیم به پین ۱ (CLKB) متصل کنیم و سیگنال خروجی را از پین ۱۱ (QD) به صورتی که در شکل زیر نشان داده شده بگیریم.
شمارندهی ۵ قسمتی 74LS90
فراموش نکنید که با این پیکربندی شکل موج خروجی قرینه است و ۴ ورودی کلاک یک منطق صفر یا سطح پایین را به وجود میآورند و سیگنال کلاک پنجم باعث به وجود آمدن یک خروجی سطح بالا می شود.
برای ساخت یک شمارندهی دهدهی BCD از هر دو شمارنده داخل تراشه استفاده میشود (۱۰=۵*۲) از آن جایی که اولین خروجی QA از فلیپفلاپ A از داخل به دیگر فلیپفلاپها متصل نیست، شمارنده میتواند به یک شمارنده BCD چهاربیتی نیز تبدیل شود. برای این منظور کافی است خروجی QA را به ورودی CLKB متصل کنیم .
74LS90 شمارندهی ۱۰ قسمتی
همانطور که میبینید، شمارندههای BCD شمارندههای باینری هستند که میتوانند از ۰۰۰۰ تا ۱۰۰۱ بشمارند و سپس ریست شوند چرا که این شمارندهها توانایی این را دارند که حافظه تمام فلیپفلاپها را پس از شمارش عدد ۹ پاک کنند. اگر ما یک دکمهی فشاری را (SW1) به ورودی CLKA متصل کنیم، هر بار که دکمهی فشاری فشرده میشود شمارنده یک عدد را خواهد شمرد. اگر ما دیودهای انتشار دهندهی نور را به ترمینالهای خروجی QA، QB، QC و QD مطابق شکل متصل کنیم، میتوانیم شاهد یک شمارش دسیمال با کدهای باینری باشیم.
شمارندهی دهدهی BCD 74LS90
با چند بار فشردن دکمه فشاری، هنگامی که به عدد ۱۰۰۱ (۹) رسیدیم، دهمین فشار بر روی دکمه، خروجیها را صفر خواهد کرد تا شمارش از ابتدا آغاز شود با استفاده از این شمارندههای دهدهی میتوان یک نمایشگر دیجیتال را راهاندازی کرد.
اگر این نمایشگر یک سون سگمنت باشد، خروجی BCD نیاز دارد تا به صورت درستی دکد شود تا اعداد به درستی بر روی صفحهی نمایش نشان داده شوند یک مدار دیجیتال که می تواند خروجی 74LS90 BCD را دیکد (رمزگشایی) کند و عدد متناظر را روی سون سگمنت نشان دهد دیکدر نام دارد.
راهاندازی یک نمایشگر
خوشبختانه دکدر BCD برای نمایشگرهای سون سگمنت به صورت IC طراحی شده IC74LS47 چهار ورودی برای ارقام BCD دارد و ۷ خروجی به پایههای سون سگمنت اتصال می یابد.
فراموش نکنید که یک نمایشگر سون سگمنت استاندارد، دارای ۸ پایه است یک پایه برای هر سگمنت LED و یک پایه که به عنوان ترمینال مشترک است و تمام سگمنتهای سون سگمنت را به یکدیگر متصل میکند. برخی از سون سگمنتها دارای یک بخش DP (Decimal Point) یا نقطهی دسیمال نیز میباشند.
اتصال 74LS47 BCD به درایور سون سگمنت
دیکدر 74LS47 کد BCD را دریافت میکند و سیگنالهای لازم برای فعال سازی سگمنت های مورد نیاز را ارسال میکند تا یک عدد روی نمایشگر سون سگمنت نشان داده شود. از آن جایی که دکدر 74LS47 برای سون سگمنتهای آند مشترک طراحی شده، یک خروجی سطح پایین سگمنت LED را روشن میکند و خروجی سطح بالا سگمنت را خاموش خواهد کرد. برای تست لامپ، BI/RBO یا RBI خروجی سطح بالا مدار را راهاندازی میکند.
به خاطر داشته باشید از آن جایی که 74LS47 خروجیهای فعال سطح پایین دارد و برای دکد کردن صفحه نمایش سون سگمنت آند مشترک طراحی شده، نمیتوان از آن برای سون سگمنتهای کاتد مشترک استفاده کرد. بنابراین، از دیکدر 74LS48 استفاده میشود تا با ارسال خروجیهای سطح بالا، سگمنتهای مناسب را در نوع کاتد مشترک روشن کند. بنابراین بسته به نوع سگمنت به IC دیکدر 74LS48 یا 74LS47 نیاز خواهد بود.
ورودیهای BCD تراشه 74LS47 میتوانند به خروجیهای متناظر 74LS90 که یک شمارنده BCD است، متصل شوند تا هر بار که کلید فشاری SW1 فشرده میشود ۷ شماره به ترتیب روی سون سگمنت نشان داده شود با تغییر دادن جای کلید فشاری و مقاومت 1KΩ تغییر شماره وابسته به گرفتن یا رها کردن کلید فشاری خواهد شد.
مدار ۴ بیتی شمارنده BCD
مقاومتهای محدودکنندهی جریان
مقاومت تکی:
یک مقاومت محدودکننده جریان(R) به صورت تکی مورد استفاده قرار میگیرد. اگر قصد ندارید میزان روشنایی سون سگمنتها را تغییر دهید، این روش راحتترین گزینه برای کنترل سون سگمنت می باشد.
میزان نوری که توسط LED انتشار مییابد بستگی به میزان جریانی دارد که از سگمنتهای نمایشگر عبور میکند.
مقاومتهای چندتایی:
در اینجا هر سگمنت همانطور که در مدار شمارنده BCD بالا نشان داده شده، مقاومت محدود کننده جریان مختص به خودش را دارد.
به صورت کلی نمایشگرهای سون سگمنت نیاز به ۱۲ تا ۲۰ میلی آمپر جریان دارند تا سگمنتها روشن شود بنابراین مقدار مقاومت محدود کننده جریان (بهتر است برای تمام سگمنتها یکسان انتخاب شود.) باید طوری باشد که جریان عبوری در محدودهی ۱۲ تا ۲۰ میلی آمپر قرار بگیرد ( فراموش نکنید که جریانهای فوقالعاده بالا میتواند سون سگمنتها را بسوزاند)
در این پیکربندی میزان روشنایی هر سگمنت وابسته به شرایط دیگر سگمنتها نیست.
در شکل، یک شمارنده ۰ تا ۹ دیجیتال نشان داده شده که از شمارنده BCD 74LS90 و درایور سون سگمنت 74LS47 بهره میبرد. برای شمارش اعداد بالای ۱۰ و ساختن یک شمارندهی دو رقمی دهدهی نیاز است تا ۲ شمارنده دهدهی را به صورت آبشاری به یکدیگر متصل کنیم. یک شمارندهی دو رقمی BCD از ۰۰ تا ۹۹ ( معادل باینری ۰۰۰۰ ۰۰۰۰ تا ۱۰۰۱ ۱۰۰۱) میشمارد و سپس دوباره به ۰۰ باز میگردد. فراموش نکنید با وجود اینکه یک مدار شمارنده دو رقمی به وجود آمده، مقادیر هگزادسیمال از A تا F در این سیستم کدگزاری قابل قبول نیستند.
به همین ترتیب اگر بخواهیم از ۰ تا ۹۹۹ بشماریم ( ۰۰۰۰ ۰۰۰۰ ۰۰۰۰ تا ۱۰۰۱ ۱۰۰۱ ۱۰۰۱) باید ۳ شمارنده را به صورت آبشاری به یکدیگر متصل کنیم. در حقیقت، شمارندههای دهدهی چندگانه میتوانند با اتصال آبشاری شمارندههای متعدد BCD به یکدیگر ساخته شوند. برای درک بهتر به شکل زیر نگاه کنید.
شمارنده BCD دو رقمی از ۰۰ تا ۹۹
خلاصهی شمارنده BCD
در این مقاله دیدیم که یک شمارنده BCD المانی است که ۱۰ حالت دارد و با هر پالس کلاک تغییر حالت میدهد و پس از رسیدن به عدد ۹، دوباره به صفر بازمی گردد. در مثال بالا، پالس کلاک ورودی از طریق یک دکمهی فشاری اعمال میشود. اما میتوان از شمارندهها برای شمارش فرایندهایی که در دنیای واقعی رخ میدهد استفاده کرد. مانند شمارش اجسام در حال حرکت و ….
به هر حال ممکن است به مدار مناسب برای ساخت پالسهای الکتریکی برای شمارش هر رویداد نیاز باشد. چرا که این رویدادها ممکن است در بازههای زمانی نامنظم و تصادفی رخ بدهد.
در تعداد زیادی از مدارات الکترونیکی دیجیتال، شمارندههای دیجیتال با استفاده از فلیپفلاپهای نوع T یا فلیپفلاپهایی ساخته میشوند که میتوانند عملکرد سوییچینگ را برای مدار فراهم کنند یا میتوان از 74LS90 استفاده نمود. شمارندههای باینری از n فلیپفلاپ ساخته شده که میتوانند از ۰ تا 2n-1 بشمارند. شمارندههای BCD به ترتیب در ده حالت گذار و از کدهای BCD برای شمارش استفاده میکنند. آنها پس از رسیدن به ۱۰۰۱ریست میشوند ( به ۰۰۰۰ بازمیگردند) برای شمارنده ای که قادر باشد از ۰ تا ۱۰ بشمارد، حداقل به ۴ فلیپفلاپ نیاز خواهد بود. از آن جایی که یک رقم دسیمال به وسیله یک کد باینری نمایش داده میشود، ۴ بیت میتواند تشکیلدهندهی یک شمارنده mod-10 باشد.
همچنین گفته شد که یک خروجی کد شده BCDمیتواند به وسیله چهار LED یا یک صفحه نمایشگر دیجیتال نشان داده شود. اما برای نشان دادن هر عدد از ۰ تا ۹ به یک مدار دکدر نیاز است که یک عدد کد شدهی باینری را به سطح منطقی مناسب تبدیل کند و هر سگمنت، سون سگمنت را خاموش یا روشن کند.
مدارات دکدری که برای صفحات نمایش به کار میرود، میتواند از المانهای منطق ترکیبی ساخته شود و مدارات مجتمع زیادی در بازار وجود دارند که میتوانند به عنوان دکدر استفاده شوند مانند 74LS47BCD یا دکدر/درایور های سون سگمنت.
اکثر نمایشگرهای سون سگمنت برای شمارشهای چند رقمی به کار برده میشوند. برای نیل به این منظور، باید چند شمارندهی BCD را به یکدیگر به صورت آبشاری متصل کرد. به این وسیله، شمارنده های ۴ رقمی که میتوانند تا ۹۹۹۹ بشمارند به وجود خواهند آمد.
شمارنده 74LS90 BCD مدار شمارندهی فوقالعاده منعطفی میباشد و میتوان با اعمال سیگنالهای مناسب به پایه ورودی ریست و ست از آن به عنوان جداکننده فرکانس استفاده نمود.