منطق سه حالته

در الکترونیک منطق سه حالته به خروجی اجازه می‌دهد که علاوه بر سطوح منطقی ۰ و ۱ حالتی به نام امپدانس بالا نیز بتواند داشته باشد، که در واقع در این حالت تاثیر خروجی را از بقیه مدار حذف می‌کند.
ورودی
خروجی
A
B
C
0
۱
۰
۱
۱
X
0
(امپدانس بالا)
بافر سه حالته را می‌توان یک منطق سه حالته در نظر گرفت. اگر B را روشن کنیم، کلید بسته می‌شود و اگر B را خاموش کنیم، کلید باز می‌شود.
این به دستگاه‌ها اجازه می‌دهد که از یک خط خروجی برای چند دستگاه به صورت مشترک استفاده کنند. (مانند گذرگاه‌ها که به صورت هم‌زمان به خروجی بیشتر از یک دستگاه نمی‌توانند "گوش بدهند".)
منطق سه حالته در خیلی از رجیسترها، درایورهای گذرگاه و فلیپ‌فلاپ‌ها در سری ۷۴۰۰ و ۴۰۰۰ علاوه بر بقیه مدل‌ها، و هم چنین در درون خیلی از آی سی‌ها استفاده می‌شود. دیگر استفاده‌های این منطق در گذرگاه‌های داخلی و خارجی ریز پردازنده‌ها، حافظه رایانه و دستگاه‌های جانبی است. خیلی از دستگاه‌ها توسط یک ورودی فعال Low به نام (مخفف Output Enable) که مشخص می‌کند که خروجی دستگاه فعال باشد یا روی حالت ایمپدانس بالا باشد کنترل می‌شوند.
منطق سه حالته را نباید با منطق سه‌ارزشی اشتباه گرفت.
کاربردها
همان طور که گفتیم، کاربرد کلی حالت ایمپدانس بالا از بین بردن تاثیر خروجی از بقیه مدار است، اگر بیش از یک دستگاه به هم متصل بودند، بردن به حالت ایمپدانس بالا برای جلوگیری از اتصال کوتاه مناسب است، یا اگر یکی از دستگاه‌ها از لحاظ منطقی ۱ بود و دیگری ۰، مشکلی رخ ندهد.
بافرهای ۳ حالته می‌توانند در تسهیم‌کننده‌ها استفاده شوند، مخصوصا اگر تعداد ورودی‌ها زیاد باشد.
بافرهای ۳ حالته هم چنین در گذرگاه‌ها استفاده می‌شوند.
منطق سه حالته هم چنین می‌تواند تعداد سیم‌های مورد نیاز برای راه‌اندازی یک سری ال ای دی را کاهش بدهند.
Output Enable در برابر Chip Select
در خیلی از دستگاه‌هایی که برای اتصال به گذرگاه طراحی شده‌اند (مانند قطعه‌های رم و رام) هم پایه CS مخفف Chip Select به معنای انتخاب قطعه، و هم پایه OE مخفف Output Enable به معنای فعال سازی خروجی وجود دارند که به نظر می‌آید هردو یک کار را انجام دهند.
تا زمانی که پایه CS روشن نشود، خروجی‌ها روی حالت امپدانس بالا خواهند بود.
تفاوت این دو در مدت زمان مورد نیاز برای فرستادن سیگنال است. تا هنگامی که سیگنال انتخاب قطعه ارسال نشود، قطعه از درون فعالیتی ندارد، و میان فرستادن آدرس قطعه و گرفتن داده از قطعه مدت زمان قابل توجهی وقفه وجود دارد.(البته این یک نقطه قوت به‌شمار می‌آید، زیرا در این موقع انرژی کمی مصرف می‌شود.)
اما هنگامی که سیگنال انتخاب قطعه ارسال شد، قطعه از درون دسترسی را انجام می‌دهد و درایورهای خروجی نهایی با غیرفعال بودن Output Enable غیرفعال می‌شوند. این در مواقعی استفاده می‌شود که گذرگاه برای موارد دیگری در حال استفاده است. سرانجام هنگامی که Output Enable فرستاده شد، داده‌ها با کمترین وقفه ارسال می‌شوند. در حالت کلی یک قطعه رم یا رام دارای خط OE، دو وقفه برای ایجاد دسترسی دارد: یکی هنگامی که قطعه با ارسال درست آدرس آن فعال شد، دیگری هنگامی که دستور فعال سازی خروجی ارسال شد که البته مدت زمان کوتاه‌تری دارد.
کاربرد مقاومت‌های بالاکش و پایین کش
همان طور که گفتیم، هنگامی که خروجی روی حالت سوم (حالت امپدانس بالا) قرار بگیرد در مدار تاثیری نخواهد داشت، و اگر عنصر دیگری در مدار وضعیت آن را تعیین نکند، مدار معلق خواهد ماند. طراحان مدار معمولا از مقاومت‌های بالاکش یا پایین کش (معمولا در محدوده ۱ تا ۱۰۰ کیلواهم) استفاده می‌کنند تا موقعیت مدار را ثابت سازند.
برای نمونه در میکروکنترلرهای AVR، می‌توان با تنظیم کردن یک پورت به صورت ورودی(با 0 کردن رجیستر DDRx) و تنظیم کردن رجیستر PORTx، مقاومت‌های بالاکش را فعال یا غیرفعال کرد.