Problem z miganiem diod, uC 8051

zombol

Użytkownik
Dołączył
Październik 29, 2013
Posty
1
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:

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 ;)
 
Do góry Bottom