Brigadir писал(а):Есть такой цифровой компаратор в КМОП серии СП1 - он просто решает эту проблему.(Читай Шило - иногда полезно).
Читаем , читаем - и пользует - там есть такойже компаратор двух 4-разрядных чисел и в ТТЛ варианте..
Довольно интересно , оставлю себе на заметку и почитаю поглубже, но использовать не могу - там ясно написано что это совсем не "жесткая логика". Но, спасибо.
Pe3ucTop писал(а):Интересен ваш алгоритм (а может он задан задачей) ??
Если б ))) заданием был задан лиш лифт не менее 3 етажей ... В итоге сходил на местный отдел по тех обслуживанию лифтов на пару экскурсий и подумал просто лифт на 3 етажа это не интересно и слабовато для той роботы что я делаю.
По поводу цикла я лиш описал чем занята микросхема памяти ....
Основа (ядро) сделал на 4 мультиплексорах (лучше розвести графопереходы не удалось), под вопросом всеголиш 2 места на схеме: память и организация кнопок (хотя наверно уже 1 ибо с памятью если не будет больше предложений сделаю перебор).
А теперь ближе к алгоритму и самой схеме... подумал и намудрил - теперь руководитель проекта меня сторонится )
1. Кнопки для реализации такого количества сигналов замыкают по 2 контакта - 1 контакт по линии единиц, 2 - по линии десятков. И того по 1 активному на блок из 9 проводов(провод под названием "0" не требуется - продиктовано шифраторами) и все это на десятично-двоичний шифратор и из двух по 9 проводов я получаю 2 по 4 и через управляемый буфер с третим состоянием выхода пускаю на адресные входы памяти . Кроме этого кнопка замыкает ещо и контакт с соответствующим ей сигналу (вверх или вниз) и путем сравнения с направлением движения даетса разрешение на запись этого сигнала в память или нет.
Так же в отдельный 8-разрядный регистр я запоминаю конечный пункт назначения (первый заданный или попутный но более "высший") и по совпадению етого числа с числом текущего этажа я провожу полное стирание - стираю заданные сигналы на движение, память, сам регистр - короче вывожу схему в начальное состояние.
2. Датчики. Поскольку в современных лифтах как оказалось есть датчики точной остановки и замедления пришлось организовывать.
Итак на каждый етаж принимаю что есть по 2 датчика замедления и 1 точной остановки . Все ети датчики сделаны в два сигнала (не разделяю датчики разных етажов). И так сигнал с датчика замедления пропускаю через делитель на 2 (сделан на том же ТМ2 только 1533 серии) после чего пускаю этот сигнал на строб для двух счетчиков десятичных. С этих счетчиков получаю номер этажа , его и пускаю через управляемый буфер с тремя состояниями выхода на ту же память. В итоге память постоянно в режиме чтения кроме тех моментов когда идет "стирание" или хапись новых етажей. При совпадении етажа с заданным прежде на выходе памяти получу "1" и при соблюдении определенных условий - типо сигнала с датчика точной остановки запущу цикл остановки, а перед этим просто выдам сигнал замедления (перекл обмотку движка).
Тут писал все ето чудо и понял непродуманую ошибку - хорошо что спросили про алгоритм иначе б заметил бы когда было б поздено. В памяти ж остается тот етаж на котором остановился лифт (промежуточный) и тогда лифт будет просто откр и закр двери на 1 етаже - нада будет внести ещо и цепь стирания етажа на который попал лифт. Спасибо!!!
3. Индикаторы. Все просто - есть движение вверх горит лампочка вверх , также вниз и 2 семи сегментных для положения лифта - беру прямо со счетчиков.
4. Там ещо мелкие блоки аля задержки управляющих сигналов при остановке на етаже (что б люди могли выйти ) и тд...
Pe3ucTop писал(а):1 - с алгоритмом надо додумать
Такое вас устроит ?
Коменты по желанию - в даный момент решаю как сделать защиту от нажатия кучи клавиш одновременно и от постоянного нажатия (ибо память заблокируется и проскочит етаж).