Řízení 3.5 digit LCD

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Robokop

Řízení 3.5 digit LCD

#1 Příspěvek od Robokop »

Dobrý večer pánové a dámy,

sehnal jsem podobný displej jako na odkazu, ale nemůžu nic moc najít, jak jej ovládat. Při pátrání jsem zjistil, že musí být napájen +/- napětím.

No nedalo mi to a hledal jsem dál a zjistil jsem, že to má jít ovládat i z MCU. Takže jsem si navrhl zapojení s posuvnými registry, ale pořád mi není jasné, jak jej řídit skrze MCU.

Nemá někdo nějaké podklady? Nebo nějakou radu, jak na to?

schema
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#2 Příspěvek od procesor »

Potrebuješ datasheet tvojho LCD s popisom pinov (foto je málo).
Pin "COM" sa napája signálom so striedou 1:1.
Segmenty sa budia-rozsvietia signálom v protifázi s COM. Zhasnú, ak sú budené vo fázi s COM.
Na to treba nejaký prepínač...napríklad aj XOR.

Samozrejme to môžeš simulovať aj programom (cez ten SPI), ak to bude stíhať aspoň 100 kráť za sekundu a dodržíš približne striedu budenia COM a SEG. 1:1 (tú frekvenciu som si vycucal z palca, nejaká bude doporučená určite).

Bude to svietiť aj pri statickom budení, len sa skráti podstatne životnosť LCD.
Přílohy
LCD_SEG.PNG
(9.14 KiB) Staženo 108 x
Robokop

#3 Příspěvek od Robokop »

Tak ten datasheet je zde: odkaz.

Takže jestli jsem to dobře pochopil, tak lepší budu mít nějaký generátor pulzů se střídou 1:1 s kmitočtem třeba 32Hz.

Potom natáhnout data do posuvných registrů a jakmile bude signál v protifázi oproti minulému (XOR), tak přesunout na výstup?
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#4 Příspěvek od procesor »

Ak je v registri miesto aj na COM potom sa to dá robiť aj bez generátora, iba v registroch.
bit COM striedať, modifikovať xor-om data ku bitu COM, vyslať.

To CLK v registri je vlastne COM.
Ak je CLK=1 svietia segmenty s data=0
Ak je CKL=0 svietia segmenty s data=1

s 29 bitmi urob databitx XOR CKLbit
a vyšli von.
Robokop

#5 Příspěvek od Robokop »

Teď to asi vyzní docela blbě, ale asi zde budu muset vidět nějaký příklad. Nějak mi to pořád nejde do hlavy. Nějak si to nedokážu spojit dohromady.

proto ještě jednou:
Mám 4 posuvné registry. Ty naplním daty. Dejme tomu, že budu chtí zobrazit 1 na poslední pozici displeje.

Takže v přerušení budu asi data odesílat do registrů a zobrazovat na display. Přerušení jednou za 0,03s.

V hlavní smyčce budu přepínat CLK 0/1 a provádět funci XOR s daty a nakonec data slučovat a chystat k odesílání.

CLK = 1, 1111....111100. A šup s tím na display.
potom
CLK = 0, 0000....000011. A opět šup s tím na display.

A toto musím pořád dokola opakovat aby mi svítila 1 na poslední pozici. Snad jsem to pochopil dobře. :oops:
Uživatelský avatar
procesor
Příspěvky: 5286
Registrován: 02 říj 2009, 00:00
Bydliště: PO

#6 Příspěvek od procesor »

áno, ak je CLK=0 svietia data =1
ak je CLK=1 na rozsvietenie treba data invertovať (čiže 0).
Invertovať CLK stačí v podprograme pred vyslaním do posuvného registra.
Inverovať data sa dá pri presune dát do posuvného registra.


do registru posielaš poradí

set 1Cbit, set1Dbit
každých 30ms
invertuj CLKbit
pošli po bitoch
0,0, CLKbit, (CLKbit XOR data28), )CLKbit XOR data27),(.........).(CLKbit XOR data1),( CLKbit XOR data0)
pošli RCK


alebo
uprava štyroch bytov
každých 30ms
ivertuj CLKbit
DATAreg0 XOR (0,0,0,1,1,1,1,1)
odošli byt DATAreg0
DATAreg1 XOR (1,1,1,1,1,1,1,1)
odošli byt DATAreg1
DATAreg2 XOR (1,1,1,1,1,1,1,1)
odošli byt DATAreg2
DATAreg3 XOR (1,1,1,1,1,1,1,1)
odošli byt DATAreg3
pošli RCK
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“