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.

edsim51 - Jak zrobić przerwanie diody w asemblerze?

przemo884 10 Cze 2015 11:52 561 2
  • #1 10 Cze 2015 11:52
    przemo884
    Poziom 2  

    Witam poszukuje pomocy gdyż mam napisać program w edsim51 w asemblerze który polega na tym ,że podczas przerwania włącza lub wyłącza miganie diody.Dopiero zaczynam programować w asemblerze. Napisałem coś takiego ale nie wiem co dalej:

    Kod: armasm
    Zaloguj się, aby zobaczyć kod

    0 2
  • Pomocny post
    #2 10 Cze 2015 12:13
    conan02

    Poziom 29  

    Mało danych. Chcesz, żeby dioda migała na przerwaniach? Czyli przerwanie włącza, następne wyłącza - tak to zrozumiałem.
    Co do obsługi T0 musisz zrobić obsługę przerwania od adresu 0x0BH (czyli wyzwalanie przez flagę TF0). Wstaw coś takiego po LJMP start na początku:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    W ten sposób LED będzie wyłączany i włączany naprzemiennie przez kolejna przerwania timera T0.
    Przy okazji to jeszcze przed uruchomieniem timera pasuje dać jakieś parametry czasowe, inaczej będzie pracował na cały zegar czyli 65536 cykli do ustawienia flagi przerwania.
    Pozostawianie rejestrów niezainicjowanych nie jest dobrym pomysłem i będzie się mścić w praktyce, jeśli chcesz całego zakresu to przynajmniej na początku programu wyzeruj TH0 i TL0. W przerwaniu wtedy opuść przeładowanie liczników.

    1
  • #3 10 Cze 2015 22:16
    przemo884
    Poziom 2  

    Dzięki serdeczne pomogło mi to choć teraz wiem że strasznie proste to było.
    Jak będę jeszcze czegoś potrzebował to napisze .
    Temat uważam za zamknięty.

    0