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.

PIC_12F508 jako licznik. Jak napisać program testowy?

ekspert100 12 Paź 2011 15:16 1538 1
  • #1 12 Paź 2011 15:16
    ekspert100
    Poziom 16  

    PIC_12F508 jako licznik

    Może ktoś mi wskazać jak napisać program testowy.
    Chciałbym poznać nieco PIC'E
    Taki mały schemacik czyli licznik programowy
    prośba o pomoc w napisaniu programu dla pic 12f508
    znalazłem proton_lite chociaż on kompiluje dla pic 12c508 OTP
    czy kod wynikowy hex zadziała na 12f508
    ---------------------------------------------------
    Wymagania - w zależości od stanu portów GP_0 ; GP_1
    GP_3 - wejście
    GP_2 - wyjście
    Stan aktywny =0


    stan portów GP_0=1 ; GP_1=0
    licznik do 3 czyli zmiana stanu GP_2 po 3 impulsach

    stan portów GP_0=0 ; GP_1=1
    licznik do 5 czyli zmiana stanu GP_2 po 5 impulsach

    stan portów GP_0=1 ; GP_1=1
    licznik do 8 czyli zmiana stanu GP_2 po 8 impulsach


    stan portów GP_0=0 ; GP_1=0
    licznik do 1 czyli zmiana stanu GP_2 po 1 impulsach
    CZYLI 1 DO 1


    proszę o pomoc i podpowiedź


    PIC_12F508 jako licznik. Jak napisać program testowy?

    0 1
  • #2 12 Paź 2011 20:53
    adamwesola
    Poziom 24  

    Tak bym zaczał, resztę dopisz i dostosuj i do swoich potrzeb.

    Code:
           movlw   3bh      ;GP2 wyjscie, reszta wejscia
    
            tris    GPIO
            bsf     GPIO,2  ; ustawienie '1' na wyjsciu
            movfw   GPIO  ; odczytanie stanu przelacznikow
            andlw   3       ; zawiera liczbe 0...3
            movwf   licznik
            bsf     STATUS,C
            rlf     licznik,f   ;zawiera liczbe 1,3,5 lub 7
    odliczaj   
            btfsc   GPIO,3
            goto    $-1     ;czeka na stan niski
            btfss   GPIO,3
            goto    $-1     ;czeka na stan wysoki
            decfsz  licznik,f ;zmniejsza licznik o 1
            goto    odliczaj
            bcf     GPIO,2  ; licznik wyzerowany,ustawienie '0' na wyjsciu

    Kod: asm
    Zaloguj się, aby zobaczyć kod

    0