Задача
Выдать на дисплей HD44780 последовательность команд инициализации в 8-битном режиме.
Тип схемы и среда
Синхронный конечный автомат: шесть состояний, TABLE отображает состояние в код команды.
Алгоритм работы
Автомат по стробам tick проходит команды: function set, display on, clear, entry mode. TABLE ставит на шину data нужный код, e стробирует запись, done поднимается в конце.
Код на AHDL
% Проект 34: драйвер инициализации LCD HD44780 (автомат) % SUBDESIGN ahdl_34_lcd_drayver ( clk, reset : INPUT; tick : INPUT; % медленный такт % rs : OUTPUT; e : OUTPUT; data[7..0] : OUTPUT; done : OUTPUT; ) VARIABLE sm : MACHINE OF BITS (s2, s1, s0) WITH STATES (INIT, FUNC, DISP, CLR, MODE, RDY); er : DFF; BEGIN sm.clk = clk; sm.reset = reset; er.clk = clk; er.clrn = !reset; er.d = tick; CASE sm IS WHEN INIT => IF tick THEN sm = FUNC; END IF; WHEN FUNC => IF tick THEN sm = DISP; END IF; WHEN DISP => IF tick THEN sm = CLR; END IF; WHEN CLR => IF tick THEN sm = MODE; END IF; WHEN MODE => IF tick THEN sm = RDY; END IF; WHEN RDY => sm = RDY; END CASE; rs = GND; e = tick; TABLE sm => data[]; INIT => H"30"; FUNC => H"38"; DISP => H"0C"; CLR => H"01"; MODE => H"06"; RDY => H"00"; END TABLE; done = (sm == RDY); END;
Пояснения
HD44780 требует выдержек между командами — их задаёт медленный tick. Полный драйвер добавляет вывод символов и адресацию DDRAM.
Инструменты и справочники по теме
📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.
Что дальше
Скачайте ahdl_34_lcd_drayver.tdf, создайте проект в MAX+PLUS II или Quartus,
назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в
разделе проектов на AHDL.