Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Поддерживаемые символы

В даташите HD44780 вы найдёте две таблицы символов, которые соответствуют двум версиям ПЗУ (ROM) — A00 и A02. Чтобы определить, какое ПЗУ использует ваш дисплей, попробуйте вывести уникальные символы из обеих таблиц. Тот, который отобразится правильно, и укажет на версию ПЗУ. После этого нужно смотреть только на соответствующую таблицу.

В моём случае ЖК-модуль основан на ПЗУ версии A00. Я приведу таблицу A00 и объясню, как её читать, хотя логика интерпретации одинакова для обеих версий.

Таблица символов LCD1602

Это 8-битный символ, в котором сначала идут старшие 4 бита, а затем младшие 4 бита — они вместе образуют полный байт символа. В справочной таблице старшие 4 бита соответствуют столбцам, а младшие 4 бита — строкам.

Например, чтобы получить двоичное представление символа «#», старшие 4 бита равны 0010, а младшие 4 бита — 0011. Объединив их, получаем полное двоичное значение 00100011. В Rust это значение можно записать либо в двоичном виде (0b00100011), либо в шестнадцатеричном (0x23).

Крейт hd44780-driver

В используемом нами крейте hd44780-driver символы можно выводить напрямую: как один байт или как последовательность байтов.

Запись одного байта

#![allow(unused)]
fn main() {
lcd.write_byte(0x23, &mut timer).unwrap();
lcd.write_byte(0b00100011, &mut timer).unwrap();
}

Запись нескольких байтов

#![allow(unused)]
fn main() {
lcd.write_bytes(&[0x23, 0x24], &mut timer).unwrap();
}