Nie bój się VFD i co dalej?

Tutaj mozesz poruszać tematy ogólne powiązane z elektroniką, np. dyskusje na temat podzespołów, układów, zasad ich działania. Czyli można pisać o wszystkim czego nie da się przyporządkować do innych działów.
bb
-
Posty: 19
Rejestracja: 27 lip 2004, 10:32
Lokalizacja: Czerniejów / Lublin
Kontakt:

Nie bój się VFD i co dalej?

Post autor: bb » 01 lip 2005, 12:40

Witam
Moze pytanie troche laickie, jesli tak to przepraszam. Z zaciekawieniem czytalem to co napisala tasza w EdW na temat VFD, ale teraz chodzi mi o cos takiego: zalozmy ze sobie rozpracuje i bede wiedzial kazdy pin takiego wyswietlacza do czego sluzy i bede sobie mogl "recznie" zapalic dowolny segment (o ile sie nie myle?) i co dalej? W tych artykulach byla mowa o uProcesorach, ale co wtedy gdy nie chce z nich kozystac ( z wiadomych wzgledow - nie znam sie na tym). Czy moge wykozystac taki VFD np w jakiejs konstrukcji zegarka zamiast wysw. LED?
pozdr
bb

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 02 lip 2005, 22:10

Jak najbardziej możesz wykorzystać taki wyświetlacz w układzie bez mikrokontrolera. Soosób użycie zależy od tego jaki jest ten wyświetlacz. Statystycznie rzecz biorąc możesz posiadać wyświetlacz np 12 cyfr (od jakiegoś kalkulatora lub kasy sklepowej). Taki wyświetlacz można użyć w układzie bez mikrokontrolera. Musisz jedynie dostosować się do wymogów stawianych przez ten wyświetlacz i obsługiwać go w trybie multipleksowym.

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 17 lip 2005, 17:15

:arrow: bb
sterowanie VFD można oczywiście wykonać 'na piechotę', ale tracisz dużo na funkcjonalności....
przykładowy schemat dla lampy numerycznej (7 seg, 8 pól odczytowych):

Obrazek

jako pdf

jak to cudo działa:
bramka NAND (wej. z przerzutnikami Schmitta) + R+ C to generator taktujący przemiatanie
siatek (ma dawać kilkaset Hz),
licznik '93 zlicza modulo 8 wybierając poszczególne zestawy bitów dla dekodera
7-seg ('47) i ustala jednocześnie (przy pomocy dekodera '138),
która siatka ma być w danej chwili aktywna...
poszczególne bity są kompletowane z odpowiednio wybranych wejść demultiplekserów '151...

jeżeli chcesz mieć 'ładną' 6 i 9 - to ogólnie znana sztuczka z bramkami...
jeżeli jednak chcesz wyświetlać np. cały zakres 0...F (wszystkie 16 kombinacji) lub dodatkową semigafikę (kwadraciki, etc..)
no to już trzeba dekoder na GAL-u, nie wiem czy jakiś TTL do tego jest....

moim zdaniem, w/w układ to przerost formy nad treścią, ale jak już chcesz

bb
-
Posty: 19
Rejestracja: 27 lip 2004, 10:32
Lokalizacja: Czerniejów / Lublin
Kontakt:

Post autor: bb » 17 lip 2005, 17:32

Heh dzieki Wam :*
Cos tak bardziej mi chodzilo po glowie czyt poprostu da rade zamiast wysw. na Ledach wstawic VFD bez zadnego dodatkowego kombinowania i starowania (np poza zasileniem itd.)
pozdr

sebax
-
Posty: 9
Rejestracja: 30 lip 2005, 13:34

Post autor: sebax » 30 lip 2005, 13:40

>tasza czy miałaś kiedyś doczynienia z wyświetlaczem vfd cu406scpb-t20a-5i5l ? chodzi mi konkretnie o wysyłanie kodów sterujących np. pozycją kursora, cls , jasnością świecenia itp.
w sposób szeregowy ? a może masz doświadczenia z innymi vfd sterowanymi przez rs232 ?

link do pdf-a : http://www.granity6.webpark.pl/cu406scpb-t20a_e01.pdf

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 30 lip 2005, 14:20

mam coś podobnego...
ale z tym Twoim mi się nie zgadzają ostatnie litery oznaczenia, to takie?


Obrazek

ja ich jeszcze ich nie podłączałam, ponieważ nie było czasu,
ale jak masz kłopot, to na tygodniu mogę coś popatrzeć...

sebax
-
Posty: 9
Rejestracja: 30 lip 2005, 13:34

Post autor: sebax » 31 lip 2005, 18:22

>tasza w tobie moja jedyna nadzieja , wyświetlacz jest dokładnie taki sam (oprucz ostatnich literek ale scalaczki takie same , myślę więc że sterowanie będzie takie samo) , umiem na nim wyświetlić jakiś tekst (program piszę w bascomie) ale sterowanie np. poz. kursora to już mi nie wychodzi , niby wysyłam kody tak jak podali w pdf-ie a wyświetlacz nie reaguje .

dane wysyłam przez port szeregowy czyli w bascomie piszę print "abc" , ale to powoduje tylko mignięcie tego tekstu i jego zniknięcie , po print muszę dać p3.1=0 wtedy napis nie znika , a żebu znowu coś dopisać muszę dać p3.1=1 potem print "abc" i znowu p3.1=0 (procek to 89c4051)

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 31 lip 2005, 18:49

:arrow: sebax
taaa, popatrzyłam na Elektrodę, no, chłopaki... :mrgreen:

aby przetestować moduł trzeba tak:
1. weź i tego bascoma... odłóż na chwilę na bok...
2. ten program-terminal sobie zciągnij ze stronki Braya
http://edw.com.pl/modules.php?op=modloa ... ink&cid=59
3. z kawałka max232 zrób sobie konwerter rs232 :arrow: ttl, tylko tor nadawczy, znaczy się, PC-et będzie nadawał, ma wylatywać w standardzie TTL
4. podłącz moduł :)
5. Brayowy terminal ustaw tak:
19200, 8-bit, even, 1-stop, handshaking = none
6. napisz coś w edit-box-ie do wysłania i klapnij enter, powinno się pokazać na matrycy....
7. wciśnij guzik [Script] i w okno edycyjne wklej to

Kod: Zaznacz cały

// art by tasza
program sebax_lcd_test;
// transmisja rs232: 19200,8,E,1
// elementarne operacje na szkiełku w/g opisu w pdf-ie

procedure VFD_clear;
begin
  comsendchr( $0E ); 
end;

procedure VFD_home;
begin
  comsendchr( $0C ); 
end;

procedure VFD_cursor_left;
begin
  comsendchr( $08 ); 
end;

procedure VFD_cursor_right;
begin
  comsendchr( $09 ); 
end;

procedure VFD_cursor_pos ( n : byte );
begin
    comsendchr( $1B );
    comsendchr( $48 );
    comsendchr( n );
end;

procedure VFD_set_luminance ( n : byte );
begin
    comsendchr( $1B );
    comsendchr( $4c );
    comsendchr( n * $40 ); // w pdf pisze dlaczego :-)
end;

var i : integer;
begin

   VFD_clear;   

   delay(500);

   comsendstr('Ala ma kota...');

   delay(500);

   for i := 0 to 20 do
   begin
      VFD_cursor_pos ( i );
      delay(200);
   end;  

   for i := 20 downto 0 do
   begin
      VFD_cursor_pos ( i );
      delay(200);
   end;  

   VFD_set_luminance ( 0 );
   delay(500);

   VFD_set_luminance ( 1 );
   delay(500);

   VFD_set_luminance ( 2 );
   delay(500);

   VFD_set_luminance ( 3 );
   delay(500);

end.
i uruchom.... :mrgreen:
to jest taki pascalo-podobny język, masz podstawowe operacje na VFD,
szczególnie kicanie kursorem po lampie i zmianę jasności....
i naprawdę nie wiem, dlaczego wam to nie działa....

[dodane]
a, i jeszcze jedno, jak Ty te kody sterujące wysyłasz do VFD? taki np. ESC ( 0x1B )?
można jakiś kawałek kodu zobaczyć?

sebax
-
Posty: 9
Rejestracja: 30 lip 2005, 13:34

Post autor: sebax » 01 sie 2005, 8:40

w bascomie zrobiłem tak:


Declare Sub Vfd
Dim Tabvfd(4) As Byte

Tabvfd(1) = &H1B : Tabvfd(2) = &H48 : Tabvfd(3) = &H27 'przesunięcie kursora max w prawo


Do
Call Vfd
Wait 1
Loop


Sub Vfd
Dim B1 As Byte
For B1 = 1 To 4
Print Tabvfd(b1)
Next
End Sub Vfd


ale niestety nie działa ;-(

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 01 sie 2005, 9:12

tak jak Ci napisałam, podłącz moduł do PC i zapuść ten mój skrypt pod terminalem
i popatrz co się będzie działo, jest mała szansa, że ten Twój moduł tych komend
nie interpetuje, mała, ale jest...
co do bascom-a, parametry transmisji masz ok?
19200,8,E,1? - to są domyślne dla modułu (zakładam otwarte zworki)
aha, jak masz możliwość, podepnij RS232 ten od procka do jakiegoś terminala,
który pokazuje jakie znaczki lecą ale w HEX...
może bascom coś krzywo wysyła? Twój kod 'na oko' wygląda OK...
ale może 'na piechotę' też spóbuj:
print &H1B
print &H48
print &H10 'ustawia kursor na 16 znak

[post++]
napisz mi proszę, z jakim kwarcem działa ten Twój 89c4051...
spróbuję w wolnej chwili coś w C lub asm napisać i Ci wystawię hex/bin , przetestujesz moduł....
to jakieś czary są.... :(

sebax
-
Posty: 9
Rejestracja: 30 lip 2005, 13:34

Post autor: sebax » 03 sie 2005, 13:22

ok , spłodziłem maxa i wyświetlacz działa , skrypt wyświetla wszystko tak jak się należy , teraz to tylko zostało mi odpalenie tego cuda w bascomie

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 03 sie 2005, 13:27

ale jesteś dzielny :D
to chyba jednak bascom gdzieś marudzi...
spróbuj obejrzeć co Ci procek z bascomowym kodem wysyła przez RS232...
może po prostu jakieś 'siano' leci do modułu i on się w tym gubi...
powodzenia!

sebax
-
Posty: 9
Rejestracja: 30 lip 2005, 13:34

Post autor: sebax » 04 sie 2005, 8:09

a no jestem dzielny jak dzielnik ;-) bascom opanowany ! wklejam programik może się komuś przyda , procek zlicza impulsy z enkodera (mok40) i wyświetla na wspomnianym wyżej vfd

$baud = 19200
$crystal = 11059200

Dim Flaga As Bit
Dim Licznik As Integer
Do
If Flaga = 0 Then
Set P1.6
If P1.6 = 0 Then
Flaga = 1
Set P1.5

If P1.5 = 0 Then
Incr Licznik
Else
Decr Licznik
End If

Printbin 14 'cls
Printbin 13 'kursor max w lewo
Print Licznik; 'musi być średnik wtedy napis nie znika

End If
End If
If P1.6 = 1 Then Flaga = 0
Loop

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 05 sie 2005, 18:57

Po 1 tasza mogła byś nie publikować takich szerokich zdięć.
Po 2 tą dyskusję można by prowadzić w czacie i w jednym poście wkleić na forum - większość postów jest pisana na przemian co 10min.

Sebastian RCS
Użytkownik
Posty: 472
Rejestracja: 03 lut 2003, 18:23
Lokalizacja: Koluszki
Kontakt:

Post autor: Sebastian RCS » 05 sie 2005, 18:59

M@rek pisze:Po 1 tasza mogła byś nie publikować takich szerokich zdięć.
Ale przecież ładnie wygląda :mrgreen: .
M@rek pisze:Po 2 tą dyskusję można by prowadzić w czacie i w jednym poście wkleić na forum - większość postów jest pisana na przemian co 10min.
Ten post napisałem 2 minuty po Twoim. To może powinniśmy to na czacie obgadać :mrgreen: .

PS. Przepraszam, że się wciąłem do Twojej polemiki z taszą.

ODPOWIEDZ