Stránka 1 z 1

Multiplexné ovládanie LED displeja.

Napsal: 21 dub 2009, 19:43
od relatko
Zdravím všetkých.
Učím sa programovať PIC-ká potrebujem poradiť pri návrhu multiplexného ovládania troch 7-segmentoviek picom 16f627 ktorý pracuje ako počítadlo impulzov na vstupe RA4.Použil som TMR0 ako čítač
a chcem jeho "obsah" dostať na segmenty.Zatiaľ som sfunkčnil len jeden segment no neviem ako previesť číslo 0-255 na tri segmentovky zapojené zo spoločnou anódou.Anódy jednotlivých segmentoviek sa zapoja na výstupy RA0/2.Výstupy RB0/6 sú paralelne prepojené z jednotlivými segmentmi displejov.Vstup RA4 som zatiaľ zámerne neošetril proti zákmitom kvôli jednoduchosti.
Dudem vďačný za každú radu ,prípadne za hotový zdroják na ktorom sa dá pochopiť tento problém.
Zatiaľ vďaka .Relays

Napsal: 21 dub 2009, 21:51
od Pawalo
Zdravim,,

toto sem řešil tak že sem si vyhranil tři volné registry stovky, desitky, jednotky (nazval sem si je takto XOO,OXO,OOX) a to číslo sem si do nich rozložil. takže například: 154 bylo rozloženo > XOO=1, OXO=5, OOX=4. pak sem použil tabulku čísel jak maš vytvořenou pro zobrazení jednotlivých čísel.

průběh programu vypadal asi takto:

XOO na portB
zapni segnem XOO
počekj chvilku
zhasni segnent XOO

OXO na portB
zapni segmet OXO
počkej chvilku
zhasni segnent OXO

OOX na portB
zapni segnent OOX
počkej chvilku
zhasni segnent OOX

Napsal: 22 dub 2009, 06:21
od BOBOBO

Napsal: 22 dub 2009, 08:19
od Chenzee
Možná ti pomůže toto: číslo z registru rozlož na BCD kód a ten zobraz. Selským rozumem se zamysli a přijdeš na to, že číslo FEhex tedy 254dec (pro jednoduchost) musíš 2x ponížit o 100, 5x o 10 a 4x o 1 abys dosáhl nulu. tedy 254-100 poznamenám 1, zkontroluju podtečení není, znovu odečtu a poznamenám;;;pokud je podtečení, přičtu poslední 100 a opakuju cyklus, ale s řádem desítek ... a jednotek ... a máš číslo rozsekané pro zobrazení. Pak uděláš v programu tabulku, kde k tomuto číslu přičteš výchozí stav ukazatele, a tedy přímo skočíš na novou adresu programu, kde bude kód odpovídající té číslici. (tedy ve W číslo pro zobrazení, instrukce CALL tabulka, PCL + W => skok na řádek s hodnotou odpovídající číslu, RETLW a na následující instrukci po call tabulky máš ve W hodnotu čísla pro zobrazení). Prozatím ber jako pravidlo, že tabulka musí být v prvních 256b programu (tedy na začátku). (teď koukám, že víš, co je tabulka :wink: , micméňe mazat to již nebudu)

Hodně štěstí.

Napsal: 22 dub 2009, 10:13
od Atlan
napr takto :)

Napsal: 24 dub 2009, 06:47
od relatko
Zdravím.
Všetkým ďakujem,mám vo veci jasnejšie.Relatko.