Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

LCD 4x20 AC-204AYILY + софтуер
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1253
Страница 1 от 1

Автор:  s_stoqnov [ Нед Ное 13, 2005 9:09 pm ]
Заглавие:  LCD 4x20 AC-204AYILY + софтуер

Та значи правя си LCD дисплей по схемата по долу. Проблема ми е в това как да си управлявам паралелния порт а от там и дисплея? Как примерно да задам едница в пин 1 а другите да са в 0?
Примерно според datasheet-а на контролера SED1278 за да изчисля дисплея трябва да установя
RS в 1 (пин 4-ри на дисплея)
R/W в 0 (пин 5 на дисплея)
DB7 в 0 (пин 14 на дисплея)
DB6 в 0 (пин 13 на дисплея)
DB5 в 0 (пин 12 на дисплея)
DB4 в 0 (пин 11 на дисплея)
DB3 в 0 (пин 10 на дисплея)
DB2 в 0 (пин 9 на дисплея)
DB1 в 0 (пин 8 на дисплея)
DB0 в 1 (пин 7 на дисплея)
Опитвам се да напиша някакъв сорс в .NET (Visual Basic) и най-вероятно ми трябва (или пък не) някакво .dll или ActiveX Control за LPT-то, порових се из нета и намерих I/O OCX ActiveX control но иска регистрация и демо версията на ОСХ-а не може да се ползва :(
До сега не съм се занимавал с нещо подобно и си нямам напредстава как става, някой ако меже да ме насочи към идеята или даде някакъв сорс ще съм много благодарен :)

Прикачени файлове:
4x20 LCD with software backlight control.jpg
4x20 LCD with software backlight control.jpg [ 40.13 KiB | Прегледано 2116 пъти ]

Автор:  Nikola Kirov [ Нед Ное 13, 2005 9:13 pm ]
Заглавие: 

тук ще намериш компонетнт за работа с порта http://www.internals.com/

Автор:  the_real_maniac [ Нед Ное 13, 2005 10:33 pm ]
Заглавие: 

Нямам много време сега, но накратко Паралелния порт има 3 регистъра: статус, дата и още един , ама как му беше името не помня. Ползвал съм го под си , като цяло вкарваш в дата регистъра и излиза на ДатаПиновете.

Объркал си се относно командата clear screen

Тя е RS 0 , RW 0 , DATAREG - 1000 0000 ;) :)

Иначе физ. свързване към ЛЦД-то не би трявбало да е голяма философия, въпреки че не съм го правил.

Виж проекта lcdprog (тя е за под линукс, но там ще има схеми за връзването и прочие).

Успех.

пп: точно такова лцд подкарвах (с PIC обаче) преди няколко дена и просто трябва да седна и да опиша нещата.
Не че е сложно , но аз се обърках на едно място с записването на символа в DDRAM-a , те изобразяването му:)

Автор:  The^day^of^DooM [ Пон Ное 14, 2005 12:27 am ]
Заглавие: 

Това ще помогне за DB0 до DB7 но за другите пинове не съм наясно :?
Код:
// PORT.H
// Borland C++ 3.1

#define LPT_1 888

char inpb(unsigned int port);
void outpb(unsigned int port, char value);


char inpb(unsigned int port)
{
    char value;

    asm {
      mov dx, port
      in al, dx
      mov value, al
    }
    return value;
}

void outpb(unsigned int port, char value)
{
    asm {
      mov dx, port
      mov al, value
      out dx, al
    }
}

и
Код:
// Test.c
// Borland C++ 3.1

#include "dos.h" // delay(...);
#include "PORT.H"
#include "conio.h"  // kbhit();

void main(void)
{
    while(!kbhit()) {
       outpb(LPT_1,0);
       delay(100);
       outpb(LPT_1,1);
       delay(100);
    }
}       


Ако искаш да тръгне под Windows XP разгледай http://darkface.pp.se/~spleen/lsd/awkiawki/index.cgi/UserPort

Автор:  the_real_maniac [ Пон Ное 14, 2005 12:40 am ]
Заглавие: 

Значи аз виждам две идеи:

- 4бит комуникация (3 упрв. + 4 данни = 7 , а ЛПТ-то е DATABUS/REG 8 става :) ).

(относно 3-тия рег - абе писна ми да се мъча и реших да погледна и то като погледнах и щях да се :) )
естествено ,че контрол рега

- та 2-рият вариант е да се ползва DATAREG-a (8бит) за данни в 8 бит режим и control рега за 3-те управляващи линии.

:)

Автор:  The^day^of^DooM [ Пон Ное 14, 2005 2:44 am ]
Заглавие: 

Ето адресите на 3 те основни регистъра на LPT 1:
888 - за данни
890 - за управление
889 - за състояние
Ето от тука http://www.natahaus.ru/2005/09/09/sopryazhenie_pk_s_vneshnimi_ustroystvami.html са 'взети' :)
P.S: Чак сега видях "Опитвам се да напиша някакъв сорс в .NET (Visual Basic)" така, че едвали съм помогнал кой знае колко (да не кажа никак):?

Автор:  s_stoqnov [ Пон Ное 14, 2005 11:04 am ]
Заглавие: 

@Nikola разгледах библиотеката WinIO но до колкото видях с нея може само да се управляват 8-те информационни пина а другите 3 управляващи...

@the_real_maniac физическата реализация не е нищо особенно и вече е изпълнена. Спрял съм се на 2-рия вариант който спомена, а и който се вижда от схемата, да използвам 8bit информация + 3 управляващи, но проблема е как да стигна до тези регистри?

Автор:  Nikola Kirov [ Пон Ное 14, 2005 12:02 pm ]
Заглавие: 

Както вече ти казаха порта се управлява с 3 регистъра. Изрови си описание на принтерския порт и работи смело.

Автор:  the_real_maniac [ Пон Ное 14, 2005 4:42 pm ]
Заглавие: 

s_stoqnov написа:
@Nikola разгледах библиотеката WinIO но до колкото видях с нея може само да се управляват 8-те информационни пина а другите 3 управляващи...

@the_real_maniac физическата реализация не е нищо особенно и вече е изпълнена. Спрял съм се на 2-рия вариант който спомена, а и който се вижда от схемата, да използвам 8bit информация + 3 управляващи, но проблема е как да стигна до тези регистри?


Moга да ти кажа под Линукс и под дос как :)
Ама с WINAPI Или някакво там за i/o не съм правил.

имаш BASE (който сочи datareg-a)
после BASE+1 status , BASE+2 control и воаля :)

BASE зависи от това на кой адрес е паралелния порт, което си е доста спец. за всеки чипсет или разш. платка :)
води се , че 1-ви парралелен би трябвало да е на 0x378 (ако не се лъжа така беше).

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/