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

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

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

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

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

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

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

 
Опции темы
Непрочитано 25.01.2013, 09:33  
Catcatcat1
Прописка
 
Регистрация: 05.05.2007
Сообщений: 116
Сказал спасибо: 10
Сказали Спасибо 58 раз(а) в 34 сообщении(ях)
Catcatcat1 на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

все символьные индикаторы инициализирующий одинаково (с теми что я сталкивался)
это один из вариантов на HI-TECH C Compiler для 4 битного интерфейса

Цитата:
__delay_ms(10);
__delay_ms(10);
__delay_ms(10);
RW=0;//режим записи в дисплей
RS=0;//режим команд
for ( a = 0; a ‹ 4; a++ )
{
LCD = 0b00110000; // код инциализации 0х03 (4 битного интерфейса) 3 раза
E = 1; // загрузить
NOP();
E = 0; //
__delay_ms(6);
}
LCD = 0b00100000; // включить режим 4битный интерфейс.
E = 1; // загрузить
NOP();
E = 0;
__delay_ms(2);

SendLCDc( 0b00101000 ); // Настройка функций
SendLCDc( 0b00001100 ); // Включить дисплей
SendLCDc( 0b00000001 ); // Дисплей очистить
SendLCDc( 0b00000110 ); // Entry Mode
SendLCDc( 0b10000000 ); // DDRAM addresss 0000
SendLCDc( 0b00000010 ); // return home
отсюда можно скачать готовую библиотеку может работать как с 1 строчными так и с 4 строчными индикаторами, поддерживает и вывод строк с русскими и латинскими символами.

Реклама:
Catcatcat1 вне форума  
Непрочитано 25.01.2013, 09:59  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

И зачем это ?
Код:
for ( a = 0; a ‹ 4; a++ )
{
LCD = 0b00110000;	 // код инциализации 0х03 (4 битного интерфейса) 3 раза
E = 1;	 // загрузить
NOP();
E = 0;	 //
Достаточно:

Код:
LCD = 0b00110000;	 // код инциализации 0х03 (4 битного интерфейса) 3 раза
for ( a = 0; a ‹ 4; a++ )
{
E = 1;	 // загрузить
NOP();
E = 0;	 //
Или даже без цикла 3 раза строб...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 25.01.2013, 10:02  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

Сообщение от omercury Посмотреть сообщение
По шине данных, безусловно.
Но на картинках слева ещё две линии управления - переключатель регистра команд/данных и запись/чтение.
Такшта не надо!
Тогда уж приводи полную с битами управления.
А то найдется умник - скопирует не думая...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 25.01.2013, 11:28  
angelborn
Гражданин KAZUS.RU
 
Аватар для angelborn
 
Регистрация: 24.08.2006
Адрес: Одесса
Сообщений: 580
Сказал спасибо: 129
Сказали Спасибо 155 раз(а) в 118 сообщении(ях)
angelborn на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

Сообщение от Halex07 Посмотреть сообщение
Ну, если уж очень хочется... то идите ка Вы ... к производителю. Дело в том, что Winstar и не скрывает того, что он использует в своих индикаторах. Там внизу справа по ссылке два даташита контроллеров для Character дисплеев, которые ставятся в Винстаровскую продукцию. Один, как правильно было "угадано с одной ноты" ST7066U. Что конкретно торчит под "каплей" вашего дисплея - х.з. И модифицировать старый проверенный алгоритм 44780 с точки зрения "правильности" имеет смысл только, если он не работает с вашим WH1602B, или вас жестко нормировали по стартовым таймингам в разработке нового девайса.
О, а я это как раз искал, спасибо что отослали куда нужно. Хорошо хоть 2 варианта камней, а не 10.
Про нормирование тоже угадали. Но в ущерб алгоритму конечно резать ничего не буду.
angelborn вне форума  
Непрочитано 25.01.2013, 12:04  
vdvvvs
Частый гость
 
Регистрация: 13.03.2009
Сообщений: 27
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
vdvvvs на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

Странно, но с этим модулем (WH1602B-NGG) все вышло сразу и без бубна. Приведу куски библиотеки под STM32:

#define LCD_PORT GPIOC
#define LCD_RS GPIO_Pin_4
#define LCD_E GPIO_Pin_5
#define LCD_RW GPIO_Pin_7
#define LCD_DB4 GPIO_Pin_0
#define LCD_DB5 GPIO_Pin_1
#define LCD_DB6 GPIO_Pin_2
#define LCD_DB7 GPIO_Pin_3

void __EN_(void)
{
LCD_PORT-›ODR|=LCD_E;
_delay_10us(1);
LCD_PORT-›ODR&=~LCD_E;
}

void LCD_NYB(unsigned char nyb, char typed)
{
LCD_PORT-›ODR=nyb;
LCD_PORT-›ODR&=~LCD_RW;
if(typed == 0)
{
LCD_PORT-›ODR&=~LCD_RS;
} else
{
LCD_PORT-›ODR|=LCD_RS;
}
__EN_();
}

void LCD_Read_busy(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = LCD_DB4| LCD_DB5 | LCD_DB6 | LCD_DB7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(LCD_PORT, &GPIO_InitStructure);
LCD_PORT-›ODR&=~LCD_RS;
LCD_PORT-›ODR|=LCD_RW;
do
{
LCD_PORT-›ODR|=LCD_E;
_delay_10us(1);
LCD_PORT-›ODR&=~LCD_E;
}
while (LCD_PORT-›IDR&LCD_DB7);

LCD_PORT-›ODR&=~LCD_RW;
GPIO_InitStructure.GPIO_Pin = LCD_DB4| LCD_DB5 | LCD_DB6 | LCD_DB7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(LCD_PORT, &GPIO_InitStructure);
}

void LCD_Write_Byte(unsigned char datas,unsigned char typed)
{
LCD_Read_busy();
LCD_NYB((datas››4),typed);
LCD_NYB(datas, typed);
}

void LCD_Write_CMD(unsigned char b)
{
LCD_Write_Byte(b,0);
}

void LCD_Write_Data(unsigned char b)
{
LCD_Write_Byte(b,1);
}

void initLCD(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = LCD_RS | LCD_E | LCD_DB4| LCD_DB5 | LCD_DB6 | LCD_DB7 | LCD_RW;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(LCD_PORT, &GPIO_InitStructure);
LCD_PORT-›ODR&=~LCD_E;
LCD_PORT-›ODR&=~LCD_RS;
LCD_PORT-›ODR&=~LCD_RW;
LCD_NYB(0x03,0); //Required for initialisation
_delay_10us(4); //required delay
LCD_Write_CMD(0x02);
LCD_Write_CMD(0x28 );
LCD_Write_CMD(0x0c);
LCD_Write_CMD(0x01); //clear display
_delay_10us(200);
LCD_Write_CMD(0x06);
}

Код, правда, писал с даташита на 1602А.
Вложения:
Тип файла: zip HD4470.ZIP (1.5 Кб, 102 просмотров)
vdvvvs вне форума  
Непрочитано 25.01.2013, 13:24  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

Сообщение от vdvvvs Посмотреть сообщение
все вышло сразу и без бубна.
Позвольте усомниться , ибо :

Код:
LCD_PORT-›ODR=nyb;
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 25.01.2013, 13:26  
vdvvvs
Частый гость
 
Регистрация: 13.03.2009
Сообщений: 27
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
vdvvvs на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

Сообщение от dosikus Посмотреть сообщение
Позвольте усомниться , ибо :

Код:
LCD_PORT-›ODR=nyb;
Отвечу просто:

#define LCD_PORT GPIOC
#define LCD_RS GPIO_Pin_4
#define LCD_E GPIO_Pin_5
#define LCD_RW GPIO_Pin_7
#define LCD_DB4 GPIO_Pin_0
#define LCD_DB5 GPIO_Pin_1
#define LCD_DB6 GPIO_Pin_2
#define LCD_DB7 GPIO_Pin_3
vdvvvs вне форума  
Непрочитано 25.01.2013, 14:03  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

vdvvvs, То есть вы все равно упретесь рогом и не согласитесь, что
данная команда просто тупо портит порт целиком?
И не надо считывать порт а потом выводить через маску?
Отличную свинью вы подкладываете в виде своей либы...
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 25.01.2013 в 14:09.
dosikus вне форума  
Непрочитано 25.01.2013, 14:31  
vdvvvs
Частый гость
 
Регистрация: 13.03.2009
Сообщений: 27
Сказал спасибо: 3
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
vdvvvs на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

Сообщение от dosikus Посмотреть сообщение
vdvvvs, То есть вы все равно упретесь рогом и не согласитесь, что
данная команда просто тупо портит порт целиком?
И не надо считывать порт а потом выводить через маску?
Отличную свинью вы подкладываете в виде своей либы...
На порту С просто ничего кроме дисплея не висит, а кому надо, сам и маску наложит.
vdvvvs вне форума  
Непрочитано 25.01.2013, 14:36  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Правильная инициализация ЖК 16х2

Сообщение от vdvvvs Посмотреть сообщение
На порту С просто ничего кроме дисплея не висит, а кому надо, сам и маску наложит.
Вредительство!
Easyrider83 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по библиотекам HI-TECH PICC для подключения LCD 44780 16х2 к PIC 3ann Embedd С 9 20.12.2012 16:46
Индикатор 16х2 "OPVO" V0020380 rev.A Evg_55 Информация по радиокомпонентам 0 03.07.2010 13:06
Правильная разводка заземления в производственном помещении duritskiy Производственное оборудование 4 03.10.2007 07:48
Правильная задержка в HI-TECH PIC16 vsvetlov Микроконтроллеры, АЦП, память и т.д 1 06.09.2007 13:59


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


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