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

Jak zrobić łatwiejszy program od tego. Liczenie na wyświetlaczu 8 segmentowym.

Lacin 10 Mar 2011 18:47 2535 16
REKLAMA
  • #1 9260146
    Lacin
    Poziom 11  
    Posty: 75
    Ocena: 2
    Witam. Ten program pokazuje w 2 segmencie liczby od 0 do 9. I moje pytanie jest następujące czy da się ten program jakoś skrócić ? Tzn. nie chodzi mi o napisanie pod programu z
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Tylko o zastosowanie czegoś żeby sam liczby wpisywał.

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • REKLAMA
  • #3 9267482
    Lacin
    Poziom 11  
    Posty: 75
    Ocena: 2
    A byś mógł bardziej jaśniej :P
  • #4 9267634
    LordBlick
    VIP Zasłużony dla elektroda
    Posty: 5438
    Pomógł: 549
    Ocena: 69
    Cosik takiego wynalazłem na tym forum przy pomocy google :
    Kod: text
    Zaloguj się, aby zobaczyć kod
    Nie jestem orłem w asm MCS8051, ale google znalazł taki sposób wywołania tablicy do odpowiedzi:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    https://www.elektroda.pl/rtvforum/topic318308.html
  • REKLAMA
  • #5 9271932
    Lacin
    Poziom 11  
    Posty: 75
    Ocena: 2
    I tak nie rozumiem. Jak wyślemy do DPTR to jak potem odczytywać te kody ?

    Ściągnąłem sobie Jagode zrobiłem program i nie wiem czemu nie działa mi ten program.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Program zachowuje się tak jak by nie zauważał komendy RETI, próbowałem też RET. Wiecie co jest źle ?
  • #6 9271980
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    jak? do DPTR ładujesz adres danych w który jest symbolicznie zapisany etykietą danych. Do DPTR dodajesz offset czyli rejestr zawierający liczbę do wyświetlenia w tym przypadku. Pobierasz komórkę pamięci o adresie dptr i wystawiasz na port.
  • #7 9272502
    Lacin
    Poziom 11  
    Posty: 75
    Ocena: 2
    Tylko że ja tą liczbę muszę wyświetlić na wyświetlaczu 7 segmentowym.

    Byś napisał program który wyświetla najpierw 1 liczbe a potem 2.
    A nie piszesz do mnie rzeczy których prawie nie rozumiem. I ja pokazuje wam swoją głupotę wy się wymądrzacie a razem zaśmiecamy forum :(.
    Napiszesz przykład a ja sobie przerobię. I będzie dobrze.
  • #8 9272528
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    to wystawisz na port nie rozumiem w czym masz problem.
  • #9 9273527
    wzk
    Poziom 19  
    Posty: 259
    Pomógł: 22
    Ocena: 25
    A ja nie rozumiem dlaczego Autor wątku ma pretensję o "wymądrzanie się" a sam ma wstręt zaglądnięcia do pierwszej lepszej książeczki o programowaniu, gdzie znalazłby gotowe rozwiązanie. Ciężko wydać kilka złociszy?
    Dodam do Poprzedników abyś skorzystał z instrukcji "movc" i program pójdzie.
  • #10 9274339
    kazwita
    Poziom 16  
    Posty: 125
    Pomógł: 11
    Ocena: 8
    Witam.

    Kilka słów konstruktywnej krytyki.
    Lacin napisał:
    (…) A nie piszesz do mnie rzeczy których prawie nie rozumiem. (…)

    Wbrew pozorom to już jest coś. Pierwszym krokiem do nauczenia się czegoś jest precyzyjne określenie swoich braków w wiedzy. Niestety później trzeba wykonać kolejny krok - poczytać sobie nieco teorii. W prawie każdej książce traktującej o assemblerze na 8051 jest rozdział o sterowaniu wyświetlaczami LED.

    Lacin napisał:
    (…) Napiszesz przykład a ja sobie przerobię. I będzie dobrze.

    Nauka polegająca na analizowaniu przykładów idzie szybciej, gdy się ją podeprze przyswojoną wcześniej teorią. Unika się wtedy wyciągania błędnych wniosków.

    Pozdrawiam.
  • #11 9289643
    Lacin
    Poziom 11  
    Posty: 75
    Ocena: 2
    Książki nie będę kupował bo jest za droga a nie jest ona mi potrzebna bo zostało mi 2 miesiące nauki a nie jestem milionerem żeby kupować książki które później mi się nie przydadzą.

    Skorzystałem z komendy movc i nie działa.

    To się zapytam tak czy istnieje program których na wyświetlaczu 7 seg. w dsm51 wyświetla liczby od 0 do 9 który ma mniej niż 30 komend ? Jeżeli tak to proszę was abyście mi go przedstawili albo dali link.
  • REKLAMA
  • #12 9289660
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    wskazówka: Dane tablicowe. Tryby adresowania.
  • #13 9289761
    Lacin
    Poziom 11  
    Posty: 75
    Ocena: 2
    A nie możesz ty go napisać ?
  • #14 9289773
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    a ile płacisz co?

    przedstawiłem ci konkretny algorytm na początku jaki problem przejsc z tym na asm?
    wyjaśniłem krok po kroku
  • #15 9289851
    Lacin
    Poziom 11  
    Posty: 75
    Ocena: 2
    właśnie nie wyjaśniłeś.
    Tam ci 500 pkt
  • #16 9289878
    tadzik85
    Poziom 38  
    Posty: 3404
    Pomógł: 415
    Ocena: 16
    zrob podprogramw ktorym parametrem jest ACC zawierajacy liczbe od 0 do 9


    umiesc tablice jak kolega Light pokazal w przykladzie z deklaracja kodów
    do dptr pobierz adres tablicy tez jest w przykładzie
    dodaj do dptr acc
    z pod adresu w ptr pobierz daną tu znajdz odpowiednia intrukjce
    pobrana dana wystaw na port.

    i ta podfunkcje mozna wywolywać juz dowolnie. np w petli otrzymujac wyswietlanie kolejnych liczb
  • #17 9289889
    kazwita
    Poziom 16  
    Posty: 125
    Pomógł: 11
    Ocena: 8
    Lacin napisał:
    Książki nie będę kupował bo jest za droga a nie jest ona mi potrzebna bo zostało mi 2 miesiące nauki a nie jestem milionerem żeby kupować książki które później mi się nie przydadzą. (…)


    Z ciekawości zajrzałem na znany portal aukcyjny w poszukiwaniu książki, od której Kolega powinien (moim zdaniem) zacząć: „Podstawy programowania mikrokontrolera 8051. Pracownia systemów mikroprocesorowych na bazie DSM-51”, którą napisali Piotr i Paweł Gałka. Osiąga ona „zawrotne” ceny rzędu 8, 10, ba nawet 12 i 15 złotych. Gdy przestanie być potrzebna, można ją przecież komuś odsprzedać.

    Lacin napisał:
    To się zapytam tak czy istnieje program których na wyświetlaczu 7 seg. w dsm51 wyświetla liczby od 0 do 9 który ma mniej niż 30 komend ? Jeżeli tak to proszę was abyście mi go przedstawili albo dali link.


    Proszę bardzo: wspomniana książka, rozdział 4, lekcja 6: Wyświetlacz 7-segmentowy, strony 102 - 110 (3 listingi przykładowych programów są na stronach 104, 105, 106-107).

    Pozdrawiam.

    Ps. Tak na marginesie, ciekaw jestem kiedy ktoś wspomni o 16 punkcie Regulaminu Forum.

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono temat optymalizacji programu do wyświetlania cyfr od 0 do 9 na wyświetlaczu 7-segmentowym, z użyciem asemblera dla mikrokontrolera 8051. Użytkownik poszukiwał sposobu na skrócenie kodu, sugerując zastosowanie tablicy kodów cyfr. Uczestnicy forum zaproponowali użycie tablicy danych do przechowywania kodów wyświetlacza oraz instrukcji MOVC do odczytu tych kodów. Wskazano również na potrzebę zrozumienia teorii programowania w asemblerze oraz na dostępność książek, które mogą pomóc w nauce. Użytkownik wyraził frustrację z powodu trudności w zrozumieniu podanych wskazówek i poprosił o konkretny przykład programu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA