Работа с ЖКИ на контроллере HD44780 и его аналогах
- pashtedddd
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Вс апр 17, 2011 00:25:34
- Откуда: зеленоград
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
да!
предлагаете заземлить неиспользуемые выводы?
предлагаете заземлить неиспользуемые выводы?
Я вам не помощник! ©
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Можно попробовать... Или (потом) наоборот подтянуть к питанию...
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Никогда никуда не подтягивал. Ни вверх, ни вниз. Было лень, а зачем, если без разницы
Просто на эти площадки ничего не припаивал. Ни разу не возникало проблем.
С уважением,
Виктор.
Виктор.
- pashtedddd
- Открыл глаза
- Сообщения: 53
- Зарегистрирован: Вс апр 17, 2011 00:25:34
- Откуда: зеленоград
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Ребята приветствую, у меня LCD HJ1602A (HD44780), не понимающий русские символы, можно ли как то его научить русскому языку через прошивку, в исходнике текст выглядит так
unsigned char Test[] EEMEM = "Test";, МК Atmega8A
Спасибо!
unsigned char Test[] EEMEM = "Test";, МК Atmega8A
Спасибо!
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
CGRAM контроллера HD44780 имеет место для 8 пользовательских символов(адреса 0...7). Если в ваших строках встречается не более 8-ми русских буков, то можно попробовать.
Если всего используется больше 8-ми символов, но в каждой отображаемой строке их не более 8-ми, то можно изменить код, чтобы оперативно подгружать недостающие буквы.
Если всего используется больше 8-ми символов, но в каждой отображаемой строке их не более 8-ми, то можно изменить код, чтобы оперативно подгружать недостающие буквы.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
uk8amk писал(а):CGRAM контроллера HD44780 имеет место для 8 пользовательских символов(адреса 0...7). Если в ваших строках встречается не более 8-ми русских буков, то можно попробовать.
Если всего используется больше 8-ми символов, но в каждой отображаемой строке их не более 8-ми, то можно изменить код, чтобы оперативно подгружать недостающие буквы.
Спасибо!
Знать бы еще как это сделать...
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Некоторые библиотеки компиляторов уже имеют функции загрузки пользовательских символов.
Например, 4-битная библиотека, входящая в состав CVAVR, включает функцию define_char. В функцию передается указатель на массив байт во флеш(изображение символа) и назначаемый номер символа.
Если таковая функция отсутсвует, то придется ее написать ручками. Естетсвенно, если вы планируете много и серьезно заниматься с такими экранчиками, то для этого вам нужно будет хорошо изучить даташит на контроллер 44780(именно на контроллер, а не на экранчик).
Например, 4-битная библиотека, входящая в состав CVAVR, включает функцию define_char. В функцию передается указатель на массив байт во флеш(изображение символа) и назначаемый номер символа.
Если таковая функция отсутсвует, то придется ее написать ручками. Естетсвенно, если вы планируете много и серьезно заниматься с такими экранчиками, то для этого вам нужно будет хорошо изучить даташит на контроллер 44780(именно на контроллер, а не на экранчик).
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Я тут вот что заметил, если записывать в таком формате
unsigned char TestRunning[] EEMEM = {170,64,55,174,83,66,94,18,0};, то каждая цифра это какой то символ, кто знает где эти символы? и как узнать какая цифра соответствует символу?
unsigned char TestRunning[] EEMEM = {170,64,55,174,83,66,94,18,0};, то каждая цифра это какой то символ, кто знает где эти символы? и как узнать какая цифра соответствует символу?
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Логично предположить что эти сведения спрятаны в спецификации или даташите на экранчик.
- Вложения
-
- WH1602D-YGB-CP.pdf
- (63.42 КБ) 491 скачивание
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
... если таким образом записывать символы, то это код для "недругов"Slavok47 писал(а):Я тут вот что заметил, если записывать в таком формате unsigned char TestRunning[] EEMEM = {170,64,55,174,83,66,94,18,0};,
ИМХО лучше сразу перевести все в читаемый вид с помощью #define...
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
uk8amk писал(а):Если всего используется больше 8-ми символов, но в каждой отображаемой строке их не более 8-ми, то можно изменить код, чтобы оперативно подгружать недостающие буквы.
Как то маловато для такого большого дисплея, че блин не могли хотя бы 16 сделать
Лучше уж тогда с русским языком поискать, цена то такая же.
В поисках истины человек развивается.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
ChipKiller писал(а):... если таким образом записывать символы, то это код для "недругов"Slavok47 писал(а):Я тут вот что заметил, если записывать в таком формате unsigned char TestRunning[] EEMEM = {170,64,55,174,83,66,94,18,0};,![]()
ИМХО лучше сразу перевести все в читаемый вид с помощью #define...
попробовал так
unsigned char TestRunning[] EEMEM = {0x54,0x65,0x63,0xBF,0x00};
вроде нормально, но последний символ корявый, а должна быть буква т
можно пример с #define?
- ChipKiller
- Сверлит текстолит когтями
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
.. не дожна, так как русских букв нет, а как их получить Вам уже объяснил uk8amkSlavok47 писал(а):..но последний символ корявый, а должна быть буква т
Тот же результат можно получить если написать так:
Код: Выделить всё
unsigned char TestRunning[] EEMEM = {'T','e','c','T',0};Символы, которые не совпадают с ASCII определим с помощью #define например
Код: Выделить всё
#define ch_rus_t 0x..-
Andreevich
- Родился
- Сообщения: 6
- Зарегистрирован: Пн дек 22, 2008 06:06:28
- Откуда: Север крайний
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Доброго дня, форумчане!
Достались на разборку(запчасти, hi!) три HDSL концентратора CAMPUS-HRS.
Из начинки представляет интерес двухстрочный ЖК модуль MC1602L-SYLU фирмы WAYTON M.I.T. Даташит на модули серии МС этой фирмы нашел. Проблема в том, что плата этого модуля была специально разработана под CAMPUS и на ней кроме индикатора расположены три кнопки и три светодиода выводы, которых выходят на 24х контактный разъем. Поиски схемы ни к чему не привели. Выводы питания, контрастности и подсветки определить не проблема. Как определить выводы RS, R/W, DB0-DB7? Может, кто пользовал подобное изделие подскажите, плиз!
Достались на разборку(запчасти, hi!) три HDSL концентратора CAMPUS-HRS.
Из начинки представляет интерес двухстрочный ЖК модуль MC1602L-SYLU фирмы WAYTON M.I.T. Даташит на модули серии МС этой фирмы нашел. Проблема в том, что плата этого модуля была специально разработана под CAMPUS и на ней кроме индикатора расположены три кнопки и три светодиода выводы, которых выходят на 24х контактный разъем. Поиски схемы ни к чему не привели. Выводы питания, контрастности и подсветки определить не проблема. Как определить выводы RS, R/W, DB0-DB7? Может, кто пользовал подобное изделие подскажите, плиз!
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Мастрачу термореле на меге 32 с 18b20 и винстаром 1602...
Так вот, запарился я с русским и символами и прочим.. вроде бы все реализовал, но хочу проще!
Где-то выше упоминалась библиотека http://life.netimperia.com/2010/08/08/hd44780-avr/
Кто использовал под CVAVR?)
Лично у меня возникли следующие проблемы:
сначала компилятор матершинил на
#include <avr/io.h>
#include <utils/delay.h>
в файле .h библиотеки, естественно исправил на
#include <io.h>
#include <delay.h>
теперь говорит вот чего:
Error: ..\inc\hd44780.h(377): missing '('
вот в средней строке..
Как быть?
Так вот, запарился я с русским и символами и прочим.. вроде бы все реализовал, но хочу проще!
Где-то выше упоминалась библиотека http://life.netimperia.com/2010/08/08/hd44780-avr/
Кто использовал под CVAVR?)
Лично у меня возникли следующие проблемы:
сначала компилятор матершинил на
#include <avr/io.h>
#include <utils/delay.h>
в файле .h библиотеки, естественно исправил на
#include <io.h>
#include <delay.h>
теперь говорит вот чего:
Error: ..\inc\hd44780.h(377): missing '('
вот в средней строке..
Код: Выделить всё
#if HD44780_CONFIG_PINMODE>0
uint8_t hd44780_pin_convert_to(uint8_t);
uint8_t hd44780_pin_convert_from(uint8_t);
#endif
uint8_t hd44780_ready();
#if HD44780_CONFIG_OPTIMIZATION<=0
void hd44780_send_nibble(uint8_t);
#endifКак быть?
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Спасите и помогите. уже стенку башкой разбил и ничего не выводит именно этот дисплей. подключал к пику 16f628a. Только тестовая верхняя строка.
Сегодня нарыл в гугле что якобы если не используется RW порт то его нужно подтянуть на землю через резюк. поставил на 7.5к. Кхм, на верхней строке начал рандомно при включении появлятся в лучшем случае курсор, в худшем - черточки, палочки, точечки... И да, если раньше тупо подать питание - светиться тестовая строка, а щас без мк он вообще ничего не показывает, только энту билибирдень. Прошивка к нему в аттаче. Пишу на асме, бейсик и др. языки не прделагать.
P.S. В гугле примеров работы с ним нет!!!!
Сегодня нарыл в гугле что якобы если не используется RW порт то его нужно подтянуть на землю через резюк. поставил на 7.5к. Кхм, на верхней строке начал рандомно при включении появлятся в лучшем случае курсор, в худшем - черточки, палочки, точечки... И да, если раньше тупо подать питание - светиться тестовая строка, а щас без мк он вообще ничего не показывает, только энту билибирдень. Прошивка к нему в аттаче. Пишу на асме, бейсик и др. языки не прделагать.
P.S. В гугле примеров работы с ним нет!!!!
- Вложения
-
- test_lcd.asm
- (15.56 КБ) 558 скачиваний
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
shev377 писал(а):Код: Выделить всё
uint8_t hd44780_ready();
#if HD44780_CONFIG_OPTIMIZATION<=0
void hd44780_send_nibble(uint8_t);
#endif
Как быть?
Типа данных uint8_t нет в CVAVR
пишите
Код: Выделить всё
unsigned char hd44780_ready(); директивы компилятора winavr не будут работать в CVAVR.
В поисках истины человек развивается.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Достаточно подключить заголовочный файл stdint.h и произойдет чудо, uint8_t заработает и в CV.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Здравствуйте помогите мне с прогараммой хочу вывести на LCD хоть пиксель пока неполучаестся.(Пытался найти какойнить очень простой пример неполучилось)
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m48def.inc"
.nolist
.list
.def temp = r16;
.def counter = r17;
.def delay = r25;
.def delay1 = r18;
.def delay2 = r19;
rjmp init;
zapoln:
ldi delay,0x01;
ldi delay1,0x5;
;задерка
loop:
subi delay,1;
sbci delay1,0;
brcc loop;
ret
init:
ldi temp,0b00000001;настраиваем LCD на команду (E=1,RS=0)
out portd,temp;
ldi temp,0b10111101;1бит -очищаем Дисплей,3,4бит-включаем дисплей,5бит-выбираем 8-битную передачу,8бит- сразу выводим на экран(DDRaM)
out PORTB,temp;
rcall zapoln;
ldi temp,0b00000000;настраиваем LCD на команду (E=0,RS=0)
out portd,temp;
rcall zapoln;ждем готовности для подготовки к данным
ldi temp,0b00000101;настраиваем LCD на данные (E=1,RS=1)
out portd,temp;
rcall zapoln;
ldi temp,0b00000000;настраиваем LCD на данные
out portd,temp;
start:
ldi temp,0X31;выводим "1"
out portb,temp;
rjmp start;
вроде даже экран засветился но заветного числа непоявилось.
.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\m48def.inc"
.nolist
.list
.def temp = r16;
.def counter = r17;
.def delay = r25;
.def delay1 = r18;
.def delay2 = r19;
rjmp init;
zapoln:
ldi delay,0x01;
ldi delay1,0x5;
;задерка
loop:
subi delay,1;
sbci delay1,0;
brcc loop;
ret
init:
ldi temp,0b00000001;настраиваем LCD на команду (E=1,RS=0)
out portd,temp;
ldi temp,0b10111101;1бит -очищаем Дисплей,3,4бит-включаем дисплей,5бит-выбираем 8-битную передачу,8бит- сразу выводим на экран(DDRaM)
out PORTB,temp;
rcall zapoln;
ldi temp,0b00000000;настраиваем LCD на команду (E=0,RS=0)
out portd,temp;
rcall zapoln;ждем готовности для подготовки к данным
ldi temp,0b00000101;настраиваем LCD на данные (E=1,RS=1)
out portd,temp;
rcall zapoln;
ldi temp,0b00000000;настраиваем LCD на данные
out portd,temp;
start:
ldi temp,0X31;выводим "1"
out portb,temp;
rjmp start;
вроде даже экран засветился но заветного числа непоявилось.
- Вложения
-
- risunok.png
- (15.3 КБ) 655 скачиваний