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.

Problem z uruchomieniem migacza LED - PIC16f84a (jezyk asm)

Neftri 26 Gru 2009 12:41 1163 3
  • #1 26 Gru 2009 12:41
    Neftri
    Poziom 9  

    Witam wszystkich forumowiczów
    Mam problem z uruchomieniem programu
    /MCLR 4 pin przez 1K do +5V
    KWARC 4MHz pod pin 15 - OSC1/CLKIN i pin 16 OSC2/CLKOUT
    Vss 5 pin do GND
    Vdd 14 pin do +5V
    T0CKIN pin 3 do masy

    A oto program :

    Cytat:

    BSF STATUS,RP0
    MOVLW 0xF0
    MOVWF 0x06
    BCF STATUS,RP0
    CLRF 0x06
    L2:
    CALL L1
    BSF 0x06,0
    BCF 0x06,1
    BCF 0x06,2
    BCF 0x06,3

    CALL L1
    BCF 0x06,0
    BSF 0x06,1
    BCF 0x06,2
    BCF 0x06,3

    CALL L1
    BCF 0x06,0
    BCF 0x06,1
    BSF 0x06,2
    BCF 0x06,3

    CALL L1
    BCF 0x06,0
    BCF 0x06,1
    BCF 0x06,2
    BSF 0x06,3

    GOTO L2

    L1: MOVLW 0x05
    MOVWF 0x0E

    L5: MOVLW 0xFE
    MOVWF 0x0D

    L4: MOVLW 0xFF
    MOVWF 0x0C

    L3: DECFSZ 0x0C,F
    GOTO L3
    DECFSZ 0x0D,F
    GOTO L4
    DECFSZ 0x0E,F
    GOTO L5
    RETURN
    END


    co zrobiłem żle ??
    diody mają sie zapalać a poprzednia gasnąć co sekunde
    prosze o pomoc

    Denis

    0 3
  • #2 26 Gru 2009 18:25
    adamwesola
    Poziom 24  

    Program mimo malej czytelności działa, także nie wiem w czym pomóc.
    Kilka moich wskazówek : stosuj nazwy symboliczne zamiast adresów rejestrów, zamiast nieczytelnych bloków bsf/bcf wpisuj żadane wartości wprost do rejestrów, nie musisz pisać 0x05 tylko zwyczajnie 5, przy tym programie, nie ma żadnego powodu podłączać RA4 do masy.
    processor 16F84A
    #include <P16F84.INC>
    __CONFIG _PWRTE_OFF & _WDT_OFF & _XT_OSC &_CP_OFF

    CBLOCK 0C
    rej_C, rej_D, rej_E
    ENDC



    MOVLW 0F0
    tris PORTB

    L2 CALL L1
    movlw 1
    movwf PORTB

    CALL L1
    movlw 2
    movwf PORTB

    CALL L1
    movlw 4
    movwf PORTB

    CALL L1
    movlw 8
    movwf PORTB
    GOTO L2

    L1: MOVLW 5
    MOVWF rej_E
    L5 MOVLW 0FE
    MOVWF rej_D
    L4 MOVLW 0FF
    MOVWF rej_C
    DECFSZ rej_C,F
    GOTO $-1
    DECFSZ rej_D,F
    GOTO L4
    DECFSZ rej_E,F
    GOTO L5
    RETURN

    END

    0
  • #3 27 Gru 2009 17:55
    Johny_p1
    Poziom 9  

    Witam!

    Skoro przedmówca sprawdził i potwierdza, że program jest napisany poprawnie, to
    - spróbuj może podłączyć /MCLR bezpośrednio do +5V.
    - kwarc musi być podłączony przez dwa kondensatory.
    - sprawdz czy ustawiłeś w mp lab bity sterujące prawidłowo - odpowiedni tryb pracy z kwarcem.

    0
  • #4 02 Sty 2010 11:46
    Neftri
    Poziom 9  

    no ok, wielkie dzieki, dzis sprawdze poprawnośc działani układu, nie miałem 2 kondesatorów oraz MCLR był do 5V przez rezystor, a program nie był w mirae czytelny poniewaz gotowy wsad Diasembleowałem w PIC Simulation IDE

    0