znowu LCD na HD44780
Masz problem? Zapytaj na forum elektroda.pl
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: znowu LCD na HD44780
Date: Sat, 2 Dec 2000 22:27:14 +0100
jak mam rozumiec sygnal Enable
H,H>L ?????
czy to jest tak .....
wysylam dane na db0-db8
ustawiam R/W
ustawiam R/S
a na koncu enable Higt na czas kilku ns ??? i zerowac
i tak w kolko ????
johnctn_at_nospam_wp.pl
From: "milosz klosowicz" <news_at_nospam_mikrobit.prv.pl>
Subject: Re: znowu LCD na HD44780
Date: Sun, 3 Dec 2000 21:32:06 +0100
JohnCTN <johnctn_at_nospam_wp.pl> wrote in message news:90bpi9$dmt$1_at_nospam_news.tpi.pl...
jak mam rozumiec sygnal Enable
H,H>L ?????
czy to jest tak .....
wysylam dane na db0-db8
ustawiam R/W
ustawiam R/S
a na koncu enable Higt na czas kilku ns ??? i zerowac
i tak w kolko ????
I tak w kolko .... Tyle ze czas ustawienia ENABLE to minimum 450ns (a
całego cyklu L->H,H->L 1000 ns).
Wszystkie zaleznosci czasowe sa opisane np. tutaj :
http://www.hea.com/hean2/lcd/hd44780u.pdf
Milosz
From: "Bartosz Rakowski" <rakbar_at_nospam_poczta.onet.pl>
Subject: Re: znowu LCD na HD44780
Date: Sun, 3 Dec 2000 22:25:01 +0100
Czesc
a na koncu enable Higt na czas kilku ns ??? i zerowac
Akurat tym nie ma co sie za bardzo przejmowac. Przez ostatnie 4 miesiace
walczylem z LCD i w koncu poszlo - teraz sam nie wiem co robilem zle. W
programie ktory dziala i w notach apliakcyjnych (ktorym nie nalezy za bardzo
wierzyc) jest to rozwiazane tak, ze trzeba dac impuls bedacy jedynka, a
potem mozna wygasic. Jak sadze HD wyczuwa zbocze sygnalu.
Ja to robie tak, ze ustawiam pin na "1", a potem czekam az sie pojawi np. w
assemblerze za pomoca JNB LCD_E, $. Jak sie ustawi, to program idzie dalej.
Rakbar
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: znowu LCD na HD44780
Date: Mon, 04 Dec 2000 12:06:03 +0100
Bartosz Rakowski wrote:
Ja to robie tak, ze ustawiam pin na "1", a potem czekam az sie pojawi np. w
assemblerze za pomoca JNB LCD_E, $. Jak sie ustawi, to program idzie dalej.
Z ciekawosci, co masz podlaczone na wyjsciu ??? I dlaczego przez tak
wielki kondensator ??? Przeciez w nastepnym cyklu maszynowym po
ustawieniu na porcie '1' masz na 100% jedynke chyba ze jakies dziwnosci
tam podlaczasz.
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: znowu LCD na HD44780
Date: Sun, 03 Dec 2000 17:43:06 +0100
JohnCTN wrote:
jak mam rozumiec sygnal Enable
H,H>L ?????
Z angielskiego Level Triggered, czyli czuly na zbocze, a konkretnie na
zbocze opadajace.
Moze nie zrozumialem, ale robisz to tak:
Ustalasz stan na DB0 - DB9.
Wystawiasz (albo i nie) RW i RS. (Dane powinny byc stabilne przed
wejsciem EN w stan wysoki)
Na EN podajesz H, w nastepnym cyklu maszynowym mozesz dac na EN L i
odczekac okreslony czas.
I to wszystko.
Konkretne informacje znajdziesz w LCD faq na
ftp://ftp.psyber.com/tcj/faqs/
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Mon, 4 Dec 2000 17:26:19 +0100
Moze nie zrozumialem, ale robisz to tak:
Ustalasz stan na DB0 - DB9.
Wystawiasz (albo i nie) RW i RS. (Dane powinny byc stabilne przed
wejsciem EN w stan wysoki)
Na EN podajesz H, w nastepnym cyklu maszynowym mozesz dac na EN L i
odczekac okreslony czas.
I to wszystko.
Wlasnie tak robie a to nie dziala ;(((((
a moze robie to na zlym sprzecie ( commodore 64 1Mhz)
do komunikacji urzylem ukladu intel 8255 (24 linie I/O)
poniewaz C64 posiada tylko 8 lini I/O
uklad robi to tak:
wysylam 8 bitow danych do portu A (db0-db8)
wysylam 2 bity R/W i RS do portu B
a na koncu wartosc 1 do portu C (nasz Enable)
potem pare NOP
i zeruje port C (nasz Enable)
i nic
podam ze wyswietlacz, ktory posiadam jest 4x20 (WM2004 firmy Wintek)
gdybym mogl chociaz go zainicjowac ;(((((
a on zupelnie nic , brak jakiejkolwiek reakcji ;(((
johnCTN_at_nospam_kki.net.pl
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Mon, 4 Dec 2000 20:39:49 +0100
podam ze wyswietlacz, ktory posiadam jest 4x20 (WM2004 firmy Wintek)
gdybym mogl chociaz go zainicjowac ;(((((
a on zupelnie nic , brak jakiejkolwiek reakcji ;(((
Zaraz dojdziemy co z nim jest zle :-) Powiedz mi tylko najpierw czy
regulacje kontrastu masz dobrze zrobiona ? Postaw jakis schemat w sieci do
wgladu ....
Juliusz
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Mon, 4 Dec 2000 21:57:28 +0100
Zaraz dojdziemy co z nim jest zle :-) Powiedz mi tylko najpierw czy
regulacje kontrastu masz dobrze zrobiona ? Postaw jakis schemat w sieci do
wgladu ....
a oto schemat :
GND --------------------------- Pin 1
|
--- (potencjometr 1k)
| | <<----------------- Pin 3 (kontrast)
---
|
+5V ---------------------------- Pin2
dataB0-------------------------- Pin4 (register select)
dataB1-------------------------- Pin5 (Read/Write)
dataC0-------------------------- Pin6 (Enable)
dataA0-------------------------- Pin7
dataA1-------------------------- Pin8
dataA2-------------------------- Pin9
dataA3-------------------------- Pin10
dataA4-------------------------- Pin11
dataA5-------------------------- Pin12
dataA6-------------------------- Pin13
dataA7-------------------------- Pin14
+4V -------------------------- Pin15 (Backlight)
GND -------------------------- Pin16 (Backlight)
ten potencjometr chyba dobrze wstawiłem (bardziej sie znam na asemblerze niz
na elektronice ;))))) )
gdy go ustawiam w skrajnych pozycjach to sa dwa objawy
a) 1 i 3 rzad wyglada tak jak by mial wpisane spacje w rewersie
2 i 4 pusty
b) wszystkie rzedy sa puste
mam jeszcze pytanie zwiazane z odstepami czasowymi
czy to jest tak:
zegar proesora 1MHz
to znaczy ze jeden cykl zegarowy trwa 1us tak???
jak to ma sie do ns i ms ????
johnctn_at_nospam_wp.pl
From: "Marek Lewandowski" <locust_at_nospam_priv4.onet.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 01:07:41 +0100
JohnCTN napisał(a) w wiadomości: <90h0jo$o3t$1_at_nospam_news.tpi.pl>...
a oto schemat :
GND --------------------------- Pin 1
|
--- (potencjometr 1k)
| | <<----------------- Pin 3 (kontrast)
---
> |
>+5V ---------------------------- Pin2
>ten potencjometr chyba dobrze wstawiłem (bardziej sie znam na asemblerze
niz
>na elektronice ;))))) )
>gdy go ustawiam w skrajnych pozycjach to sa dwa objawy
>a) 1 i 3 rzad wyglada tak jak by mial wpisane spacje w rewersie
> 2 i 4 pusty
>b) wszystkie rzedy sa puste
OK. To znaczy, żę nie udało Ci się go zainicjować. On jest tak śmiesznei
zorganizowany, że od 80h do 93h to jest pierwsza linia, od 94h do A7h
trzecia, od C0h do C3h druga itd.
To znaczy, że od strony logicznej jest to wyświetlacz _dwuliniowy_ dwa razy
po 40 znaków.
Z pierwszej logicznej linii pierwsze dwadzieścia znaków, to pierwszy
fizycznie wiersz.
Z drugiej logicznej linii pierwsze dwadzieścia znaków, to drugi fizycznie
wiersz.
Z pierwszej logicznej linii drugie dwadzieścia znaków, to trzeci fizycznie
wiersz.
Z drugiej logicznej linii drugie dwadzieścia znaków, to czwarty fizycznie
wiersz.
Wyświetlacz musisz (używając komend odpowiednich):
zainicjalizować komendą 38h = ustawić (jedna komenda to jest) 2 linie, 8bit
magistrala.
wyczyścić wyświetlacz 01h i odczekać nawet kilka ms (jeśli tandetny
wyświetlacz)
włączyć wyświetlacz 0Eh
ustawić adres do zapisu 80h (początek pierwszej linii.
Objawem, że coś się dzieje ok, będzie to, że przy kręceniu kontrastem
wszystkie 4 linie będą się równomiernie zaczerniać (tzn. wyświetlacz wszedł
w tryb 2linie).
>
>mam jeszcze pytanie zwiazane z odstepami czasowymi
>czy to jest tak:
>
>zegar proesora 1MHz
>to znaczy ze jeden cykl zegarowy trwa 1us tak???
Zależy od procesora. Dla 80C51 oznaczałoby to, że 1 cykl procesora trwa
12us.
>jak to ma sie do ns i ms ????
1us = 1000ns = 0.001ms
--
Marek Lewandowski
mailto:twilight_at_nospam_callisto.krakow.pl UIN:10139051
http://www.callisto.krakow.pl/~twilight
"Linux is like wigwam: No Windows, no Gates and Apache already inside...."
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: znowu LCD na HD44780
Date: Mon, 04 Dec 2000 22:04:57 +0100
JohnCTN wrote:
Wlasnie tak robie a to nie dziala ;(((((
No to na pewno robisz cos nie tak.
Masz zachowane timingi ??? Bezpiecznie zaloz ze po inicie odczekac 2ms,
po czyszczeniu 2ms, a po pozostalych 200us.
a moze robie to na zlym sprzecie ( commodore 64 1Mhz)
do komunikacji urzylem ukladu intel 8255 (24 linie I/O)
poniewaz C64 posiada tylko 8 lini I/O
W zasadzie wystarczy te 8 bitow, mozesz uzywac tylko DB7-DB4, RS i EN,
RW podpiac na stale do masy. Tyle tylko ze nie bedziesz mogl odczytywac
BUSY.
uklad robi to tak:
[...]
1. Czy jestes absolutnie pewien ze odpowiednio podpiales lcd do portu,
tzn. czy nie pomyliles DB7 z DB0 i tym podobne.
2. Podepnij RW na stale do masy, mozesz sprobowac podpiac linie danych
do +5 przez pullup-y.
3. Jestes pewien ze ustawiles jakikolwiek kontrast (najlepiej podpiac do
masy, pod katem widac na nim literki).
4. Jestes pewien ze 8255 dziala dobrze ?
5. Jezeli sie zrozpaczyles to zawsze mozna odpalic wyswietlacz w
ukladzie 'recznym', wystarczy 10 micro-switchy ;-)
podam ze wyswietlacz, ktory posiadam jest 4x20 (WM2004 firmy Wintek)
A czy mozes podac dokladnie to co do niego wysylasz ???
Najlepiej zacytuj kawalek programu, pewnie cos sie znajdzie.
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 08:56:48 +0100
A czy mozes podac dokladnie to co do niego wysylasz ???
Najlepiej zacytuj kawalek programu, pewnie cos sie znajdzie.
oto kawalek kodu Asembler 6502 (inicjacja transmisja 8 bitowa)
; trzy porty intel 8255
status= $de03
data= $de01 (dane 8 bitow db0-db7)
cmd= $de02 (bit1 R/W R=1/W=0 , bit2 RS=1 >DATA RS=0>CMD)
enable=$de00 (bit 1 Enable)
start *=$1000
ldx#$ff
jsr time
init lda#%00110000 (function set)
jsr write
ldx#$80
jsr time
lda#%00110000 (function set)
jsr write
ldx#$20
jsr time
lda#%00110000 (function set)
jsr write
ldx#$20
jsr time
lda#%00111000 (function set dl=1 N=1 F=0)
jsr write
ldx#$a0
jsr time
lda#%00001000 (display off)
jsr write
ldx#$a0
jsr time
lda#%00000001 (clear all nd return cursor to home position)
jsr write
ldx#$a0
jsr time
lda#%00000100 (Entry mode set)
jsr write
ldx#$a0
jsr time
rts
;---------------------
write
sta data ; wyslij dane db0-db7 na portB
lda#$00
sta cmd ;$00 na portC R/W=0 RS=0
lda#$01
sta enable ;$01na portA (enable high)
ldx#$ff ; petla czasowa
dex
bne *-1
lda#$00 ;$00 na portA (enable low)
sta enable
ldx#$ff ;petla czasowa
dex
bne*-1
rts
;-------------
time
ldy#$ff
dey
bne*-1
dex
bne*-6
rts
;-------------
johnctn_at_nospam_wp.pl
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 09:14:58 +0100
start *=$1000
ldx#$ff
jsr time
init lda#%00110000 (function set)
jsr write
ldx#$80
jsr time
lda#%00110000 (function set)
jsr write
ldx#$20
jsr time
lda#%00110000 (function set)
jsr write
ldx#$20
jsr time
lda#%00111000 (function set dl=1 N=1 F=0)
jsr write
ldx#$a0
jsr time
lda#%00001000 (display off)
jsr write
ldx#$a0
jsr time
lda#%00000001 (clear all nd return cursor to home position)
jsr write
ldx#$a0
jsr time
lda#%00000100 (Entry mode set)
jsr write
ldx#$a0
jsr time
rts
Porownaj sobie z moim na AVR'a dla 2x16. To jest sam INIT tylko ale dziala
bezblednie. Czekam 20ms po kazdym wpisie, wait to makro. Zobacz czy to samo
wpisujesz .
LCD_INIT:
ldi r16,0x38 ; 1
rcall LCD_CMDWRITE
wait 20
ldi r16,0x38 ; 2
rcall LCD_CMDWRITE
wait 20
ldi r16,0x38 ; 3
rcall LCD_CMDWRITE
wait 20
ldi r16,0x38 ; 8 bit, 2 linie, 5x7
rcall LCD_CMDWRITE
wait 20
ldi r16,0x8 ; OFF
rcall LCD_CMDWRITE
wait 20
ldi r16,0xC ; ON
rcall LCD_CMDWRITE
wait 20
ldi r16,0x6 ;
rcall LCD_CMDWRITE
wait 20
ldi r16,0x1 ;
rcall LCD_CMDWRITE
wait 20
ret
Juliusz
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 11:57:30 +0100
Janusz Juliusz
$30 $38
$30 $38
$30 $38
$38 $38
$08 $08
$01 $0c
$04 $06
$01
Prawie tak samo ale ....
otoz musz dodac , ze wyswietlacze firmy Sitronik jest na bazie ukladu st7066
ale jak zapewnia firma Wintek jest to ekwiwalent sterownika hd44780 wiec
powinien
byc kompatybilny lecz...
w dokumentacji Sitronic jest inicjacja taka jak ja wykonuje i nic
a do tego inicjacja Twoja tez nie robi zadnego zdumienia na tym ...
wyswietlaczu !!!! ;(((
gdybys mogl przedstawic Twoja procedure CMD_WRITE
i popatrz czy ja cos zle robie w swojej (zakladajac, ze dany bajt jest w
Akumulatorze)
write
sta data ; wyslij zawartosc akumulatora ( dane
db0-db7 na portB)
lda#$00 ;akumulator =$00
sta cmd ;wyslij zawartosc akumulatora na portC
R/W=0 RS=0
lda#$01 ;akumulator=$01
sta enable ;wyslij zawartosc akumulatora na portA
(enable high =$01)
ldx#$ff ; w rejestrze X $ff (petla czasowa)
loop1 dex ; zmniejsz o 1 RejestrX
bne loop1 ; jezeli X>0 to wykonaj skok do loop1
lda#$00 ;akumulator =$00
sta enable ;wyslij zawartosc akumulatora na portA
(enable low =$00)
ldx#$ff ; w rejestrze X $ff (petla czasowa)
loop2 dex ; zmniejsz o 1 RejestrX
bne loop2 ; jezeli X>0 to wykonaj skok do loop2
rts ; wyjscie z podprogramu
johnctn_at_nospam_wp.pl
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 12:26:54 +0100
JohnCTN <johnctn_at_nospam_wp.pl> wrote in message news:90ihqs$5u7$1_at_nospam_news.tpi.pl...
Janusz Juliusz
$30 $38
$30 $38
$30 $38
$38 $38
$08 $08
$01 $0c
$04 $06
$01
Prawie tak samo ale ....
otoz musz dodac , ze wyswietlacze firmy Sitronik jest na bazie ukladu
st7066
ale jak zapewnia firma Wintek jest to ekwiwalent sterownika hd44780 wiec
powinien
byc kompatybilny lecz...
w dokumentacji Sitronic jest inicjacja taka jak ja wykonuje i nic
a do tego inicjacja Twoja tez nie robi zadnego zdumienia na tym ...
wyswietlaczu !!!! ;(((
LCD_CMDWRITE:
out PORTA,r16
cbi LCD_RSp,LCD_RSb
cbi LCD_RWp,LCD_RWb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sbi LCD_Ep,LCD_Eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi LCD_Ep,LCD_Eb
wait 2
ret
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 12:39:44 +0100
Juliusz <jul_at_nospam_fom.pl> wrote in message news:90ijgh$avg$1_at_nospam_news.tpi.pl...
JohnCTN <johnctn_at_nospam_wp.pl> wrote in message news:90ihqs$5u7$1_at_nospam_news.tpi.pl...
Janusz Juliusz
$30 $38
$30 $38
$30 $38
$38 $38
$08 $08
$01 $0c
$04 $06
$01
Pamietam, ze przy zegarze 8MHz musialem nopy wstawiac do nieprzytomnosci i
wszedzie czasu dodawac. Bo najpierw zadnego wrazenia pozniej przeklamywal,
pisal nie tam gdzie chcialem, nie pod ten adres, a pozniej po kilku nop'ach
mu przeszlo. Poniwaz wsadzam w urzadzenie i WINTEK'i z dwoma roznymi
kontrolerami kompatybilnymi z HD i Powertip'a to zwolnilem to troche
jeszcze, ze 2 razy zeby nie bylo klopotu pozniej.
I nie ma.
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 12:45:25 +0100
JohnCTN <johnctn_at_nospam_wp.pl> wrote in message news:90ihqs$5u7$1_at_nospam_news.tpi.pl...
Aha i zerknij na kolejnosc RS i RW, w jakiej kolejnosci je zmieniam, to
chyba tez cos robilo.
Kurcze jeszcze LCD_WRITE jest czytelne, reszty nawet nie ma co ogladac, bo
jest sieczka jak na oko postronnego obserwatora :-)
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 13:00:50 +0100
i popatrz czy ja cos zle robie w swojej (zakladajac, ze dany bajt jest w
Akumulatorze)
write
sta data
lda#$00
sta cmd
lda#$01 ;akumulator=$01
sta enable ;wyslij zawartosc akumulatora na portA
(enable high =$01)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
tu juz zle robisz chyba, bo WRITE i CMD WRITE zalatwia sie inaczej. RS i R/W
zerujesz, a machasz tylko sygnalem E
Zreszta popatrz w moje
Tu jest zapis bajtu
LCD_WRITE: out PORTA,r16
sbi LCD_RSp,LCD_RSb
cbi LCD_RWp,LCD_RWb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sbi LCD_Ep,LCD_Eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi LCD_Ep,LCD_Eb
wait 2
ret
LCD_CMDWRITE: (KOMENDA)
out PORTA,r16
cbi LCD_RSp,LCD_RSb
cbi LCD_RWp,LCD_RWb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
sbi LCD_Ep,LCD_Eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cbi LCD_Ep,LCD_Eb
wait 2
ret
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 13:22:15 +0100
KOMENDA
1. Wystawiasz DANE, ktore sa komenda
2. RS -> LOW
3. R/W -> LOW
4. nop, nop, nop.......
5. E -> HIGH
6. nop, nop, nop.......
7. E -> LOW
8. WAIT 2ms
9. RET
DANE
1. Wystawiasz DANE, ktore sa znakiem do wyswietlenia
2. RS -> HIGH <============================== TO TA ROZNICA !!!!!!!!!!
3. R/W -> LOW
4. nop, nop, nop.......
5. E -> HIGH
6. nop, nop, nop.......
7. E -> LOW
8. WAIT 2ms
9. RET
Teraz zanim wpiszesz adres pod jaki wyslesz znak to najpierw wyzeruj kursor
czyli HOME, wystawiajac 0x2 i podprogram COMMAND_WRITE. Dalej juz mozesz
pisac pierwszy znak lub komende.
LUB najpierw HOME dalej ustawiasz DDADDR i COMMAND WRITE i dopiero dane i
DATA_WRITE. ONE SIE ROZNIA POZYCJA 2 !
jasne teraz ?
NOP-ow nastawiaj po 50 sztuk, pozniej sobie je skasujesz, zobaczysz kiedy
przestaje dzialac wyswietlacz i to musi dzialac !
Jak sie pokaze pierwszy znak na LCD to dalej metoda prob i bledow dojdziesz
gdzie jest jaka linijka i jakie adresy gdzie siedza.
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 13:30:29 +0100
AHA i jeszcze jedno :-))))))))) Zagadam sie na smierc :-)
WINTEK i POWERTIP ma odwrotnie zasilanie na pinach 1 i 2. Na stronie
WINTEK'a byl blad i zle oznaczyli VCC i GND !!!!!!!!! Sam poslalem 2 sztuki
do kosza.
WINTEK MA: 1-VCC 2-GND
POWERTIP MA: 1-GND 2-VCC
Niezainicjowany POWERTIP (tylko podlaczony do pradu) reaguje na regulacje
kontrastu, swieci mu sie gorna linia - same czarne pola, a Wintek nie
reaguje zupelnie.
Przynajmniej jesli chodzi o modele 1602.
Juliusz
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 17:16:59 +0100
jestem w punkcie startowym ;((((((((((((
zrobilem wszystko tak jak mozna by bylo to zrobic dobrze
na 11 diodach LDE sprawdzam stan 11 bitów i wiem , ze transmisja jest taka
jaka ma byc
wiec uklad Intel 8255 dziala prawidlowo petle czasowe ustawialem od 1 NOP do
chyba z 2000 ;))) (oczywiscie w petli) ;)))
a on nic tak jak wyswietlal 1,3 linia w rewersie tak i pokazuje (2,4 linia
pusta)
nic nie dziala wiec zaczynam sie zastanawiac nad drugim LCD
Wiec moze , ktos mi powie jakie sa objawy uszkodzonego LCD ????
johnctn_at_nospam_wp.pl
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 21:17:15 +0100
JohnCTN <johnctn_at_nospam_wp.pl> wrote in message news:90j4gf$51d$1_at_nospam_news.tpi.pl...
jestem w punkcie startowym ;((((((((((((
najpierw olej wpisywanie znakow do niego, po wlaczeniu zasilania jesli
zapala sie linia 1 i 3 to musisz doprowadzic do stanu, ze ona zgasnie. Te
kilka komend musi ja zgasic.
zrobilem wszystko tak jak mozna by bylo to zrobic dobrze
na 11 diodach LDE sprawdzam stan 11 bitów i wiem , ze transmisja jest taka
jaka ma byc
wiec uklad Intel 8255 dziala prawidlowo petle czasowe ustawialem od 1 NOP
do
chyba z 2000 ;))) (oczywiscie w petli) ;)))
Pokaz ten kod w calosci i sprawdz jeszcze czy kolejnosc bitow sie zgadza.
Czasem sprawdzam cos 5 razy, a okazuje sie, ze za dziesiatym razem widze
blad :-)
a on nic tak jak wyswietlal 1,3 linia w rewersie tak i pokazuje (2,4 linia
pusta)
A krecenie kontrastem dziala ? Czy te linie 1,3 reaguja na potencjometr ?
Jesli tak to przynajmniej zasilanie jest prawidlowo.
nic nie dziala wiec zaczynam sie zastanawiac nad drugim LCD
Wiec moze , ktos mi powie jakie sa objawy uszkodzonego LCD ????
Tego to nigdy nie wiadomo :-)
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Wed, 6 Dec 2000 12:58:29 +0100
najpierw olej wpisywanie znakow do niego, po wlaczeniu zasilania jesli
zapala sie linia 1 i 3 to musisz doprowadzic do stanu, ze ona zgasnie. Te
kilka komend musi ja zgasic.
Pokaz ten kod w calosci i sprawdz jeszcze czy kolejnosc bitow sie zgadza.
Czasem sprawdzam cos 5 razy, a okazuje sie, ze za dziesiatym razem widze
blad :-)
To jest caly kod na Commodore 64 (1Mhz)
;----------------------------------------------------------------------
; $de00 8 bitowy port A ( Enable na 0 bitcie)
; $de01 8 bitowy port B ( R/W na bicie 0 , RS na bicie 1)
; $de02 8 bitowy port C (dane DB0-DB7)
; $de03 komorka sterujaca Intel 8255 $80 porty ABC jako wyjscie
; $90 porty ABC
jako wejscia
;-----------------------------------------------------------------------
Enable =$de00
Cmd =$de01
Data =$de02
*=$1000
sei
lda #$80
sta $de03
lda #$00
sta Enable
sta Data
sta Cmd
jsr Time
jsr Init
jmp *
;----------
init lda #$30
jsr wrcmd
lda #$30
jsr wrcmd
lda #$30
jsr wrcmd
lda #$38
jsr wrcmd
lda #$08
jsr wrcmd
lda #$0c
jsr wrcmd
lda #$06
jsr wrcmd
lda #$01
jsr wrcmd
rts
;----------
wrcmd
ldy #$00
sty cmd
sta data
ldx #$50
dex
bne *-1
lda #$01
sta enable
ldx #$ff
dex
bne *-1
lda #$00
sta enable
ldx #$ff
ldy #$30
dey
bne *-1
dex
bne *-6
rts
;-----------
Time ldx #$ff
ldy #$ff
dey
bne *-1
dex
bne *-6
rts
;-----------
koniec kodu dla inicjacji ;))))
A krecenie kontrastem dziala ? Czy te linie 1,3 reaguja na potencjometr ?
Jesli tak to przynajmniej zasilanie jest prawidlowo.
To jedno jest OK 1 i 3 linia reaguja na kontrast
mam od dzisiaj jescze jeden LCD 16*2 w nim jest dokladnie to samo (kontrast
dziala 1 linia w rewersie ) wiec najprawdopodobniej obydwa sa dobre albo
uszkodzone
sprawdzalem woltomierzem napiecia i stwierdzilem cos dziwnego
mianowicie bit=0 to 0V tu gra OK
ale bit=1 to od 3V do 5V (roznie na roznych bitach) czy to jest
OK ????
johnctn_at_nospam_wp.pl
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Wed, 6 Dec 2000 14:45:54 +0100
To jedno jest OK 1 i 3 linia reaguja na kontrast
mam od dzisiaj jescze jeden LCD 16*2 w nim jest dokladnie to samo
(kontrast
dziala 1 linia w rewersie ) wiec najprawdopodobniej obydwa sa dobre albo
uszkodzone
To sa oba dobre ale wsadz ten 16*2, uzyj moich wartosci do inicjacji,
bedziemy pewni, ze sa dobre na 100%.
Sprawdz 10 raz czy nie pomieszales kolejnosci szyny danych.
sprawdzalem woltomierzem napiecia i stwierdzilem cos dziwnego
mianowicie bit=0 to 0V tu gra OK
ale bit=1 to od 3V do 5V (roznie na roznych bitach) czy to
jest
OK ????
To nie jest OK, zreszta nie wiem co za scalaki siedza na wyjsciu
krawedziowum w tym komputerku. czy moze jest to tylko kawalek szyny
procesora ?
Jesli to sa NMOS-y to wez rezystory 4.7k i podciagnij je wszystkie do VCC.
Ale wszystkie dane i te 3 stroby. A skad bierzesz VCC wogole ? Dostaw tam
jakies 100uF miedzy VCC i GND ale blisko zlacza krawedziowego. Tasme do LCD
tez daj nie za dluga. Dodaj 100nF na samych zaciskach wyswietlacza
dodatkowo.
Bez oscyloskopu nie dojdziesz co sie na tych liniach dzieje :-(
Zaraz popatrze w kod...
Juliusz
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Wed, 6 Dec 2000 14:51:05 +0100
sei
po co dajesz sei ? Sei to wlaczenie przerwan chyba. W AVR jest taki sam
rozkaz.
Jesli jakas procedura przerwaniowa uzywa tych samych rejestrow i nie spycha
ich na stos to w rejestrach masz kaszanke.
Moze WYLACZ przerwania na czas inicjacji...
a pozniej je wlacz na samym koncu.
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Wed, 6 Dec 2000 20:28:39 +0100
sei
po co dajesz sei ? Sei to wlaczenie przerwan chyba. W AVR jest taki sam
rozkaz.
sei w commodorku a wlasciwie na prockach 6502 wylancza wszystkie przerwania
IRQ
wiec chyba o to Tobie chodzilo wiec jest dobrze ;))))
a reszte sprawdze ....
johnctn_at_nospam_wp.pl
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Wed, 6 Dec 2000 15:10:17 +0100
;----------------------------------------------------------------------
; $de00 8 bitowy port A ( Enable na 0 bitcie)
; $de01 8 bitowy port B ( R/W na bicie 0 , RS na bicie 1)
; $de02 8 bitowy port C (dane DB0-DB7)
; $de03 komorka sterujaca Intel 8255 $80 porty ABC jako wyjscie
; $90 porty
ABC
jako wejscia
;-----------------------------------------------------------------------
Enable =$de00
Cmd =$de01
Data =$de02
*=$1000
sei <== jesli to jest wlaczanie przerwan to mi sie nie podoba
Raczej bym WYLACZYL przerwania.
lda #$80
sta $de03
lda #$00
sta Enable
sta Data
sta Cmd
jsr Time <== to chyba jest zbedne, w sumie wpisujesz zera w
porty i po co czekac na cos ?
jsr Init
jmp *
To jest petla bez konca tak ?
;----------
init lda #$30
jsr wrcmd
lda #$30
jsr wrcmd
lda #$30
jsr wrcmd
lda #$38
jsr wrcmd
lda #$08
jsr wrcmd
lda #$0c
jsr wrcmd
lda #$06
jsr wrcmd
lda #$01
jsr wrcmd
rts
Podlacz LCD 2*16 i ustaw to co ja wpisuje dla pewnosci.
;----------
wrcmd
sta data
;Przestawilem kolejnosc dla pewnosci
ldy #$00
sty cmd
;OK tu zerujesz RS i R/W
ldx #$FF
dex
bne *-1
;Tutaj sobie czekasz, dalem mu wiecej cykli
lda #$01
sta enable
;Dobra, zapalasz flage E
ldx #$FF
dex
bne *-1
;Dalej czekasz 255 cykli, OK
lda #$00
sta enable
;Dobra, zerujesz E
ldx #$FF
ldy #$FF
dey
bne *-1
dex
bne *-1
rts
; Dawno temu to bylo jak robilem cos na 6502 :-) Nie pamietam skladni tych
rozkazow. Czy jestes pewien, ze ta
; podwojna petelka powyzej dziala ? Nie pamietam jak dziala "bne".
;-----------
Time ldx #$ff
ldy #$ff
dey
bne *-1
dex
bne *-6
Tego nie uzywasz chyba, ale nie szkodzi
rts
;-----------
koniec kodu dla inicjacji ;))))
Jesli te petle oczekiwania , wytracania czasu dzialaja to nie ma powodu zeby
to nie mialo chodzic.
Zaraz trzeba bedzie zrobic jeszcze jeden myk. Wydac komende LCD_CLEAR i
KURSOR_HOME zeby byc pewnym, ze wyswietlacz zgasnie.
Zaraz napisze....
Juliusz
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Wed, 6 Dec 2000 15:23:14 +0100
;----------
init lda #$38
jsr wrcmd
lda #$38
jsr wrcmd
lda #$38
jsr wrcmd
lda #$38
jsr wrcmd
lda #$08
jsr wrcmd
lda #$0c
jsr wrcmd
lda #$06
jsr wrcmd
lda #$01
jsr wrcmd
lda #$01 ; wydamy rozkaz ponownego kasowania LCD
jsr wrcmd
lda #$02 ; A tu ustawimy kursor w HOME position
jsr wrcmd
rts
I MUSI CHODZIC !!!!!!!!!!
TYLKO to "SEI" mi sie nie podoba na poczatku, gdzieniegdzie kolejnosc
rozkazow co napisalem poprzednio i czy petle czekania na pewno chodza.
Wszedzie daj czas liczony w petelkach albo samo $FF albo podwojna petla LDX
i LDY 0xFF.
Pozniej sobie te czasy pozmniejszasz. Aha i jeszcze zanim wezmiesz sie za
inicjacje po wlaczeniu zasilania odczekaj chwilke. Ale rozumiem, ze program
odpalasz z reki wiec nie ma tego zagrozenia. Wlaczasz kompika i dopiero sie
zabierasz za uruchamianie.
Po tym musi wyswietlacz zgasnac.
I MUSI DZIALAC !!!!!!
Teraz masz LCD skasowany i kursor w HOME wiec wystarczy wpisac znak do niego
i na pierwszej pozycji wyswietli ci sie.
Najpierw poczekajmy czy gasnie sam wyswietlacz...
Juliusz
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 05 Dec 2000 22:39:03 +0100
JohnCTN wrote:
oto kawalek kodu Asembler 6502 (inicjacja transmisja 8 bitowa)
; trzy porty intel 8255
time
ldy#$ff
dey
bne*-1
dex
bne*-6
rts
Hmmm... jaki to jest kawalek czasu ???
Dla bezpieczenstwa mozesz tu wsadzic nawet 20 ms. Sprawdz czy dziala, bo
obawiam sie cos o timingi.
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|
From: Romuald Bialy <romekb_at_nospam_polbox.com>
Subject: Re: znowu LCD na HD44780
Date: Mon, 04 Dec 2000 23:51:54 +0100
JohnCTN wrote:
a moze robie to na zlym sprzecie ( commodore 64 1Mhz)
do komunikacji urzylem ukladu intel 8255 (24 linie I/O)
poniewaz C64 posiada tylko 8 lini I/O
A prawidlowo zainicjowales tego 8255, bo po resecie ma porty jako
wejscia.
Sprawdz czy cos wychodzi na wyswietlacz. Najlepiej sonda logiczna i
puszczac program krokowo.
--
Pozdrawiam.... Romuald Bialy
E'mail: romekb_at_nospam_polbox.com
WWW: http://www.polbox.com/r/romekb
From: "JohnCTN" <johnctn_at_nospam_wp.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 5 Dec 2000 09:06:36 +0100
A prawidlowo zainicjowales tego 8255, bo po resecie ma porty jako
wejscia.
Sprawdz czy cos wychodzi na wyswietlacz. Najlepiej sonda logiczna i
puszczac program krokowo.
juz nad tym myslalem i zrobile taki prosty uklad, ktory podlaczylem do 11
lini 8255.
wszystkie stany mam jak na dloni tzn 11 diod LED mi to sygnalizuje ;)))
zauwazylem tylko, ze gdy zmieniam bajt sterujacy to zeruja sie wszystkie
porty wiec zrezygnowalem z kontroli Busy Flag .
johnctn_at_nospam_wp.pl
From: "Juliusz" <jul_at_nospam_fom.pl>
Subject: Re: znowu LCD na HD44780
Date: Mon, 4 Dec 2000 20:37:17 +0100
Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl> wrote in message
news:3A2A7819.52B78546_at_nospam_bet.po.opole.pl...
JohnCTN wrote:
jak mam rozumiec sygnal Enable
H,H>L ?????
Z angielskiego Level Triggered, czyli czuly na zbocze, a konkretnie na
zbocze opadajace.
O ile mi wiadomo to slowo LEVEL Triggered to wyzwalany POZIOMEM ! Wyzwalany
zboczem to EDGE Triggered
Juliusz
From: Milosz Skowyra <mewash_at_nospam_bet.po.opole.pl>
Subject: Re: znowu LCD na HD44780
Date: Tue, 05 Dec 2000 22:40:11 +0100
Juliusz wrote:
Z angielskiego Level Triggered, czyli czuly na zbocze, a konkretnie na
zbocze opadajace.
O ile mi wiadomo to slowo LEVEL Triggered to wyzwalany POZIOMEM ! Wyzwalany
zboczem to EDGE Triggered
Zgadza sie przepraszam za wprowadzenie w blad. Moja wina.
--
Regards.
|-----------------------------------------------------|
| Milosz Skowyra |
| miloszek_at_nospam_fidonet.org.pl 2:484/2.47 on fidonet |
| GSM Mobile +48608888899 |
|-----------------------------------------------------|