multiplexowanie



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: "Arko" <arkos_at_nospam_interia.pl>
Subject: multiplexowanie
Date: Wed, 11 Dec 2002 20:16:52 +0100


Wiatam

Moze mnie ktos pouczyc jaka komende uzyc programujac 2051 aby wyswietlic
temperatue z dallasa ds1820 na trzech wyswietlaczach siedmiosegmentowych?
Wiem ze sygnal trzeba przeslac uzywajac multipleksowania , ale jak wyglada
czesc kodu odpowiadajaca za to?

chcialbym odczytywac temperature z dwoch , trzech dallaskow, jak napisac
taki program?

prosze o pomoc.

Arko
arkos_at_nospam_interia.pl




Poprzedni Następny
Wiadomość
Spis treści
From: "AndrzejW" <lachemsc_at_nospam_skasuj_to.poczta.onet.pl>
Subject: Re: multiplexowanie
Date: Wed, 11 Dec 2002 21:13:50 +0100



"Arko" <arkos_at_nospam_interia.pl> wrote in message news:at8311$944$1_at_nospam_news.tpi.pl...
Wiatam

Moze mnie ktos pouczyc jaka komende uzyc programujac 2051 aby wyswietlic
temperatue z dallasa ds1820 na trzech wyswietlaczach siedmiosegmentowych?
Wiem ze sygnal trzeba przeslac uzywajac multipleksowania , ale jak wyglada
czesc kodu odpowiadajaca za to?

chcialbym odczytywac temperature z dwoch , trzech dallaskow, jak napisac
taki program?

prosze o pomoc.

Arko
arkos_at_nospam_interia.pl

Nie wiem czy coś ci to da, ale poniżej jest moja procedura obsługi 2
wyświetlaczy siedmiosegmentowych
Nie śmiać się to Bascom :)

Procedura Send2led wywoływana jest w pętli głównej programu
Ogólna zasada jest taka:
itd. Im dłuższy czas włączenia cyfry tym jest ona jaśniesza, ale zachodzi
niebezpieczeństwo migotania.
Ważne jest aby upewnić się że cyfry będą zawsze wyświetlane w kolejności 1,
2, 3, 1, 2, 3 itd.
Jeżeli tego nie zapewnisz cyfry będą miały różne jasności.


'Obsługa wyświetlacza LED i odczyt klawiatury-----
'C1 i C2 to zmienne przechowujące wartości jakie należy wysłać do
wyświetlacza (na odp. port)
Send2led:

If Led_ref < 35 Then Goto Wyjdz 'Led_ref określa
jak często są wyświetlane pomiary (jasność)
Led_ref = 0

'tu sprawdzamy jaką wartość wyświetlać
'jeden wyświetlacz obsługuje wyświetlanie kilku parametrów (czas, prędkość
itd.) stąd zmienna Tryb
Select Case Tryb
Case 1:
C1 = 76 'znak P na 1
cyfrze wyświetlacza
C2 = Prg
Reset Portc.2
Case 2:
C1 = Czas \ 10
C2 = Czas Mod 10
C1 = C1 + 128
C2 = C2 + 128
Reset Portc.2
Case 3:
C1 = Speed \ 10
C2 = Speed Mod 10
Set Portc.2
Case 4:
Time_led = Time_left \ 60
If Time_led = 0 Then Time_led = Time_left
C1 = Time_led \ 10
C2 = Time_led Mod 10
If Migaj_stan = 0 Then
C1 = C1 + 128
C2 = C2 + 128
End If
End Select

If C12 = 1 Then Goto Pd 'na zmianę
wyświetlana jest 1 i 2 cyfra. Pd - określa która cyfra była ostatnio
zapalona
If C1 = 0 Or C1 = 128 Then Goto Skip_zero 'wygaś
nieznaczące 1 zero
Porta = C1 + 16

Skip_zero:
Porta = C2 + 32
C12 = 1
Goto Wyjdz

Pd:
Porta = C2 + 32
If C1 = 0 Or C1 = 128 Then Goto Wyjdz 'wygaś
nieznaczące 1 zero
Porta = C1 + 16
C12 = 0

Wyjdz:
Incr Led_ref

Return