Karakteres LCD kezelése
Karakteres LCD kezelése
Ü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!
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!
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:).
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:).
Karakteres LCD kezelése
Hi Robert!
Kösz a segítséget!
Portc.8
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
Kösz a segítséget!
Portc.8
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
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.
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.
Karakteres LCD kezelése
Hi Robert!!
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.
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.
Karakteres LCD kezelése
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
Kösz
Karakteres LCD kezelése
OK
Kösz!
B.U.É.K. !!!
Kösz!
B.U.É.K. !!!
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
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
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).
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.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).
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
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ó.
É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ó.
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 , 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ó.