Buenos días amigos, les escribo porque no entiendo el por que no funciona este código para pic 16F877a, está hecho en ensamblador y se trata de un contador ascendente y descendente.
Se utilizan dos botones, uno conectado al puerto A en el pin 0 y otro en el puerto A en el pin 1.
Este código daría a conocer por donde va una cuenta en binario a través del puerto B.
Este es el código ensamblador.
	
	
	
		
				
			Se utilizan dos botones, uno conectado al puerto A en el pin 0 y otro en el puerto A en el pin 1.
Este código daría a conocer por donde va una cuenta en binario a través del puerto B.
Este es el código ensamblador.
		Código:
	
	List    p=16F877A    ;Tipo de procesador
        include    "P16F877A.INC"    ;Definiciones de registros internos
        org    0x00        ;Vector de Reset
        goto    Inicio
Inicio
dato equ 0x20
movlw 0x6
movwf dato
 clrf     PORTB        ;Borra los latch de salida
        bsf    STATUS,RP0    ;Selecciona banco 1
        movlw    b'00000110'
        movwf    ADCON1        ;Puerta A  digital
        clrf    TRISB        ;Puerta B se configura como salida
        movlw    b'00001111'        
        movwf    TRISA        ;Puerta A se configura como entrada
        bcf    STATUS,RP0    ;Selecciona banco 0
        movlw 0x0
        movwf PORTB
programa
btfsc PORTA,0
goto precontar
btfsc PORTA,1
goto predescontar
goto programa
precontar
btfss PORTA,0
goto contar
goto precontar
predescontar
btfss PORTA,0
goto descontar
goto predescontar
contar
movlw 0x02
addwf dato,1
movlw dato
movwf PORTB
goto programa
descontar
movlw 0x02
subwf dato,1
movlw dato
movwf PORTB
goto programa
end
			
				Última edición por un moderador: 
			
		
	
								
								
									
	
								
							
							 
   
				 
						 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		