Кто шарит в цифровой электронники по лог.функциям, хелпаните
Не могу никак сообразить как составить логическую функцию на D-триггере на основе RS-триггера с элементами И-НЕ.
Лог.функция выглядит как в примере: F=(x^y)
Не могу никак сообразить как составить логическую функцию на D-триггере на основе RS-триггера с элементами И-НЕ.
Лог.функция выглядит как в примере: F=(x^y)
Порадовало активное обсуждение в комментах к посту : Простая схемотехника без Arduino, SMS и регистрации и тут подвернулось самому всего парой простых деталек расширить функционал.
Товарищ отдал в ремонт простенький фонарик с али - не горел один из диодов.
В фонарике несколько режимов работы и два уровня яркости для каждого из диодов. Но даже на низком уровне диоды греются и яркость сильно выше достаточной для чтения в палатке.
Схема фонарика очень простая, диодами независимо от двух кнопок управляет noname 8-ногий чип внутри которого вполне может скрываться attiny*. Но мысль быстро накидать ардуино прошивку была отброшена, т.к. времени совершенно не было и в наличии dip8 только attiny15 для которых писать надо на asm и это сильно медленнее.
Разбирая в уме облако вариантов, решил для начала ткнуться осциллом - глянуть, что там происходит на выходе. Ожидаемо - в режиме меньшей яркости фонарик начинает мерцать с частотой около 70Hz. Но также обнаружилось, что управление модуляцией каналов в режиме пониженной яркости - независимое, т.е. начало фронта включения зависит от времени нажатия кнопки.
Простейшее решение - добавить разностную схему, что бы диод горел только при сложении сигналов с двух каналов. На осциллограмме синий и зелёный сигналы - выходы управления диодами, а красный - результирующий при сложении умножении (поправили).
следующая попытка
Получившаяся логика управления: Включить один диод на пониженную яркость и переключая второй канал - добиваемся необходимой яркости работы. Практика показала, что в среднем для этого требуется около трёх последовательных переборов режима второго канала и с учётом, что фонарь потом работает порядка часа-двух и дольше - трудностей не представляет.
Дополнительные элементы обведены серым. Элементы R4-5, D1, C2 введены для гашения второго диода (тот что с направленным пучком).
Дополнительные транзисторы удачно подходят под штатные в таком же корпусе (sot23).
Использован Шоттки диод, но подойдёт и обычный.
Также обнаружено, что на выходе 6 контроллера, появляется активный уровень "1" когда все режимы фонарика выключены. Возможно это поможет кому-то ещё в какой либо автоматизации.
Вот так удачно вписались несколько подручных деталек образующих 4 логических элемента (2 инвертора и два элемента "И") без "ардуино ,смс" и тд).
В дальнейшем навесные элементы зафиксированы клеем, а плата покрыта лаком. Хорошо бы зафиксировать обратную сторону направленного диода во избежание его повторного выдавливания через линзу снаружи. Также у фонаря отсутствует какая либо защита от переполюсовки аккума, что приведёт в случае ошибки к гарантированной смерти контроллера зарядки 100% (там TP4056 в sot23-6 или аналог) и возможно МК
Заказчик за самоуправство не ругался и результатом доволен:)
ps мы вместе из одной темы с палатками где много дней порядка 3-4 часов проходило при таком освещении и понимаю на сколько это востребовано.
Добрый день. Читаю сейчас книгу Чарльза Петцольда "Код" и на главе про логические вентили вспомнился мне сайт с этой же тематикой, насколько я помню он англоязычный, цвет оформления - синий, кажется про него был пост на пикабу, но найти я его не могу. Выручайте господа.
Здравствуйте дорогие пикабушники и те кто иногда залетает посмотреть на фото котеек))
Сегодня я хочу вам рассказать о полезной игре, в разработке которой я участвовал.
Игра называется Make it True или Сделай это правдой
Игра про логические элементы.
Не все, но многие не знают, что такое логические элементы. Зачем они нужны? Как выглядят?
Для того чтобы это понять есть два выхода:
1.Прочитать мою статью, где просто и ясно объяснено, что такое логический элемент и с чем его едят.
Пост на Пикабу - Просто о логических элементах
2.Самый легкий и интересный вариант. Попробуйте поиграть в нашу игру.
Ссылка на загрузку из Google Play - Make it True
Постойте!!!Не уходите!!
Дайте я вам хотя бы расскажу о нашей игре))
Повторюсь, наша игра про логические элементы и их взаимодействие друг с другом. Ее суть в том, чтобы подать на дисплей логический сигнал “True” или наш аналог “Истина”.
Игра поможет всем желающим изучить основы цифровой логики, понять, как именно работают логические элементы.
Также эта игра будет интересна игрокам, которые не разбираются в электронике. Если у вас не стоит цель чему либо обучиться, то это не преграда, потому что наша игра будет интересна и тем кто любит головоломки и логические игры.
Что бы разбавить скуку в игре есть, пусть и не сложный, но сюжет с катсценами. В котором вам предстоит помочь инженеру сконструировать робота. Да,да! Именно робота.
Также у нас есть две темы: темная и светлая. Темная будет полезна для экономии энергии на девайсах с amoled/oled дисплеем и просто для игры в темное время суток. Выглядит она тоже ничего))
Что же, не буду затягивать свой пост, поэтому кратко расскажу об особенностях нашей игры и вы будете вольны дальше смотреть на котиков, ну или поиграть в нашу игру))
ОСОБЕННОСТИ:
— Сотни интересных уровней.
— Множество элементов, которые не заставят вас заскучать.
— Множество решений для каждого уровня.
— Два режима игры.
— История, где вам предстоит помочь инженеру с его нелегким делом. Наша логическая
головоломка содержит анимированные cut-сцены. Мы не дадим вам скучать ;)
— Черная тема — сохраните ваши глаза и батарею.
— Доступна помощь для прохождения.
Ну вот и все. Надеюсь наша игра вам понравится. Ждем ваших отзывов.
P. S. В случае если нашли какую-либо ошибку или у вас есть интересная идея по поводу улучшения игры, то пишите нам на почту MakeItTrueFeedback@gmail.com
Здравствуйте дорогие пикабушники и те, кто сюда залетел извне.
И как вы догадались, я должен вам простым, а главное понятным языком рассказать о так называемых логических элементах. Их еще иногда называют вентилями.
Начнем конечно же с некоего вступления, которое поможет понять работу этих самых логических элементов.
ВСТУПЛЕНИЕ:
Первое что мы должны знать, это зачем они нафиг нам сдались?
Ну начнем с того, что на базе всех этих логических элементов построены такие сложные и незаменимые для человека устройства, как: наш любимый компьютер, смартфон, стиралка, телевизор да в принципе, наверное, вся электроника — это использование логических элементов.
Почему “в неком”?
Потому что в современных устройствах редко, а то и вовсе не используют отдельно какие-либо логические вентили. Ибо в наш прогрессивный век совокупность множества логических элементов находится на одном чипе.
Теперь вы должны понять насколько вы круты, потому что будете изучать основы строения всех этих таинственных “черных плиток” находящихся на плате какого-либо устройства.
ВНИМАНИЕ!!! АХТУНГ!!!
После этого поста вы не сможете спаять компьютер из барахла на мусорке. Вы не откроете свою фирму в гараже и не будете там создавать “супер-чипы” позволяющие ускорить обработку информации в миллионы раз. Хотя если очень захотеть… :)
Вторая часть вступления:
Отвечаю на вопросы кратко и ясно без излишеств.
-Что делают эти элементы?
Они производят логические операции над цифровыми сигналами.
-Что такое цифровой сигнал?
Это нули и единицы. Вы же помните, что данные хранятся у нас в двоичном виде? А двоичная логика — это “0” и “1”. Есть также и троичная логика, но в основном все используют двоичную.
-Что такое нули и единицы в электронике?
1- это высокий уровень напряжения
0 -низкий уровень напряжения.
Последовательности этих высоких и низких напряжений и называется цифровым сигналом
Вывод:
После этой простыни текста делаем простой вывод простыми словами:
Логические элемент - это устройство, которое обрабатывает цифровой сигнал.
или можно чуток поумнее
Логические элементы выполняют логическую операцию(функцию) над входными сигналами (операндами, данными).
Гениально! 260 слов было потрачено на разжевывание простой истины.
Теперь, мой ученик, ты готов к тому чтобы понять….
что толком ты ничего еще не узнал.
Но прежде ты должен познать ИСТИНУ, а вернее таблицу истинности.
Что за таблица истинности? Где она? Как ее понять?
На все эти вопросы я дам ответ. Будь терпелив мой ученик.
Теперь начнем знакомить тебя с парочкой базовых элементов. На их примере ты поймешь принцип работы всех остальных элементов.
Первым будет элемент “И”
Он простой.
Это представление распространено на постсоветском пространстве (стандарт IEC).
Второй вид (стандарт ANSI):
Разница только во внешнем виде на схеме.
Таблица истинности "И"
Что мы видим на таблице истинности?
А и В это входы. Y - выход.
Если смотреть на таблицу то можно понять одно правило
В элементе “И” на выходе 1 только если на всех входах 1. В любых других случаях 0.
или
Элемент дает “Истину” (1),только если на входы подается “Истинна”. Во всех остальных случаях “Ложь” (0).
Вроде легко, правда?
Рассмотрим еще один легкий элемент. По сути, тяжелых элементов нет, если умеешь пользоваться таблицей истинности))
Элемент “ИЛИ”
и второй вариант изображения
Таблица истинности “ИЛИ”
Смотря на таблицу истинности можно выделить такое правило:
Если на входе элемента ИЛИ есть хотя бы одна ИСТИНА(1), то и на выходе тоже будет ИСТИНА.
Блин, а это действительно легко!
Идем дальше
Следующий элемент - это самый легкий из всех. Элемент “НЕ”
Его функция -- инверсия. То есть, если на вход приходит 1,то на выходе будет 0.
Такое же правило и для 0.
Если на вход приходит 0, то на выходе 1.
Посмотрите на его изображение и таблицу истинности и все поймете.
Таблица истинности “НЕ”
По такому принципу вы можете изучить любой логический элемент.
Главное посмотреть на его таблицу истинности.
Ниже приведу все элементы и их таблицы истинности
Удачи вам в ваших начинаниях))
P. S. Скоро будет статья про игру, которая поможет изучить основные логические элементы и другие, которые не попадают под понятие “Базовые”.))
Продолжение. Часть 1 Часть 2
В предыдущих частях я рассказал о полупроводниковых приборах, диоде и транзисторе, благодаря которым человечество смогло сменить технологический уклад и войти в компьютерную эру.
Однако, описывая устройство транзистора, я так и не коснулся того, каким образом из этого относительно простого устройства можно сделать компьютер. Что же, сейчас я постараюсь объяснить.
Двоичная логика
Думаю, что ни для кого, кто не прогуливал информатику в школе, не будет секретом, что в компьютерах используется двоичная система счисления, и счёт идёт следующим образом: 0, 1, 10, 11, 100, 101, 110, 111, 1000, и т .д. Когда мы имеем дело с простой электрической цепью, нам доступно, по сути, всего два состояния: напряжения в цепи нет, и напряжение в цепи есть, которые можно обозначить за 0 и 1, соответственно. Люди привыкли считать в десятичной системе счисления (наверное, потому, что у большинства из нас по 10 пальцев на руках). Машину тоже можно научить считать в десятичной системе, однако это не очень практично, так как нам понадобится различать 10 различных состояний электрической цепи, что значительно усложнит конструкцию. Но и двух состояний, как показывает практика, достаточно практически для любой вычислительной задачи.
Для тех, кто не читал предыдущие посты в этой серии, я напомню, что транзистор может работать как запорный кран на водопроводной трубе – включая и выключая напряжение на базе, мы можем либо «открывать кран» (пропускать ток через транзистор), либо «запирать» его. Соответственно, если абстрагироваться от технических деталей, то, подав «единицу» на базу, мы получим «единицу» и на выходе.
Логические вентили
Сразу оговорюсь – одну и ту же схему можно построить, используя несколько способов, здесь предложен лишь один из вариантов.
Здесь и далее, условно мы считаем поданное напряжение за 1 (или ИСТИНА), отсутствие напряжение – 0 (ЛОЖЬ).
Сила транзисторов приходит с их числом. Давайте посмотрим на следующую схему:
На данной схеме, если мы подадим на вход (In) 1, электричество потечёт от коллектора на эмиттер (сверху вниз). Так как ток всегда идёт по линии наименьшего сопротивления, на выходе будет 0. Если на входе будет 0, то транзистор предотвратит ток от коллектора на эмиттер, и на выходе (Out) мы получим 1.
Эта схема является логическим инвертором (превращает 0 в 1 или 1 в 0), представляя собой логическую операцию НЕ (NOT). В логических схемах, по стандарту ANSI 91-1984, она обозначается так:
(есть и другие стандарты обозначений, но в подавляющем большинстве случаев, если вы будете дополнительно изучать эту тему, вы будете встречать именно такие символы).
Забегая вперёд, скажу, что для каждой операции существует так называемая «таблица истинности» (truth table), которая показывает, как данная операция изменяет входящий сигнал. Входящие сигналы обычно обозначают буквами латинского алфавита по порядку (A, B и т. д.) Для операции NOT существует всего 1 входящий сигнал А:
А = 0 → 1
А = 1 → 0
Рассмотрим пример посложнее:
Здесь, если вы уже хоть чуточку разбираетесь в том, что уже было сказано, можно увидеть, что на выходе (Out) мы получим 1 только если на входах A и B тоже будут единицы, а в любом другом случае, на выходе будет 0. Мы получили логический вентиль И (AND), который обозначается так:
Вентиль И имеет следующую таблицу истинности:
A = 0, B = 0 → 0
A = 0, B = 1 → 0
A = 1, B = 0 → 0
A = 1, B = 1 → 1
Для полноты комплекта набора базовых логических вентилей, рассмотрим ещё и вентиль ИЛИ (OR):
Данный вентиль позволяет получить 1 на выходе, если хотя бы один из входов (или сразу оба) на вход получают 1.
У вентиля ИЛИ, как легко предположить имеется следующая таблица истинности:
A = 0, B = 0 → 0
A = 0, B = 1 → 1
A = 1, B = 0 → 1
A = 1, B = 1 → 1
Есть и другие вентили, например XOR, NAND, NOR, и т. д. С целью экономии места и времени, я пропущу их описание, остановлюсь подробнее только на одном из них, под названием NAND (НЕ-И). Дело в том, что при помощи вентилей этого типа, мы можем сконструировать вентиль любого другого типа. Это было математически доказано ещё в далёком 1913 году американским логиком Генри Шеффером. Любая комбинация логических вентилей может быть реализована при помощи вентилей типа НЕ-И или НЕ-ИЛИ.
Почему NAND?
На самом деле всё просто. Вентили NAND быстрее. Есть такой термин «логические трудозатраты». Это параметр, который характеризует временную задержку в логических элементах. На практике при построении интегральных схем чаще всего используются вентили типа NAND.
Как можно уяснить уже из названия, NAND (Not AND) или НЕ-И представляет собой вентиль И с инверсией результата. То есть, он всегда на выходе имеет 1, кроме того случая, когда единица подаётся на оба входа одновременно:
A = 0, B = 0 → 1
A = 0, B = 1 → 1
A = 1, B = 0 → 1
A = 1, B = 1 → 0
На этой схеме представлены варианты изготовления вентилей НЕ (NOT), И (AND), ИЛИ (OR) и исключающего ИЛИ (XOR) только при помощи вентилей типа NAND:
Так как же компьютер считает?
Посмотрите на схему, она состоит из вентиля XOR (исключающее ИЛИ) и вентиля AND:
В качестве разминки для ума, попробуйте сами составить таблицу истинности для этой схемы. Если у вас всё получилось, то вы должны прийти к следующей логике:
A = 0, B = 0 → S = 0, C = 0
A = 0, B = 1 → S = 1, C = 0
A = 1, B = 0 → S = 1, C = 0
A = 1, B = 1 → S = 0, C = 1
Или, если хочется поиграться самому, вот ссылка на работающую симуляцию:https://simulator.io/board/mgWFjacWov/1
(Щёлкайте по сигналам - 0 и 1, чтобы зажечь или погасить лампочку).
Ура! Мы научились складывать 1 и 1! И действительно, мы получили устройство, способное сложить значения двух бит (которые подаются на входы A и B) и получить результат на выходе S (Sum – сумма). 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1. Что же происходит, когда складывается 1 + 1 – в этом случае вывод S обнуляется, но зато единица подаётся на вывод C (Carry – перенос). Это сигнал о том, что у нас возникло переполнение, и нам необходим следующий разряд для записи числа 2 (или 10 в двоичном представлении).
Описанная схема называется «полусумматором» (half-adder).
Если мы захотим перерисовать эту схему, используя только вентили типа NAND, то получим вот это:
Очевидно, что полусумматор может работать только с одним разрядом. Теперь давайте совместим два полусумматора вместе:
Симуляция: https://simulator.io/board/2Cf3xg9qcE/1
Заметьте, слева у нас появился ещё один ввод (который обозначен Carry-in). Построим для этой схемы таблицу истинности:
Обратите внимание, как, в зависимости от ввода Carry-In меняется результат. Если на этот ввод подавать состояние вывода переполнения/переноса (C-out) с соседнего сумматора, то будет понятно, что, расположив 8 таких сумматоров в цепочку, мы можем заставить компьютер складывать числа ёмкостью до 8 бит (то есть, в пределах от 0 до 255 или от -127 до 128). Ниже представлена цепочка из 4 полных сумматоров, позволяющих складывать числа до 4 бит:
Cовременные компьютеры работают с шинами в 64 бит, а иногда и в 128 бит. Но мы можем масштабировать подобную схему, в принципе, до любой разрядности.
Со сложением определились. А как быть с вычитанием?
Да, в общем-то, ничего сложного, как вы поняли, в вычитании нет. Вот схема вычитателя, состоящая из двух идентичных половинок. Как видно, мы решаем проблему просто добавлением вентилей НЕ:
И таблица истинности для данной схемы:
Чтобы поупражняться самостоятельно, можете взять симуляцию схемы сумматора (https://simulator.io/board/2Cf3xg9qcE/1), и, добавив вентили НЕ (NOT) превратить его в вычитатель.
Расположив сумматоры параллельно, и добавив на один вход вентиль типа НЕ, мы получим схему, способную вычитать одно двоичное число из другого. Но, как вы уже заметили, сумматор и вычитатель, по сути, являются одной и той же схемой, сама операция зависит лишь от инверсии одного из сигналов. И действительно, мы можем построить универсальную логическую машину, позволяющую как складывать, так и вычитать числа при помощи такой схемы (для 4 бит):
Симуляция: https://simulator.io/board/Kx7SAVz4P6/1
Последний вывод Cout на симуляции обозначает переполнение (лампочка красного цвета).
Мы добавили на входы битовых сумматоров вентили исключающего ИЛИ (XOR), которые выдают единицу только в том случае, если на его входы подаются разные сигналы. Когда M = 0, вентили выдадут значение сигналов B0-B3, когда M = 1, они инвертируют входящие сигналы. Таким образом, когда сигнал М = 1, данная схема становится вычитателем, а когда М = 0 – сумматором.
Надеюсь, этот пост дал вам первичное представление о том, как научить машину считать при помощи транзисторов. В следующем посте я расскажу о том, как производят интегральные схемы, на которых располагаются миллиарды транзисторов, и насколько малых размеров вообще возможно сделать транзистор.
Всем доброго времени суток! Хочу рассказать Вам про игру сделанную мной совсем недавно.
Это логическая игра, в которой, в игровой манере вы поймете как работают логические элементы, при помощи которых процессор компьютера выполняет операции с двоичным кодом, со всем известными "0" и "1".
Этих элементов великое множество, но базой являются элементы "И", "ИЛИ", "НЕ". На базе которых можно собрать остальные элементы.
Элемент "И" (квадрат) - это логическое умножение.
Выдает сигнал "1" если на оба его входа подается сигнал "1", в остальных случая на выходе ничего "0". Всё просто 1х1=1, заменяем любую единицу нулем (убираем сигнал) и на выходе кроме "0" ничего не получим.
Элемент "ИЛИ" (Треугольник) - это логическое сложение.
Выдает сигнал "1" если хотябы на одном входе есть сигнал "1". Тоже всё просто, 1+0=1, 0+1=1 и 1+1=1 сложение то логическое:) 0+0 естественно будет 0.
И элемент "НЕ" - инверсия. На входе "1" на выходе "0" и наоборот, на входе "0" на выходе "1".
И вся эта прелесть соединяется между собой последовательно и/или параллельно.
Наша же цель, за определенное количество включений или отключений входных сигналов получить на выходе "1", чтобы на выходе зажечь "лампочку" и перейти к следующей задаче.
Если кого-то заинтересовала данная тема, подробнее про неё вы можете почитать в интернете по запросу "логические элементы".
Поиграть же в игру можно пока только на Android смартфонах
Ссылка в GooglePlay: https://play.google.com/store/apps/details?id=com.robinblood...
Приложение в AppStore на подходе.
P.S. Обозначения логических элементов естественно не претендуют на гост, стоит понимать, что это все же игра.
Всем добра! :)