Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Generator fali prostokątnej

18 Sty 2005 19:41 1272 1
  • Poziom 10  
    Witam.

    Napisałem program generatora fali o czętotliwości ustawianej wpisywaną liczbą do timera2 (TH2 i TL2). Program po wgraniu czeka na wciśnięcie przycisku i zaczyna generować przebieg uwidaczniając to na diodzie LED. Ponowne przyciśnięcie przycisku zatrzymuje generację a następnie przyciśnięcie znowu startuje generację.

    #include <c8051F020.h>

    ORG 00h
    ;P4 DATA 84h
    ;T2CON DATA 0C8h
    ;TL2 DATA CCh
    ;TH2 DATA CDh
    LJMP MAIN

    MAIN:
    MOV 0FFH,#0DEh
    MOV 0FFH,#0ADh
    ;MOV TL2,#00h
    ;MOV TH2,#0FDh

    XRL T2CON,#04h
    ;MOV R0,#2d
    CZEKA:
    JNB P1.7,ZATRZYMANIE
    SJMP CZEKA
    LICZY:
    JNB P1.7,STOP
    JB T2CON.7,POPRZEPELNIENIU
    SJMP LICZY


    POPRZEPELNIENIU:
    CLR T2CON.7
    ;MOV TL2,#00h
    ;MOV TH2,#0FDh
    ;MOV R0,#2d
    XRL P4,#02h
    ;DJNZ R0,LICZY
    LJMP LICZY
    STOP:
    XRL T2CON,#04h
    ;ANL P4,#00h
    ZATRZYMANIE:
    JNB P1.7,ZATRZYMANIE
    LJMP LICZY
    END

    Teraz muszę zadeklarować sobie 5 częstotliwości, po wgraniu programu do uP ma od razu generować pierwszą częstotliwość, po wciśnięciu przycisku drugą po ponownym wciśnięciu trzecią częstotliwość....i jak szósty raz wciśne to ma wrócić do pierwszej częstotliwości.

    Pomóżcie.

    Pozdrawiam, Marcin
  • Poziom 10  
    Dobra juz zrobione! Jakby ktos chcial to zamieszczam:)

    #include <c8051F020.h>

    ORG 00h
    LJMP MAIN

    MAIN:

    MOV 0FFH,#0DEh
    MOV 0FFH,#0ADh

    CZEKA:
    JNB P1.7,ZATRZYMANIE
    SJMP CZEKA

    ZATRZYMANIE:
    JNB P1.7,ZATRZYMANIE
    LJMP USTAWIENIE1

    USTAWIENIE1:
    XRL T2CON,#04h
    MOV TL2,#00h
    MOV TH2,#00h

    XRL T2CON,#04h

    LICZY1:
    JNB P1.7,STOP1
    JB T2CON.7,POPRZEPELNIENIU1
    SJMP LICZY1


    POPRZEPELNIENIU1:
    CLR T2CON.7
    MOV TL2,#00h
    MOV TH2,#00h
    XRL P4,#02h
    ;DJNZ R0,LICZY
    LJMP LICZY1
    STOP1:
    XRL T2CON,#04h
    ;ANL P4,#00h
    LJMP USTAWIENIE2


    USTAWIENIE2:
    XRL T2CON,#04h
    MOV TL2,#00h
    MOV TH2,#04h
    LICZY2:
    JNB P1.7,STOP2
    JB T2CON.7,POPRZEPELNIENIU2
    SJMP LICZY2
    POPRZEPELNIENIU2:
    CLR T2CON.7
    MOV TL2,#00h
    MOV TH2,#04h
    XRL P4,#02h
    LJMP LICZY2
    STOP2:
    XRL T2CON,#04h
    LJMP USTAWIENIE3
    USTAWIENIE3:
    XRL T2CON,#04h
    MOV TL2,#00h
    MOV TH2,#4Ch
    LICZY3:
    JNB P1.7,STOP3
    JB T2CON.7,POPRZEPELNIENIU3
    SJMP LICZY3
    POPRZEPELNIENIU3:
    CLR T2CON.7
    MOV TL2,#00h
    MOV TH2,#4Ch
    XRL P4,#02h
    LJMP LICZY3
    STOP3:
    XRL T2CON,#04h
    LJMP USTAWIENIE4
    USTAWIENIE4:
    XRL T2CON,#04h
    MOV TL2,#00h
    MOV TH2,#94h
    LICZY4:
    JNB P1.7,STOP4
    JB T2CON.7,POPRZEPELNIENIU4
    SJMP LICZY4
    POPRZEPELNIENIU4:
    CLR T2CON.7
    MOV TL2,#00h
    MOV TH2,#94h
    XRL P4,#02h
    LJMP LICZY4
    STOP4:
    XRL T2CON,#04h
    LJMP USTAWIENIE1
    END