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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
ВСЕГДА НА СВЯЗИ
Открыл глаза
Сообщения: 55
Зарегистрирован: Сб апр 16, 2011 19:55:15
Откуда: Красноярский край
Контактная информация:

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

Сообщение ВСЕГДА НА СВЯЗИ »

Друзья, будьте добры, подскажите пожалуйста. Есть пару дисплеев с контроллерами, с DVD. Хочу поставить в свой самодельный трансивер для указания рабочей частоты и других функций. Как их туда можно подогнать? Нужно ли будет перепрограммировать контроллеры или что то добавить ещё. Ранее с этим не занимался, поэтому прошу подсказки. Заранее спасибо.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

Можно все, но не все могут :))
А вообще если серьезно, какой контроллер для начала на этих дисплеях.Ищем информацию на контроллер, работаем.
В поисках истины человек развивается.
Аватара пользователя
Sergey78
Открыл глаза
Сообщения: 69
Зарегистрирован: Пт июл 08, 2011 09:03:07

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

Сообщение Sergey78 »

Если при подключении сигнала RS с выхода Pic к индикатору, на выходах DB0..DB7, Е,RS сигнал по форме http://www.lcdinfo.ru/data/lcd/lcd.pdf (страница 12) меняется на отрицательную постоянку, то индикатор труп ? Квадраты на верхней строке при этом высвечиваются нормально.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

а нога чтения/записи в каком состоянии?Для перевода дисплея в режим чтения нужно ногу R/W к земле притянуть.В этом режиме никакие сигналы из дисплея не должны выходить.Если притянули и все еще ноги на минусе, то конечно труп.
Там же русский даташит, почему вообще вопросы возникают?
В поисках истины человек развивается.
mr.boroda
Встал на лапы
Сообщения: 124
Зарегистрирован: Вт июл 10, 2012 00:13:27
Откуда: Белгородская обл.

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

Сообщение mr.boroda »

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

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

Сообщение vitalik_1984 »

нужно внимательно проверять все уровни в том числе и питания.Как раз дисплей загорается всплеском индикаторов,потом уже нормально верхнюю строку заполняет.
В поисках истины человек развивается.
mr.boroda
Встал на лапы
Сообщения: 124
Зарегистрирован: Вт июл 10, 2012 00:13:27
Откуда: Белгородская обл.

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

Сообщение mr.boroda »

vitalik_1984 писал(а):нужно внимательно проверять все уровни в том числе и питания.Как раз дисплей загорается всплеском индикаторов,потом уже нормально верхнюю строку заполняет.


проблема оказалась не в железе, а скорее всего в cvavr))
когда использую библиотеку alcd.h - все работает, если использую lcd.h или lcd_rus.h - то никак... завтра подробней... седня уже спать пойду...
Аватара пользователя
Sergey78
Открыл глаза
Сообщения: 69
Зарегистрирован: Пт июл 08, 2011 09:03:07

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

Сообщение Sergey78 »

а нога чтения/записи в каком состоянии?Для перевода дисплея в режим чтения нужно ногу R/W к земле притянуть.В этом режиме никакие сигналы из дисплея не должны выходить.Если притянули и все еще ноги на минусе, то конечно труп.


К минусу RW притянут. Если сигнал RS от дисплея отключить то на Е, RS и на каналах данных DB0...7 как и положено есть импульс, при подключении RS к дисплею, на всех каналах кроме Е показывает вместо импульса -0,4в.

Там же русский даташит, почему вообще вопросы возникают?


Там - это где ? Видел только на английском.
mr.boroda
Встал на лапы
Сообщения: 124
Зарегистрирован: Вт июл 10, 2012 00:13:27
Откуда: Белгородская обл.

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

Сообщение mr.boroda »

