Создание блока с встраиваемой программой логики
Поясню сразу. Задание выполнять не нужно. Просто хочу поинтересоваться вашими ценами за такую работу.
Такое приложение я разрабатывал для работы. Хотелось бы просто узнать, во сколько бы вы оценили данную работу?
Есть некий блок со встроенной памятью 4 кб. Он состоит из прошиваемых специальным прибором микросхем, каждая размером 256 байт. Итого, их таких 16 штук. Блок имеет 160 входов и 160 выходов. А так же оперативную память 256 байт. Входы - это обычные замываемые контакты. Выходы - это светодиоды.
Программа, которая вшивается в микросхемы состоит из мнемокоманд. Язык немного похож на Ассемблер, но всё строится только на логике Истина/Ложь.
Например:
-X056 - получить данные из канала 56
=Y010 - передать данные в выход 10.
Это значит, если 56 включен, то приравнять это значение к 10 выходу. Если 56 вход отключили, то и 10 выход выключится.
Ещё пример:
-x056 * x057 = y010. Если включили 56 и 57 вход, то 10 выход загорится (лампочка). Только через И!
-x056 + x057 = y010. Если включили 56 ИЛИ 57 вход, то 10 выход загорится. Описание ИЛИ.
С оперативной памятью можно работать через M. -M, *M, +M.
Здесь так же есть скобики [, ]. Переходы по строкам JP (прыжок, если предыдущая команда положительна и далее адрес, куда прыгать)
JN - прыжок, если отрицательно
JU - безусловный переход
JS - переход к подпрограмме
ES - выход из подпрограммы и возврат туда, откуда её вызвали
Так же здесь есть встроенные таймеры и счётчики, которые тоже дают False (ещё не закончилась работа таймера или счётчика) или True.
Полное описание программы логики давать не буду. Ни к чему. Ну, в принципе, я почти всё очень коротко описал.
Дизайн программы на одной форме мелко:
160 checkbox (это вход Х)
160 label (это выход Y)
256 label (это ячейки памяти M)
Все label, описывающие Y и M во время работы программы включаются и выключаются при нажатии кнопки "Питание". Мышкой меняя Х (входы), вы можете видеть результат работы встроенной программы. Встраиваемая программа читается циклически, пока нажата кнопка "Питание". Ну, логично, должно быть окно, состоящее из 4096 строк с вводом команд и проверкой их правильного ввода