نويسنده موضوع: شمارنده ها  (دفعات بازديد: 6053 بار)

0 کاربر و 1 مهمان درحال ديدن موضوع.

آفلاين reza alimi

  • کاربر تازه وارد سطح اول
  • *
  • تشکر
  • -اهدايي: 1
  • -دريافتي: 0
  • ارسال: 8
شمارنده ها
« : 20 خرداد 1388 - 15:12:33 »
یک سری اطلاعات کامل در مورد ic های شمارنده می خواستم که چطوری کار میکنند و همچنین چطوری می شود انها را برای شمارش عدد خاصی تنظیم کرد و چطوری می شود انها را برای شروع از ععد خاصی تنظیم کرد مخصوصا ic74192

آفلاين mostafahk

  • کاربر نیمه حرفه ای سطح پنجم
  • *
  • تشکر
  • -اهدايي: 252
  • -دريافتي: 911
  • ارسال: 1096
  • مصطفی حیدری
    • وب سایت شخصی من
پاسخ : شمارنده ها
« پاسخ #1 : 20 خرداد 1388 - 22:32:17 »
کل مطالبی که تو دوره کاردانی الکترونیک تدریس میشه همینه دیگه :mrgreen:
کتاب هاش رو یادم نیست.
بت در بغل و به سجده پیشانی ما                                  کافر زده خنده بر مسلمانی  ما
اسلام به ذات خود ندارد عیبی                                       هر عیب که هست در این مسلمانی ماست
Do not accept the world as it is

آفلاين حسام الدین

  • همکار علمی
  • *
  • تشکر
  • -اهدايي: 967
  • -دريافتي: 2443
  • ارسال: 2826
  • . . . [1 : 1] . . .
پاسخ : شمارنده ها
« پاسخ #2 : 21 خرداد 1388 - 00:52:48 »
سلام ......................

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

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

خــب .. اینجا همون تیکه ایه که میگم یه نکته ی مفهومی داره .. اگه قرار باشه عدد بارگذاری شده در ورودی دلبخواه فراخوانی بشه؛ شمارنده در شمارش دچار خطا میشه و واحدهایی که در ورودی وظیفه ی دریافت این اعداد رو به عنوان مبنای Initial وضعیت Z پیدا میکنن .. برای جلوگیری از این نکته یه پایه برای این کار در نظر گرفتن که بش میگن PL یعنی Parallel Load .. وقتی این پایه فعال میشه؛ یک اتفاق جالب میوفته .. خروجی آینه ای میشه از ورودی .. یعنی عینا ورودی به خروجی منتقل میشه و از اون به بعد اون عدد هست که مبنای ادامه ی شمارش قرار میگیره .. یعنی اکتیو شدن پایه ی PL اعلام اجازه ایه برای ایفای نقش عدد بارگذاری شده در روند شمارش ..

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

این از داستان 74193 .. یه ظریف کاری های عملی هم داره که در هنگام بستن سخت افزار باید بهش توجه کنید .. دو سه مورد بیشتر نیستن .. اگه خواستید روی اونها هم صحبت میکنیم .. امــا اینکه ماهیت شمارنده چیه؛ باید خدمتتون عرض کنم که این طور تصور کنید که مجموعه ای از فلیپ فلاپ های مثلا T هستن .. برای تست میتونید با فلیپ فلاپ T یه شمارنده ی باینری بالا شمار بسازید .. 4 تا فلیپ فلاپ که به صورت cascade کنار هم قرار میگیرن و خروجی یکی از اونها میشه حکم کلاک ورودی برای طبقه ی پایین تر خودش و این سیکل تا فلیپ فلاپ 4 ام ادامه پیدا میکنه .. برای پایین شمار هم میتونید از همین ایده استفاده کنید با این تفاوت که اونجا یک سری گیت AND و OR هم به کارتون اضافه میشن .. امــا اون چیزی که مهمه اینه که اساس شمارنده ها رو فلیپ فلاپ ها تشکیل دادن و این نکته میتونه خیلی جاها به تحلیل های منطقی مدارات ما کمک کنه .. موفق باشید ..
« آخرين ويرايش: 21 خرداد 1388 - 23:46:11 توسط حسام الدین »
Respect others as well as yourself

