Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 10.03.2015, 15:11  
texnar
Частый гость
 
Регистрация: 08.04.2012
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 1 сообщении
texnar на пути к лучшему
Вопрос LCD DV-16230NRB/R есть определенные трудности

Всем привет!

Подключил вышеуказанный дисплей.
Интерфейс - 8 бит.
Флаг "занято" не проверяю.
Английские буквы не выводит, выводит пустое знакоместо.
Цифры выводит.
Выводит только в первые 8 знакомест.
Выводит только во вторую строку, при этом подсвечивается первые 8 знакомест первой строки.

Ум сломался.
Прошу помощи у коллективного разума.

Код


#define LCD_DATA_PORT_DIR TRISB
#define LCD_DATA_PORT LATB
#define LCD_CMD_PORT_DIR TRISC
#define LCD_CMD_PORT LATC
#define LCD_E LATCbits.LATC7
#define LCD_RW LATCbits.LATC5
#define LCD_RS LATCbits.LATC4

enum {
LCD_CMD = 0,
LCD_DATA = 1
};

static inline void data_port_write(char data)
{
LATB = data;
LATC = (LATC & 0b11110011) | ((data & 0b11000000) ›› 4);
}

static inline void cmd_port_write(char data)
{
LATC = (LATC & 0b01001111) | (data & 0b10110000);
}

static inline void lcd_write(char dir, char data)
{
data_port_write(data);
LCD_RS = (dir==LCD_DATA) ? 1 : 0;
LCD_E = 1;
delay_ms(1);
LCD_E = 0;
LCD_RS = 0;
}

void lcd_cfg(void)
{
delay_ms(100);
lcd_write(LCD_CMD, 0b00111000);
delay_ms(1);
lcd_write(LCD_CMD, 0b00001100);
delay_ms(1);
lcd_write(LCD_CMD, 0b00000001);
delay_ms(2);
lcd_write(LCD_CMD, 0b00000110);
}

static inline void lcd_set_line( char line )
{
int pos;
switch ( line ) {
case 1: pos = 0x80; break;
case 2: pos = 0xC0; break;
}
lcd_write(LCD_CMD, pos);
}

void lcd_write_string(char line, char *str)
{
lcd_set_line(line);
while ( *str ) {
lcd_write(LCD_DATA, *str++);
}
}
Реклама:
texnar вне форума  
Непрочитано 10.03.2015, 17:57  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: LCD DV-16230NRB/R есть определенные трудности

Достаточно соблюдать условия, описанные в даташите - и всё будет нормально.

Последний раз редактировалось NewWriter; 10.03.2015 в 18:12.
NewWriter вне форума  
Непрочитано 10.03.2015, 18:15  
texnar
Частый гость
 
Регистрация: 08.04.2012
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 1 сообщении
texnar на пути к лучшему
По умолчанию Re: LCD DV-16230NRB/R есть определенные трудности

Где именно неправильно?
Вроде все как в документации
Миниатюры:
Нажмите на изображение для увеличения
Название: ---.png
Просмотров: 59
Размер:	66.3 Кб
ID:	76623  
texnar вне форума  
Непрочитано 10.03.2015, 19:17  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: LCD DV-16230NRB/R есть определенные трудности

При любой записи в индикатор линия R/W должна быть в нуле. А в каком состоянии находится выход LCD_RW - совершенно непонятно.
Yurkin2014 вне форума  
Непрочитано 10.03.2015, 19:20  
texnar
Частый гость
 
Регистрация: 08.04.2012
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 1 сообщении
texnar на пути к лучшему
По умолчанию Re: LCD DV-16230NRB/R есть определенные трудности

RW однозначно в нуле. при инициализации туда записывается нуль. проверялось осциллографом.
иначе нечего не выводилось-бы. для надежности добавил и проверил, результат не изменился

Последний раз редактировалось texnar; 10.03.2015 в 19:22.
texnar вне форума  
Непрочитано 10.03.2015, 19:34  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: LCD DV-16230NRB/R есть определенные трудности

Если в data 5-ый бит установлен, то и в порт С.5 запишется R/W=1
Цитата:
LATC = (LATC & 0b01001111) | (data & 0b10110000);
Yurkin2014 вне форума  
Непрочитано 10.03.2015, 20:03  
texnar
Частый гость
 
Регистрация: 08.04.2012
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 1 сообщении
texnar на пути к лучшему
По умолчанию Re: LCD DV-16230NRB/R есть определенные трудности

Ваша правда! Как это я проглядел. Выводить начал. Пока права ахинею, но думаю завтра разберусь.

Спасибо
texnar вне форума  
Непрочитано 11.03.2015, 15:51  
texnar
Частый гость
 
Регистрация: 08.04.2012
Сообщений: 19
Сказал спасибо: 1
Сказали Спасибо 7 раз(а) в 1 сообщении
texnar на пути к лучшему
Хорошо Re: LCD DV-16230NRB/R есть определенные трудности

Ну все! Разобрался. Ошибка была на плате. Были перепутаны два старших бита шины данных. А то что вчера вечером что-то стало вводить, так это я с устатку что-то напутал.

Спасибо!
texnar вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод на LCD sergx1300 Микроконтроллеры, АЦП, память и т.д 16 17.11.2010 00:34
Радиомаячок из коммуникатора Kabron Автоматика и аппаратура связи 12 08.09.2009 12:24
А есть у нас аквариумисты? ejen Отвлекитесь, эмбеддеры! 2 28.04.2009 11:50
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49
Помогите разобраться с LCD от ERICSSON GH688 SerDV Видеотехника 19 27.04.2005 08:38


Часовой пояс GMT +4, время: 06:24.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot