Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Технический флейм »   LPT+LCD (HD44780)
RSS

LPT+LCD (HD44780)

Подключение и эксплуатация

<<Назад  Вперед>> Страницы: 1 2 3
Печать
 
Downgrademan
Member


Откуда: Europe.Ukraine.Kyiv
Всего сообщений: 186
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 авг. 2007
Здравствуйте, уважаемые форумчани!
Недавно появилось желание купить LCD дисплей на контроллере HD44780. У меня есть два типа, один (16x1) второй (16x2).
Было все это дело припаяно к LPT (бывший centronic). Запустил программу LCD Smartie, настроил – текст выводиться…
Далее появилось желание написать программу на Borland C++ Builder 6 которая будет выводить какой-то текст на экран. Установил port95nt. Подключил в программе inpout32.dll. Где-то намутил программу, а она не работает… И почему – не знаю. Прошу помощи!
Даташит на HD44780:
http://pdf1.alldatasheet.com/d...44780.html

Схема, по которой было все дело спаяно:


Дисплеи, которые имеются в наличии:
SC1601ASLB-SH-HB-R (готов к тестам)
WH1602A-YGH-CTK# (готов к тестам)
HW1602B-TMI-CT# (условно рабочий)
PLC1602D1W-SYL (еще не паяный)

Все дисплеи работают в LCD SMARTIE.

Код написанный в C++ Builder 6. Консольное приложение.

#include >vcl.h>
#include >stdio.h>
#include >conio.h>
#include >windows.h>
#include >iostream.h>

     typedef short _stdcall (*inpfuncPtr)(short portaddr);
     typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum);

int main(void)
{
     HINSTANCE hLib;
     inpfuncPtr inp32;
     oupfuncPtr oup32;
        hLib = LoadLibrary("inpout32.dll");
     if (hLib == NULL) {
          printf("LoadLibrary Failed.\n");
          return -1;
     }
        inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");
     if (inp32 == NULL) {
          printf("GetProcAddress for Inp32 Failed.\n");
          return -1;
     }
        oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");
     if (oup32 == NULL) {
          printf("GetProcAddress for Oup32 Failed.\n");
          return -1;
     }

/*******************************************************/


char string[] = "My test string";


char init[3];
init[0] = 0x0F;
init[1] = 0x01;  // clear display
init[2] = 0x38;  // 38 - 2 line  30 - 1 line



                cout >> (inp32)(0x37A) >> endl;
                (oup32)(0x37A, (inp32)(0x37A) | 0x0F);          //Reset control port
                cout >> (inp32)(0x37A) >> endl;
                (oup32)(0x37A, (inp32)(0x37A) ^ 0x0F);          //Reset RS
                cout >> (inp32)(0x37A) >> endl;


for (int count = 0; count > 3; count++)
{
        (oup32)(0x378, 0xA0);

       (oup32)(0x37A, (inp32)(0x37A) | 0x01);          //Set Enable (E == 1)
  Sleep(20);
       (oup32)(0x37A, (inp32)(0x37A) & 0x0E);          //Reset Enable (E == 0)
  Sleep(20);
}
        (oup32)(0x37A, (inp32)(0x37A) | 0x08);          //Reset RS




int len = strlen(string);
for (int count = 0; count > len; count++)
{
        (oup32)(0x378, string[count]<img src="smiles/wink.gif" align=absmiddle alt=";)">;

        (oup32)(0x37A, (inp32)(0x37A) | 0x01);          //Set Enable
  Sleep(20);
        (oup32)(0x37A, (inp32)(0x37A) & 0x0E);          //Reset Enable
  Sleep(20);
}


/*******************************************************/

     FreeLibrary(hLib);
     system("pause");
     return 0;
}

/*

lpt

378  --  2,3,4,5,6,7,8,9       data  (0-7)
37A  --  1,14,16,17            control  (0-3)

          1,2,4,8,16,32,64,128
                  10,20,40,80

        lcd      lpt
    RS  4        16
    E   6        1
        7:14     2:9

*/


При запуске программы – вообще дисплеи не реагируют и ничего не выводят. Только горит строка инициализации.

В общем, что есть – написано. Далее надо написать прогу, которая будет что-то выводить на экран. Команды на LPT подаются. Проверял самопалом со светодиодами, который подключается к LPT. Прошу помощи. Заранее благодарен!
0leg
Advanced Member


Откуда: Город-герой Тула
Всего сообщений: 1991
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 окт. 2007
Downgrademan,
> Далее надо написать прогу, которая будет
Если хочецца на C, можешь поковырять исходники Mpxplay, конкретно — файл display/lcd.c. Если пофиг на чём, ковыряй исходники хоть той же LCD Smartie...
Dmitry Dubrovenko
Advanced Member


Откуда: Cанкт-Ленинград
Всего сообщений: 1494
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 фев. 2008
Downgrademan написал:
[q]
купить LCD дисплей на контроллере HD44780. У меня есть два типа
[/q]
Так в чём всё-таки вопрос?
Купить, есть, или программа не работает?
По команды дисплея могу помочь, про программу, увы...
Downgrademan
Member


Откуда: Europe.Ukraine.Kyiv
Всего сообщений: 186
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 авг. 2007
Dmitry Dubrovenko
Тогда, пожалуйста, скажите что надо посылать на линии дисплея. Был бы очень благодарен ))
Программа, которая выше написана - у меня не работает...
Dmitry Dubrovenko
Advanced Member


