Karakteres LCD kezelése

Hogyha sikeresen O/PLED illetve hagyományos alfanumerikus - esetleg tán grafikus kijelzővel gyűlik meg a baja valakinek:)
Avatar
srami
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2005. november 1. kedd, 7:00

Karakteres LCD kezelése

Hozzászólás Szerző: srami »

Üdv!
Van egy AMPIRE AC162B LCD kijelzőm.
Megpróbáltam megszólaltatni; nem sikerült.
Ha jól tévedek a lábai így vannak bekötve:(Detre gyártmány)
Portc.X // LCD láb // Neve
1 // 16 // LEDK
2 // 4 // RS
3 // 5 // R/W
4 // 6 // E
5 // 11 // DB4
6 // 12 // DB5
7 // 13 // DB6
8 // 14 // DB7
A 10-es csatlakozó további két kivezetése:
9 // 15+2 // LEDA+Vdd
10 // 1 // Vss

Az alábbi programmal próbáltam ki:

Config Portc = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.6 , Db6 = Portc.7 , Db7 = Portc.8 , E = Portc.4 , Rs = Portc.2
Config Lcdmode = Port

'
$regfile = "m128def.dat"
$crystal = 4000000
$sim
Dim Count As Integer
Count = 0

Do
Cls
Lcd "Hello! " ; Count
Count = Count + 1
Wait 1
Loop
End

Hol van elrontva ??????

Kösz!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Amit találtam, hogy eltérő a lábkiosztása a hagyományostól:
http://forum.microchip.com/tm.asp?m=98851

A modulod:
RS - pin1
R/W - pin2
E - pin3

other 44780's:

RS - pin4
R/W - pin5
E - pin6

A programkódban hiba:
portc.8 NINCS!
Portc.0....Portc.7-ig tart! nem pedig 1...8-ig.
A C porton nincs más , pl. JTAG? Azt tiltani kell.


A config LCD sorban a
2 // 4 // RS
3 // 5 // R/W
4 // 6 // E
5 // 11 // DB4
6 // 12 // DB5
7 // 13 // DB6
8 // 14 // DB7
lábak kellenek, de a R/W láb fixen földre kötendő.

Config PortC <-nem kell
$sim nem kell, az időzítések elcsúsznak!

A kvarc 4 MHz-s a chip mellett?

Így hírtelen:).
Avatar
srami
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2005. november 1. kedd, 7:00

Karakteres LCD kezelése

Hozzászólás Szerző: srami »

Hi Robert!
Kösz a segítséget!

Portc.8 :cry: :cry:
Sajna egy óráslupe alatt próbáltam meg kideríteni, hogy mi hova vezet és 1-10-ig csináltam táblázatot a helyzetről(10-es konnektorral csatlakozik minden a demo panelre), amit azután automatice beirtam a programba.

A "&sim"-et kikommenteztem, a "&crystal" -t 10000000-ra állítottam mert a kvarzon "R184YXB10" feliratot találtam.

Amig 4000000-ra volt állítva addig az utolsó próbálkozásnál kb 1s lépésekkel egy kb. tíz elemű értelmetlen karaktersorozat kúszott végig a kijelzőn és miután kifutott kb. 5s után kezdte elölről.
Most 10000000-nál teljesen sötét.

Az imént rádugtam az LCD helyére egy ledsort a Portc-re és a következő fényjátékot látom:
Portc.0(LEDK)=sötétnek látszik
Portc.1(RS)=folymatosan világítani látszik
Portc.2(R/W)=sötétnek látszik
Portc.3(E)=sötétnek látszik
Portc.4(DB4)=1s viágít majd 1s sötét (kb.)
Portc.5(DB5)=mielött a Portc.4 világítani kezd, egy alig észlelhető időre felvillan
Portc.6(DB6)=mint a Portc.5
Portc.7(DB7)=mint a Portc.5

Most itt tartok.
Kösz
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

A R/W lábat fixen földre kell kötni.
Ezt megteheted forrasztással, vagy pedig a

config portc.2=output
portc.2=0

sorokkal.

Ha a szemed nem képes 100fps-l dolgozni akkor az adatfolyamot nem látod:) A LCD kezelés eléggé gyorsan történik.

Szóval az R/W fixen GND szintre, és utána a lábbakkal játszani.

Az LCD használata vázlatosan:
Config LCD
wait 100
cls
wait 100
initlcd
wait 100
cls
LCD "itt vagyok"


A Config LCD-ben végigjátszani a RS/RW/E lábakat, hanyatt nem tudod az LCDt lökni. valamelyiknél majdcsak megszólal.

A Crystal adatlapra nem talaltam semmit. Ha kisebbet raksz be, max. nagyobb idozitest hagysz, az nem baj.
Avatar
srami
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2005. november 1. kedd, 7:00

Karakteres LCD kezelése

Hozzászólás Szerző: srami »

Hi Robert!!

:D :D :D :D :D
Egy Ász vagy!!

Énekel az LCD-m!!!

Kösz!!!

P.S.:Ez volt a kezdet, karitativ pályafutásod nem ért véget, lécci néz rá néha erre a topicra; valószínüleg lesz még kérdésem.
Ezt a megoldást bele kéne tenni a Bascom könyvbe.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

A LCD fejezet feltételezi, hogy ismered a LCD bekötést:). A könyvben a R/W láb fixen földön van....


Mi volt végül a gond?
Avatar
srami
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2005. november 1. kedd, 7:00

Karakteres LCD kezelése

Hozzászólás Szerző: srami »

A megoldást a jelen problémára az R/W láb nullára húzása és az "Initlcd" utasítás jelentette. Bármelyik nélkül a dolog nem megy; és ez a két dolog a Bascom könyvben ilyen konkrétan ahogy te bemutattad nem található meg.
Kösz
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Az R/W a kapcsolási rajzon ott van. Az InitLCD pedig függ az LCD-től, a legtöbb esetben nem kell....


Nekem is van 1-2 modulom aminél illik. De a program is befolyásolja, hogy kell-e vagy sem.
Avatar
srami
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2005. november 1. kedd, 7:00

Karakteres LCD kezelése

Hozzászólás Szerző: srami »

OK
Kösz!
B.U.É.K. !!!
Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

Hozzászólás Szerző: gerry »

Szia Robi!

Azt szeretném kérdezni,hogy a 2*16 karakteres kijelzőmet miért nem tudom vezérelni a D0.....D3-as lábakról? Ez is 4 bites vezérlés lenne.

De a Bascom kiakad "invalid timer... blablabla"

Ez lnne a lábkiosztása"Config Lcdpin = Pin , Db3 = Portc.0 , Db2 = Portc.1 , Db1 = Portc.2 , Db0 = Portc.3 , E = Portc.4 , Rs = Portc.5"

lehet? nem lehet?

üdv
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Az invalid timer az másra utal.
Ezzel a portC.0.....portC.3-at állítod be!

Az E és az RS lábat is be kell kötni!


CONFIG LCDPIN = PIN ,DB4= PORTD.0,DB5=PORTD.1,DB6=PORTD.2, DB7=PORTD.3,E=PORTD.4,RS=PORTD.5


A D0....D5 lábakat más célra NEM használhatod!
D0 - RXD
D1 - TXD
D2 - INT0
D3 - INT1
D4 - T0
D5 - T1
D6 - ICP

Szóval TIMER nem lehet output
Ha LCDre kell, akkor
config pind.4=output
config pind.5=output

legalábbis javasolt. A $baud nem lehet (TX,RX - sorosport).
Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

Hozzászólás Szerző: gerry »

Robert írta:Az invalid timer az másra utal.
Ezzel a portC.0.....portC.3-at állítod be!

Az E és az RS lábat is be kell kötni!


CONFIG LCDPIN = PIN ,DB4= PORTD.0,DB5=PORTD.1,DB6=PORTD.2, DB7=PORTD.3,E=PORTD.4,RS=PORTD.5


A D0....D5 lábakat más célra NEM használhatod!
D0 - RXD
D1 - TXD
D2 - INT0
D3 - INT1
D4 - T0
D5 - T1
D6 - ICP

Szóval TIMER nem lehet output
Ha LCDre kell, akkor
config pind.4=output
config pind.5=output

legalábbis javasolt. A $baud nem lehet (TX,RX - sorosport).
Hát ez az, hogy én az lcd D0-D3-as lábain szeretném vezérelni, nem a D4-D7-ig lábain. Atmega8-as 23-28-ig lábain keresztül.

Nem engedi az lcd első 4 bitjén(D0-D3) vezérelni ,csak a második 4 bitjén(D4-D7), ez miért van?

Ha a config lcdpin-ben Db04 ...Db07- állítok be, akkor a Portc0... akármelyikre is rakhatom.

üdv
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

D0...D3 megvan.
És a 2 vezérlőláb melyik?

$baud nem lehet a programsorokban.
(print, input utasítás direktben sem (ez a sorosport lenne).

Ha kipróba sima LCDvezérlőprogi a D labakra mit muvel?



Fogtam!
Az LCD lábainak D0...D3 lábát akarod használni a D4...D7 helyett? Szóval a D az LCD datalábai?


Ilyet nem lehet. Ugyanis a HD44780-as chipnek vagy a felső két vonalát használod, vagy mind a 8-at. Az alsó 4 adatvonal önállóan NEM használható.
Az inicialitzálás során 4 (felső 4 bit) vagy 8 bites(összes bit) adatátvitel választható.
Avatar
gerry
Chipgyilok
Hozzászólások: 252
Csatlakozott: 2005. október 11. kedd, 6:00

Hozzászólás Szerző: gerry »

Robert írta:D0...D3 megvan.
És a 2 vezérlőláb melyik?

$baud nem lehet a programsorokban.
(print, input utasítás direktben sem (ez a sorosport lenne).

Ha kipróba sima LCDvezérlőprogi a D labakra mit muvel?



Fogtam!
Az LCD lábainak D0...D3 lábát akarod használni a D4...D7 helyett? Szóval a D az LCD datalábai?

Na erről beszéltem, végre :D , akkor áthuzalozom, csak az a baj, hogy már nyákban van az egész.

Köszönöm a türelmedet!

üdv



Ilyet nem lehet. Ugyanis a HD44780-as chipnek vagy a felső két vonalát használod, vagy mind a 8-at. Az alsó 4 adatvonal önállóan NEM használható.
Az inicialitzálás során 4 (felső 4 bit) vagy 8 bites(összes bit) adatátvitel választható.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Ha netán be marad kötve a D...D3 láb is, nem zavarja a chipet.. Szóval U átkötés elegendő.
Válasz küldése