RSS
» کار عملی 16 - درایور ترانزیستوری موتور ( پل اچ) ( یکشنبه بیست و هشتم مهر ۱۳۹۲ )
» ویژه تابستان 95 ( جمعه هفتم خرداد ۱۳۹۵ )
» کلاس های تابستان 1395 در حال شروع شدن ( دوشنبه سوم خرداد ۱۳۹۵ )
» خبرهای خوشی در راه است... ( سه شنبه بیست و پنجم فروردین ۱۳۹۴ )
» کتاب آموزشی CodeVision AVR ( یکشنبه چهارم آبان ۱۳۹۳ )
» نرم افزار CodeVision AVR ( یکشنبه چهارم آبان ۱۳۹۳ )
» نرم افزار طراحی رگولاتور ولتاژ و جریان ( یکشنبه چهارم آبان ۱۳۹۳ )
» آیا عطسه‌ نشانه صبر در انجام کارهاست؟ ( سه شنبه بیست و یکم مرداد ۱۳۹۳ )
» یادش بخیر - شبهای قدر دوران کودکی ( جمعه بیست و هفتم تیر ۱۳۹۳ )
» اطلاعیه کار آموزی ویژه تمامی رشته ها و گرایش های مهندسی ( سه شنبه بیست و چهارم تیر ۱۳۹۳ )
» پانته آ ( یکشنبه بیست و دوم تیر ۱۳۹۳ )
» العجل مولا ( جمعه بیستم تیر ۱۳۹۳ )

ماهیت شمارنده ها

اینکه ماهیت شمارنده چیه؛ باید خدمتتون عرض کنم که این طور تصور کنید که مجموعه ای از فلیپ فلاپ های مثلا T هستن. 4 تا فلیپ فلاپ که به صورت cascade (سری) کنار هم قرار میگیرن و خروجی یکی از اونها میشه کلاک ورودی برای طبقه ی پایین تر خودش و این سیکل تا فلیپ فلاپ 4ام ادامه پیدا میکنه. برای پایین شمار هم میتونید از همین ایده استفاده کنید با این تفاوت که اونجا یک سری گیت AND و OR هم اضافه میشن .. امــا اون چیزی که مهمه اینه که اساس شمارنده ها رو فلیپ فلاپ ها تشکیل دادن و این نکته میتونه خیلی جاها به تحلیل های منطقی مدارات ما کمک کنه.

 

IC 74LS193

همونطور که میدونید این شمارنده یه شمارنده ی باینریه یعنی چی؟ یعنی از صفر تا 15 میشماره و برعکسش .. چرا 15 ؟ چون شمارندمون 4 بیتیه(جسارت نشه این رو واسه اونایی که مدار منطقی رو هنو پاس نکردن و یا هنو نگرفتنش گفتم، که بدونن) از نوع همزمانه(فلیپ فلاپ ها به طور همزمان کلاک میشن).

74LS193 datasheet.pdf (100KB

 

یه شمارنده معمولا یه پایه هایی میخواد؟؟؟

* 4 تا پایه ی ورودی به عنوان داده های ورودی (پایه های 1،9،10،15 آیسی)

* پایه برای کلاک (پایه 4 و 5 آیسی، در ادامه توضیح میدم)

* یه پایه برای ریست (پایه 14 آیسی)

* چهارتا پایه برای خروجی (پایه های 2،3،6،7 آیسی)

اینا  پایه های اساسی برای موجه شدن یه شمارنده هستن. یک سری پایه های دیگه هم هستن که برای افزایش کارایی شمارنده ها معمولا استفاده میشن:

* دو تا پایه برای بیت Carry و Borrow (پایه های 12 و 13 آیسی که فعلا کاری باهاشون نداریم)

* پایه ی PL که برای لود کردن یا همون فراخوانی دیتا از ورودی هست (پایه 11 آیسی)

مجموعه ی این پایه هایی که گفتیم کمک میکنن به ما تا بتونیم با یه شمارنده (که در اینجا 74LS193 هست) کار کنیم.

74LS193 PinOut 

 

حالا ممکنه بپرسید 74LS193 که پایه ی کلاک نداره؟؟؟

بله.. درسته.. این آیسی پایه Clk نداره اما به جاش پایه های Up و Down داره که پالس ساعت رو به این پایه ها میدیم به این ترتیب که: اگه پالس ساعتمون رو به پایه 5 این آیسی که همون پایه Up هست، بدیم، شمارنده بالا رونده خواهد بود یعنی از صفر شروع به شمارش میکنه و اگه پالس ساعتمون رو به پایه 4 که پایه Dn بدیم شمارندمون پایین رونده میشه یعنی از 15 شروع میکنه میاد پایین.

 

راه اندازی 74LS193

خب حالا که پایه کلاک و پایه های دیگه ی این آیسی رو شناختین کافیه که یه پالس ساعت رو بدین به یکی از پایه های 4 یا 5 و به کمک یه سون سگمنت BCD (4 پایه) که پایه هاش رو به خروجی های آیسی وصل کردین(تصویر زیر)، نظاره گر شمارش 0- 15 یا 15- 0 باشید البته حتما حواستون هست که نمایشگرمون (7segment) اعداد بالای 9 (10،11،12،13،14،15) رو به شکل حروف (A,b,C,d,E,F) نشون میده. (این رو واسه اونایی که هنو مدار منطقی رو نگرفتن گفتم)

اما اگه این کار رو توی محیط های شبیه سازی با نرم افزارهایی مثل PSpice و Proteuse و ... شبیه سازی کنید میبیند که 7seg فقط صفر رو بهتون نشون میده چرا؟ چون باید پایه 14 آیسی (پایه MR) رو به گراند وصل کنید.(نکته انحرافیش بود :) )

 

ایجاد محدودیت در شمارش

تصور کنین (توی رویاتون) میخواین یه پروژه ساخت ساعت رو با این آیسی انجام بدین. واسه ساخت ساعت به 4 تا 74LS193 احتیاج دارین. دو تا واسه شمردن دقیقه، دو تا هم واسه شمردن ساعت، اگه بخواین ثانیه هم داشته باشه که باید 2 تا 74LS193 دیگه اضافه کنین. در این کار مسلما شمارندتون رو باید واسش محدودیت ایجاد کنید که  تا 2 و 4 و 6 و 9 بیشتر نشماره(چراش رو که میدونید دیگه؟!). خب حالا اگه بخوایم توی شمارش آیسی محدودیت ایجاد کنیم چیکار می تونیم بکنیم؟

تصویر زیر رو ببینید ...

 

 

لان این شمارنده تا چند میشمره؟ 0 - 1 و بعد هم ریست، یعنی به ازای دو پالس شمارش و برای پالس سوم؛ ریست میشه. خب علتش چیه؟ ببینید دوباره به شکل بالا نگاه کنید. چه چیزی باعث شده که شمارنده در پالس سوم ریست بشه؟ خروجی گیت AND، یعنی چی؟ یعنی اینکه این خروجی گیت AND هست که تعیین میکنه شمارنده ی ما تا چه مقداری بشمره. حالا ما چجوری میتونیم با گیت عدد مدل کنیم، باز به شکل نگاه کنید، ورودی های گیت چیا هستن؟ NOT شده ی Q0 و خروجی مستقیم Q1، الان خروجی گیت AND چه زمانی 1 میشه؟ وقتی Q0 برابر باشه با 0 و Q1 برابر باشه با 1. حالا این دو خروجی رو بذارید کنار هم یعنی Q0Q1 چه عدد باینری ای تولید میشه؟ 01 که معادل 2 دهدهیه. در واقع شما عدد 2 رو ساختید به این معنا که با رسیدن به 2 بلافاصله شمارنده ریست بشه. چرا میگیم بلافاصله، برای اینکه نمیخوایم این اتفاق با دریافت پالس بعدی (یعنی پالس چهارم) بیفته. این از بحث محدودیت درست کردن برای یک شمارنده .
یا بر فرض مثال محدودیتمون بخوایم تا 6 باشه یعنی 6 رو نشون بده بعدش صفر بشه: عدد بعد از 6، 7 هست که معادل باینریش میشه 0111، پس با یه گیت AND با سه ورودی (4073) می تونید این کار رو انجام بدین.

 

حالا 24 یا 60 به ترتیب تشکیل شدن از چیا؟ 2 و 4؛ 6 و 0، شما 4 تا شمارنده دارید (دو زوج..) و برای 3 تا از اونها باید محدودیت بذارید نحوه ی محدودیت گذاشتن هم به شکل بالا انجام بدید.