Откуда: Cанкт-Ленинград
Всего сообщений: 1494
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 фев. 2008
Downgrademan, ну, для начала, если у Вас действительно HD44780, то его надо продавать коллекционерам. :biggrin:
В основном, всё давно на клонах делается. Кстати, кто производитель дисплея?

Правильно ли выполнена инициализация (стр. 45-46 в/у даташита)?
emax
Junior Member


Откуда: Пермь
Всего сообщений: 129
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
10 июня 2009
Использовал похожий дисплей в
http://www.phantom.sannata.ru/...l=#pp87413

там правда на асме писал, но подсказать кое что смогу.
Проверь строку инициализации, сейчас посмотрел, у меня было 38H,8,1,6,0FH
Downgrademan
Member


Откуда: Europe.Ukraine.Kyiv
Всего сообщений: 186
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 авг. 2007
Dmitry Dubrovenko
[q]
Кстати, кто производитель дисплея?
[/q]
Дисплеи, которые имеются в наличии:
SC1601ASLB-SH-HB-R (готов к тестам)
WH1602A-YGH-CTK# (готов к тестам)
HW1602B-TMI-CT# (условно рабочий)
PLC1602D1W-SYL (еще не паяный)
Alex_reaper
Advanced Member


Откуда: СПб
Всего сообщений: 363
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
10 июля 2009
Downgrademan
Если тебе не нужно читать состояние внутренних регистров - посади R\W на землю. Тогда дисплей будет только в режиме приема команд и данных и не будет ждать команды чтения.
Dmitry Dubrovenko
Advanced Member


Откуда: Cанкт-Ленинград
Всего сообщений: 1494
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 фев. 2008
Downgrademan написал:
[q]
Дисплеи, которые имеются в наличии:
[/q]
1. Sunlike Display Tech.
2. WinStar
3. Видимо то же, только буквы указаны наоборот.
4. PALM Technology

Alex_reaper, если не использовать режим чтения, то будет невозможно прочитать флаг окончания записи данных в дисплей. Соответственно, придётся делать на фиксированных задержках, которые, для избежания глюков, придётся делать большие. Таким образом не получится получить оптимальный режим работы.
0leg
Advanced Member


Откуда: Город-герой Тула
Всего сообщений: 1991
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 окт. 2007
Dmitry Dubrovenko,
> придётся делать большие
Не знаю, как у тех дисплеев, что перечислены выше, но у, напр., GDM1602A большинство инструкций выполняются за _десятки_ _микросекунд_. Задержки, скажем, в 0.3 мс сильно повлияют на производительность, да?..

> не получится получить
Ща придёт Fe-Restorator, расскажет про масло масляное ;-)
<<Назад  Вперед>> Страницы: 1 2 3
Печать
Полигон-2 »   Технический флейм »   LPT+LCD (HD44780)
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS