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

Projekt na lab. Asembler na 51. Zliczanie naciśnięć.

wyrwi 02 Maj 2007 15:01 1721 9
REKLAMA
  • #1 3841590
    wyrwi
    Poziom 11  
    Posty: 16
    Witam

    mam do napisania dosc prosty(chyba) program w asemblerze na 51, problem ze mam z tego tylko 1 laborke na ktora musze oddac projekt, a samemu nie chce sie poznawac wszystkich tajnikow asemblera :)

    programem ma byc licznik wcisniecia przyciski, czyli po wcisnieciu przycisku(port P1.7) ma sie zapalic dioda(port P4.1), rejestr R1 ma sie zwiekszyc o 1 i jak osiagnie stan 20 ma sie przepelnic. przy pisaniu trzeba uwzglednic drgania stykow przycisku

    jesli ktos mialby chwilke i mogl to zrobic bylbym bardzo wdzieczny :)

    Pozdrawiam
  • REKLAMA
  • #2 3841866
    Bigfoot
    Poziom 25  
    Posty: 982
    Pomógł: 74
    Ocena: 13
    wyrwi napisał:
    a samemu nie chce sie poznawac wszystkich tajnikow asemblera


    No jak Tobie sie nie chce to mi sie nie chce Tobie pomagac... A wierz mi: by napisac taki banalny programik wystarcza podstawy. No ale bez checi to nawet z tymi podstawami Ci nie wyjdzie.

    BF
  • #3 3841938
    wyrwi
    Poziom 11  
    Posty: 16
    Bigfoot napisał:
    wyrwi napisał:
    a samemu nie chce sie poznawac wszystkich tajnikow asemblera


    No jak Tobie sie nie chce to mi sie nie chce Tobie pomagac... A wierz mi: by napisac taki banalny programik wystarcza podstawy. No ale bez checi to nawet z tymi podstawami Ci nie wyjdzie.

    BF


    wynika to stad ze bede mial jeszcze projekt w c++ i mam do zrobienia jeszcze projekt w electricu, a doba niestety ma tylko 24h. ogolnie wiem jak zrobic wersje by przy wcisnieciu przycisku zapalala sie dioda i R1 zwiekszal o 1. problem pojawia sie przy przepelnieniu i eliminacji drgan stykow(tutaj domyslam sie ze najlatwiej chyba bedzie wprowadzic jakies opoznienie)
  • REKLAMA
  • #4 3841996
    Klima
    Poziom 31  
    Posty: 1535
    Pomógł: 112
    Ocena: 180
    wyrwi napisał:
    a samemu nie chce sie poznawac wszystkich tajnikow asemblera :)

    No też znam studenta, któremu się nie chce nic robić (też wprost to mówi). Ciekaw jestem, czy zaliczy laborki? Jak myślicie?
  • #5 3842024
    wyrwi
    Poziom 11  
    Posty: 16
    widze ze wszyscy sie czepili tutaj mojej moze niezbyt fartownej wypowiedzi, nigdzie nie mowilem ze nie chce mi sie nic robic, poprostu jest sporo innych zajec jeszcze.

    a tak przy okazji czy nie myslicie ze 1 laborka z jezyka jakim jest asembler to glupota? akurat to jest jezyk ktorego nie da sie poznac w 2-3h opierajac sie na znajomosci C++ albo Pascala. z vhdl-a mielismy duzo wiecej zajec niz asemblera. i tu zaznaczam ze jak byl wolny czas to vhdl-a sie nauczylem
  • REKLAMA
  • #6 3842095
    ggrunge
    Poziom 17  
    Posty: 307
    Pomógł: 9
    Ocena: 25
    A o zaliczeniu laborki dowiedziales sie wczoraj? Ten program to chyba ok 15 linijek w asm, i zeby to napisac wystarczy powierzchowne przejrzenie noty jakiegos 8051 + lista instrukcji.
  • #7 3844862
    wyrwi
    Poziom 11  
    Posty: 16
    w takim razie chociaz moze mi powiecie jak w 51 zrobic porownanie R1 z 20 i skok do funkcji bo

    cmp R1,20
    je etykieta

    nie dziala u mnie

    z góry dzięki
  • #8 3844970
    markosik20
    Poziom 33  
    Posty: 2263
    Pomógł: 208
    Ocena: 147
    Cytat:
    cmp R1,20
    je etykieta

    A co to jest?? :)
    Może miało być tak ?
    cjne R1,#020h,etykieta
    .....
    .....
    ....
    ....
    ....
    etykieta:

    cjne - porównaj i skocz jak nierówne :)
  • REKLAMA
  • Pomocny post
    #10 3845036
    markosik20
    Poziom 33  
    Posty: 2263
    Pomógł: 208
    Ocena: 147
    Cytat:
    chodzi o to ze ma skoczyc jak jest rowne

    A jaki problem? :)
    cjne R1,#020,nierowne
    rowne: sjmp etykieta
    nierowne:

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy projektu w asemblerze dla mikrokontrolera 8051, polegającego na zliczaniu naciśnięć przycisku podłączonego do portu P1.7. Po naciśnięciu przycisku ma zapalić się dioda na porcie P4.1, a zawartość rejestru R1 powinna zwiększyć się o 1. Po osiągnięciu wartości 20 rejestr ma się przepełnić. Poruszono problem eliminacji drgań styków, sugerując zastosowanie opóźnienia jako najprostszej metody. Autor miał trudności z implementacją instrukcji porównania i skoku warunkowego w asemblerze 8051, zwłaszcza z warunkiem skoku przy równości wartości rejestru R1 do 20. Wskazano, że instrukcja cjne (compare and jump if not equal) wymaga innego podejścia, a do skoku przy równości należy zastosować kombinację cjne i skoku bezwarunkowego (sjmp). Podkreślono, że napisanie takiego programu wymaga podstawowej znajomości asemblera i instrukcji mikrokontrolera 8051, a sam program jest stosunkowo krótki (około 15 linii kodu). Dyskusja zawierała również refleksje na temat trudności nauki asemblera w krótkim czasie oraz porównanie z nauką VHDL.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA