Например TDA7294

Форум РадиоКот • Просмотр темы - Работа с ЖКИ на контроллере HD44780 и его аналогах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июл 15, 2025 17:46:12

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2431 ]     ... , , , 94, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:27:42 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
это предел.
Код:
// ЗАПИСЬ ПОЛУБАЙТА
void LCD_WRITE_NIBBLE(unsigned char TEMP_NIBBLE) {
   PORTD |= TEMP_NIBBLE; // запись в порт
   _delay_ms(1);
   E_ENABLE;
   _delay_ms(2);
   E_DISABLE;
   _delay_ms(1);
   PORTD &= 0b00001111;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:30:40 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4564
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Вы, по всей видимости, больше луюбите писать, чем читать. От сюда и строчите пост за постом, не видя ничего.
Вам повторить мой предыдущий пост, или сами посмотрите ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:34:57 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0

Фокус появляется где то с середины, снято на мобилу сильно не пинайте.


Последний раз редактировалось servmv Ср апр 22, 2015 22:44:37, всего редактировалось 3 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:36:49 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4564
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Изображение


Вложения:
2015-04-22 23-39-00 Скриншот экрана.png [33.63 KiB]
Скачиваний: 622
Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:40:11 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
Аlex писал(а):
servmv писал(а):
Не работает без задержки.
Аlex писал(а):
Но у Вас, по всей видимости, "всё работает" только из-за бешеных задержек в функции LCD_WRITE_NIBBLE.
:)


Они только там и есть) я вас не понимаю


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:41:08 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
servmv, ????
Изображение


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:41:22 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
Ждите видео готовится не сервере ютуб


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:41:41 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4564
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
servmv писал(а):
Они только там и есть) я вас не понимаю
Аlex писал(а):
Цитата:
Код:
void LCD_INIT()
{
   RS_DISABLE;
   LCD_WRITE_NIBBLE(0b00110000); // 0_0_1_DL_N_F_0_0 (0010 N(0-1на строка, 1-2ве строки)000) 00101000
   LCD_WRITE_NIBBLE(0b00110000);
   LCD_WRITE_NIBBLE(0b00110000);
   LCD_WRITE_NIBBLE(0b00100000);
   LCD_WRITE_DATA(0b00000001);   // очистка дисплея
   LCD_WRITE_DATA(0b00101000);
   LCD_WRITE_DATA(0b00001000);   // полное выключение дисплея
   LCD_WRITE_DATA(0b00000100);   // сдвиг курсора отключен
   LCD_WRITE_DATA(0b00001100);   // включение дисплея
   RS_ENABLE;
}
Некоторые операции, во время инициализации, требуют ожидания выполнения. Делается это либо задержками, либо чтением состояния из дисплея.
Но у Вас, по всей видимости, "всё работает" только из-за бешеных задержек в функции LCD_WRITE_NIBBLE.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:48:15 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
ссылка на страницу ютуба

Вы предлагаете наставить пауз в процесс инициализации? ставил по 10 мс, инициализация проходит, а дальше мусор на дисплее если как вы говорите убрать паузы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:53:03 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4564
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Видео опять недоступно.
Цитата:
а дальше мусор на дисплее если как вы говорите убрать паузы.
"убрать" - я имел ввиду уменьшить, чтобы не такие были большие. Там микросекунд достатоно, особенно на стробе по EN.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:58:16 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
Изображение
Ща по пробую точно по инструкции.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 22:59:19 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4564
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Давно было пора сделать всё
Цитата:
по инструкции
:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 23:10:37 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
Ну вот как то так:
Код:
void LCD_INIT()
{
   _delay_ms(16);
   RS_DISABLE;
   LCD_WRITE_NIBBLE(0b00110000); // 0_0_1_DL_N_F_0_0 (0010 N(0-1на строка, 1-2ве строки)000) 00101000
   _delay_ms(5);
   LCD_WRITE_NIBBLE(0b00110000);
   _delay_us(110);
   LCD_WRITE_NIBBLE(0b00110000);
   _delay_us(40);
   LCD_WRITE_NIBBLE(0b00100000);
   _delay_us(40);
   LCD_WRITE_DATA(0b00000001);   // очистка дисплея / 2мс
   _delay_ms(2);
   LCD_WRITE_DATA(0b00101000);
   _delay_us(40);
   LCD_WRITE_DATA(0b00001000);   // полное выключение дисплея
   _delay_us(40);
   LCD_WRITE_DATA(0b00000100);   // сдвиг курсора отключен
   _delay_us(40);
   LCD_WRITE_DATA(0b00001100);   // включение дисплея
   RS_ENABLE;
}


вот здесь экспериментально получил
Код:
// ЗАПИСЬ ПОЛУБАЙТА
void LCD_WRITE_NIBBLE(unsigned char TEMP_NIBBLE) {
   PORTD |= TEMP_NIBBLE; // запись в порт
   _delay_us(300);
   E_ENABLE;
   _delay_us(500);
   E_DISABLE;
   _delay_us(300);
   PORTD &= 0b00001111;
}
чет быстрее уже с мусором. Но отклик стал быстрее.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 23:17:23 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4564
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Ну вот, хотябы как то так. Ужа не 10 ms :)
Кстати, между E=1 и E=0 (строб записи) должно быть достаточно 1 us.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 23:24:43 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
Если я Вас верно понял:
Код:
E_ENABLE;
_delay_us(1);
E_DISABLE;

