Stránka 2 z 2

Napsal: 11 úno 2016, 12:05
od paulie2907
bum píše:K programování s PIC16F84 vycházel v časopise Radio Plus KTE seriál kde bylo také ovládání znakového LCD displeje 2 * 16 znaků. Seriál....


Chápu, na začítek nic moc. Alespon vím jak se chovat k LCD (nevěděl jsem to, že tam musí být střídavé). No koupil jsem si display na zkoušku. Je to WD-C1602L-7GNNa - je bez podsvícení, ale jde je o to si vyzkoušet zobrazovaní a zpracování nějakého menu.

Napsal: 11 úno 2016, 13:05
od danhard
Musí tam být napětí alternující, aby nedocházelo k elektrolýze.
Problém u toho jednoduchého displeje je, že musíš ošetřit všechny nožičky, to je u toho DE118 celkem 38 výstupů, pokud nepoužiješ na ovládání nějaký kontroler.

Napsal: 11 úno 2016, 14:14
od bum
Paulie2907 poslal jsem ti SZ.

Napsal: 11 úno 2016, 19:37
od petrfilipi
Jinak jak tu psal Cowley, na původní LCD displej je možné použít řadič 4543 - viz třeba tady (předposlední obrázek) - pak by Ti stačilo jen 16 vývodů: http://www.qsl.net/ok1cfp/ok1cfp-nastav ... hranim.htm

Obecně je to na Googlu zde:https://www.google.cz/search?q=lcd+4543&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwiiwJzQq_DKAhUCz3IKHTveAsMQsAQILw&biw=1569&bih=763#imgrc=UBJaVsE7w8YJuM%3A

Ale samozřejmě displej 2x16 znaků je sice menší (velikostí znaku), pomalejší, ale "inteligentní", takže Ti stačí 2-11 drátů a můžeš s ním dokázat velké věci.

Petr

Napsal: 12 úno 2016, 22:39
od monterjirka
Jeejda píše:4543 není žádný řadič, ale úplně tupý plně statický dekodér BCD/7seg.
...

To bylo ve vztahu k tomu displeji...
Má 3 společný Common, takže pokud by se připojoval přímo na procesor, je třeba použít pro 3-místné zobrazení 22 PINů :cry:

Samozřejmě je lepší použít displej, který má nějaký řadič, pokud možno něco, co se běžně používá, k čemu existují knihovny,...

Napsal: 13 úno 2016, 10:39
od termit256
Ja na tom proste porad nic sloziteho nevidim. Narozdil od led jen vyvola kazdych 20ms preruseni ve kterem neguje porty na kterych ma displej. Otazka par instrukci.

Kdyz neco zblbne tady, uvidi to pekne na displeji a muze opravit. Pokud zblbne napr. casovani inicializacni sekvenci na displeji s radicem, neuvidi tam nic a muze jen tipovat co je spatne.

Rady typu stahni si knihovnu jsou k nicemu, kdys se chce ucit. Jen by se tak zaradil mezi armadu blbu typu "mam arduino, stah sem si tamto a toto a ono to nefunguje. Co mam delat?"

Napsal: 13 úno 2016, 10:51
od lesana87
S dekodérem 4543 výstupy na displej invertovat nemusí, ten už to má v sobě. Stačí spojit piny PH všech dekodérů a COM pin displeje a zapojit je na výstup časovače (předpokládám, že PIC něco takového taky má) a časovač nastavit na 50Hz a o nic se nemusí starat.

Napsal: 13 úno 2016, 11:02
od lesana87
Beztak 16F84 nemá na ten displej dost nožiček.

Napsal: 13 úno 2016, 13:34
od petrfilipi
lesana87 píše:Beztak 16F84 nemá na ten displej dost nožiček.


To sice nemá, ale to přece neva. Tak bude řídit jen jeden, dva nebo tři sedmisegmenty. I na tomhle příkladu se toho může naučit hrozně moc. A navíc - může si, v případě nefunkčnosti, jednoduše ověřit displej (přivedením log. 0/1 na vstupy 4543).
Prostě když už ten displej má, tak ho může vyzkoušet, jen musí dokoupit ty řadiče (pardon, převodíky). Aspoň se s nimi naučí dělat, na LED displej je pak může použít taky.
Jak tady bylo už mnohokrát řečeno - každý běžný displej (LCD segmenty, LED segmenty, LCD 44780) má svoje výhody i nevýhody. Ale když už něco koupil, tak by to vyzkoušet mohl. To je aspoň můj názor.

PF

Napsal: 14 úno 2016, 12:04
od frpr666
Já jsem naopak pro, aby začátečníci nezačínali na .asm ale raději na Arduino. Ať čas strávený na učení instrukcí věnuje raději do učení C
Srovnej :D

Kód: Vybrat vše

{
  a=10;
  a=a-2;
}

s 8O

Kód: Vybrat vše

movlw 10
movwf a
movlw 2
subwf a, F

Nakonec i analýzou "cizích" arduino knihoven se může posunout dál a psát si vlastní knihovny.

Napsal: 15 úno 2016, 08:00
od petrfilipi
Já používám vývojové prostředí od firmy Mikroelektronika včetně "ladící" desky EasyPic. Mrkni na to, mají možnost programovat jak v Basicu, tak Pascalu a i v Céčku.
Vývojová deska je super a má vestavěný programátor, ale Ty bys ji úplně nutné nepotřeboval, bo máš programátor svůj. Takže bys ve vyývojovém prostředí program napsal, přeložil, vygeneroval hex soubor a svým programátorem ho poslal do cílového PICa.

V kompilerech mají kompletní help včetně zapojení (např. displeje včetně příkladu "Hello, World" - posílám ho v příloze a zároveň se omlouvám za kvalitu. Je to dlouhá stránka a musel jsem ubrat na kvalitě, abych se vešel do limitu.

SW:http://www.mikroe.com/compilers/
Ladící desky EasyPic: http://www.mikroe.com/easy-boards/

Compiler je ve zdarma verzi omezen na velikost 2kB, ale ke starším verzím lze najít nějaký ten lék.

Petr

Edit - přikládám vzor obsLuhy displeje s řadičem 44780 v PDF, jak jsem ho "vytiskl" z nápovědy k pascalovskému compileru.

Napsal: 15 úno 2016, 16:24
od mtajovsky
frpr666 píše:Já jsem naopak pro, aby začátečníci nezačínali na .asm ale raději na Arduino. Ať čas strávený na učení instrukcí věnuje raději do učení C
Já nejsem - IMHO kdo nenapsal aspoň něco malého v assembleru, moc neví, co se v procesoru děje. Otázka je, jestli je z tohoto pohledu architektura PIC to nejvhodnější.

Arduino je skvělé z toho hlediska, že poskytuje HAL, ale programátor je od HW ještě o krok dále, než v holém C.

Napsal: 15 úno 2016, 22:13
od Habesan
petrfilipi píše:přikládám vzor obsLuhy displeje s řadičem 44780
Toto ???
JPEG !!!

Napsal: 16 úno 2016, 19:41
od paulie2907
Přiznám, že teď nevím od čeho se odpíchnout, upřímě, přestože, umím C++ nemám ani trochu ponětí kde začít se stahováním potřebného softwaru (C->ASM->HEX) popřípadě (C->HEX).
Upřímně si myslím, že bych si to měl zkusit v Assembleru abych vůbec pochopil princip komunikace. Jak jste mi psali, že zabere všechny piny u 18F84 - to nevadí, protože se to chci naučit, jen si to zkusit, nějaký text a podobně. Jak jste psali o těch PIC32 že to není RISC co všechno to jakoby umí navíc ?

Napsal: 16 úno 2016, 20:56
od frpr666
PIC asm brrr...

Kód: Vybrat vše

banksel
pagesel
goto
xorwf
movwf
movf

C

Kód: Vybrat vše

void *memcpy(void *str1, const void *str2, size_t n)
// zkuste si jen tohle předání tří proměnných na zásobník a zavolání funkce v .asm na PICu...