Работа c ЖКИ (LCD)

по МК и не только

Работа c ЖКИ (LCD)

Сообщение kuzenchik » 28 май 2009, 00:57

Здравствуйте. Подскажите как переводить курсор на ЖКИ на вторую (и другие) строку в двустрочном (более 2 строк) дисплее. Пробовал на примере программы термометра вывести на вторую строку статически данные - ничего не получается. Получилось лишь методом научного тыка поставить 24 пробела, если не ошибаюсь, до окончания первой строки и тогда курсор сам перешел на вторую :). Но ведь это не выход. Буду очень благодарен.
Хочу модернизировать схему на два или более термометров. Когда получится, выложу на общее обозрение.
kuzenchik
 
Сообщения: 6
Зарегистрирован: 28 май 2009, 00:40

Re: Работа c ЖКИ (LCD)

Сообщение akl » 28 май 2009, 07:00

Здравствуйте. При использовании LCD с драйвером HD44780 или его клонов обращение ко 2-й строке
осуществляется записью адреса DDRAM равного C0h, где 80h обращение к адресному пространству
DDRAM + 40h адрес начала второй строки.
http://radioded.ru/index.php?option=com ... &Itemid=34
akl
 
Сообщения: 143
Зарегистрирован: 21 дек 2008, 07:27
Откуда: Ижевск

Re: Работа c ЖКИ (LCD)

Сообщение kuzenchik » 28 май 2009, 20:51

Сапсибо за ответ, уже нашел :)
kuzenchik
 
Сообщения: 6
Зарегистрирован: 28 май 2009, 00:40

Re: Работа c ЖКИ (LCD)

Сообщение kuzenchik » 30 май 2009, 20:45

Подскажите чем отличается 4-битный режим подключения ЖКИ от 8-битного? Есть ли в последнем преимущество?
Заранее благодарен.
kuzenchik
 
Сообщения: 6
Зарегистрирован: 28 май 2009, 00:40

Re: Работа c ЖКИ (LCD)

Сообщение Radioded » 02 июн 2009, 23:59

Подскажите чем отличается 4-битный режим подключения ЖКИ от 8-битного?

Для 8-битного режима надо восемь проводов для линий D0...D7 тогда как для 4-битного только четыре провода для линий D4...D7. В последнем информационный байт передаётся двумя ниблами по 4 бита, т.е. байт делится пополам и передаётся.
Есть ли в последнем преимущество?

Конечно! Экономия проводов и ножек микроконтроллера.
Аватара пользователя
Radioded
Site Admin
 
Сообщения: 180
Зарегистрирован: 07 ноя 2008, 02:47
Откуда: Москва

Re: Работа c ЖКИ (LCD)

Сообщение kuzenchik » 07 июн 2009, 16:29

Еще раз здравствуйте. Столкнулся с проблемой: собрал прошивку контроллера, очень долго отмучал ее протеусом, вроде заработало. Собрал схему - нифига, в чем может быть дело?
Бывало пару раз после прошивки выскакивает на дисплее только статический текст и то только первой строки и все. Питание выключил, затем включил пропало.
Пробовал просто текст загонять на все строки: выводит все, но тоже как то через раз и контрастность знакомества спадает сверху вниз (т.е. верхние точки сивола темные, а к низу светлеют).
Вот привожу исходники (код комбинирован из разных программ, но хотелось бы наладить работу, перед тем как там приводить все к читабельному виду) и схему в протеусе. Подскажите в чем проблема. Уже и с fuse bit намаялся. Прошиваю Code Vision 1.25.
http://depositfiles.com/files/77r2vqjv3
kuzenchik
 
Сообщения: 6
Зарегистрирован: 28 май 2009, 00:40

Re: Работа c ЖКИ (LCD)

Сообщение kuzenchik » 07 июн 2009, 16:31

О еще забыл: ЖКИ использую RC1604A.
kuzenchik
 
Сообщения: 6
Зарегистрирован: 28 май 2009, 00:40

Re: Работа c ЖКИ (LCD)

Сообщение akl » 08 июн 2009, 13:10

Здравствуйте.
ИМХО, попробуйте временно заблокировать поддержку состояния "red LED", т.к. при инициализации при первом обращении

Код: Выделить всё
; function set, DL=0, N=1, F=0:
; data length = 4 bits
; number of display lines = 4
; font = 5x7
ldi r16, 0b00101000
rcall write_lcd_ir

на выходе получается ерунда.
И, главное, неустойчивая работа индикатора получается из-за слишком маленьких времен. Дайте успокоиться шине данных, сигналам управления.

Код: Выделить всё
out LCD_PORT, r17 ; upper 4 bits (E low)
out LCD_PORT, r18 ; upper 4 bits (E high)
out LCD_PORT, r17 ; upper 4 bits (E low)
out LCD_PORT, r19 ; lower 4 bits (E low)
out LCD_PORT, r20 ; lower 4 bits (E high)
out LCD_PORT, r19 ; lower 4 bits (E low)

AVR-ка отрабатывает очень быстро, а драйвер LCD видимо не всегда успевает

Код: Выделить всё
out LCD_PORT, r17 ; upper 4 bits (E low)
   RCALL   PAUSE_RET
out LCD_PORT, r18 ; upper 4 bits (E high)
   RCALL   PAUSE_RET
out LCD_PORT, r17 ; upper 4 bits (E low)
   RCALL   PAUSE_RET
out LCD_PORT, r19 ; lower 4 bits (E low)
   RCALL   PAUSE_RET
out LCD_PORT, r20 ; lower 4 bits (E high)
   RCALL   PAUSE_RET
out LCD_PORT, r19 ; lower 4 bits (E low)

PAUSE_RET:
   RET
akl
 
Сообщения: 143
Зарегистрирован: 21 дек 2008, 07:27
Откуда: Ижевск

Re: Работа c ЖКИ (LCD)

Сообщение kuzenchik » 08 июн 2009, 14:13

to: akl
Спасибо. Будем пробовать.
kuzenchik
 
Сообщения: 6
Зарегистрирован: 28 май 2009, 00:40


Вернуться в Общие вопросы



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

Зарегистрированные пользователи: нет зарегистрированных пользователей