прошел экспериментально 1,10,100,200,300,400, на 500 мусор пропал. )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 23:29:24 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4564
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Странно...
А можно марку дисплея ? Или лучше ссылочку на ДШ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 23:33:18 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
В общем финал будет такой:
Изображение
Не забываем подключить стандартные библиотеки
Код:
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>

Готовим имена.
Код:
#define RS_ENABLE PORTB |= (1 << 0)      // Пин RS
#define RS_DISABLE PORTB  &=~ (1 << 0)   //
#define E_ENABLE PORTB |= (1 << 1)       // Пин E
#define E_DISABLE PORTB &=~ (1 << 1)     //
//P.S. На данном модуле есть управление подсветкой что для меня было сюрпризом) т.к. на схеме этого не было, установлен транзистор на катоде подсветки. можно управлять так:
#define BACKLIGHT_ENABLE PORTB |= (1 << 2)       // Пин подсветки
#define BACKLIGHT_DISABLE PORTB &=~ (1 << 2)     //ну там вам решать вкл\выкл или замутить шим для регулировки яркости.
#define LCD_PORT PORTD



Функции для работы с дисплеем.
Код:
void LCD_INIT()
{
   _delay_ms(16);
   RS_DISABLE;
   LCD_WRITE_NIBBLE(0b00110000); // 0_0_1_DL_N_F_0_0 (0010 N(0-1на строка, 1-2ве строки)000) 00101000
   _delay_ms(5);
   LCD_WRITE_NIBBLE(0b00110000);
   _delay_us(110);
   LCD_WRITE_NIBBLE(0b00110000);
   _delay_us(40);
   LCD_WRITE_NIBBLE(0b00100000);
   _delay_us(40);
   LCD_WRITE_DATA(0b00000001);   // очистка дисплея / 2мс
   _delay_ms(2);
   LCD_WRITE_DATA(0b00101000);
   _delay_us(40);
   LCD_WRITE_DATA(0b00001000);   // полное выключение дисплея
   _delay_us(40);
   LCD_WRITE_DATA(0b00000100);   // сдвиг курсора отключен
   _delay_us(40);
   LCD_WRITE_DATA(0b00001100);   // включение дисплея
   RS_ENABLE;
}
// ЗАПИСЬ ПОЛУБАЙТА
void LCD_WRITE_NIBBLE(unsigned char TEMP_NIBBLE) {
   PORTD |= TEMP_NIBBLE; // запись в порт
   _delay_us(300);
   E_ENABLE;
   _delay_us(500);
   E_DISABLE;
   _delay_us(300);
   PORTD &= 0b00001111;
}

// ФУНКЦИЯ ОТПРАВКИ СИМВОЛА
void LCD_WRITE_CHAR(unsigned char TEMP_WRITE_CHAR) {
   RS_ENABLE;
   LCD_WRITE_DATA(TEMP_WRITE_CHAR);
}

// ФУНКЦИЯ ОТПРАВКИ КОМАНДЫ
void LCD_WRITE_CMD(unsigned char TEMP_WRITE_CMD) {
   RS_DISABLE;
   LCD_WRITE_DATA(TEMP_WRITE_CMD);
   RS_ENABLE;
}
// ЗАПИСЬ В ПОРТ КОММАНДЫ ИЛИ ДАННЫХ (ОПРЕДЕЛЯЕТСЯ RS), используется в LCD_WRITE_CHAR и LCD_WRITE_CMD
void LCD_WRITE_DATA(unsigned char TEMP_WRITE_DATA) {
   LCD_WRITE_NIBBLE(TEMP_WRITE_DATA & 0xF0);    // старшый полубайт
   LCD_WRITE_NIBBLE(TEMP_WRITE_DATA << 4);    //младший полубайт
}

void LCD_OFF() {
   LCD_WRITE_CMD(0b00001000);
}
void LCD_ON() {
   LCD_WRITE_CMD(0b00001100);
}
// Установка курсора, КУРСОР НЕ СДВИГАЕТСЯ!!! так настроено при инициализации.  LINE = 0 - первая строка, 1 - вторая строка. 
void LCD_SET_CURSOR(unsigned char LINE, unsigned char POS) {
   POS |= 0b10000000;
   if (LINE == 0x01)
   {
      POS |= 0x40;
   }
   LCD_WRITE_CMD(POS);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 23:35:16 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
Аlex писал(а):
Странно...
А можно марку дисплея ? Или лучше ссылочку на ДШ.

Мне не добраться до этикетки, марки я его точно не знаю. И даташит именно на него конечно дать тоже не могу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Ср апр 22, 2015 23:37:18 
Встал на лапы
Аватар пользователя

Карма: 3
Рейтинг сообщений: 1
Зарегистрирован: Чт янв 02, 2014 21:28:22
Сообщений: 136
Рейтинг сообщения: 0
брал тут


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
СообщениеДобавлено: Чт апр 23, 2015 02:07:44 
Друг Кота
Аватар пользователя

Карма: 58
Рейтинг сообщений: 389
Зарегистрирован: Чт мар 20, 2008 01:06:40
Сообщений: 3267
Откуда: Севастополь
Рейтинг сообщения: 0
Вы не обижайтесь, но первое, что я увидел, пройдя по вашей ссылке, было вот это :

Изображение

Охренеть, подумал было, это где же это самое "брал тут" ?
Потом уже нашел сам лот.

Это обычный индикатор. Строб у него вполне может быть именно 1мкс.
Учитывая это, ваш код работает, но рекомендовать его никому нельзя.

_________________
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2431 ]     ... , , , 94, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y