استفاده از ورودی ها

اگه تا حالا توجه کرده باشین ما تا اینجای کار هیچ گونه استفاده ای از ورودی نداشتیم یعنی نیاز نشد.

حالا یه سوال پیش میاد .. 74LS193 یک شمارنده ی باینری با قابلیت فراخوانی عدد پیشفرض در ورودی .. در شمارش از 0 تا 15 اش هم که جای تردید یا ابهامی نیست امــا قسمت فراخوانی داده از ورودیش یه نکته ی مفهومی داره که سوال به اون مربوط میشه .. فرض کنید ما عدد 1001 رو در ورودی بارگذاری کردیم (همونطور که می دونید 1 معادل VCC و 0 معادل GND)، پالس ساعتمون رو هم به پایه ی CLK متصل کردیم و UP رو برای اون انتخاب کردیم(تصویر زیر) حالا چه اتفاقی میوفته؟ شمارنده شروع به شمارش میکنه؟ از چه عددی؟ از 0؟ پس عددی که در ورودی بارگذاری کردیم چی میشه؟
خــب اینجا همون تیکه ایه که میگم یه نکته ی مفهومی داره .. اگه قرار باشه عدد بارگذاری شده در ورودی دلبخواه فراخوانی بشه؛ شمارنده در شمارش دچار خطا میشه. برای جلوگیری از این نکته یه پایه برای این کار در نظر گرفتن که بش میگن PL یعنی Parallel Load (بارگذاری موازی). وقتی این پایه فعال میشه؛ یک اتفاق جالب میوفته، خروجی آینه ای میشه از ورودی، یعنی چی یعنی عینا ورودی به خروجی منتقل میشه و از اون عدد به بعد هست که مبنای ادامه ی شمارش قرار میگیره. در واقع فعال شدن پایه ی PL اعلام اجازه ایه برای ایفای نقش عدد بارگذاری شده در روند شمارش.

خب حالا اگه این پایه دائما فعال باشه (چون واسه این آیسی این پایه Low Active، پس با صفر فعال میشه) چه اتفاقی میوفته؟ آیسی با دریافت کلاک هیچ شمارشی انجام نمیده و فقط نمونه ی ورودی رو در خروجی منعکس میکنه؛ برای همینه که وقتی میخوایم عددی رو در خروجی Load کنیم و ازش در روند طراحیمون استفاده کنیم؛  Activation  پایه ی PL رو به ازای یک پالس کلاک انجام میدیم و دوباره این پایه رو به سطح بالای خودش (VCC) بر میگردونیم تا در حالت غیرفعال قرار بگیره. با این کار عملا فقط یک بار به شمارنده گفتیم که یک انتظاری در ورودی وجود داره که باید در خروجی برآورده بشه و اون هم سهیم کردن عدد بارگذاری شده در خروجی به صورت مستقیمه. حالا شمارش بعد از فراخوانی اون عدد به چه صورتی ادامه پیدا میکنه؟ اگه بالا شمار باشه ؛ خروجی با دریافت کلاک بعدی به 1010 تغییر وضعیت میده و این تصاعد تا رسیدن به 1111 ادامه داره و اگه پایین شمار باشه؛ خروجی با دریافت کلاک بعدی به 1000 تغییر وضعیت میده و این تنزل تا رسیدن به 0000 ادامه پیدا میکنه(مثل تصویر بالا).

منبع:

http://www.eca.ir/forum  (البته کمی دستکاری شده)

حالا دیگه می تونید یه ساعت رو با این آیسی خودتون طراحی کنید...

موفق باشید



برچسب‌ها: قطعه شناسی, 74LS193
دسته بندی : قطعات الکترونیکی

موضوعات
آرشیو مطالب
نویسندگان
درباره ما

    بسیجی گمنام خمینی ٍ "" و لا یحمل هذا العلم الا اهل البصر و صبر و العلم به مواضع حق ""
    و این پرچم مبارزه را جز افراد با بصیرت و صبور و آگاه به جایگاه حق به دوش نمی کشند .

    این وبلاگ متعلق به گروهی از سربازان حقیقی حضرت بقیه الله الاعظم می باشد که در عرصه جهاد علمی و فرهنگی فعالیت می کند .

    ایمیل : malekipcb@gmail.com