roboforum.ru

Технический форум по робототехнике.
Текущее время: 03 июн 2025, 00:56

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 27 авг 2009, 22:17 
Не в сети

Зарегистрирован: 06 май 2008, 18:33
Сообщения: 170
Откуда: г. Щигры, Курская обл.
прог. языки: Delphi, BASCOM-AVR(basic)
ФИО: Павел
Появилась необходимость выводить на символьный дисплей русские буквы. Но тут оказалось не так просто ... если в BASCOM-AVR выводить русские буквы, то получаем на дисплее «непонятные» символы. Поковырявшись на просторах Интернета, нашел очень полезную программку LCD20 - брал http://www.robotsspace.ucoz.ru/LCD20.exe , может у кого то она уже и есть...
С помощью нее можно переводить русские буквы в «непонятные» для нас символы, но вот зато для LCD это как рас и понятные символы.
Вложение:
LCD20.jpg
LCD20.jpg [ 29.57 КиБ | Просмотров: 11620 ]

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

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

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

Вложение:
DSC01666.jpg
DSC01666.jpg [ 70.44 КиБ | Просмотров: 10768 ]

Вот только буква ё считается неопределенным символом в программе 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
СообщениеДобавлено: 27 авг 2009, 23:34 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
эм, а в чем секрет программы вы не узнали?

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 01:26 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
Да судя по внешнему виду строчек - она заменяет часть русских буквы английскими, совпадающими по написанию, а те, для колторых таких нет - символами из кодировки Western, у которых коды соответствуют этим буквам в знакогенераторе ЖКИ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 06:43 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Нету никаких секретов. В русифицированных индикаторах действительно нет русских символов, написание которых совпадает с латинскими. А вот прочие присутствуют, но кодировка какая-то левая.

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

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

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


Вложения:
ind_1_9_1.gif
ind_1_9_1.gif [ 70.34 КиБ | Просмотров: 11326 ]

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 18:18 
Не в сети

Зарегистрирован: 06 май 2008, 18:33
Сообщения: 170
Откуда: г. Щигры, Курская обл.
прог. языки: Delphi, BASCOM-AVR(basic)
ФИО: Павел
MiBBiM, boez, blindman - вы не тек поняли. Я не хвастаюсь этой программой. и тем что добился.
Я создал этот топик не для того чтобы похвастаться что у меня все работает, а для того чтобы поделиться с участниками робофорума полезной информацией (я лично на этом форуме не нашел такого топика как в BASCOM-AVR выводить русские буквы да дисплей, если плохо искал - ткните пальцем). Ведь разве не для этого создан этот форум чтобы обсужать различные идеи, проекты, делиться полезной информацией с другими участниками форума и т.д.?
Если администраторы и большая часть участников форума считают что этот топик бесполезен и им не воспользуется ни один новичек который начал заниматься программированием МК, то удалите его.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 18:24 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
С чего ты взял, что кто-то так считает? Один задал вопрос, ещё двое - дополнили информацию. Ведь разве не для этого создан этот форум?

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 18:38 
Не в сети
Аватара пользователя

Зарегистрирован: 29 окт 2007, 18:11
Сообщения: 1866
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript
кстати, секрет проги как раз таки и заключается в таблице соответствия кодов бэйсиковских и ЖКишных символов

_________________
Tomorrow will be. Better


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 19:06 
Не в сети
Аватара пользователя

Зарегистрирован: 21 янв 2005, 12:16
Сообщения: 977
Откуда: Germany
прог. языки: asm
а я что то не пойму (не знаю деталей про Баском-АВР)...
если есть даташит на экран. в нём видны коды искомых символов. почему бы програмно не скармливать экрану эти коды ? зачем что то конвертировать, мудрить ...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 21:48 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
nest, я не вникал в прогу вообще, но имхо, она делает "переадресацию" ... все равно что на каком нить советском УМК-80... хочешь вывести символ C - берешь смещение 0x0C и начальный адрес таблицы перекодировки.. и достаешь оттуда нужный байт )

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

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 28 авг 2009, 23:08 
Не в сети

Зарегистрирован: 06 май 2008, 18:33
Сообщения: 170
Откуда: г. Щигры, Курская обл.
прог. языки: Delphi, BASCOM-AVR(basic)
ФИО: Павел
nest
ну и о проге:
обязательно нужно отметить, что если в используемом экране отсутствуют прошитые символы кирилицы (что встречается достаточно часто), то программа ничем не поможет. И остаётся только вариант с расположением собственных символов в RAM экрана.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 29 авг 2009, 05:53 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
nest писал(а):
обязательно нужно отметить, что если в используемом экране отсутствуют прошитые символы кирилицы (что встречается достаточно часто), то программа ничем не поможет. И остаётся только вариант с расположением собственных символов в RAM экрана.

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

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: BASCOM-AVR. Выводим русские буквы на символьный LCD
СообщениеДобавлено: 13 мар 2012, 21:06 
Не в сети
Аватара пользователя

Зарегистрирован: 11 фев 2007, 21:13
Сообщения: 23
Откуда: Екатеринбург
Skype: viacheslavmezentsev
прог. языки: VB6, C++, OPascal, C#, Java, Win32Asm, ...
ФИО: Мезенцев Вячеслав Николаевич
Вот как делать это правильно:

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
Screen04.PNG [ 93.32 КиБ | Просмотров: 9343 ]

_________________
Россия навсегда!
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO