roboforum.ru

Технический форум по робототехнике.

BASCOM-AVR. Выводим русские буквы на символьный LCD

BASCOM-AVR. Выводим русские буквы на символьный LCD

VIRUS_V8 » 27 авг 2009, 22:17

Появилась необходимость выводить на символьный дисплей русские буквы. Но тут оказалось не так просто ... если в BASCOM-AVR выводить русские буквы, то получаем на дисплее «непонятные» символы. Поковырявшись на просторах Интернета, нашел очень полезную программку LCD20 - брал http://www.robotsspace.ucoz.ru/LCD20.exe , может у кого то она уже и есть...
С помощью нее можно переводить русские буквы в «непонятные» для нас символы, но вот зато для LCD это как рас и понятные символы.
LCD20.jpg

В верхнем левом углу программы располагается дисплей (20 символа по 2 строки) в который нужно вводить то что вы хотите чтоб вывел дисплей в реальности, ниже выводятся так называемые «непонятные» символы (нас интересует панель For Bascom) которые нужно скопировать и потом вставить в то место вашей программы, где нужен вывод на LCD.
И все Работает!
DSC01662.jpg

Пока отлаживал программу наткнулся на грабли... симулятор, входящий в BASCOM-AVR не понимает символы преобразованные с помощью программы LCD20 и выводит что зря.
AVR Simulator.jpg

Я думал что все проделанное мной было напрасно, но тут возникла мысль что возможно симулятор просто «глючит» (до этого «заливать» программу в МК не пробовал, отлаживал в симуляторе), «залил» программу в МК и оказалось что так и есть. На LCD выводятся русские буквы.
Вот фото с русским алфавитом (буквы через одну строчная-прописная )
DSC01664.jpg

DSC01666.jpg

Вот только буква ё считается неопределенным символом в программе LCD20 и она ругается на него и заменяет символом пробел.
Так что кому надоело думать каким символом латинского алфавита можно заменить, например русскую букву «Щ» или «Ж», то это как раз для вас (у меня раньше такая проблема была).
Вот текст программы которая на первой строке выводит «Ура», на вторую строку «Работает»
Код: Выделить всёРазвернуть
'*******************************************************************************
' Автор: Сигаев Павел (VIRUS_V8)
' Дата:  22.08.2009 г.
' CPU:  ATmega8
' Тактовая частота:  4000000  Hz
' Компилятор: BASCOM-AVR 1.11.9.0

' Коментарии: тестовая версия программы - выводим руские буквы на символьный LCD
'
'*******************************************************************************

$regfile = "m8def.dat"                                      ' подключаем файл спецификации микроконтроллера ATmega8
$crystal = 4000000                                          ' указываем на какой частоте работаем
$hwstack = 32
$swstack = 10
$framesize = 40

' указываем конфигурацию подключения дисплея к выводам порта микроконтроллера (в нашем случае это порт D)
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2


' используем дисплей - 2 строки по 8 знакомест в каждой
' в BASCOM-AVR не определен дисплей 8х2, но это не проблема!!!
Config Lcd = 16 * 2                                         ' выбираем дисплей - 2 строки по 16 знакомест в каждой
' и работаем как с дисплеем 8х2 (используем только восемь (0-7) первых знакомест дисплея, последующие не будут видны на дисплее)

Cls                                                         ' очищаем содержимое дисплея
Cursor Off Noblink                                          ' делаем курсор не видимым
Home Upper : Lcd "©pa"                                      ' усанавливаем курсор на первую строку дисплея и выводим текст "Ура"
Lowerline : Lcd "PaІoїaeї"                                  ' устанавливаем курсор на вторую строку и выводим текст "Работает"

End                                                         ' конец программы

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

MiBBiM » 27 авг 2009, 23:34

эм, а в чем секрет программы вы не узнали?

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

boez » 28 авг 2009, 01:26

Да судя по внешнему виду строчек - она заменяет часть русских буквы английскими, совпадающими по написанию, а те, для колторых таких нет - символами из кодировки Western, у которых коды соответствуют этим буквам в знакогенераторе ЖКИ.

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

blindman » 28 авг 2009, 06:43

Нету никаких секретов. В русифицированных индикаторах действительно нет русских символов, написание которых совпадает с латинскими. А вот прочие присутствуют, но кодировка какая-то левая.

Кстати, можно и на нерусифицированные индикаторы выводить русские символы - у индикаторов есть область RAM, в которую можно записать коды собственных символов. Правда, маловато их там - 8 ЕМНИП.

Добавлено спустя 5 минут 2 секунды:
VIRUS_V8 писал(а):Пока отлаживал программу наткнулся на грабли... симулятор, входящий в BASCOM-AVR не понимает символы преобразованные с помощью программы LCD20 и выводит что зря.

Просто не стали заморачиваться с русификацией. Хотя есть ещё вариант, что просто не подозревают, что кроме английского алфавита что-то ещё существует :)
Вложения
ind_1_9_1.gif

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

VIRUS_V8 » 28 авг 2009, 18:18

MiBBiM, boez, blindman - вы не тек поняли. Я не хвастаюсь этой программой. и тем что добился.
Я создал этот топик не для того чтобы похвастаться что у меня все работает, а для того чтобы поделиться с участниками робофорума полезной информацией (я лично на этом форуме не нашел такого топика как в BASCOM-AVR выводить русские буквы да дисплей, если плохо искал - ткните пальцем). Ведь разве не для этого создан этот форум чтобы обсужать различные идеи, проекты, делиться полезной информацией с другими участниками форума и т.д.?
Если администраторы и большая часть участников форума считают что этот топик бесполезен и им не воспользуется ни один новичек который начал заниматься программированием МК, то удалите его.

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

blindman » 28 авг 2009, 18:24

С чего ты взял, что кто-то так считает? Один задал вопрос, ещё двое - дополнили информацию. Ведь разве не для этого создан этот форум?

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

MiBBiM » 28 авг 2009, 18:38

кстати, секрет проги как раз таки и заключается в таблице соответствия кодов бэйсиковских и ЖКишных символов

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

nest » 28 авг 2009, 19:06

а я что то не пойму (не знаю деталей про Баском-АВР)...
если есть даташит на экран. в нём видны коды искомых символов. почему бы програмно не скармливать экрану эти коды ? зачем что то конвертировать, мудрить ...

ну и о проге:
обязательно нужно отметить, что если в используемом экране отсутствуют прошитые символы кирилицы (что встречается достаточно часто), то программа ничем не поможет. И остаётся только вариант с расположением собственных символов в RAM экрана.

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

Duhas » 28 авг 2009, 21:48

nest, я не вникал в прогу вообще, но имхо, она делает "переадресацию" ... все равно что на каком нить советском УМК-80... хочешь вывести символ C - берешь смещение 0x0C и начальный адрес таблицы перекодировки.. и достаешь оттуда нужный байт )

а для чего она нужна.. ну мало ли.. мб по уарту будет приходить строка а тебе ее нада на ЖКИ,. вот и юзаем..

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

VIRUS_V8 » 28 авг 2009, 23:08

nest
ну и о проге:
обязательно нужно отметить, что если в используемом экране отсутствуют прошитые символы кирилицы (что встречается достаточно часто), то программа ничем не поможет. И остаётся только вариант с расположением собственных символов в RAM экрана.


согласен, этот момент я упустил

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

blindman » 29 авг 2009, 05:53

nest писал(а):обязательно нужно отметить, что если в используемом экране отсутствуют прошитые символы кирилицы (что встречается достаточно часто), то программа ничем не поможет. И остаётся только вариант с расположением собственных символов в RAM экрана.

А я разве не то же самое написал?

Re: BASCOM-AVR. Выводим русские буквы на символьный LCD

uni » 13 мар 2012, 21:06

Вот как делать это правильно:

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
Вложения
Screen04.PNG
Русские символы на бейсике


cron
Rambler\'s Top100 Mail.ru counter