Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

AT89S52 - Sterowanie multipleksowe jezyk c

Olivier83 25 Lis 2014 05:34 726 3
  • #1 25 Lis 2014 05:34
    Olivier83
    Poziom 2  

    Witam
    Mam problem z wyswietlaczem 7 segmentowym pracuje na uC AT89s52.
    Na pierwszy rzut oka wszystko dziala w porzadku licznik zlicza w gore ale niestety w liczbie szesnastkowej a chcialbym w dziesietnej czyli od 0 do 9 i zalacza nastepny wyswietlacz itd...
    Napewno problem tkwi w wyrazeniu warunkowym :

    Kod: c
    Zaloguj się, aby zobaczyć kod


    ale niestety moj poziom wiedzy nie moze sobie z tym poradzic dlatego z wracam sie o pomoc moze znajdzie sie ktos kto mi pomoze te zagadke rozwiazac.

    Zamieszczam caly kod programu:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Posiadam 4 wyswietlacze ze wspolna anoda jak na schemacie

    Pozdrawiam

    0 3
  • #2 16 Sty 2015 20:41
    Badmaneq
    Poziom 23  

    Napisz dokładnie z czym masz problem ze zrozumieniem. Które zapisy są dla Ciebie niezrozumiałe ?

    Podpowiem, że poniższy zapis to "kod" liczb w zakresie od 0x0 do 0xF czyli od 0 do 15 dziesiętnie

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Dla większej zrozumiałości można zapisać w następujący sposób
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #3 17 Sty 2015 17:12
    Olivier83
    Poziom 2  

    Zapis liczb szesnastkowych rozumiem, ale chodzi mi o to ze po wpisaniu w tablice liczb od 0 do 9 to i tak liczy mi od 0 do 15 i tego właściwie nie rozumiem

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #4 17 Sty 2015 19:11
    BlueDraco
    Specjalista - Mikrokontrolery

    Przecież nie liczy do 15 z powodu tego, że w tablicy są cyfry od 0 do F. Liczenie masz gdzie indziej - zobacz, gdzie.

    Możesz np. oddzielnie zliczać jedności, dziesiątki i setki w trzech zmiennych. Możesz też zliczać w jednej zmiennej np. od 0 do 99 i rozbijać ją na dwie zmienne zawierające jedności i dziesiątki.

    0