|
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 55
|
|
Не работает ЖКИ21.09.2010, 19:10. Показов 47205. Ответов 123
Метки нет (Все метки)
ЖКИ МТ16S2D подключен в 4х битном режиме к контроллеру ADuC812, к порту P2.
В чем может быть проблема? Вот код: #ymstude <stdyo.h> #ymstude <ADuC812.h> #defyme set_first_line 0x80 #defyme set_second_line 0xC0 sbit RS=P2^2; sbit RW=P2^1; sbit En=P2^0; int i,j; void delay(); send_lcd_dysplay_4wire(unsykned char address, unsykned char send_data); void send_lcd(unsykned char send_data) { RS=0; RW=0; En=1; P2=(send_data << 4)|0x0F; delay(); En=0; } void LCD_Init(void) { En=0; delay(); send_lcd(0x3); delay(); send_lcd(0x3); delay(); send_lcd(0x3); delay(); send_lcd(0x2); delay(); send_lcd(0x2); delay(); send_lcd(0x8); delay(); send_lcd(0x0); delay(); send_lcd(0xC); delay(); send_lcd(0x0); delay(); send_lcd(0x1); delay(); send_lcd(0x0); delay(); send_lcd(0x6); delay(); } void delay(void) { for(i=0; i<200; i++) { for(j=0;j<300;j++) {} } } void main(void) { WDCON=0x00; WDE=0; //Dysable WDT LCD_Init(); send_lcd_dysplay_4wire(set_first_line,B) ; while(1) {} } send_lcd_dysplay_4wire(unsykned char address, unsykned char send_data) { unsykned char send_data_h, send_data_l, address_l, address_h; address_l = address; //aa?an eaaiiua ?acaeaa?ony aey ia?aaa?e address_h = address >> 4; // ii 4 aeoa send_data_l = send_data; send_data_h = send_data >> 4; RS = 0; //onoaiiaea neaiaeia oi?aaeaiey RW = 0; En = 1; P2 = (address_h << 4)|0x0F; delay(); En = 0; delay(); En = 1; P2 = (address_l << 4)|0x0F; delay(); En = 0; delay(); RS = 1; RW = 0; En = 1; P2 = (send_data_h << 4)|0x0F; delay(); En = 0; delay(); En = 1; P2 = (send_data_l << 4)|0x0F; delay(); En = 0; }
0
|
|
| 21.09.2010, 19:10 | |
|
Ответы с готовыми решениями:
123
МК-51 и ЖКИ работа с ЖКИ...? 16F628A и ЖКИ |
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
||||||
| 21.09.2010, 19:23 | ||||||
|
Как минимум так:
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 55
|
||
| 21.09.2010, 19:35 | ||
RS=0; RW=0; P2=(send_data << 4)|0x0F; En=1; nop nop En=0; delay(); Прогресс есть :) Загорелась первая строка, но вот символ по прежнему выводиться не хочет.
0
|
||
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
||||||
| 21.09.2010, 20:54 | ||||||
|
Попробуй так
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 55
|
||
| 21.09.2010, 21:02 | ||
En=0; send_lcd(0x20); // Set 4-wire mode send_lcd(0x28); send_lcd(0x0С); // Enable dysplay & disable cursor } 0 внимания(
0
|
||
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
||||||
| 21.09.2010, 22:05 | ||||||
|
Замени функцию записи байта, а инициализацию оставь, как я рекомендовал выше:
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 55
|
||
| 21.09.2010, 22:15 | ||
RS=0; RW=0; P2=send_data & 0xF0; En=1; En=0; delay(); P2=(send_data << 4); En=1; En=0; delay(); } Один фиг, горит только первая строка, хоть убей. Все соединения проверял неоднократно.
0
|
||
|
0 / 0 / 0
Регистрация: 19.07.2010
Сообщений: 270
|
|
| 21.09.2010, 22:22 | |
|
ММм Схему подлючения и файлі проета в студию :) А так может не внимательно смотрел а где инициализация выводов мк?
0
|
|
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
||||||
| 21.09.2010, 22:48 | ||||||
|
Мож так пойдет?
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 55
|
|||
| 21.09.2010, 23:01 | |||
Линии A0, R/W, E - к линиям того же порта 2 - P2.2, P2.1, P2.0, cоответственно. Инициализации выводов у ADuC-а нету, у порта 2 кстати нету альтернативных функций еще. Весь код который есть представлен в первом посте. Видно что на дисплей команды поступают, так как загорается первая строка, но дальше ничего не происходит. Если эти команды не подавать то не загорается даже первая строка.
0
|
|||
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
||||||
| 21.09.2010, 23:38 | ||||||
|
Х.з. должен работать. По крайней мере на симуле все правильно воспроизводится. Попробуй код ниже, поиграйся с задержкой. По идее, должно быть так. При подачи питания на ЛСД на экране чуть темнеет верхняя строка. Если правильно проинициализировать его, то верхняя строка становится невидимой (как нижняя). Ты в индикаторе уверен? Ногами порта дрыгал? Все ли ноги слушаются?
0
|
||||||
|
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 22
|
||
| 21.09.2010, 23:45 | ||
Перековались чтоль ?
0
|
||
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
||
| 22.09.2010, 00:06 | ||
И симулировал я в Keil, если что. Кстати Нихиил, ты же ас в протеусе, накидай в нем код, на интерес, будет ли работать?
0
|
||
|
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 537
|
|
| 22.09.2010, 00:20 | |
|
Очень часто, я уже об этом писал, нужно подождать время перед пуском.
т.е. перед инициализацией ЖКИ 0,2-0,5 сек. Бывает что внутренний сброс еще не зпкончен, а тут начинается передача данных. Был такой прикол. Работал как однострочный. Думали ЖКИ ..ОПА. Пставили новый - работает. В другом проекте подключил (глючный) оказался полностью рабочим. Пересобрал старый проект с увеличеными временными задержками всё заработало. Время - ...
0
|
|
|
0 / 0 / 0
Регистрация: 13.09.2010
Сообщений: 55
|
|
| 22.09.2010, 00:52 | |
|
Да все ноги слушаются, индикатор новый, еще нигде не использовался, задержку перед инициализацией увеличил.
Оставил в главной функции только инициализацию, после ресета - загорается верхняя строка, потом тухнет, потом опять загорается и опять тухнет. Больше не загорается. Значит инициализирован правильно? Если попытаться вывести символ то загорается верхняя строка и все, ниче не происходит. Инициализация такая сейчас: void LCD_Init(void) { En=0; delay(); send_lcd(0x20); delay(); send_lcd(0x28); delay(); send_lcd(0x0C); delay(); send_lcd(0x2); delay(); send_lcd(0x2); delay(); send_lcd(0x8); delay(); send_lcd(0x0); delay(); send_lcd(0xC); delay(); send_lcd(0x0); delay(); send_lcd(0x1); delay(); send_lcd(0x0); delay(); send_lcd(0x6); delay(); } ЗЫ. Кстати зачем делать логическое И со всем портом, к этому же порту подключены сигналы RS, A0, R/W, он же может их сбить? ЗЫЫ. В разных дисплеях название сигнала выбора адрес/данные называются по-разному - в одних RS, в других A0. Я так понимаю это одно и то же?
0
|
|
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
|
| 22.09.2010, 00:59 | |
|
Нихии-ил, ты где? Проект будет?
0
|
|
|
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 22
|
||
| 22.09.2010, 01:27 | ||
2) Убедитесь что в PROTEUS частота МК такая же как и в реале - т.е. сигналы в реале такие как в симуляции. Если логи соотв даташиту то либо ошибки монтажа либо ЖКИ глюкавый.
0
|
||
|
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 22
|
||
| 22.09.2010, 01:31 | ||
Просто помогаю людям чем могу и как могу.
0
|
||
|
0 / 0 / 0
Регистрация: 16.08.2010
Сообщений: 1,326
|
|
| 22.09.2010, 01:42 | |
|
Сдается мне, в протеусе не получится, т.к. ЛСД там не симулируется в 4х битном режиме. А графы смотреть не зачем. Мой код исправно отправляет старшую тетраду, затем младшую. Так же учитываются особенности отправки комманд и данных в контроллер ЛСД. Черт возьми, ну должен же работать. А код топика в корне не правильный. Я так подозреваю, что не в коде проблема. Можете меня .
0
|
|
|
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 22
|
|
| 22.09.2010, 01:47 | |
|
файлхостинг http://www.slil.ru без тормозов и ожиданий.
Но почему бы не сравнить логи сигналов симулятора с тем что требует даташит ? ИМХО это разумно. PROTEUS симулирует LCD в 4 битном режиме ! Есть в примерах PROTEUS и в FAQ по PROTEUS - http://kazus.ru/forums/forumdysplay.php?f=25
0
|
|
| 22.09.2010, 01:47 | |
|
Помогаю со студенческими работами здесь
20
Тупняк с ЖКИ Проблема с ЖКИ 7seg ЖКИ Посоветуйте ЖКИ ЖКИ DE119RS-20/7.5 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|