Hola a todos, soy el estudiante que necesita ayuda sobre ensamblador para las recuperaciones en Julio.
Necesito vuestra ayuda expertos.
Podeis corregirme este ejercicio: ESTA ADJUNTADO EN LA FOTO
Esta es mi solución(la que creo)
Me he hecho un poco el lio. A ver si lo podeis mirar
Gracias!!!
Necesito vuestra ayuda expertos.
Podeis corregirme este ejercicio: ESTA ADJUNTADO EN LA FOTO
Esta es mi solución(la que creo)
Código:
Contador equ 0x20 ;Variable para la temporización
org 0x00
goto Inicio ;Vector de reset
org 0x05
;***************************************************************************************
Delay movlw .100
movwf Contador ;Carga el contador con 100
Delay_0 bcf INTCON,T0IF ;Desconecta el flag de rebosamiento del TMR0
movlw ~.39
movwf TMR0 ;carga el TMR0 con 39
Delay_1 btfss INTCON,T0IF ;Rebasamiento del TMR0 ??
goto Delay_1 ;No.
decfsz Contador,F ;Decrementa contador. Se ha repetido 25 veces ?
goto Delay_0 ;Todavía no,
return ;Ahora si
Inicio clrf PORTB ;
bsf STATUS,RP0 ;Selecciona banco 1
clrf TRISB ;Puerta B se configura como salida
movlw 0x06
movwf ADCON1 ;Puerta A digital
movlw b'00011111'
movwf TRISA ;Puerta A se configura como entrada
movlw b'00000111'
movwf OPTION_REG ;Preescaler de 256 para el TMR0
bcf STATUS,RP0 ;Selecciona banco 0
bsf STATUS,C ;Activa el carry
Loop call Delay ;Temporiza 1s
btfsc PORTA,0 ;Está a 0 RA0 ??
goto A_Dcha ;No, rotación a derecha
A_Izda rlf PORTB,F ;Si, rotación a izquierda
goto Loop
A_Dcha rrf PORTB,F ;Rotación a derecha
goto Loop
end ;
Gracias!!!