Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
0 / -1 / 0
Регистрация: 03.04.2017
Сообщений: 63

LCD 1602 инициализация только после Reset

11.04.2017, 15:54. Показов 20379. Ответов 77
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Чрезвычайно удивляет ситуация, которая сложилась у меня с моим девайсом. Требуется совет.

Имею в девайсе экранчик LCD типа 1602 (какой то китайский друг), подключается по 4х битной шине.
Последовательность инициализации коротко:
Настраиваем порт;
Ждем 20 мс;
Разрядность шины = 8 бит ($3);
NOP ($0 - это для случая, если экран был инициализирован под 4-х битную разрядность: переводим обратно в 8-битный режим);
Ждем 4.1 мс;
Разрядность шины = 8 бит ($3);
Ждем 100 мкс;
Разрядность шины = 4 Бит ($2);
Ждем;
Разрядность шины = 4 Бит ($2); + размер символа ($8)
Очистка;
Ждем 5 мс;

Проблема в следующем.
При включении питания экран не инициализируется. Первая строка залита черными квадратами. Если микроконтроллер сбросить, инициализация и вывод на экран проходит в штатном режиме.

Пробовал увеличивать время первоначального ожидания (фактически делал остановку, пока не будет нажата кнопка, выжидал секунды). Пробовал садить RESET контроллера на ноль, после этого подавать питание, немного погодя отпускать RESET - та же история.

Пробовал увеличивать все задержки по максимуму (1,5 мс - строб = 1 - 1,5 мс - строб = 0 - 1,5 мс), не помогает. То, что дисплей после сброса работает четко, наталкивает на мысль, что выдержки я выбрал правильно. Не понятно, почему заводится только после ресета...

P.S. В протеусе всё ОК.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2017, 15:54
Ответы с готовыми решениями:

I2C и LCD 1602
Здравствуйте! тема избитая, но того, что мне надо не нашел сделал массив по которому буду дергать ноги uint8_t TX_Buf = {0x28,...

STM32F030F4 + 74HC595 + 1602 LCD
Приветствую! Пытаюсь осуществить передачу данных на дисплей через сдвиговый регистр, но дисплей не подает признаков жизни (видны знакоместа...

Вывод символов на дисплей LCD 1602
Добрый день! Инициализировал дисплей LCD 1602 при помощи микроконтроллера STM32f411 и CubeMX в четырехбитном режиме. Получилось вывести...

77
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
01.06.2025, 18:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от shonty Посмотреть сообщение
Допустим вы дёргаете строб, на Atmeg-е за 1 такт..
Берёте другой МК - у вас на дёрнуть стробом уйдёт 7 тактов..
Какая дисплею разница как это реализовано
Или под каждую ситуацию отдельный ДШ писать?
Я вот не понял что вы этим хотели сказать.

У меня знакомый есть он объяснять не умеет от слова совсем, этот тип людей я понял и на них не обижаюсь потому что они начинают объяснять с высоты своих знаний и не принимают в расчёт (совершенно искренне и не со зла) что человек обращаясь с вопросом к нему имеет нулевой базис знаний по этому вопросу. Так и ВЫ и товарищ Dushevny пытаетесь объяснить , подсказать но вас не понять новичку. Я совсем недавно начал осваивать ассемблер потому что мне нужно понять принцип работы на уровне железа и с дисплеем столкнулся недавно а тем более с I2C модулем и нигде я не нашёл толкового, понятного объяснения на ассемблере да ещё по I2C , везде применяют скетчи , библиотеки и тому подобное уже готовые решения , я пошёл как говорится в гору а не в обход и запустил свой LCD1602 можно сказать сам, и убил 2-х зайцев сразу я теперь понимаю как аппаратно работать с I2C микроконтроллера и понял как работает LCD .
0
Эксперт .NET
 Аватар для Rius
13315 / 7771 / 1688
Регистрация: 25.05.2015
Сообщений: 23,681
Записей в блоге: 14
01.06.2025, 18:51
Цитата Сообщение от 23AndreY Посмотреть сообщение
нигде я не нашёл толкового, понятного объяснения на ассемблере да ещё по I2C , везде применяют скетчи , библиотеки и тому подобное уже готовые решения
Не нужно искать готовое решение под ситуацию A+B+C+D.
Здесь нужно было выяснить точно какой чип управления к дисплея (как я понимаю, здесь HD44780). Найти и изучить его даташит. Если посередине стоит I2C адаптер (PCF8574), то найти и усвоить его даташит тоже. Разобраться, какие сигналы надо подать для прямого взаимодействия с контроллером дисплея. Затем - как подать эти сигналы через адаптер. Затем - как это написать на ассемблере.
0
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
01.06.2025, 19:33
Цитата Сообщение от Rius Посмотреть сообщение
Не нужно искать готовое решение под ситуацию A+B+C+D.
так о чём и речь идёт я пытался найти пошаговое объяснение . Вы ребята меня удивляете , а зачем нужен ФОРУМ , ТЕМЫ и всё остальное , по вашему нужно просто прочитать даташит , а что вы тут тогда обсуждаете? Вангую читай даташит
0
Эксперт .NET
 Аватар для Rius
13315 / 7771 / 1688
Регистрация: 25.05.2015
Сообщений: 23,681
Записей в блоге: 14
01.06.2025, 19:38
Цитата Сообщение от 23AndreY Посмотреть сообщение
по вашему нужно просто прочитать даташит
В данном случае - да. Потому что он тривиален.
А тут я вот смотрю на уже 4 страницы и офигеваю.

Цитата Сообщение от 23AndreY Посмотреть сообщение
а зачем нужен ФОРУМ , ТЕМЫ и всё остальное
Кому-то охота пофлудить. Кому-то лень почитать даташит, где черным по белому написано что и как. А кто-то всё изучил досконально и не нашёл ответ.
0
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 360
01.06.2025, 19:48
Цитата Сообщение от 23AndreY Посмотреть сообщение
Я совсем недавно начал осваивать ассемблер потому что мне нужно понять принцип работы на уровне железа и с дисплеем столкнулся недавно а тем более с I2C модулем и нигде я не нашёл толкового, понятного объяснения на ассемблере да ещё по I2C
Гляньте у немцев, и тема ваша вроде https://www.mikrocontroller.net/topic/557956
Я этот форум читал когда-то.. там асм довольно часто встречается..
Только не знаю зайдёте теперь свободно или с бубном нужно заходить.

PS:
Sorry, you have been blocked
You are unable to access mikrocontroller.net

с бубном нужно
0
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
01.06.2025, 20:04
Цитата Сообщение от Rius Посмотреть сообщение
Кому-то охота пофлудить. Кому-то лень почитать даташит, где черным по белому написано что и как. А кто-то всё изучил досконально и не нашёл ответ.
Ну что б не офигевать пошагово объясните как на ассемблере по i2c активировать дисплей , код не надо принцип когда посылаем что делаем и объяснение команды.
0
Эксперт .NET
 Аватар для Rius
13315 / 7771 / 1688
Регистрация: 25.05.2015
Сообщений: 23,681
Записей в блоге: 14
01.06.2025, 20:06
Уже объяснил:
LCD 1602 инициализация только после Reset
0
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 360
01.06.2025, 20:15
Цитата Сообщение от shonty Посмотреть сообщение
Я этот форум читал когда-то.. там асм довольно часто встречается..
мысли вслух..
Оказывается и сейчас достаточно асма..
Полистаю на досуге.. чисто по обмену опытом

23AndreY, OLED-дисплей SSD1306 SSD1312 инициализация TWI I2C AVR ATmeg8 ассемблер ASM
как вам такое?
https://www.mikrocontroller.net/topic/511295#new

Думаю много интересного для начала найдёте.
0
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
01.06.2025, 20:18
Цитата Сообщение от Rius Посмотреть сообщение
Уже объяснил:
LCD 1602 инициализация только после Reset
вот данным ответом вы для меня о чём я выше и говорил . Ни кто не объясняет, я рассказываю а мне говорят это всё в даташите написано. Складывается впечатление что вы сами не знаете и манипулируете даташитом.
0
Эксперт .NET
 Аватар для Rius
13315 / 7771 / 1688
Регистрация: 25.05.2015
Сообщений: 23,681
Записей в блоге: 14
01.06.2025, 20:21
Цитата Сообщение от 23AndreY Посмотреть сообщение
это всё в даташите написано
Потому что так и есть.
Цитата Сообщение от 23AndreY Посмотреть сообщение
Складывается впечатление что вы сами не знаете и манипулируете даташитом.
Так и есть.
Мне никакой абсолютно нужды нет, это знать. Надо подключить дисплей - я его подключаю проводами, читаю даташит, пишу код по нему (там написаны все команды, их смысл, аргументы, порядок обмена) и всё работает. Я не создаю тему на форуме о том, как запустить такую-то конкретную модель дисплея на таком-то микроконтроллере с таким-то компилятором, в таком-то городе при вот такой фазе Луны.
Код приводил 8 лет назад в этой теме, писал ещё раньше.

Цитата Сообщение от 23AndreY Посмотреть сообщение
пошагово объясните
Научитесь декомпозировать задачу. Это не пошагово её выполнить, а разбить на отдельные, легко контролируемые уровни.
  • Управление контроллером дисплея по 8 битной шине
  • По 4 битной шине, и абстрагируясь от ширины шины.
  • Через адаптер I2C.
  • Через пины микроконтроллера. Какой пин куда дёргать, или какую ещё периферию задействовать.
  • Как сделать это из ассемблера.
1
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
01.06.2025, 20:25
Цитата Сообщение от shonty Посмотреть сообщение
Думаю много интересного для начала найдёте.
обязательно попробую прочесть

Добавлено через 1 минуту
Цитата Сообщение от Rius Посмотреть сообщение
Код приводил 8 лет назад в этой теме, писал ещё раньше.
ссылку пожалуйста
0
Эксперт .NET
 Аватар для Rius
13315 / 7771 / 1688
Регистрация: 25.05.2015
Сообщений: 23,681
Записей в блоге: 14
01.06.2025, 20:25
Цитата Сообщение от 23AndreY Посмотреть сообщение
ссылку пожалуйста

Первая страница этой темы.
0
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
01.06.2025, 20:33
Цитата Сообщение от Rius Посмотреть сообщение
Вот такое когда-то писал. Работало стабильно.
это?
0
Эксперт .NET
 Аватар для Rius
13315 / 7771 / 1688
Регистрация: 25.05.2015
Сообщений: 23,681
Записей в блоге: 14
01.06.2025, 20:34
Чую, флуд уже на 5 страницу идёт, если идут вопросы об очевидном.
Мдаа...
0
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
01.06.2025, 20:36
вы как женщина за которой надо домысливать , говорите конкретно и фактами
0
02.06.2025, 07:04

Не по теме:

Цитата Сообщение от shonty Посмотреть сообщение
Оказывается и сейчас достаточно асма..
Полистаю на досуге.. чисто по обмену опытом
Полистал, просмотрел несколько архивов.. Да уж..
Перенимать чужой опыт не только полезно, но порой очень вредно ;)

Проще самому по даташитам..

0
4 / 4 / 0
Регистрация: 22.08.2023
Сообщений: 30
02.06.2025, 13:49
Цитата Сообщение от shonty Посмотреть сообщение
23AndreY, OLED-дисплей SSD1306 SSD1312 инициализация TWI I2C AVR ATmeg8 ассемблер ASM
как вам такое?
https://www.mikrocontroller.net/topic/511295#new
Думаю много интересного для начала найдёте.
ничего интересного , используются БИБЛИОТЕКИ (как я и говорил большинство пользуются готовыми решениями)
0
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 360
02.06.2025, 14:50
А как иначе?
Даже если писать в одиночестве и без интернета, со временем накапливаются наработки, которые и оформляются в виде "подключаемых модулей", которые можно и "библиотеками" назвать

Другое дело, что интересного можно извлеч для себя чужих библиотек. Я далеко не гений, поэтому интересуюсь чужим опытом. В частности на mikrocontroller.net хорошо пишет Steffen H. (avrsteffen).
Но тут сразу нужно ещё один нюанс обозначить: на асме же пишет каждый как хочет, единой концепции нет. Поэтому, не знаю как у кого, а у меня просто так взять чужую подпрограмму и вставить в свой код не получится.. К своему "знаменателю" приводить нужно.
Меня например вот эта тема заинтересовала https://www.mikrocontroller.net/topic/509129#new

Тут важен не сам код, а алгоритмы и принципы решения.

Но у вас возможно особенное восприятие.. Мы в троём пытались вам объяснить, что алгоритм и модульность - это базовое, но вы опять собираете всё во едино

Цитата Сообщение от 23AndreY Посмотреть сообщение
У меня знакомый есть он объяснять не умеет от слова совсем, этот тип людей я понял
Предполагаю, что у вас много знакомых, котоые вам объяснять не умеют, на много больше одного
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2025, 14:50
Помогаю со студенческими работами здесь

как подружить stm32f4discovery + 16x2 (1602) lcd
есть такая плата stm32f4discovey и 16x2 lcd экран нужна библиотека lcd.h где для него взять драйвер те библиотеку например для CooCox...

Вывод слова на LCD 1602 в МК PIC16F628 с помощью C++
добрый вечер буду очень благодарен за помощь имеется в наличии pic 16f628,lcd 1602+ponyprog Задача состоит в том, чтобы при каждом...

Подключение LCD 1602 через I2C к STM32F4 без библиотеки Hal
Здравствуйте! Пытаюсь запустить дисплей LCD 1602(по I2C) при помощи STM32F411VET6U. На форуме целое множество примеров по поводу запуска...

LCD 1602 не работает - подсвечиваются только ячейки первой строки
Добрый день всем! Подскажите, пожалуйста, почему экран может не работать? Подключил без i2c. Подсвечиваются только ячейки первой...

Не находит адрес lcd 1602
Добрый день. У меня имеется raspberry pi 3 b+ и дисплей lcd 1602. Подключил по картинке (1 вложение) Пытаюсь на raspberry сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
78
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru