Задача
Управлять четырьмя реле однобайтовыми командами: цифры '1'…'4' переключают реле, '0' — сброс всех.
Тип схемы и среда
Последовательная схема: детект строба, CASE по коду ASCII, регистр состояния реле.
Алгоритм работы
По стробу команды CASE cmd[] по ASCII-кодам инвертирует/устанавливает биты регистра реле. Ветка OTHERS удерживает состояние.
Код на AHDL
% Проект 38: декодер команд по одному байту -> реле % SUBDESIGN ahdl_38_uart_komandy ( clk, clrn : INPUT; strobe : INPUT; cmd[7..0] : INPUT; relays[3..0] : OUTPUT; ) VARIABLE r[3..0] : DFF; sp : DFF; BEGIN r[].clk = clk; r[].clrn = clrn; sp.clk = clk; sp.clrn = clrn; sp.d = strobe; IF strobe & !sp.q THEN CASE cmd[] IS WHEN H"31" => r[].d = r[].q # B"0001"; WHEN H"32" => r[].d = r[].q # B"0010"; WHEN H"33" => r[].d = r[].q # B"0100"; WHEN H"34" => r[].d = r[].q # B"1000"; WHEN H"30" => r[].d = B"0000"; WHEN OTHERS => r[].d = r[].q; END CASE; ELSE r[].d = r[].q; END IF; relays[] = r[].q; END;
Пояснения
Стыкуется с приёмником UART (проект 17): его выход data[] и признак ready подаются как cmd[] и strobe. Команды — печатные символы для удобной отладки терминалом.
Инструменты и справочники по теме
📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.
Что дальше
Скачайте ahdl_38_uart_komandy.tdf, создайте проект в MAX+PLUS II или Quartus,
назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в
разделе проектов на AHDL.