Введение
Информационные технологии в последнее время глубоко проникли в нашу повседневную жизнь. Сейчас мы не можем представить себе день без смартфона, интернета или иных благ информатизации общества. Дневники стали электронными, все госструктуры перешли на электронные рельсы. Повсеместно вводится оплата банковскими картами, из метро пропали жетоны, а их место заняли многоразовые билеты. Так же следует заметить, что Россия занимает второе место по числу камер видеонаблюдения в мире и одно из лидирующих в сфере информатизации общественной жизни. Именно наши студенты неоднократно становились чемпионами мира в олимпиадах по программированию и создавали ведущие ИТ-компании на заре эры информатизации.
Однако, среднестатистический обыватель мало понимает, какой огромный объем научных трудов и исследований стоит за кажущимися обычными и привычными благами цивилизации. Сотни тысяч умов трудятся над разработкой новых способов передачи данных, методов обработки информации, шифрования, облачных вычислений, моделей искусственного интеллекта, обработки больших объемов данных и так далее.
Однако даже эти люди не всегда вспоминают об основе всех этих научных изысканий: двоичном коде и логических операциях с ним. По сути, двоичный код представляет собой либо наличие, либо отсутствие сигнала. Логические операции же представляют собой действия с «правдой» и «ложью» компьютера, путем обработки их аналогично логическим связкам человеческой речи, такими, как «не», «или», «и», «взаимоисключающее или». Если добавить к наличию или отсутствию сигнала возможность использования логических операций, утверждается, что можно написать абсолютно любой алгоритм. Вопрос состоит лишь в том, насколько он будет громоздким.
Гипотеза: с помощью логических операций и двоичного кода можно создать часы.
Логические элементы
Общие сведения о логических элементах
Логическими элементами (ЛЭ) называют устройства, преобразующие входную информацию в выходную по определенным правилам.
В цифровой технике входная и выходная информация является бинарной (все переменные принимают только два значения: 1 или 0).
Основные логические операции:
Логическое сложение (дизъюнкция) реализуется логическим элементом ИЛИ. Элемент, выполняющий функцию ИЛИ, имеет несколько входов и один выход. Сигнал логической единицы появляется на выходе такого устройства, если хотя бы на один из входов подана логическая единица (Рис 1.1.)
Рис 1.1.
На схеме дизъюнкция обозначается следующим образом (Рис 1.2.):
Рис 1.2.
Логическое умножение (конъюнкция) реализуется логическим элементом И. Сигнал логической единицы появляется на выходе такого устройства, если на все входы подана логическая единица (Рис 2.1.).
Рис 2.1.
На схеме конъюнкция обозначается следующим образом (Рис 2.2.):
Рис 2.2.
Логическое отрицание (инверсия) реализуется логическим элементом НЕ, который называют инвертором. Сигнал логической единицы появляется на выходе такого устройства, если на вход подан логический ноль (Рис 3.1.).
Рис 3.1.
На схеме инверсия обозначается следующим образом (Рис 3.2.):
Рис 3.2.
Rs-триггеры
RS-триггеры могут выполняться на элементах ИЛИ-НЕ или на элементах И-НЕ.
Рассмотрим триггер, выполненный на элементах И-НЕ (Рис 4.1.):
Рис 4.1.
Здесь мы видим, что при подаче единичного сигнала любой продолжительности на вход S (Set (англ.) - установка) мы получаем на выходе Q сигнал 1, который не будет пропадать.
В свою очередь, если мы подадим единичный сигнал любой продолжительности на вход R (Reset (англ.) - сброс) мы получаем на выходе Q сигнал 0, который так же будет сохранять свое состояние, пока не будет подан сигнал на управляющий ввод S.
Таким образом, с помощью RS-триггера мы получаем своего рода переменную, которая может хранить 1 бит информации.
На схеме триггер мы будем обозначать так (Рис 4.2.):
Диод
Помимо этого, нам понадобится диод, который пропускает сигнал в одну сторону и не пропускает в другую. На схеме мы будем обозначать его так (Рис 5.1.):
Рис 5.1.
II. Обоснование возможности создания часов.
Теперь, когда у нас есть, куда запоминать информацию, мы можем думать о том, как нам организовать подсчет времени.
Так как любое число можно представить в двоичной системе счисления, нужно понять, сколько бит данных, или же - триггеров - будет в логической схеме счёта времени.
Обозначим тезисы:
В сутках 24 часа.
В часе 60 минут.
В минуте 60 секунд.
60 в двоичном представлении выглядит как 111100.
Значит для подсчёта минут и секунд нам понадобится 6 переменных, размером в 1 бит данных, то есть RS-триггеров.
24 в двоичном представлении выглядит как 11000.
Таким образом, для подсчёта часов нам хватит всего 5 RS-триггеров.
Разобьем триггеры на 3 группы: секундные, минутные и часовые.
Предположим, что у нас есть генератор сигнала, который каждую секунду меняет свое состояние (с 1 на 0 и с 0 на 1).
Тогда мы можем подавать сигнал на первый секундный триггер, и, снимая с него данные, постепенно увеличивать разрядность двоичного числа с каждым изменением состояния генератора.
Когда мы досчитаем до 60, а точнее, когда триггеры с первого по последний примут значения 0 0 1 1 1 1 соответственно, мы должны подать сигнал на первый минутный триггер и производить в группе минутных триггеров аналогичный процесс. Всю группу секундных триггеров же, мы должны сбросить до нуля.
Когда триггеры минутной группы тоже примут значения 0 0 1 1 1 1, мы должны будем послать сигнал на первый часовой триггер и сбросить минутные триггеры.
И, наконец, когда группа часовых триггеров с первого по последний примут значения 0 0 0 1 1, мы должны будем сбросить все триггеры (на самом деле только группу часовых, потому что секундные и минутные и так будут в значении 0) в значение 0.
СХЕМА (Рис 6.1.):
Рис 6.1
Эта схема представляет собой схему для подсчёта секунд с выводами Q и не Q (справа), которые идут на аналогичную схему для подсчёта минут. Вводы в схеме для подсчёта минут будут вместо генератора (Q и не Q слева).
Для подсчёта часов, схема будет еще проще, так как будет содержать в себе меньшее количество триггеров.
К сожалению, уместить всё в одном рисунке довольно сложно, поэтому представим упрощенную схему (Рис 6.2.):
Рис 6.2.
Заключение
Таким образом, следуя данной схеме и создав 3 операционных блока для секунд, минут и часов, и выводя на дисплей информацию с каждого бита по отдельности, мы можем создать работающие часы, используя лишь логические операции, чем и подтверждаем свою гипотезу.
Помимо часов таким образом можно запрограммировать любую обработку данных, от сложности которой будет зависеть количество логических элементов в нашей схеме.
Следует отметить, что подобного рода способом были созданы все известные низкоуровневые языки программирования, из которых, в свою очередь, были выстроены высокоуровневые, что позволило такими темпами развить информационную среду нашего общества.
Однако, знать основы всегда нужно, чтобы понимать специфику проводимой работы в любой из сфер деятельности.
Логические операции – одна из таких основ в мире информационных технологий, поэтому их знание и понимание становится бесценным в сфере деятельности, в которой чуть ли не каждый день изобретают что-то новое.
Список используемых источников
Основы логики. Алгебра высказываний.[ https://en.ppt-online.org/170911]
Триггеры на логических элементах. [https://studfiles.net/preview/5954138/page:6/#11]
Мысль — материальна: Алан Тьюринг как «универсальный вычислитель». [https://habr.com/ru/post/304244/]
Electronic Workbench. [http://cxem.net/software/electronics_workbench.php]
Знакомствос Electronic Workbench [https://itteach.ru/workbench/znakomstvo-s-electronics-workbench]
Схемотехнические решения. Разработка и моделирование в программе Electronic Workbench. [http://radio-hobby.org/modules/news/article.php?storyid=329]
Построение логических схем с помощью программы Electronic Workbench 5.12. /С.Л. Прищепа, С.М. Лапшин, Е.Г. Макейчик. – Минск: Учреждение образования "БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ", 2002.