Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Lcd 19264 i Lpt

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce
Lcd 19264 i Lpt

Postautor: ACeK » 23 sie 2005, o 19:45

:) Sterowanie wyswietlaczem znakowym jest bardzo proste. Ale sterowanie wyswietlaczem graficznym w ktorym ekran podzielony jest na strony jest troszke trudniejsze. Przedstawiam tu przyklad jak mozna wyswietlacz z :arrow: HD61202 podlaczyc do LPT i z kompa przeslac do niego jakis obrazek (u mnie wartosc Vc = -3.45V).

[center]Obrazek[/center]
Aby to zrobic potrzebny bedzie jakis program graficzny paint lub corel photo paint. Gdy juz mamy program to wystarczy cos namalowac w rozdzielczosci 192x64 (raster ;) ) czarno bialy. Tak wykonany obrazek zapisujemy jako BMP.

[center]Obrazek[/center]
Teraz aby uproscic kod trzeba nasz obrazek poprzestawiac:

[center]Obrazek[/center]
1. odwrocic kolory

[center]Obrazek[/center]
2. obrocic o 90' przeciwnie z ruchem wskazowek zegara

[center]Obrazek[/center]
3. zrobic lustrzane odbicie.

Opis jak sa zapisane oraz jak przygotowac obrazek opracowalem na podstawie :arrow: Graphics How To :idea:

Gdy juz obrazek jest gotowy to mozna teraz uzyc program :arrow: Hexworks ktorym z pliku (obazka .bmp) wyciac naglowek (pierwsze 62 bajty) i zgrac za pomoca export dane w postaci zjadliwej przez C.

Tak przygotowane dane dolaczylem do programu napisanego w C

Kod: Zaznacz cały

// Driver *** Graphic LCD 19264 *** through Lpt by :) ACeK #include <conio.h> #include <stdio.h> unsigned short lpt = 0x378; unsigned short lptr = 0x37a; int data; // data writen to Lcd int lcdreg [3] = {234, 226, 232}; // "rs" (234 i 235) , "E" (238 i 239) char segmentLcd; char pagecount; char invers; int count; int lcdxxx = 0; // variable for in write_lcd function int lcddata; int lcdrw; // rs 0 write to display data, 1 write to reg data int wtime; // time in milisec unsigned char ACeKData[1536] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x83, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0xE7, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x0F, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x03, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x01, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x1F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x0F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x07, 0x00, 0x7C, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x0F, 0x80, 0x7C, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x0F, 0xC0, 0x7C, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xE0, 0x7C, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x0F, 0xF0, 0x7C, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xFC, 0xFC, 0x00, 0x07, 0xFF, 0x80, 0x00, 0x03, 0xFE, 0xFC, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x01, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xF8, 0x0F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x3F, 0xF8, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x80, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xE0, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xF0, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x7F, 0xE3, 0xF8, 0x0E, 0x7E, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFE, 0x1F, 0x3E, 0x00, 0x00, 0x01, 0xFE, 0x00, 0xFF, 0x1F, 0x3E, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x7F, 0x1F, 0x3F, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x3F, 0x9F, 0xBF, 0x00, 0x00, 0x0F, 0xE0, 0x00, 0x1F, 0xDF, 0x9F, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x0F, 0xEF, 0x9F, 0x00, 0x00, 0x7F, 0x80, 0x00, 0x07, 0xEF, 0x9F, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x03, 0xEF, 0x9F, 0x1C, 0x00, 0x7E, 0x00, 0x00, 0x01, 0xCF, 0x9F, 0x3E, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x0F, 0x9F, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x9F, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x9F, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x8E, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x81, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x9F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xC1, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x81, 0xC0, 0x80, 0x00, 0x0E, 0x00, 0x00, 0xC3, 0x01, 0xC0, 0x80, 0x00, 0x1F, 0x00, 0x00, 0xC6, 0x00, 0x00, 0x80, 0x00, 0x1F, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x80, 0x00, 0x3F, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x80, 0x00, 0x3F, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x80, 0x00, 0x3E, 0x00, 0x00, 0xC4, 0x00, 0x01, 0x80, 0x00, 0x3E, 0x00, 0x00, 0xC4, 0x00, 0x01, 0x80, 0x00, 0x3E, 0x00, 0x00, 0xC2, 0x01, 0xC1, 0x80, 0x00, 0x3E, 0x00, 0x00, 0x42, 0x01, 0xC3, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x41, 0x01, 0xC3, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x60, 0x80, 0x02, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x60, 0x00, 0x02, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x0C, 0x00, 0x18, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x06, 0x00, 0x30, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01, 0xF0, 0xC0, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x1C, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x07, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x1F, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x3F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFC, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xF8, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x9F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xDF, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x03, 0xEF, 0xFF, 0x00, 0x00, 0x00, 0x3F, 0xE0, 0x03, 0xE7, 0xFF, 0x00, 0x00, 0x00, 0x36, 0x60, 0x03, 0xE3, 0xFF, 0x00, 0x00, 0x00, 0x36, 0x60, 0x03, 0xE1, 0xFF, 0x00, 0x00, 0x00, 0x30, 0x60, 0x03, 0xE0, 0xFF, 0x00, 0x00, 0x00, 0x38, 0xE0, 0x03, 0xE0, 0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0xE0, 0x03, 0xE0, 0xFF, 0xC0, 0x00, 0x00, 0x3F, 0xE0, 0x07, 0xE7, 0xFF, 0xE0, 0x00, 0x00, 0x06, 0x60, 0x07, 0xEF, 0xFF, 0xF0, 0x00, 0x00, 0x06, 0x60, 0x07, 0xCF, 0xFF, 0xF8, 0x00, 0x00, 0x07, 0x60, 0x01, 0x8F, 0xF1, 0xFC, 0x00, 0x00, 0x03, 0xC0, 0x40, 0x07, 0xE0, 0xFC, 0x00, 0x00, 0x01, 0x87, 0xF8, 0x00, 0x00, 0x7C, 0x00, 0x01, 0x80, 0x00, 0x84, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x70, 0x00, 0x02, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x58, 0x03, 0x84, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x44, 0x04, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x01, 0xF8, 0x04, 0x80, 0x00, 0x00, 0xF8, 0x00, 0x00, 0xF0, 0x04, 0x80, 0x01, 0xC0, 0xF8, 0x00, 0x01, 0x08, 0x04, 0x80, 0x3E, 0x40, 0xF8, 0x00, 0x01, 0x08, 0x03, 0x81, 0xC0, 0x40, 0xF8, 0x00, 0x01, 0x88, 0x00, 0x01, 0x00, 0x80, 0xF8, 0x00, 0x01, 0x60, 0x00, 0x40, 0x80, 0x80, 0xF8, 0x00, 0x01, 0xA0, 0x03, 0x80, 0x83, 0x00, 0xF8, 0x00, 0x01, 0x60, 0x0D, 0x00, 0xCC, 0x00, 0xF8, 0x00, 0x01, 0x00, 0x00, 0x80, 0x38, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0xF8, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x0F, 0x81, 0xF8, 0x00, 0x00, 0x40, 0x00, 0x80, 0x70, 0x01, 0xF8, 0x00, 0x00, 0xB0, 0x0F, 0x01, 0x80, 0x01, 0xF8, 0x00, 0x00, 0x8C, 0x08, 0x01, 0x00, 0x00, 0xF0, 0x00, 0x01, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x81, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x80, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } ; int write_lcd(int lcdrw, int data, int wtime); // wriate funtion(0 data display, 1 reg inst), data, wating time main() { puts("Sterowanie Gr LCD przez Lpt o adresie H378"); for (segmentLcd = 0; segmentLcd < 3; segmentLcd++) { data = 62;// display OFF write_lcd(1, data, 5); // 1 write reg instruction sleep (1); data = 63; // display ON write_lcd(1, data, 1); data = 192; // display start line write_lcd(1, data, 1); data = 64; // set Y to 0 write_lcd(1, data, 1); for (pagecount = 0; pagecount < 8; pagecount++) { data = 184 + pagecount; // page 0 write_lcd(1, data, 1); invers = 7 - pagecount; data =0; //variable data for display for (count = 0; count < 64; count++) { data = ACeKData[(count * 8 + invers + segmentLcd * 512)]; write_lcd(0, data, 1); } } } puts("obraz wpisany :)"); return 0; } int write_lcd(int lcdrw, int data, int wtime) { lcdxxx = lcdreg [segmentLcd] + lcdrw; _outp(lpt, data); _outp(lptr, lcdxxx); _outp(lptr, (lcdxxx += 4)); _outp(lptr, (lcdxxx -=4)); sleep(wtime); data = _inp(lpt); return data; }
Teraz wystarczy skompilowac i uruchomic a obrazek zostanie wyslany na wyswieltlacz :wink:
:D

[center]Obrazek[/center]
BTW Jesli opis jest :no: zbyt czytelny lub za bardzo uproszczony prosze dac znac.

Spark89
-
-
Posty:62
Rejestracja:28 mar 2005, o 11:18
Lokalizacja:pl
Kontaktowanie:

Postautor: Spark89 » 25 sie 2005, o 11:08

Hej. Dobra robota ACeK :D.
Należą Ci się wielkie brawa ;).
It's fantastic :mrgreen:.
Pozdr.

Awatar użytkownika
end
admin
admin
Posty:4977
Rejestracja:7 maja 2003, o 11:18
Lokalizacja:Jedlina Zdrój
Kontaktowanie:

Postautor: end » 25 sie 2005, o 11:22

Gratulacje ACek :mrgreen:
Bardzo fajny projekcik, ja bym sobie z tym nieporadził :no:

Awatar użytkownika
M@rek
-
-
Posty:118
Rejestracja:5 lip 2005, o 09:37
Lokalizacja:~`!@#$%^&*()_-+=
Kontaktowanie:

Postautor: M@rek » 25 sie 2005, o 12:35

No ładne :o - udało ci się :mrgreen: - mam tylko jedno pytanie: po jakim czasie od jednego odświeżenia można odświeżyć następny raz, czyli ile klatek na sekundę osiągasz.

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 25 sie 2005, o 14:58

:) Thx :P
... po jakim czasie od jednego odświeżenia można odświeżyć następny raz, czyli ile klatek na sekundę [fade]osiągasz. [/fade]
Lcd 19264 zbudowany jest z trzech HD61202 i jednego HD61203. HD61202 ma swoja pamiec ram (512 bajtow) ktora nie wymaga odswierzania. Czyli nasz wyswietlacz to jakby 1536 bajtow pamiec. W pisanie calego obrazka zajmuje okolo 2s. Moja metoda wpisywania polega na tym ze wpisuje pierwsze 512 do pierwszego segmentu, zmieniam segment na drugi wpis nastepnych 512, zmiana na trzeci wpis i to wszystko. Sam programik to nic innego jak tylko automat wysylania danych zawartych w ACeKData w odpowiednie miejsce w pamieci ram wyswietlacza. Wybor segmentu ram (HD61202) dokonuje sie za pomoca CS1 i CS2 :idea:
... ja bym sobie z tym ni[fade]eporadził[/fade]
Moge Cie zapewnic ze sie mylisz :P dlatego zrob cos takiego. Wejdz do tego :arrow: linka w ktorym jest symulator graficznego wyswietlacza 12864 (jeden segment mniej niz moj). W lewym gornym rogu jest LCD Status ktory informuje czy lewy lub prawy segment jest wlaczony, Y adres mowi na ktorej pozycji (0-63) bedzie wpis, page nr strony (0-7), selected jesli wybrany to mozliwy wpis. W centrum jest wyswietlacz a pod nim uklad danych 8 bitow oraz 5 bitow sterowanie.

Aby co kolwiek wyslac do wyswietlacza nalezy zmienic stan z 1 na 0 na jednym z CSA lub CSB (mozna tez na obu na raz) zmieniajac stan od razu powinien sie zmienic status selected z NO na YES. Teraz nasz wyswietlacz jest wylaczony OFF aby go wlaczyc nalezy wpisac dziesietnie 63 (czerwone pola) oraz zmienic E z 1 na 0 i z powrotem na 1. Czy zmienil sie status na ON? Jesli tak to idziemy dalej jesli :no: zacznij jeszcze raz :wink: To co teraz robilismy to bylo wysylanie kodow sterujacych D/I stan 0. Jesli teraz zmienimy D/I na stan 1 (tryb wpisywania danych) i wpiszemy jaka kolwiek liczbe (oprocz zera) to graficzny podglad jej mozemy zobaczyc przy Pixel: teraz wystarczy zmienic E z 1 na 0 i z powrotem na 1 a na ekranie wyswietlacza powinny sie pojawic jakies zapalone piksele. Kody instrukcji sterujacych znajdziesz w pdf HD61202 ktorego link znajdziesz w pierwszym poscie. Czyz :no: jest to proste :wink:
:D

BTW Program dziala tylko na win 9X :(

Shadowvip
-
-
Posty:33
Rejestracja:29 wrz 2004, o 17:51
Lokalizacja:Warszawa
Kontaktowanie:

Postautor: Shadowvip » 27 sie 2005, o 12:46

bardzo fajna sprawa ale do czego moze sie przydac :|

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 27 sie 2005, o 23:07

:) To jest tylko przyklad jak mozna sterowac Lcd z Lpt. A jak mozna wykorzystac Lcd? Tu ograniczeniem jest tylko Twoja fantazja. Masz do wyboru ala ekran o rozdzielczosci 192 punkty na 64 ktory przyjmie wszystko co mu wyslesz :wink:
:D

_wojtek_
-
-
Posty:7
Rejestracja:9 maja 2003, o 18:12
Lokalizacja:kalisz

Postautor: _wojtek_ » 3 paź 2005, o 17:59

Bardzo ciekawy projekt.
bardzo fajna sprawa ale do czego moze sie przydac :|
Coraz popularniejsze są ekrany diodowe LED (widziałem takie na dworcu, w sklepach, tramwajach). Na ekranie wyświetlane są jakieś reklamy, albo nazwa ulicy, na której zatrzymał się autobus.
Ten projekt to według mnie ciekawe rozwinięcie tego typu idei. Na skonstruowanym w ten sposób ekranie LCD klient mógłby sam i to w bardzo łatwy sposób umieszczać swoje napisy, rysunki. Wystarczy tyko podpiąć kompa i uruchomić Painta.

a_antoniak
-
-
Posty:651
Rejestracja:13 sty 2005, o 18:38
Lokalizacja:Krasnystaw
Kontaktowanie:

Postautor: a_antoniak » 3 paź 2005, o 19:33

BTW Program dziala tylko na win 9X :(
To akurat da się obejść i uruchomić program na nowszych wingrozach jak 2000 czy XP - chyba EP5/2004 będzie przydatna (ale nie wypróbowywałem). Na tym forum też kiedyś o tym pisano (chyba Tasza). No i przydałoby się GUI :). File->Open Picture itp. :).
Programowałeś w jakichś Visualach/RAD-ach?

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 4 paź 2005, o 09:26

... Programowałeś w jakichś Visualach/[fade]RAD-ach?[/fade]
:) Ja dopiero stawiam pierwsze kroki :562: uzywam Dev C++ :idea: a co to sa RAD-y nie mam pojecia :oops: to jest moj powrot po ponad 10 letnim rozwodzie z elektronika ostatni uklad jaki zrobilem to byl programatro pamieci eprom na Atari :wink:
:D

Awatar użytkownika
tasza
-
-
Posty:456
Rejestracja:17 sty 2005, o 10:52

Postautor: tasza » 4 paź 2005, o 09:36

RAD to jest Rapid Application Development ,
czyli środowiska programistyczne - 'klikane' przykładowo Delphi, C++Builder, w sumie VC++ też...
spora część kodu jest generowana przez automat, pisze się tylko 'wnętrzności' metod, handlerów zdarzeń etc...
proste aplikacje można sobie wizulanie 'wyklikać' prawie nic nie kodując

a_antoniak
-
-
Posty:651
Rejestracja:13 sty 2005, o 18:38
Lokalizacja:Krasnystaw
Kontaktowanie:

Postautor: a_antoniak » 4 paź 2005, o 10:35

w sumie VC++ też...
To akurat niezbyt dobry przykład. RAD oferuje komponenty (niektóre Visualne, a niektóre nie). Samo tworzenie GUI przez "klikanie" to jeszce za mało aby mówić o narzędziu RADowskim.
w VC++ tworzy się wizualnie zasoby (resources) ale o komponentach nie ma mowy (przynajmniej do wersji 6. - innych nie używałem). Button w BCB to gotowy komponent obdarzony pewna funkcjonalnością do natychmiastowego uzycia. Button w VC++ to tylko zasób i wymaga dodatkowych zabiegów żeby z niego skorzystać.
Za to z produktów M$ Visual Basic wydaje się być bliski RADom, a nawet jest nim.

To make Visual C++ a RAD tool would replicate a lot of the functionality that is already in Visual Basic."
Jeff Ressler, Product Manager, Microsoft Corp.


Visual Studio .NET 2003 jest już chyba RADowskie. Używał ktoś?

Prawda jest też taka, że ostatnimi czasy pojęcie RAD rozmywa się... Myślę, że można mówić o narzędziach RAD i RAD-like :).

[ Dodano: 04-10-2005, 11:10 ]
...programatro pamieci eprom na Atari :wink:
:D
Atari? A fe! ;) :D :P Ja miałem (mam do dziś) C64. :)

JDawid
-
-
Posty:38
Rejestracja:22 gru 2005, o 00:13
Lokalizacja:Rzeszów

Bardzo ciekawe.

Postautor: JDawid » 22 gru 2005, o 16:55

Witam! Jak możesz to popatrz na mój post: viewtopic.php?p=59220#59220 i pomóż proszę... dodam, że też używam Dev C++.

[ Dodano: 28-12-2005, 12:57 ]
Cześć. Po wklejeniu całego Twojego programu do Dev C++ nie kompiluje się; są błędy że niektóre zmienne nie były zadeklarowane i ich pierwsze użycie jest dopiero w funkcji??!! Dlaczego?

Awatar użytkownika
ACeK
-
-
Posty:1522
Rejestracja:30 mar 2003, o 19:35
Lokalizacja:Kielce

Postautor: ACeK » 30 sie 2006, o 16:49

Obrazek Prawdopodobnie problem w tym ze ja mam zainstalowany Dev C++ i Visual C+ :idea: oraz jak mowie to wersja pod Win 9X :oops:
Atari? A fe! :wink: :D :P Ja miałem (mam [fade] do dziś) C64. [/fade]
:P Tak? a miales do swojego C64 taki DIY programator Eprom'ow? :wink:

[center]Obrazek[/center]
[center]Obrazek[/center]
:idea: Sciezki na plytce malowane zapalka i farba nitro Obrazek

Wróć do „DIY - Do It Yourself”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości