Fórum témák

» Több friss téma
Fórum » LCD kijelző vezérlése, életre keltése
Lapozás: OK   68 / 71
(#) spenyo hozzászólása Máj 28, 2022 /
 
A proci 8MHz belső órajelen ketyeg.
Az időzítésre én is gondoltam ezért bekapcsoláskor csinálok egy 500ms-os LED be-ki kapcsolást, hogy az LCD tuti magához térjen (ezért mondtam, hogy hozzáigazítottam a programot a környezetemhez.
Az lcd.c include file-hoz hozzá lehet férni, de nem találok semmi olyat benne ami a hibát okozná. Az lcd_init() szubrutin nem tartalmaz semmi olyat ami megállást, vagy végtelen ciklust okozna... de csatolom.
Én inkább hardware-el foglalkozom és nem tanultam c programozást.. amit tudok azt magamtól szedtem össze és most nem tudom, hogy mi akaszt meg..??!!

lcd.c
    
(#) pipi válasza spenyo hozzászólására (») Máj 28, 2022 /
 
Az az lcd init nem lesz jó... Megnézted amit Kissi linkelt? Ha 4 bitben használod, akkor a 42, 46. oldal. A Te lcd init stringed jóval kevesebb attól... Nem rágtam át magam a kódodon...
(#) spenyo hozzászólása Máj 28, 2022 /
 
Bekapcsolás után milyen üzemmódban van az LCD - 4 vagy 8 bites parancsot vár elsőre ?
Az a tervem, hogy saját init programot írok, még ha hosszabb is mint a Ccs rutinja, csak értsem, hogy mi történik.
(#) helektro válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Alapesetben 4 bites.
(#) spenyo hozzászólása Máj 29, 2022 /
 
Na akkor most megint nem értek valamit-a HD44780 adatlapban találtam amit a linkről töltöttem le:
"An internal reset circuit automatically initializes the HD44780U when the power is turned on. The
following instructions are executed during the initialization. The busy flag (BF) is kept in the busy state
until the initialization ends (BF = 1). The busy state lasts for 10 ms after VCC rises to 4.5 V.
1. Display clear
2. Function set:
DL = 1; 8-bit interface data
N = 0; 1-line display
F = 0; 5 ´ 8 dot character font
3. Display on/off control:
D = 0; Display off
C = 0; Cursor off
B = 0; Blinking off
4. Entry mode set:
I/D = 1; Increment by 1
S = 0; No shift "

Ez szerint meg 8 bites üzemmódba kerül a belső reset mechanizmus miatt..!!???
Közben találtam egy még egyszerűbb programot (https://www.gadgetronicx.com/programming-lcd-4-8-bit-mode-8051/) , de ez sem küld ki semmit- pedíg a 10ms időzítés miatt most szépen látszik, hogy az adatvonalakat rángatja a program ahogy kell..
A kijelző továbbra is üres marad.
Csatolom a két file-t...
(#) kissi válasza Bakman hozzászólására (») Máj 29, 2022 /
 
Ezzel kapcsolatban gondoltam :
Idézet:
„Azt tudja valaki, hogy bekapcsoláskor 4 vagy 8 bites üzemmódba áll fel az LCD rendszere - én a 4 bitesre saccolok, de nincs infóm róla.”
(#) kaqkk válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Nem értek a C nyelvhez de az RS kimenet miért b és nem 1 ?
Idézet:
„output_bit(RS,b); //0 for command and 1 for data
output_bit(EN,1);
delay_ms(12);
output_bit(EN,0);
delay_ms(15);”
A hozzászólás módosítva: Máj 29, 2022
(#) sany válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Itt szerintem nem LCD inicialzálással lesz a baj, hanem az órajellel. Nem értek teljesen az általad használt CSS fejlesztő környezethez. Azonban a program feltöltésekor megadott, hogy belső órajelet használjon a PIC?
A 4 MHz felett már illik külső oszcillátort hasznàlni. A képen látható panelden van kvarc. Hány MHz-es?
Add meg a kódban a külső oszcillátort:
#fuses XT
A hozzászólás módosítva: Máj 29, 2022
(#) spenyo hozzászólása Máj 29, 2022 /
 
As RS értéke kívűről érkezik a szubrutinba és azt dönti el, hogy a vezérlő, vagy az adatregiszterbe menjen az adat ...

lcd(0x38,0); : itt a vezérlő regiszterbe kerül a 0x38.

for(i=0;i<=11;i++)
{
lcd(txt[i],1); : itt meg az adatregiszterbe a txt[i]
delay_ms(20);
}

Amit külső quartz-nak látsz az egy másik PIC-re csatlakozik - a forrasztási oldalon van - és 32768Hz, vagy 65536Hz külső órajelet állít elő (látható a kék DIP kapcsoló amivel választható) a külső órakquartz szimulálásához - ez egy oktató környezet.

A main.h tartalmazza, hogy milyen belső órajelet használok :
#use delay(internal=8MHz)
és ez a sor mondja meg a fordítónak, hogy a delay_ms() utasításnál hogyan rakja össze a késleltető rutint, hogy az 1ms valóban 1ms legyen.
Különben a Csc C 5.104-es fordítóját használom..

Ezek a kontrollerek már nem igényelnek egyáltalán külső órajelet, mert 64MHz-ig állítható belső oscillátorral rendelkeznek.
(#) sany válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Ja én azt hittem 16F877A használsz, mint a megadott példádban.
(#) nagym6 válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Nálam így működik.

lcdut= %00111000 '8 bites 2 soros beállítás 3-szor
gosub ulcd
gosub ulcd
gosub ulcd
lcdut= %00000001 'display clear adat
gosub ulcd
lcdut= %00001100 'display be, cursor ki, villog ki
gosub ulcd

ulcd:
RS=0
lcdut érték az lcd 8 bitre
EN=1
szünet nem tudom, talán 20ms
EN=0

Ezek utasításbevitelek, adatbevitelnél az RS=1 legyen.
(#) spenyo hozzászólása Máj 29, 2022 /
 
Hát ez sem javított a helyzeten.
Üres képernyő ...

Most még betettem minden egyes utasítás után egy 20ms időzítést is, de továbbra is csak a háttérvilágítás, vagy a teljes kontraszt feltekerésnél kockák a második sorba ..
(#) nagym6 válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Pic lábak kimenetre állítva (tris)? Oszcilloszkóp segíthet.
A hozzászólás módosítva: Máj 29, 2022
(#) spenyo hozzászólása Máj 29, 2022 /
 
Azt szintén a fordító csinálja a main.h -ból :

#use FIXED_IO( B_outputs=PIN_B5,PIN_B2 )
#use FIXED_IO( D_outputs=PIN_D7,PIN_D6,PIN_D5,PIN_D4,PIN_D3,PIN_D2,PIN_D1,PIN_D0 )
#use FIXED_IO( C_outputs=PIN_C7 )
#use FIXED_IO( E_outputs=PIN_E2 )

És ha nem lennének kimenetre állítva, nem látnám, hogy dolgozik, mert a kimenetekre kapcsolt LED-ed sem működnének..
(#) nagym6 válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Ha jól emlékszem a 16F877-nek van nyitott kollektoros(draines) kimenete, amihez felhúzó ellenállás kell. Hátha ilyenre csatlakozik valamelyik lcd láb.
(#) sargarigo válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Topi vonatkozó cikkeit nézted már? Tételesen elmondja a beüzemelés lépéseit, esetleg segíthet.
Bővebben: Link
Bővebben: Link
(#) spenyo hozzászólása Máj 29, 2022 /
 
Nem ezeknél már nincs ilyen láb és a 16F877-nél sem tudok ilyenről - mindegyik TP kimenet.
Egy kivétel van - a Mclr láb - de az sem OC kimenet, hanem csak bemenetnek használható, mert hatástalan a TRIS bitje, pont azért ha elszúrnál valamilyen fuse bitet ne tudd lezárni végérvényesen a tokot - ez régen elég gáz volt az Atmel vezérlőknél ha kizártad magad, mert akkor dobhattad ki az IC-t.
Ez így van minden PIC esetén, de az enyémnél (18F47Q10) ez a láb az RE3.

Megnézem a linkeket .. köszi.
(#) benjami válasza spenyo hozzászólására (») Máj 29, 2022 / 1
 
Az hogy nem tudsz róla, attól még a 877-en az RA4 open drain kimenetű (mondjuk ez jelen helyzetben lényegtelen).
Én a helyedben beállítanám 4 bites módra az átvitelt (a kijelzőn ekkor a D0..D3 lábat GND-re szokták kötni), majd a 3 vezérlőlábra és a 4 adatlábra rákötnék egy pár dolláros 8 csatornás logikai analizátort. A mérésből és a kijelző adatlapból (a sötétben tapogatózás helyett) ki lehetne végre következtetni, hogy mi a hiba.
(#) spenyo hozzászólása Máj 29, 2022 /
 
Hát szerintem elhasználom az LCD-imet virágalátétnek annak még talán jók lesznek.
Nem tudok zöldágra vergődni velük sehogy se..
Megpróbáltam szép hosszú időzítésekkel és közben egy TTL szintmérővel ellenőrizgettem az adatvonalakat, a RS, R/W meg az ENG vonalat és minden jel úgy jön ahogy kell.
A kijelző(k) - 4db LCD 3 típus - ennek ellenére üresek.
Feladom ... pedíg nem tűnt túl bonyolultnak a dolog .. megy az egész a kukába mert nem sikerül ami kellene... na mindegy köszönöm a segítséget.
(#) spenyo hozzászólása Máj 29, 2022 /
 
A 4 bites módon is túl vagyok már.
Sőt a 3 vezérlő vonalat is áttettem a D0-D3 vonalakra, hátha az zavarja meg, hogy más porton vannak a vezérlő jelek.
Sajna ez sem hozott megoldást..
(#) sargarigo válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Esetleg megpróbálhatnád vezérlő nélkül gombokkal piszkálgatni a bementeit, ahogy Topi csinálta anno. Kiderülne hogy egyáltalán jók-e az lcd-k. Benyomogatod az init szekvenciát, és kiíratsz vele egy karaktert. Hátha megmozdulna végre!
(#) spenyo hozzászólása Máj 29, 2022 /
 
Ezt ellenőriztem a hosszú időzítésekkel a bemeneteken meg a TTL szintmérővel.
És minden ment a bemenő jelek közül aminek menni kellett és úgy ahogy elő volt írva...
Azt nem értem, hogy mind a 4 LCD hibás lenne - 2 tök új tehát nem hinném..
(#) sargarigo válasza spenyo hozzászólására (») Máj 29, 2022 /
 
De ne időzítgetésekkel, hanem fapadosan gombokkal! Elvileg ugyanannak kellene lennie, gyakorlatban lehet hogy kizárnál egy hardveres hibát.
(#) Josi777 válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Ha meg szeretnél róla bizonyosodni arról, hogy a kijelző vagy a fejlesztői oldal a rossz, akkor használj egy másik rendszert, praktikusan egy Arduino-t. Több, milliószor kipróbált könyvtár van LCD kijelzőhöz, kizárólag a bekötésnél hibázhatsz.
(#) spenyo hozzászólása Máj 29, 2022 /
 
Hogy az a ....
Megvan a hiba. Az ENG vezeték valahol belül szakadt volt a szigetelés alatt és hol érintkezett hol nem attól függően, hogyan állt a külső panel.
Egy ellenőrző méréskor derült ki a dolog ...
Ezzel szívtam eddig ...
Köszi a segítséget. Mindegyik LCD műkszik, bár az egyiknél más karakterek jönnek mint akarom, de ez szerintem a karaktertáblával kell majd beállítani...
Köszi mégegyszer...
(#) Josi777 válasza spenyo hozzászólására (») Máj 29, 2022 / 1
 
Magamat idézem:
Idézet:
„kizárólag a bekötésnél hibázhatsz”

(#) spenyo hozzászólása Máj 29, 2022 1 /
 
Nem a bekötés jó volt.. csak a vezeték gyártó nem gondoskodott a folyamatos ügymenetről a szigetelés alatt....
Semmi nem látszott a hibából kívül..
(#) sargarigo válasza spenyo hozzászólására (») Máj 29, 2022 /
 
Nekem is volt már ilyen kedves vezetékem. Kedves, mert megtanított imádkozni. Gondosan kidobtam, nehogy véletlenül visszajusson. Lényeg hogy meglett a hiba!
(#) Gafly válasza sargarigo hozzászólására (») Máj 29, 2022 /
 
Sokkal viccesebb ingyen vihetőben elajándékozni.
(#) bbb válasza sargarigo hozzászólására (») Máj 29, 2022 /
 
Én még ollót is szoktam hozzá alkalmazni, hogy nehogy véletlenül aki kikukázza, az azt higgye, hogy jó
Következő: »»   68 / 71
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem