Работа с ЖКИ на контроллере HD44780 и его аналогах
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Схема макетной платы. Всего того, что я к ней подключал там нет. Дисплей, естественно, подключается по даташыту. На счет задержки я пробовал, только уже не уверен, достаточное ли было время задержки. Попробую этот вариант, но что-то мне кажется, это не поможет.
-
BerZerK-ku
- Мучитель микросхем
- Сообщения: 492
- Зарегистрирован: Вт июл 22, 2008 08:10:54
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Попробуйте в инициализации вставить перед командой 0х28 еще команду 0х20.
А после команды 0х01 надо подождать 1.5-2мс.
А после команды 0х01 надо подождать 1.5-2мс.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
задача:
подключить дисплей 44780 16x2 используя не более 3-4 линий от меги...
дисплей сейчас трудиться в 4х битном режиме (7 сигналов), но реально я смогу выделить только 3, максимум 4 линии для управления им...
Кто нить озадачивался подключением дисплея (стандартный 44780 16x2) подобным минимальным количеством сигналов..
например при помощи сдвигового регистра (я так думаю)..?
p.s. вариант со второй мегой не рассматриваю (нет такой возможности)
подключить дисплей 44780 16x2 используя не более 3-4 линий от меги...
дисплей сейчас трудиться в 4х битном режиме (7 сигналов), но реально я смогу выделить только 3, максимум 4 линии для управления им...
Кто нить озадачивался подключением дисплея (стандартный 44780 16x2) подобным минимальным количеством сигналов..
например при помощи сдвигового регистра (я так думаю)..?
p.s. вариант со второй мегой не рассматриваю (нет такой возможности)
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
ВитГо писал(а):p.s. вариант со второй мегой не рассматриваю (нет такой возможности)
2 ноги на SPI + строб Е. Использовать регистры.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
я думаю что нужно будет использовать регистры и линии обычного порта
в проекте будет мега8 с занятыми ADC линиями поэтому SPI я так понимаю отпадает (они на том же порту сидят)
в проекте будет мега8 с занятыми ADC линиями поэтому SPI я так понимаю отпадает (они на том же порту сидят)
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
ВитГо писал(а):SPI я так понимаю отпадает (они на том же порту сидят)
Значит, реализовать программно, не такой уж и сложный протокол.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
если кто озадачиться подключением дисплея минимальным количеством линий - то смотреть на easyelectronics - там в итоге пришли к 2ум проводам... всего к двум.. плюсу и минусу
) меньше точно не получиться (иначе экран останется без питания)
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
это моя самая первая работа!!! 5-6 летней давности... когда я лежал с радикулитом и изучал пики... нацарапал драйверок...
дисплей работает по 4х битной схеме.. подключен 6ю проводами к процу... сперва это было написано пол пик 628й...
потом перенёс на авр...
поясню немного по тексту...
******************************************************
; 80-1 сторока, C0-2 сторока, 90-3 сторока, D0-4 сторока,
OutMes:
ldi Select,(0<<RS) ; RS=0 выбираем регистр команд дисплея
ldi Temp,0x84 ; 8= 1 сторока, 4= 5 место
rcall Send ; заносим в LCD
ldi Select,(1<<RS) ; RS=1 выбираем регистр данных
ldi Temp,'N' ;
rcall Send ; заносим в LCD
итд...
----------
вся память всех жисплеев представляет одну сплошную цепочку байт...
начиная с адреса 80н!!!
80-1 сторока, C0-2 сторока, 90-3 сторока, D0-4 сторока,
тоесть реально дисплеи могут быть 4 строки по 64 символа
надо токо попасть в нудный адрес!!! и это обязательно покажится на дисплее!!!
адреса меняются в строке
ldi Temp,0x84 ; 8= 1 сторока, 4= 5 место
тоесть 80н +04н
не обязательно на дисплее менять все символы сразу.. всмысле кадром... можно поменять несколько в нужном месте!!
это типа для быстродействия проги...
ldi Temp,'N' ;
rcall Send ; заносим в LCD
в регистр Temp заноситя нужный нам символ ...
rcall Send
и этои ПП выводится в дисплей... и так можно вывести все строки за раз начиная с адреса 80
потом заносим следущий символ .. выводим.. итд.. адрес вывода сам увеличивается на 1
кароче очень маленькая!!!! хорошо работающая!!!! прога
и не важно какого размера у вас дисплей!!! подходит под все!!!!
оперируйте адресом!!!
дисплей работает по 4х битной схеме.. подключен 6ю проводами к процу... сперва это было написано пол пик 628й...
потом перенёс на авр...
поясню немного по тексту...
******************************************************
; 80-1 сторока, C0-2 сторока, 90-3 сторока, D0-4 сторока,
OutMes:
ldi Select,(0<<RS) ; RS=0 выбираем регистр команд дисплея
ldi Temp,0x84 ; 8= 1 сторока, 4= 5 место
rcall Send ; заносим в LCD
ldi Select,(1<<RS) ; RS=1 выбираем регистр данных
ldi Temp,'N' ;
rcall Send ; заносим в LCD
итд...
----------
вся память всех жисплеев представляет одну сплошную цепочку байт...
начиная с адреса 80н!!!
80-1 сторока, C0-2 сторока, 90-3 сторока, D0-4 сторока,
тоесть реально дисплеи могут быть 4 строки по 64 символа
надо токо попасть в нудный адрес!!! и это обязательно покажится на дисплее!!!
адреса меняются в строке
ldi Temp,0x84 ; 8= 1 сторока, 4= 5 место
тоесть 80н +04н
не обязательно на дисплее менять все символы сразу.. всмысле кадром... можно поменять несколько в нужном месте!!
это типа для быстродействия проги...
ldi Temp,'N' ;
rcall Send ; заносим в LCD
в регистр Temp заноситя нужный нам символ ...
rcall Send
и этои ПП выводится в дисплей... и так можно вывести все строки за раз начиная с адреса 80
потом заносим следущий символ .. выводим.. итд.. адрес вывода сам увеличивается на 1
кароче очень маленькая!!!! хорошо работающая!!!! прога
и не важно какого размера у вас дисплей!!! подходит под все!!!!
оперируйте адресом!!!
- Вложения
-
- 16x2.zip
- (16.57 КБ) 272 скачивания
- Av4arik
- Поставщик валерьянки для Кота
- Сообщения: 1954
- Зарегистрирован: Чт янв 20, 2011 16:47:18
- Откуда: Старый Оскол
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Barisych писал(а):надо токо попасть в нудный адрес!!!
действительно нуДный адрес
Быстро, Качественно, Недорого.
Выбрать можно только 2 варианта.
Выбрать можно только 2 варианта.
- shurikss123
- Грызет канифоль
- Сообщения: 271
- Зарегистрирован: Пн окт 25, 2010 20:47:04
- Откуда: Казахстан, Астана
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
ребята, если кто-нибудь ткнет меня, процедуркой проверки статуса, на этом HD44780 буду при много благодарен, второй день ковыряю а до пиреть никак не могу.
-
ludvigtrasher
- Родился
- Сообщения: 3
- Зарегистрирован: Ср фев 24, 2010 12:07:13
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
кто имел дело с Gdm1602e?
собираю я такой бп http://avr.ru/ready/contr/power/power
при запуске чуда не произошло.подсветка работает и верхняя строка показывает квадратики,
пробовал менять мк,и прошивки один черт ни чего не меняется.
подскажите возможные причины при условии что собранно всё правильно.
еще интересут вопрос-как можно поверить работоспособность жк.
собираю я такой бп http://avr.ru/ready/contr/power/power
при запуске чуда не произошло.подсветка работает и верхняя строка показывает квадратики,
пробовал менять мк,и прошивки один черт ни чего не меняется.
подскажите возможные причины при условии что собранно всё правильно.
еще интересут вопрос-как можно поверить работоспособность жк.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
ludvigtrasher писал(а):кто имел дело с Gdm1602e?
собираю я такой бп http://avr.ru/ready/contr/power/power
при запуске чуда не произошло.подсветка работает и верхняя строка показывает квадратики,
пробовал менять мк,и прошивки один черт ни чего не меняется.
подскажите возможные причины при условии что собранно всё правильно.
еще интересут вопрос-как можно поверить работоспособность жк.
а контроллер запустился?
если да я бы предложил еще раз проверить подключение дисплея.. от ножки до ножки.. - все таки и дисплей как из статьи, и прошивка... - причина где то наверху !
-
ludvigtrasher
- Родился
- Сообщения: 3
- Зарегистрирован: Ср фев 24, 2010 12:07:13
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
осцыла у меня нет,ноя подключал светодиод к портам атмеги которые выводят инфу на жк.светодиод реагировал на вращение экодера и нажатия кнопки изменяя яркость и чистоту мерцания.получается мк работает,подключение сто раз проверил .
всетаки может кто знает как проверить работоспособность жки.
всетаки может кто знает как проверить работоспособность жки.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
От компа можно, если LPT есть - такой программой или другой подобной...ludvigtrasher писал(а):всетаки может кто знает как проверить работоспособность жки.
scio me nihil scire...
_______________________
<= Жалобная кнопка в правом нижнем углу... )
_______________________
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
здравствуйте!
Выкладываю на общее обозрение процедурку рисования горизонтальных прогрессбаров ( до 5-ти штук) с внутренним нормированием сигналов
первая процедура рисует в памяти экрана три системных символа - полностью закрашенный квадратик, полностью незакрашенный квадратик и концовку прогрессбара
вторая функция получает параметры
x - x координата первого кубика прогрессбара
y - у координата первого кубика прогрессбара
Num - порядковый номер прогрессбара (1...5)
Param - Собственно отображаемая величина
min - значение величины при которой на прогресбаре минимальный уровень
max - значение величины при которой прогрессбар полностью заполнен
Kubiks - кол-во знакомест в длину прогрессбара
Выкладываю на общее обозрение процедурку рисования горизонтальных прогрессбаров ( до 5-ти штук) с внутренним нормированием сигналов
Код: Выделить всё
void lcd_fill()
{
char a1;
unsigned char tg[8];
// рисуем закрашенный квадратик
for(a1=0;a1<8;a1++)
{
if(a1==1||a1==6)
tg[a1]=0;
else
tg[a1]=0xff;
}
define_char(tg, 0);
// рисуем две полоски вверху и внизу
for(a1=0;a1<8;a1++)
{
if(a1==0||a1==7)
tg[a1]=0xff;
else
tg[a1]=0x00;
}
define_char(tg, 1);
// рисуем ]
for(a1=0;a1<8;a1++)
{
if(a1==0||a1==7)
tg[a1]=0xff;
else
tg[a1]=0x00;
tg[a1]|=1;
}
define_char(tg, 2);
}
//#pragma optsize-
void dr_bar(char x, char y, char Num, unsigned int Param, unsigned int min, unsigned int max, unsigned char Kubiks)
{
unsigned char a1;
char b;
unsigned char Points;
unsigned int t1;
unsigned int t2;
unsigned char t3;
unsigned char tg[8];
unsigned int Param1;
// нормируем входной синал
Param1=Param;
Points = Kubiks*5;
Points-=2;
// если значение меньше минимального - пишем ноль
if(Param1<=min)
Param=0;
else
{
// если больше - считаем
// отнимем минимум
Param=Param1-min;
// поделим на полный размах и умножим на выходной размах
if(Param1>max)
Param=Points;
else
Param=(Param*Points)/(max-min);
}
// считаем кол-во полных квадратов и кол-во пикселей последнего
t1=Param+1;
a1=t1;
t2=a1/5;
t3=a1-(t2*5);
// рисуем переменный кубик
for(b=0;b<8;b++)
{
tg[b]=0;
if(b==0||b==7)
tg[b]=0xff;
if(b==1||b==6)
tg[b]=0;
else
{
for(a1=0;a1<t3;a1++)
tg[b]|=1<<(4-a1);
}
if(t2==Kubiks-1)
tg[b]|=1;
}
define_char(tg, Num+2);
// стаём в точку вывода первого кубика
lcd_gotoxy(x, y);
for(a1=0;a1<Kubiks;a1++)
{
if(a1<t2)
lcd_putchar(0);
else if(a1==t2)
lcd_putchar(Num+2);
else if(a1<Kubiks-1)
lcd_putchar(1);
else
lcd_putchar(2);
}
}
первая процедура рисует в памяти экрана три системных символа - полностью закрашенный квадратик, полностью незакрашенный квадратик и концовку прогрессбара
вторая функция получает параметры
x - x координата первого кубика прогрессбара
y - у координата первого кубика прогрессбара
Num - порядковый номер прогрессбара (1...5)
Param - Собственно отображаемая величина
min - значение величины при которой на прогресбаре минимальный уровень
max - значение величины при которой прогрессбар полностью заполнен
Kubiks - кол-во знакомест в длину прогрессбара
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
я тоже самое делал на асме... правда у меня 6 шкал по 4 символа.. тоже попиксельный вывод ширины... (20 делений)
если кому интересно могу вырезать из кода
если кому интересно могу вырезать из кода
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Результат выглядит вот так

только в протеусе нет нижней строчки (8-го байта столбика) в реальности он выводится
кстати эти 5 графиков рисуются за 1 миллисекунду на меге 103@9.6 мегагерц

только в протеусе нет нижней строчки (8-го байта столбика) в реальности он выводится
кстати эти 5 графиков рисуются за 1 миллисекунду на меге 103@9.6 мегагерц
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
- shurikss123
- Грызет канифоль
- Сообщения: 271
- Зарегистрирован: Пн окт 25, 2010 20:47:04
- Откуда: Казахстан, Астана
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
clawham писал(а):только в протеусе нет нижней строчки (8-го байта столбика) в реальности он выводится
кстати эти 5 графиков рисуются за 1 миллисекунду на меге 103@9.6 мегагерц
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
shurikss123 писал(а):clawham писал(а):только в протеусе нет нижней строчки (8-го байта столбика) в реальности он выводится
кстати эти 5 графиков рисуются за 1 миллисекунду на меге 103@9.6 мегагерц
1 миллисекунду, мне кажеться что это много или???
это чуть больше 1000 тактов...
думаю при 4х битном подключении дисплея это не много...
да и математика какая-никакая там тоже есть (рассчитать цену деления, количество делений)