В общем то гадал сегодня, так ниче и не получилось.
Если используюстандартную библиотеку alcd.h - работает
Если же подключаю lcd_rus.h или просто стандартную lcd.h то не хочет(при замене строки #include <alcd.h> ), выводит только мигающий сегмент...

Вот код, может где то недописал?

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

#include <mega8.h>
#include <1wire.h>
#include <stdio.h>
#include <delay.h>
#include <ds18b20.h>
#asm
.equ __lcd_port=0x12; PORTD /* ЖКИ дисплей подключили к порту I/O D*/
#endasm
#include <alcd.h>
unsigned char min,sek,chas,T,lcd_buffer[33];
int temp;
// Timer1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
T++;
if (T==200){T=0;sek++;};
if (sek==60){sek=0;min++;};
if (min==60){min=0;chas++;};
if (chas==24){chas=0;};
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=Out Func6=Out Func5=In Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=P State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x20;
DDRB=0xDF;

// Port C initialization
// Func6=Out Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=Out
// State6=0 State5=P State4=0 State3=P State2=P State1=P State0=0
PORTC=0x2E;
DDRC=0x51;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 1500,000 kHz
// Mode: CTC top=OCR1A
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x0A;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AH=0x1D;
OCR1AL=0x4C;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x10;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// 1 Wire Bus initialization
// 1 Wire Data port: PORTB
// 1 Wire Data bit: 5
// Note: 1 Wire port settings must be specified in the
// Project|Configure|C Compiler|Libraries|1 Wire IDE menu.
w1_init();

// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 7
// RD - PORTD Bit 6
// EN - PORTD Bit 5
// D4 - PORTD Bit 3
// D5 - PORTD Bit 2
// D6 - PORTD Bit 1
// D7 - PORTD Bit 0
// Characters/line: 8
ds18b20_init(0, 0, 60, DS18B20_12BIT_RES);
lcd_init(16);
PORTC.0=1;
// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here
      lcd_clear();        /* очистка дисплея */
      lcd_gotoxy(0,0);          /* верхняя строка, 0 позиция */
      lcd_putsf("fack");      /* выводим надпись в указанных координатах */
      lcd_gotoxy(0,1);          /* нижняя строка, 0 позиция */
      sprintf(lcd_buffer,"%u:%u:%u - %u gr",chas,min,sek,temp);   /* заполняем буфер */
      lcd_puts(lcd_buffer);     /* выводим надпись в указанных координатах */
      if (PINC.5==0){chas++;};
      if (PINC.3==0){min++;};
      temp=ds18b20_temperature(0);
      delay_ms(100);
      }
}

и еще вопрос вывожу не экран время и если время 13:05:04, то выводит 13:5:4... Чтоб вывести с нулями это мне нужно на разряды разложить и по разряду выводить?
Вложения
Фото0338.jpg
когда lcd или lcd_rus
(173.83 КБ) 533 скачивания
Фото0339.jpg
когда библиотека alcd.h
(162.23 КБ) 496 скачиваний
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

mr.boroda писал(а):и еще вопрос вывожу не экран время и если время 13:05:04, то выводит 13:5:4... Чтоб вывести с нулями это мне нужно на разряды разложить и по разряду выводить?

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

sprintf(lcd_buffer,"%02u:%02u:%02u - %2u gr",chas,min,sek,temp);   /* заполняем буфер */

А потом садимся и внимательно читаем сказку о предмете... http://ru.wikipedia.org/wiki/Printf
А потом становимся умные-умные. И учим других.. :) :)
С уважением,
Виктор.
mr.boroda
Встал на лапы
Сообщения: 124
Зарегистрирован: Вт июл 10, 2012 00:13:27
Откуда: Белгородская обл.

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

Сообщение mr.boroda »

http://mega-avr.ucoz.ru/publ/1 вот тут читал...

Теперь умный, умный)))
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

mr.boroda писал(а):http://mega-avr.ucoz.ru/publ/1 вот тут читал...
Странно. Тогда почему возник вопрос? Там ведь все четко расписано. Если непонятно, а под рукой есть отлаживаемое устройство с рабочим дисплеем, что мешает все неясные вопросы перепробовать на макете? Другие на Протезусе тренируются, говорят, тоже помогает...
С уважением,
Виктор.
Biggy
Открыл глаза
Сообщения: 71
Зарегистрирован: Вт дек 09, 2008 20:54:30
Откуда: Златоуст
Контактная информация:

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

Сообщение Biggy »

А как на экран вывести русские символы. Нашел не помню уж где программу - перекодировщик LCD20 (в приложении).
В результате ее работы словосочетание "Русский язык" преобразуется в

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

Db  50h,79h,63h,63h,0BAh,0B8h,0B9h,20h,0C7h,0B7h,0C3h,0BAh,20h,20h,20h,20h

Как это скормить дисплею?
Вложения
LCD20.zip
(125.01 КБ) 211 скачиваний
Изображение
ut1wpr
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

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

Сообщение ut1wpr »

mr.boroda писал(а):Вот код, может где то недописал?

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

 Далее много всякого
Вопрос. Вы прикинули, насколько информативна выложенная часть кода? В процентах от общего объема. Как у кого, у меня пропадает желание вылущивать оттуда полезную часть. Вы бы потрудились убрать из текста все то, что вам "волшебник" кодвижна нагенерировал, там почти все абсолютно ненужное. Поберегите чужое время.

Обработчик прерывания будет выполняться быстрее, если его переписать:

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

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
  if( ++T != 200 ) return;
  T = 0; if( ++second != 60 ) return;
  second = 0; if( ++minutes != 60 ) return;
  minutes = 0; if( ++hours != 24 ) return;
  hours = 0;
}
В вашем варианте выполняются все проверки. В предложенном - только необходимые.
Хотя в вашем тренировочном варианте это не так уж и важно, но приучайте себя к оптимизации обработчиков по быстродействию. Иногда бывает полезно. :)
Пусть вас не пугает обилие операторов возврата. Компилятор их превратит в джампы на точку выхода из обработчика. Вообще, при написании на Си желательно "видеть", во что компилятор превратит вами написанное.
Последний раз редактировалось ut1wpr Сб сен 08, 2012 08:50:27, всего редактировалось 1 раз.
С уважением,
Виктор.
Аватара пользователя
vitalik_1984
Поставщик валерьянки для Кота
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень
Контактная информация:

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

Сообщение vitalik_1984 »

ut1wpr писал(а):Вы бы потрудились убрать .... все абсолютно ненужное. Поберегите чужое время.

Согласен полностью, и к тому же еще и без спойлера такой большой код.
В поисках истины человек развивается.
Biggy
Открыл глаза
Сообщения: 71
Зарегистрирован: Вт дек 09, 2008 20:54:30
Откуда: Златоуст
Контактная информация:

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

Сообщение Biggy »

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

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

Сообщение vitalik_1984 »

Судя по даташиту команда очистки экрана заполняет символами 0x20 - (пробелы) весь дисплей.Можете поступить аналогичным образом.
Ну а вообще хотелось бы посмотреть каким образом команда отсылается.
xaker66
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

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

Сообщение xaker66 »

Добрый день .У меня такой вопрос,может быть он ламерский ,но информацию по нему не могу нигде найти.Мне нужно вывести часы на LCD 20x4,но так чтобы размер цифр был не на одну строку ,а на 2 или 3 строки типа такого .Если кто знает поделитесь как или подскажите где можно найти информацию по этой теме
Вложения
IMG_0909.1.jpg
(48.08 КБ) 346 скачиваний
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

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

Сообщение uk8amk »

8 первых символов с номером 0...7 находятся в области CGRAM и их изображение может задавать пользователь, т.е. вы. Вам нужно записать туда разные 'кубики' и из них строить изображение цифр. Многие библиотеки выложенные в этой ветке имеют функции для определения пользовательских символов. Это на тот случай если ваша не имеет такойсвозможности.
xaker66
Родился
Сообщения: 11
Зарегистрирован: Пн сен 10, 2012 09:17:55

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

Сообщение xaker66 »

можно более подробно что и как
Ответить

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