آفلاين reza alimi

  • کاربر تازه وارد سطح اول
  • *
  • تشکر
  • -اهدايي: 1
  • -دريافتي: 0
  • ارسال: 8
پاسخ : شمارنده ها
« پاسخ #3 : 21 خرداد 1388 - 08:49:10 »
با تشكر از اقاي حسام الدين فقط مي خوام بپرسم كه مثلا در همون مدار ساعتي كه شما طراحي كرديد چطوري اين ic ها فقط تا 60 ميشمرند يا مثلا تا 24 ميشمرند و reset مي شوند يعني چطوري براي انها شرط خاصي مشخص مي كنيد.با تشكر

آفلاين حسام الدین

  • همکار علمی
  • *
  • تشکر
  • -اهدايي: 967
  • -دريافتي: 2443
  • ارسال: 2826
  • . . . [1 : 1] . . .
پاسخ : شمارنده ها
« پاسخ #4 : 22 خرداد 1388 - 00:37:05 »
با تشكر از اقاي حسام الدين فقط مي خوام بپرسم كه مثلا در همون مدار ساعتي كه شما طراحي كرديد چطوري اين ic ها فقط تا 60 ميشمرند يا مثلا تا 24 ميشمرند و reset مي شوند يعني چطوري براي انها شرط خاصي مشخص مي كنيد.با تشكر

سلام .................

اول بگم که شرمنده؛ پست اولتون رو که خوندم دیدم در مورد 74192 سوال کردید امــا من 74193 رو توضیح دادم ..  :redface: اما در موردد سوال آخرتون .. من این مطلب رو با یه مثال میگم .. البته این مثالیه از یه فایل؛ که قبلا برای یکی از دوستام نوشته بودم و اگه تصاویر یه کم بزرگه شرمندم .. تصویر زیر رو ببینید ...



یه شمارنده ی 74192 که BCD کانتر هست .. الان این شمارنده تا چند میشمره؟ 0 - 1 و بعد هم ریست .. یعنی به ازای دو پالس شمارش و برای پالس سوم؛ ریست .. امــا علتش چیه؟ ببینید دوباره به شکل بالا نگاه کنید .. چه چیزی باعث شده که شمارنده در پالس سوم ریست بشه؟ خروجی گیت AND .. یعنی چی؟ یعنی اینکه این خروجی گیت AND هست که تعیین میکنه شمارنده ی ما تا چه مقداری بشمره .. حالا ما چجوری میتونیم با گیت عدد مدل کنیم .. باز به شکل نگاه کنید .. ورودی های گیت چیا هستن؟ NOT شده ی Q0 و خروجی مستقیم Q1 .. الان خروجی گیت AND چه زمانی 1 میشه؟ وقتی Q0 برابر باشه با 0 و Q1 برابر باشه با 1 .. حالا این دو خروجی رو بذارید کنار هم .. یعنی Q0Q1 .. چه عدد باینری ای تولید شد؟ 01 یعنی 2 .. در واقع شما عدد 2 رو ساختید به این معنا که با رسیدن به 2 بلافاصله شمارنده ریست بشه .. چرا میگیم بلافاصله .. برای اینکه نمیخوایم این اتفاق با دریافت پالس بعدی (یعنی پالس چهارم..) انجام بشه .. اگه نمودار تایمینگ این فرآیند رو بکشید دقیقا متوجه منظور من میشید .. این از بحث محدودیت درست کردن برای یک شمارنده ..

حالا 24 یا 60 به ترتیب تشکیل شدن از چیا؟ 2 و 4؛ 6 و 0 .. شما 4 تا شمارنده دارید (دو زوج..) و برای 3 تا از اونها باید محدودیت بذارید .. نحوه ی محدودیت گذاشتن هم به شکل بالا انجام بدید .. موفق باشید ..
Respect others as well as yourself

آفلاين reza alimi

  • کاربر تازه وارد سطح اول
  • *
  • تشکر
  • -اهدايي: 1
  • -دريافتي: 0
  • ارسال: 8
پاسخ : شمارنده ها
« پاسخ #5 : 24 خرداد 1388 - 01:48:20 »
از دوست عزيزم اقاي حسام الدين كمال تشكر را دارم.توضيحاتتون بسيار كامل و مفيد بود.ارزوي موفقييت براتون دارم.