Работа с ЖКИ на контроллере HD44780 и его аналогах

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение uk8amk »

xaker66,
мы сможем помочь если вы поясните что конкретно вам не ясно при работе с экранчиком или что именно у вас не получается.
xaker66
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение xaker66 »

хочу сделать такое меню чтобы цифры были большие не знаю как сделать интересует в основном размер цифр
Вложения
IMG_0909.JPG
(52.41 КБ) 556 скачиваний
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ut1wpr »

xaker66 писал(а):хочу сделать такое меню чтобы цифры были большие не знаю как сделать интересует в основном размер цифр
Уже спрашивали и уже отвечали. Для создания копии с оригинала на снимке нужен дисплей 4хNN. Использовать символы, определяемые (создаваемые) пользователем. Читать и учится после поиска Гуглом по ключевым словам из предыдущего предложения. Информации везде навалом. На этом форуме в особенности.
Последний раз редактировалось ut1wpr Вт сен 18, 2012 11:43:43, всего редактировалось 1 раз.
С уважением,
Виктор.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Аlex »

xaker66 писал(а):хочу сделать такое меню чтобы цифры были большие не знаю как сделать интересует в основном размер цифр
Для начала, закончите начальные классы школы, затем уже можно и за другие языки приниматься, в частности за языки программирования.
xaker66
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение xaker66 »

Спасибо за совет.Я уже 30 лет назад закончил школу и еще кое чего.На счет правил правописания Вы правы,извиняюсь, сильно спешил.Клиенты стояли над душой.Сейчас пишу на работе поэтому особо нет времени.Насчет всего остального .Дисплей у меня 20х4 winstar. Свои 8 символ уже запрограмированы.Я так понимаю больше нельзя.Вот и приходится думать как можно выкрутится
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение ut1wpr »

xaker66 писал(а):8 символ уже запрограмированы.Я так понимаю больше нельзя.Вот и приходится думать как можно выкрутится
Придумали? Если нет, подумайте, каким образом происходит отображение любого (в том числе и UDC) символа в отображаемую область. Куда пишется матрица ЗГ UDC? Прямо в отображаемую, или является частью ЗГ? Что произойдет, если ваш UDC уже отображается, а вы впишете на его место в ЗГ новый? Если у вас нет особых временнЫх затрат, можно и так, как я вам подсказываю...
С уважением,
Виктор.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Jack_A »

Насколько я разбираюсь в мирмикологии, на рисунке показан графический дисплей, и отобразить такое на алфавитно-цифровом матричном - это вам не блоху подковать.
Аватара пользователя
Moto_v3x
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Ср мар 31, 2010 11:45:58
Откуда: Славянск

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Moto_v3x »

Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

Jack_A писал(а):Насколько я разбираюсь в мирмикологии, на рисунке показан графический дисплей,

Это не так, даже на фотографии видно, что это обычный цифро-буквенный 4х строчный экран.
во второй и третьей строке сгенерированы составные символы цифр.
Даже видны светлые границы между погасшими символами.

Или вы про какой рисунок вообще? :))
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Jack_A »

Про рисунок, приведенный xaker66. Да, кажется, я малость тупанул. Это ж ювелирная работа, достойная лучшено применения ! Но на рисунке в статье, на которую ссылка, 2 и 5 - ну ни в дугу ни в Красну Армию. Такое мое imho. Впрочем, на вышеупомянутом рисунке все гораздо красивше. Жаль нет 4-строчника, слепил бы себе :)
Аватара пользователя
Moto_v3x
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Ср мар 31, 2010 11:45:58
Откуда: Славянск

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение Moto_v3x »

на рисунке от xaker66 большие символы сделаны 2х3 знакоместа, а по моей ссылке 2х2, но никто не мешает нарисовать по своему, главное принцип.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

Jack_A писал(а): Жаль нет 4-строчника, слепил бы себе :)

Так что мешает сделать то же самое на двух строчнике?На цифры то всего две использованы.
xaker66
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение xaker66 »

вопрос каким спосбом можно выводить такие большие символы, если можно поподробнее
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

1.Для начала нужно придумать шрифт для огромных цифр,уже сделано
Шрифт2х3_дисплея_4х20.GIF
(22.92 КБ) 496 скачиваний

2.потом составить алгоритм создания буквы, я думаю это будет функция, помещающая в массив коды пользовательских символов.их как я насчитал всего 6 будет. полное заполнение символа есть в стандартных
3.Обновлять дисплей функцией вывода этого массива.

Если символы уже заняты то сначала нужно поместить нужные в дисплей и выводить.С невозможностью одновременного вывода специальных символов и больших цифр придется мириться.Максимум два символа получится с моим(восстановленным по фото) шрифтом.
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение pokk »

Подскажите, что делаю не так
Где-то в этой теме нашёл библиотеку взял от туда только вот перу строчек
Спойлер

Код: Выделить всё

#define RS 0
#define RW 1
#define E 2

#define PortLCD PORTC

#define SetE PORTC|=1<<E
#define ClrE PORTC&=~(1<<E)
#define SetRS PORTC|=1<<RS
#define ClrRS PORTC&=~(1<<RS)

#define WriteLCDdata(data); SetRS; SetE;   PortLCD&=0x0F; PortLCD|=(0xF0&data); ClrE; PortLCD|=(0xF0);
#define WriteLCDcommand(data); ClrRS; SetE; PortLCD&=0x0F; PortLCD|=(0xF0&data); ClrE; PortLCD|=(0xF0);


вот в последних двух строчках разобраться не могу

Код: Выделить всё

 PortLCD&=0x0F
это я так понял для того что бы сигналы RS,E,RW не сбивались при выводе данных

Код: Выделить всё

PortLCD|=(0xF0&data);
это более менее понятно выводим только старшую тетраду из переменной data
а вот последняя

Код: Выделить всё

PortLCD|=(0xF0);
совсем не понятно зачем

делаю инициализацию
Спойлер

Код: Выделить всё

    delay_ms(20);
     
      WriteLCDcommand(0x30);   //
      delay_ms(10);
     
      WriteLCDcommand(0x30);
      delay_ms(110);
     
      WriteLCDcommand(0x30);
     
      //  двух строченое 8 разрядная шина 0x28
       WriteLCDcommand(0x28);      //выводим старшую тетраду
       delay_ms(10);
       WriteLCDcommand(0x28<<4);    // младшую тетраду
      delay_ms(10);
     
      // настройка табло   0xf
      WriteLCDcommand(0x0f);
      delay_ms(100);
      WriteLCDcommand(0x0f<<4);     
      delay_ms(100);
     
      //очистка  экрана
      WriteLCDcommand(0x01);
      delay_ms(100);     
      WriteLCDcommand(0x01<<4);
      delay_ms(100);

и вывожу цифру 8 на дисплей

Код: Выделить всё

 WriteLCDdata(0x38);
    delay_ms(10);
    WriteLCDdata(0x38<<4);

в протеусе смотрю и чувствую что как-то не правильно вывожу ему команды
нечего не выводит пишет только set DDRAM ptr=00 set DDRAM ptr=70 и курсор влево (без понятия откуда он взял может после очистки табло )
примерно тоже самое сделал на 8 битной шине там всё работает нормально
Вложения
LCD.rar
(37.8 КБ) 244 скачивания
Аватара пользователя
black_lizard
Встал на лапы
Сообщения: 132
Зарегистрирован: Вс сен 23, 2012 05:51:35

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение black_lizard »

Здравствуйте. Подскажите пожалуйста. Купил дисплей на KS0066U, 16х2. Соединил по 8 ногам, исправил либу работающую с 4 ногами на 8 ног(к слову, не пахала из-за разной инициализации с HD44780 и заставить пахать с 4 ног так и не удалось). Ситуация повернулась в другую сторону... в отличии от когда для 4 ног, на 8 ногах дисплей стал хотя бы запускаться каждый раз, при подаче команд. Инициализация с грехом пополам проходит и дальше всё... символы отображает не правильно. Не могу понять в чём дело. Прозвонил все провода, проверил всё ли корректно соединено, те ле выводы, всё ли инициализируется... не пашет. Стал всё-таки грешить на софтварную часть. С временем ожидания поиграл, то же не помогло(плата STM32VLDISCOVERY, проц srm32f100rb, может уже хана настаёт самой плате, 4 пина и стабилизатор напряжения я уже успел пожечь, не первый день её пытаю). Прошу посмотреть.

Инициализация:

Код: Выделить всё

   pin_dis_table[0]=GPIO_Pin_0;//пины данных
   pin_dis_table[1]=GPIO_Pin_1;
   pin_dis_table[2]=GPIO_Pin_2;
   pin_dis_table[3]=GPIO_Pin_3;
   pin_dis_table[4]=GPIO_Pin_10;
   pin_dis_table[5]=GPIO_Pin_11;
   pin_dis_table[6]=GPIO_Pin_12;
   pin_dis_table[7]=GPIO_Pin_13;
   port_dis_table[0]=GPIOC;//порты данных
   port_dis_table[1]=GPIOC;
   port_dis_table[2]=GPIOC;
   port_dis_table[3]=GPIOC;
   port_dis_table[4]=GPIOB;
   port_dis_table[5]=GPIOB;
   port_dis_table[6]=GPIOB;
   port_dis_table[7]=GPIOB;


   GPIO_InitTypeDef gpio;
    GPIO_StructInit(&gpio);
    gpio.GPIO_Mode = GPIO_Mode_Out_OD;
      gpio.GPIO_Speed = GPIO_Speed_2MHz;
      int i;
   for (i=0;i<8;i++){
      gpio.GPIO_Pin = pin_dis_table[i];
      GPIO_Init(port_dis_table[i], &gpio);
   }
   gpio.GPIO_Pin = LCD_CD | LCD_EN;
   GPIO_Init(GPIOB, &gpio);
   GPIO_WriteBit(GPIOB, LCD_CD | LCD_EN, 0);

   lcd_send(0x38,COMMAND);
   lcd_set_state(LCD_ENABLE,CURSOR_ENABLE,NO_BLINK);
   lcd_send(0x01,COMMAND);
   lcd_send(0x06,COMMAND);


Функция отправки данных в дисплей:

Код: Выделить всё

void lcd_send(uint8_t byte, dat_or_comm dc)  {
   GPIO_WriteBit(GPIOB, LCD_CD | LCD_EN, 0);

   if (dc) {
      GPIO_WriteBit(GPIOB, LCD_CD, 1);
   }

   GPIO_WriteBit(port_dis_table[0], pin_dis_table[0], ((byte & 0x01)!=0));
   GPIO_WriteBit(port_dis_table[1], pin_dis_table[1], ((byte & 0x02)!=0));
   GPIO_WriteBit(port_dis_table[2], pin_dis_table[2], ((byte & 0x04)!=0));
   GPIO_WriteBit(port_dis_table[3], pin_dis_table[3], ((byte & 0x08)!=0));
   GPIO_WriteBit(port_dis_table[4], pin_dis_table[4], ((byte & 0x10)!=0));
   GPIO_WriteBit(port_dis_table[5], pin_dis_table[5], ((byte & 0x20)!=0));
   GPIO_WriteBit(port_dis_table[6], pin_dis_table[6], ((byte & 0x40)!=0));
   GPIO_WriteBit(port_dis_table[7], pin_dis_table[7], ((byte & 0x80)!=0));


   GPIO_WriteBit(GPIOB, LCD_EN, 1);
   lcd_delay();
   lcd_delay();
   GPIO_WriteBit(GPIOB, LCD_EN, 0);
   lcd_delay();
}


заранее спасибо
Собираю самопальный мини-компьютер
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение pokk »

Разобрался пропустил одну строчку инициализации.
Я вот тут с питанием понять не как не могу http://www.electronshik.ru/item/wh1602l-ygh-ct-66868
вот тут написано "Символьный ЖК дисплей 16 х 2 с напряжением питания 3 V" 3 вольта ?
открыл даташит в 5ом разделе электрические характеристики написано

Supply Voltage For Logic VDD-VSS - min 4.5 typ 5.0 max 5.5 V

откуда 3 вольта взялось ?
Аватара пользователя
rs39
Открыл глаза
Сообщения: 53
Зарегистрирован: Сб май 07, 2011 14:35:24
Откуда: Россия

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение rs39 »

pokk писал(а): откуда 3 вольта взялось ?


Это минимальное напряжение при котором работает LCD.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение vitalik_1984 »

В даташите все нормально написано там два входа для логики и для экрана грубо говоря контраст V_O должен быть не менее 3 вольт.А напряжение питания логики V_DD то все равно должно быть 4.5 минимум.Иначе не будет работать.
Хотя есть дисплеи и для низковольтной логики.
Причем в даташите написано, что 3.2 измеряется между V_DD и V_O.
Последний раз редактировалось vitalik_1984 Сб сен 29, 2012 12:20:12, всего редактировалось 1 раз.
pokk
Вымогатель припоя
Сообщения: 574
Зарегистрирован: Вт ноя 02, 2010 17:46:37

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Сообщение pokk »

Благодарю за ответы. Это я просто подключил дисплей на 4.5В, а тут не давно в магазине стоял в очереди, где его купил смотрю, а там все на 3 вольта думаю во дела не много ли я на него подал :))
Ответить

Вернуться в «Периферия»