logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak działa program sterujący mruganiem diody(DSM51)

Michal_Sz25 13 Maj 2007 12:54 1023 1
REKLAMA
  • #1 3879949
    Michal_Sz25
    Poziom 10  
    Posty: 24
    Ocena: 8
    Witam
    Znalazłem program na miganie diod, tylko nie rozumiem jak on działa...czy mógłby ktoś mi skomentować ten program, ponieważ nie mam zielonego pojęcia o co chodzi?
    
    $MOD51
    
    ORG 0H
    	AJMP START
    ORG 100H
    START:
    	
    	MOV DPTR,#DIODA1
    	MOV R0,#0
    	MOV A,R0
    	MOVC A,@A+DPTR
    	MOV R2,A
    
    	MOV DPTR,#DIODA2
    	MOV R1,#0
    	MOV A,R1
    	MOVC A,@A+DPTR
    	MOV R3,A 
    
    	MOV R4,#0
    	MOV R5,#0
    	CLR P1.7
    	CLR P1.5
    		
    	PENTLA:
    		ACALL DELAY
    		ACALL SPRAWDZ_CZAS
    		ACALL ZASWIEC_ZGAS
    		ACALL PRZESUN_INDEKS	
    				
    	LJMP PENTLA	   
    	
    
    AJMP START
    AJMP $
    
    DIODA1: DB 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
    DIODA2: DB 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
    
    PRZESUN_INDEKS:
    	CJNE R4,#1,PP1
    		CJNE R0,#30,S1	
    			MOV DPTR,#DIODA1
    			MOV R0,#0
    			MOV A,R0
    			MOVC A,@A+DPTR
    			MOV R2,A
    			MOV R4,#0
    			AJMP K1
    			
    		S1:
    			INC R0
    			MOV DPTR,#DIODA1		
    			MOV A,R0
    			MOVC A,@A+DPTR
    			MOV R2,A
    			MOV R4,#0
    	K1:
    	PP1:
    	
    	CJNE R5,#1,PP2
    		CJNE R1,#30,S2
    			MOV DPTR,#DIODA2
    			MOV R1,#0
    			MOV A,R1
    			MOVC A,@A+DPTR
    			MOV R3,A 
    			MOV R5,#0
    			AJMP K2
    		S2:
    			INC R1
    			MOV DPTR,#DIODA2
    			MOV A,R1
    			MOVC A,@A+DPTR
    			MOV R3,A 
    			MOV R5,#0
    	K2:
    	PP2:
    		
    RET
    SPRAWDZ_CZAS:
    	DJNZ R2,SKOK1
    		MOV R4,#1				
    		AJMP KONIEC1
    	SKOK1:
    		MOV R4,#0
    	KONIEC1:
    
    	DJNZ R3,SKOK2
    		MOV R5,#1
    		AJMP KONIEC2
    	SKOK2:
    		MOV R5,#0
    	KONIEC2:
    RET
    
    ZASWIEC_ZGAS:
    	CJNE R4,#1,SKOCZ1
    		CPL P1.7
    	SKOCZ1:
    	
    	CJNE R5,#1,SKOCZ2
    		CPL P1.5
    	SKOCZ2:	
    RET
    
    DELAY:
    
            MOV R6,#245  
    	PETLA:
    		MOV R7,#20   
    		PETLA1:
    			NOP
    			NOP
    			NOP
    			NOP	
    		DJNZ R7,PETLA1
    	DJNZ R6,PETLA
    	
    	MOV R6,#13
    	PETLA2:	
    		DJNZ R6,PETLA2
    RET
    
    END
    

    Pozdrawiam
  • REKLAMA
  • #2 3880916
    olekewaagata
    Poziom 25  
    Posty: 638
    Pomógł: 64
    Ocena: 28
    Program jest napisany nogami z zawiązanymi oczami, nie sugeruj się takimi opracowaniami, raczej weź podręcznik i poczytaj co robią poszczegolne rozkazy.
    Szukaj mnie na GG lub napisz na pv kiedy bedziesz na gg to ci wyjasnię i pomoge w początkach programowania.
REKLAMA