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.

[8051][asembler] licznik binarny

ironicx 04 Gru 2008 17:12 3195 4
  • #1 04 Gru 2008 17:12
    ironicx
    Poziom 9  

    Mam do wykonania następujący projekt. Muszę napisać program w asemblerze, który będzie tworzył 16-bitowy licznik liczący binarnie na układzie 8051.. Osiem diód mogę zapalić za pomocą polecenia MOV P1, #0b00000000 natomiast za dwie pozostałe odpowiadają bity w P3 (P3.4 i P3.5). Ponieważ zostałem rzucony na głęboką wodę, gdyż sam muszę nauczyć się asemblera w bardzo krótkim czasie proszę o pomoc. Nie chcę gotowego kodu ani nic z tych rzeczy. Proszę o wskazówki. Wiem, że muszę ustawić sobie timer 0, włączyć przerwania dla niego, włączyć timer 0 i wpisać do rejestrów timera wartości. Co powinienem zrobić później? Jak najlepiej obłsużyć przerwania? Za niedługo wkleję kod, który już mam.

    Code:
    .area MAIN(ABS)
    
    .org 0x000
      LJMP START
    .org 0x000B
      LJMP INTERRUPT_0
    ;.org 0x100

    START:

      MOV A, TMOD
      ANL A, 0b11110000
      ORL A, 0b00000001
      MOV TMOD, A

      MOV TH0, #0b11111111
      MOV TL0, #0b11111111

      SETB EA
      SETB ET0

      SETB TR0

    INTERRUPT_0:

    0 4
  • #2 04 Gru 2008 18:08
    Dr.Vee
    VIP Zasłużony dla elektroda

    Nie napisałeś co chcesz liczyć, i jak sygnał jest podłączony do uC. 16 bitów nijak się nie uda wyświetlić na 10 diodach, no chyba że partiami...

    Pozdrawiam,
    Dr.Vee

    0
  • #3 04 Gru 2008 18:22
    ironicx
    Poziom 9  

    z tego co zrozumiałem muszą zapalać się odpowiednie diody, odpowiadające liczbie w systemie binarnym. Liczymy 1,2,3... itp. Prowadzący stwierdził, że na 8 diodach będzie za łatwo jak będą tylko w P1, więc dorzucił jeszcze te dwie... Z tymi 16-bitami może źle zapamiętałem

    0
  • #4 04 Gru 2008 22:14
    kedzi1
    Poziom 18  

    Napisz jeszcze co ma liczyć układ. Czas czy impulsy z zewnątrz. Jeżeli impulsy to przerwanie bedzie z zewnątrz, wejście INT0 lub INT1.

    0
  • Pomocny post
    #5 05 Gru 2008 09:19
    Fyszo
    Spec od GSM

    Przypuszczam że to ma być rodzaj generatora sekwencji, stąd te diody...
    Chyba najprościej wogóle nie bawić się w liczniki tylko

    1. zwiększenie zmiennej o 1 (np. P1)
    2. odczekanie pewnego czasu
    3. Jeśli wystąpiło przepełnienie to odpowiednio ustawiamy P3.
    4 wracamy do początku.

    0