Witam
Zacząłem się uczyć assemblera na uczelni, a nie za bardzo "czuję" o co tam chodzi. Programujemy uC 8051, używając Ride7. Miałem za zadanie napisać program, który powoduje miganie 4 diod, z czym sobie poradziłem. Następnym etapem miało być dodanie możliwości zmiany prędkości migania tych diod za pomocą 2 przycisków. I z tym już nie umiem sobie kompletnie poradzić. Prosiłbym o pomoc w napisaniu tego programu.
Przyciski są podpięte pod porty:
Przycisk UP- p1.5
Przycisk DOWN- p1.6
Kod mojego programu:
Przyciski normalnie mają stan 1, po ich wciśnięciu zwiera je się do masy i mają stan 0.
Z góry dziękuję za wszelką pomoc
Zacząłem się uczyć assemblera na uczelni, a nie za bardzo "czuję" o co tam chodzi. Programujemy uC 8051, używając Ride7. Miałem za zadanie napisać program, który powoduje miganie 4 diod, z czym sobie poradziłem. Następnym etapem miało być dodanie możliwości zmiany prędkości migania tych diod za pomocą 2 przycisków. I z tym już nie umiem sobie kompletnie poradzić. Prosiłbym o pomoc w napisaniu tego programu.
Przyciski są podpięte pod porty:
Przycisk UP- p1.5
Przycisk DOWN- p1.6
Kod mojego programu:
Kod:
org 0 ;program ma byc umieszczony pod adresem 0
$include (reg51.inc) ;dodanie pliku z definicja np p1.4, p1.7
LED1 EQU P3.7;LED1=P.37
LED2 EQU P3.6;
LED3 EQU P3.5
LED4 EQU P3.4
ENTER EQU P1.7;
ESC EQU P1.4
JEDEN:
JNB ENTER,START
SJMP JEDEN
START:
CPL LED1 ;zapala/GASI Led1-zeruje bit 1
TU:
DJNZ R0,TU ;ODEJMUJE OD ZERA 256X W REJSETRXZE 0
DJNZ R1,TU ;ODEJMUJE OD ZERA 256X W REJSETRXZE 1
CPL LED2 ;ZAPALA/GAS LED 2
TU2:
DJNZ R0,TU2 ;TO SAMO CO BLOK TU, TERAZ ZAPALA LED3
DJNZ R1,TU2
CPL LED3
TU3:
DJNZ R0,TU3
DJNZ R1,TU3
CPL LED4
JNB ESC,STOP
SJMP START
STOP:
SETB LED1
SETB LED2
SETB LED3
SETB LED4
SJMP JEDEN
END
Przyciski normalnie mają stan 1, po ich wciśnięciu zwiera je się do masy i mają stan 0.
Z góry dziękuję za wszelką pomoc