AFON//Радиотехник
AHDL · проект 38/50

Команды по UART → реле

Декодер однобайтовых команд управления

Задача

Управлять четырьмя реле однобайтовыми командами: цифры '1'…'4' переключают реле, '0' — сброс всех.

Тип схемы и среда

Последовательная схема: детект строба, CASE по коду ASCII, регистр состояния реле.

Алгоритм работы

По стробу команды CASE cmd[] по ASCII-кодам инвертирует/устанавливает биты регистра реле. Ветка OTHERS удерживает состояние.

Код на AHDL

ahdl_38_uart_komandy.tdf↓ скачать .tdf
% Проект 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.