Инициализация происходит путем установки на RS - 0. При этом данные поступят в регистр команд, и дисплей уже будет знать, что ему делать...
далее переключаем RS в 1 и теперь данные записываются в регистр видеопамяти DDRAM.
И теперь запись появляется на экране. Правильно?
_________________ Не умеешь - не берись, но не взявшись не научишься...
Итак статейка о LCD на HD44780, оч.давно нарыл где-то на просторах инета, мне помогло освоиться, надеюсь поможет кому-то еще (главное все по нашенски и доходчиво ). Всем удачи. Спасибо Aheir, сам бы точно до такого не додумался, нормальные герои всегда идут в обход
перезалей в личку. Только залей на файлообменник, например, на депозит, одним файлом. А то что то не получается эти 2 архива привратить в 1...
_________________ Не умеешь - не берись, но не взявшись не научишься...
Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22 Сообщений: 2401 Откуда: Россия, Волгоград
Рейтинг сообщения:0 Медали: 1
не понял в чем проблема?
только что скачал, проверил, все нормально распаковывается и на выходе получается пдф-ка с 14 стр текста.
зы: скачай оба файла в один каталог и распакуй.
_________________ Чем дальше, тем больше становлюсь занудой...
Зарегистрирован: Сб мар 21, 2009 23:46:25 Сообщений: 36
Рейтинг сообщения:0
sa-ta писал(а):
может кто то поможет опознать индикатор:
после подачи питания 5В. (первые 2 ноги) поджигаются 10 восьмерок с точками. потом гаснут.
на плате распаяна еще 14pin soic - первая строчка - 14011B ( ла7 ) вторая строчка XAA734.
может это что то I2C ?
это не и2с индикатор! сам контроллер представляет собой 80-ти битный сдвиговый регистр, у меня такойже дисплей есть, у меня правда микросхемы подписаны KS0061, но это аналог! Соответственно скачайте на них даташит. Там управление простейшее по 3-м проводам (данные, клок данных и клок говорящий о том что все 80 битов переданы!) Выводы по порядку
1 - минус
2 - плюс
3 - данные
4 - клок2(разберётесь по даташиту какой клок за что отвечает)
5 - клок1
6 - вывод М (поидее управление контрастностью), я его замкнул на дата
и на последок кусок кода, которым мне удалось запустить данный дисплей
Зарегистрирован: Сб мар 21, 2009 23:46:25 Сообщений: 36
Рейтинг сообщения:0
Непойму чё за глюк, когда вставляю код (моё сообщение выше), при отправке удаляется часть кода! два раза пробывал редактировать!
щас попробую сюда вставить ту чать где ошибки
Код:
for (x=10;x>0;x--)//Всего 10 разрядов индикатора { bufer=data[x];//Ложим в буфер х-тый элемент масива //и выводим этот элемент в индикатор for (i=0;i<8;i++) //Всего 8 сегментов индикатора { if(bufer&(1<<0)) //Если надо вывести 1 - выводим и защелкиваем сигналом клок { DAT=1; Clock2=1; delay_us(10); Clock2=0; } if(!(bufer&(1<<0>>1;//Сдвиг вправо } //M=1; //delay_us(10); M=1; } Clock1=1; delay_us(10); Clock1=0;
прикреплю еще сишный файл, на случай если снова неправильно вставится!
это не и2с индикатор! сам контроллер представляет собой 80-ти битный сдвиговый регистр, у меня такойже дисплей есть, у меня правда микросхемы подписаны KS0061, но это аналог! Соответственно скачайте на них даташит. Там управление простейшее по 3-м проводам (данные, клок данных и клок говорящий о том что все 80 битов переданы!)
мир не без добрых людей...спасибо
со временем сейчас напрженка, но попозже попробую.
Помогите, пожалуйста, попроавить ошибки.
Где, что неправильно, тыкайте, исправлю, потом буду пытаться писать на асике это все. Это как бы я алгоритм составил.
_________________ Не умеешь - не берись, но не взявшись не научишься...
Я не могу добить эту табличку!!! Как организовывать инициализацию? я понял, какие 1 определяют команды, адресуемые по IR...
НО!!! ВСю ли табличку надо переписывать? как надо правильно делать?
Я не могу понять, сначала надо вывести 1 строчку этой таблицы, подождать, затем вторую строчку, затем подождать, затем третью и т.д. или можжно сразу вывести? одним байтом?
Вобщем, правильно быглядит инициализация:
00000001 - очищаем дисплей, адрес ДДрам на 0.
вторую строчку таблицы пропускаем.
ждем (задержка)
00000110 - при последующем байте сдвинуть адрес ддрам на 1 позицию (инкремент).
задержка
00001000 - выключил дислпей, никаких курсоров.
задержка
00010100 - смещаем курсор, вправо.
задержка
00111000 - 8 разрядная шина данных, 2 строки, 5*8т разрешение матрицы
перед всем этим я ставил E в 1, теперь сбразываю ее в 0 и все, можно переходить на RS=1.
дальше, что от меня в таблице требуют, не знаю. Поэтому, уже перехожу к регистру DDram, RS кидаю в 1.
RW в 0.
теперь устанавливаем Е в 1 и выполняем процесс занесения кода букв:
У меня вот какой код получился:
10100101
10111011
11000100
10111000
10111101
01000101
10110011
10110100
01100101
10111101
10111000
10111001
я не знаю, какие надо задержки вводить между каждым выводом байта... задержка Е=0 - этим мы выдали на экран надпись.
теперь опять лезем в IR регистр для этого RS=0.
Поправляем:
Е=1,
RW=0,
00001100 - включили дисплей, опять без курсоров.
е бросаем в 0, все, надпись выведена.
правильно?
_________________ Не умеешь - не берись, но не взявшись не научишься...
я не флудю. я пытаюсь изобрести велосипед, как многие скажут. Правильный алгоритм я составил?
если не изобретать велосипед и самому не писать программу, ассемблеру да и просто программированию и работе с ЖК не научишься.
Для меня это тяжело как 5 тонный камень, пока что...
_________________ Не умеешь - не берись, но не взявшись не научишься...
Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22 Сообщений: 2401 Откуда: Россия, Волгоград
Рейтинг сообщения:0 Медали: 1
Ну тогда хотя бы прочти что-нибудь про LCD, там же русским языком написано прежде чем использовать индикатор его надо ИНИЦИАЛИЗИРОВАТЬ, а где у тебя процедура инициализации?
_________________ Чем дальше, тем больше становлюсь занудой...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения