logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

wyswietlacz siedmiosegmentowy

*zaba* 20 Gru 2008 18:25 3726 22
  • #1 5882158
    *zaba*
    Poziom 13  
    Witam ma kilka pytań odnośnie wyświetlaczy siedmiosegmentowy
    gdy podłączyłem go do mikroprocesora to zajeło mi to cały port D
    1) czy można go podłączyć jakoś w inny sposób??

    a jak mam wyświetlacz taki co można dużo liczb pokazać to są tam kanały ale jak np wyświetli na 1 wyświetlaczu "dwójkę " i podłączy sie drugi kanał to na 2 wyświetlaczu też będzie "dwójka" jak to podłączyć aby wyświetlacze pokazywały np. liczbe 12??

    wyswietlacz siedmiosegmentowy
    wyswietlacz siedmiosegmentowy

    Jak to podłaczyc
    wyswietlacz siedmiosegmentowy
    wyswietlacz siedmiosegmentowy

    jeszcze jedno pytanko czy ktoś wie jak podłączyć ten wyświetlacz ??
    wyswietlacz siedmiosegmentowy
  • #2 5882184
    Lutek49
    Poziom 36  
    Poczytaj o wyświetlaczach sekwencyjnych.
  • #3 5882344
    klops_mops
    Poziom 17  
    Poczytaj o multipleksowaniu.
  • #5 5883399
    dawid512
    Poziom 32  
    Jeden port zostaje zajęty przez segmenty zaś żeby wykorzystać multipleksowanie to musisz zastosować klucze tranzystorowe żeby zapalać/gasić dany wyświetlacz w danej chwili.
  • #6 5883748
    Seba319
    Poziom 24  
    Jeśli chcesz wyświetlać dużo znaków i użyć mało wyprowadzeń uC, to możesz wykorzystać rejestry przesuwne itp. Jednak program wtedy będzie bardziej skomplikowany. Jako że jesteś początkujący potraktuj to na razie jako jedną z odpowiedzi na pytanie
    Cytat:
    ...czy można go podłączyć jakoś w inny sposób?

    Tak jak koledzy pisali musisz poczytać o multipleksowaniu. Działa to mniej więcej tak że nie wyświetlasz dwóch znaków jednocześnie tylko na przemian raz jeden a raz drugi. Zmienia się to tak szybko że nasze oko nie jest w stanie tego zauważyć i wydaje się nam że oba są wyświetlane jednocześnie. Realizuje sie to poprzez podawanie zasilania (poprzez tranzystor kluczujący) tylko na jedno pole w danej chwili, a wyprowadzenia wszystkich segmentów łączy się z sobą i podpina do jednego portu. Porady praktyczne jakich mogę Ci udzielić to abyś gasił całe pole przed przełączeniem zasilania na inne, wtedy unikniesz efektu cienia poprzednio wyświetlanej cyfry na kolejnym polu.
  • #7 5884050
    _StinG_
    Poziom 14  
    Poszukaj jeszcze informacji o transkoderach, które zamieniają kod BCD na kod wyświetlacza 7 segmentowego. w rezultacie zamiast używać Całego portu ograniczasz się do 4 pinów kosztem dorzucenia 1 układu scalonego, do tego jeszcze multipleksacja i jest miodzio :) (choć nie próbowałem jeszcze transkoderem multipleksować...) powinno się dać zrobić.

    P.S. Poprawcie mnie jak źle mówię.
  • #8 5884142
    ZbeeGin
    Poziom 39  
    Jest jeszcze jedna możliwość: Rejestr przesuwający! Wtedy do sterowania użyjesz 3 może 4 linii. Np. kaskada kilku - w zależności ile bitów potrzebujesz - układów CD4094.
  • #9 5884460
    Seba319
    Poziom 24  
    ZbeeGin napisał:
    Jest jeszcze jedna możliwość: Rejestr przesuwający!


    Pisałem juz o tej możliwości, jednak bez głębszego rozwinięcia. Więc kolego nic nowego nie dopisałeś, pytanie czy dobrze przeczytałeś cały temat zanim napisałeś odpowiedź? Wracając do sedna sprawy to, ogólnie można wykorzystać kombinacje różnych układów cyfrowych np. rejestr przesuwny + dekoder + multiplekser. Możesz samemu coś wymyślić jeśli potrzebujesz. Pobierz sobie katalog układów CMOS. poczytaj trochę i pomyśl.
  • #11 5884522
    Seba319
    Poziom 24  
    Balu napisał:
    Dokładanie czegokolwiek dla 14 segmentów to nieporozumienie ;)


    Zgadzam się z tobą co do 14 segmentów zwłaszcza jeśli projekt jest prostu ;) Jednak na trzecim zdjęciu jest 8 pól odczytowych więc robią sie juz schodki i trochę to zajmuje. Jedna z najistotniejszych umiejętności to potrafić wybrać odpowiednio proste rozwiązanie do poziomu projektu jaki się wykonuje.
  • #13 5884564
    Seba319
    Poziom 24  
    Jeśli układ ma 4 porty, a do innych celów potrzebne są nam 3 to już trochę kiepsko się robi. Jednak tak jak pisałem, pytanie jakie trzeba sobie zadać to jak bardzo skomplikowany jest projekt i ile wyprowadzeń nam jeszcze potrzeba. Jeśli mamy 2 wolne porty to bez sensu jest dokupywanie układów i komplikowanie sobie sprawy. Jednak gdy jest to konieczne to trzeba wtedy korzystać z alternatywnych rozwiązań. Kolega *zaba* pytał jak jeszcze można to podłączyć więc otrzymał w odpowiedzi wiele możliwości.
  • #14 5897345
    *zaba*
    Poziom 13  
    Dzięki wam i tym forum wiele się uczę napisałem juz program do multipleksowania ale co teraz zrobić jeśli chciałbym aby liczba w moim przypadku 12 świeciła się przez sekundę i zmieniła się na 11 ?

             $crystal = 1000000                                 'definiujemy z jakim taktowaniem będzie pracował
    
    Config Portb = Output                                       'port b  jako wejścia
           Portb = &B00000000                                   'wszędzie stan spoczynkowy-0
    Config Portd = Output                                       'pprt d jako wyjścia
           Portd = &B11111111
    
    
    
      Do
      Portb.2 = 0
      Portd.5 = 1
      Portd.2 = 1
    
    Portb.1 = 1
    Portd.0 = 0
    Portd.5 = 0
    Portd.3 = 0
    Portd.1 = 0
    Portd.4 = 0
    
    Waitus 1000
    Portb.1 = 0
    Portd.0 = 1
    Portd.5 = 1
    Portd.3 = 1
    Portd.1 = 1
    Portd.4 = 1
    
    Portb.2 = 1
    Portd.5 = 0
    Portd.2 = 0
    
    Waitus 1000
    
      Loop
          End

    Wielkie dzięki
  • Pomocny post
    #15 5897364
    dawid512
    Poziom 32  
    Zrób sobie tablice w której będziesz miał kod dla każdej cyfry a potem tylko wybieraj odpowiednie wpisując do portu.
  • #16 5897412
    *zaba*
    Poziom 13  
    okey dzięki spróbuje mam nadzieje że wyjdzie.
  • #17 5897423
    mirekk36
    Poziom 42  
    *zaba* napisał:
    ...napisałem juz program do multipleksowania

    to co napisałeś ciężko nazwać programem do multipleksowania.

    poczytaj sobie tu i tam:

    http://wkretak.pl/readarticle.php?article_id=13

    w necie ale także używając SZUKAJ na elektrodzie znajdziesz setki linków n/t obsługi wyświetlaczy w takim trybie

    albo książkę Marcina Wiązani o Bascomie i dokładnie postaraj się najpierw zaznajomić z multipleksowaniem wyświetlaczy - bo to są takie podstawy podstaw - jak chcesz coś więcej robić niż tylko migać jedną diodą LED
  • #18 5897985
    *zaba*
    Poziom 13  
    To to ja juz czytałem

    Dodano po 30 [minuty]:

    jak mogą wyglądać takie tablice bo ja znalazłem w helpie bascom'u taki wzór


    Dim a(10) As Byte 'definiujemy tablicę a z dziesięcioma elementami
    Dim c As Integer

    For C = 1 To 10
    a(c) = c 'przypisanie wartość
    Print a(c) 'drukujemy
    Next
    a(c + 1) = a

    (c) Zbigniew Gibek, 2002-2005 (c) MCS Electronics, 1999-2005
  • #19 5898384
    Balu
    Poziom 38  
    No jeśli czytałeś i nic nie wyniosłeś to chyba niestety do szkoły na czytanie ze zrozumieniem. Sorry dude!

    Generalnie masz przerwanie od timera, w nim co przerwanie gasisz WSZYSTKIE (lub poprzedni) wyświetlacz, wystawiasz dane na segmenty i zapalasz NASTĘPNY segment.

    Segment zapalasz na podstawie zmiennej NR_segmentu (wskazującej na konkretny wyświetlacz) i na podstawie zmiennej tablica_danych która ma 4 komórki

    No i go:
    idx=tablica_danych(nr_segmentu)
    segmenty = Lookup(idx ,gdzie_sa_zakodowane_segm)

    gdzie_sa_zakodowane_segmenty:
    Data 0x02, 0x08....itd 10 cyfr zakodowanych.

    I jak to się mawia... that's all folks!

    Łukasz.

    P.S. Na prawdę prościej się nie da już.
  • #20 5898759
    dawid512
    Poziom 32  
    Tylko mnie zastanawia czy jest sens stosować standardowe rozwiązanie czyli klucze tranzystorowe + przerwanie od timera dla dwóch wyświetlaczy? Owszem jeżeli masz większą ilość to tylko takie rozwiązanie jest dobre ale przy mniejszej?
  • #21 5900627
    asembler
    Poziom 32  
    Mnie się wydaje że ma sens. Po pierwsze łatwa możliwość sterowania jasnoscią oraz przyszłościowa rozbudowa sysytemu o kolejne wyswietlacze
  • #22 5900951
    Balu
    Poziom 38  
    Taaaa przyszłościowa rozbudowa... jak się robi PCB zawsze się zostawia przyszłościowe miejsce na więcej elementów (patrz producenci płyt głównych) Jakby ktoś chciał zawsze może jeszcze jedno ide albo pci dolutować i usprawnić swoją płytę... LOL!
  • #23 5933776
    asembler
    Poziom 32  
    Istenieje w elekronice też pozycja na pająka.
REKLAMA