[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Русский текст на HD44780
униДата: Суббота, 12.05.2012, 10:27 | Сообщение # 1
Группа: Проверенные
Сообщений: 16

Статус: Offline
Может быть кому-то будет интересным. Написал свой вариант работы с этим контроллером специально для вывода текста на русском: https://mysvn.ru/schoolbell/pbiidemo/bascom/LCD.bas

Как использовать: https://mysvn.ru/schoolbell/pbiidemo/bascom/PBIIDemo.bas

Настройка модуля тут: https://mysvn.ru/schoolbell/pbiidemo/bascom/LCD_Config.bas




Сообщение отредактировал уни - Суббота, 12.05.2012, 10:43
 
exersizzeДата: Суббота, 12.05.2012, 12:05 | Сообщение # 2
Группа: Администраторы
Сообщений: 723

Статус: Offline
Интересно! Я вот для вывода кириллицы пользуюсь вот этой прогой http://avrproject.ru/ds1307/LCD_RUS.rar
но она помогает если русские символы зашиты в память контроллера, т.е. если дисплей "русифицирован"

Ваш вариант я так понимаю уже содержит данные для отрисовки символов, даже если их нет в памяти дисплея?


 
униДата: Суббота, 12.05.2012, 12:17 | Сообщение # 3
Группа: Проверенные
Сообщений: 16

Статус: Offline
Нет, дисплей должен иметь кириллицу в своей памяти. Мой код содержит таблицу перекодировки из CP1251 в таблицу знакогенератора HD44780.
Когда я пытался завести простой проект на BASCOM AVR с использование стандартной библиотеки, то никак не смог с ходу заставить его работать. Кроме того, меня напрягает отсутствие поддержки кириллицы. Поэтому я написал свои функции для работы с этим контроллером.

Есть два способа вывода русского текста:
1) Перекодировать русский текст (или строки) в исходнике при помощи внешней программы (статический способ на этапе компиляции).
2) Перекодировать русский текст налету (динамический во время выполнения программы).

Недостаток первого способа - это нечитаемый текст в исходнике и необходимость в сторонней программе.
Второй способ не имеет очевидных недостатков, т.к. это типовое решение, которое аналогично вариантам в других средах.

Меня просто удивляет, что до сих пор никто не написал что-то подобное для BASCOM AVR. Все привыкли к крякозяблам в коде.

Что же касается вывода текста на нерусифицированном ЖКИ, то это отдельная задача.

Таблица в исходнике избыточна, её можно уполовинить, но я её оставил для полноты картины.

П.С. Да, кстати, все выводы могут быть любыми (на любом порту). Интерфейс 4-х разрядный.




Сообщение отредактировал уни - Суббота, 12.05.2012, 12:20
 
shermanДата: Суббота, 12.05.2012, 17:39 | Сообщение # 4
Группа: Проверенные
Сообщений: 55

Статус: Offline
А чего тут удивляться, есть же стандартная команда вывода на дисплей текста и есть таблица кодировки руссифицированного контроллера HD44780. Да нужен сторонний конвертер, но использование стандартной функции вывода текста чрезвычайна проста, а кракозяблы в коде особо и не напрягают.
Так что изобрели велосипед, имхо.


 
униДата: Суббота, 12.05.2012, 17:45 | Сообщение # 5
Группа: Проверенные
Сообщений: 16

Статус: Offline
Нет, велосипеда я не изобретал:
Подключение ЖКИ к микроконтроллеру в Bascom AVR
Quote
1. Написать подпрограмму для контроллера, которая на лету будет декодировать ASCII коды и выводить уже правильные символы на ЖКИ. Удобна тем, что позволяет передавать любые строки без опасения, что они будут выведены впоследствии неправильно. Но этот способ требует лишних ресурсов на перекодировку, а также нужно постоянно хранить в памяти таблицу символов.
2. Использовать утилиту для ПК, которая сама переконвертирует нужные строки в нужный формат, которые сразу подставляются в код для вывода. Удобно тем, что не занимает память контроллера, работает быстро и вообще не требует ресурсов для перекодировки. Но минус в том, что в коде программы нужные строки уже не разобрать. Вывод символов в этом фиксированный, то есть выводить можно только заранее выбранный набор строк. При использовании ввода, например, с RS-232, русские символы будут отображены некорректно.

О наличии подпрограмм для первого случая мне известно, но я не встречал ни одной библиотеки или функции на Basom, которая бы выполняла это. Если вы встречали что-то подобное, убедительная просьба прислать это мне.

http://decada.org.ru/project/lessons/bascom_avr/16/


 
exersizzeДата: Суббота, 12.05.2012, 17:52 | Сообщение # 6
Группа: Администраторы
Сообщений: 723

Статус: Offline
а вот интересно как вывести кириллицу на не руссифицированный дисплей? вообще реально?

 
униДата: Суббота, 12.05.2012, 18:01 | Сообщение # 7
Группа: Проверенные
Сообщений: 16

Статус: Offline
По моему способу можно, если на экране в конкретный момент времени будет находится набор из русских букв, похожих на английские (первая половина таблицы), плюс 8 произвольных символов, которые можно сформировать налету (любые, в т. ч. и русские буквы). Думаю, что можно, если фразы не большие.
Да, это можно сделать и стандартными средствами библиотеки.




Сообщение отредактировал уни - Суббота, 12.05.2012, 18:03
 
Toxa12345Дата: Суббота, 19.01.2013, 19:30 | Сообщение # 8
Группа: Пользователи
Сообщений: 3

Статус: Offline
Купил дисплей на ибей, а он оказался не русифицирован sad

 
exersizzeДата: Воскресенье, 20.01.2013, 14:16 | Сообщение # 9
Группа: Администраторы
Сообщений: 723

Статус: Offline
Та же беда, купил там уже 4 дисплея с контроллером HD44780 , ну или подобным. Ни один не поддерживает кириллицу. Так что остается довольствоватся тем что можно использовать свои 8 символов + английскими по написанию схожими с кириллическими.

 
ssqlДата: Пятница, 05.04.2013, 22:20 | Сообщение # 10
Группа: Проверенные
Сообщений: 7

Статус: Offline
\Товарищи, проблемка с программой http://avrproject.ru/ds1307/LCD_RUS.rar. Хочу получить символ   Б   , но при конвертировании в Lcd20 выдает это:

Rem Б
LCD " "
Проверить на железе нет пока возможности, но в протеусе  пробел.. как быть?
Контроллер русифицирован.




Сообщение отредактировал ssql - Пятница, 05.04.2013, 22:21
 
exersizzeДата: Пятница, 05.04.2013, 22:50 | Сообщение # 11
Группа: Администраторы
Сообщений: 723

Статус: Offline
Добавь в протеус библиотеку для поддержки кириллицы, должно отображаться нормально
http://www.picbasic.ru/_fr/1/LCDALPHA.dll


 
ssqlДата: Воскресенье, 07.04.2013, 15:46 | Сообщение # 12
Группа: Проверенные
Сообщений: 7

Статус: Offline
Проверил все отлично работает!



Сообщение отредактировал ssql - Воскресенье, 07.04.2013, 16:40
 
униДата: Четверг, 31.10.2013, 22:02 | Сообщение # 13
Группа: Проверенные
Сообщений: 16

Статус: Offline
Проект переехал на другой адрес: https://mysvn.ru/avr/bascom/base/

Состав:
1. https://mysvn.ru/avr/bascom/base/LCD_Header.bas
2. https://mysvn.ru/avr/bascom/base/LCD.bas

Тестовый проект: https://mysvn.ru/avr/bascom/HD44780/

Напоминаю, что это самописный модуль для управления LCD на базе драйвера HD44780. На текущий момент вы можете связываться с индикатором по 4-проводной линии, при этом все линии данных и управления могут быть расположены где и как угодно. Выглядит это так:

Прикрепления: 6606791.png (121.0 Kb)


 
  • Страница 1 из 1
  • 1
Поиск: