que hace?
Publicado por ines (1 intervención) el 14/05/2008 02:09:53
hola necesito saber con detalle que es lo que hace el siguiente codigo, lo agradecere de ante mano, pero porfavor me agradaria saber que significa el codigo paso a paso
list p=16f84a ;Indica el tipo de pic
W EQU 0x00 ;
FACTORA EQU 0X0C
FACTORB EQU 0X0D
AUX EQU 0x0E
ESTADO EQU 0X03
PORTA EQU 0X05
PORTB EQU 0X06
PCL EQU 0x02
ORG 0 ; siempre empieza en la direccion 0
goto INICIO ; Saltamos al inicio del programa
ORG 5 ; se deja espacio para las interrupciones
INICIO
bsf ESTADO,5
movlw 0x00 ; Con un 0x00 en ADCON1 se programan
movwf PORTB ;
movlw 0XFF
movwf PORTA
bcf ESTADO,5
ADQUIEREA
bsf PORTB,7
movf PORTA,0
andlw 0x0F
movwf FACTORA
btfsc PORTA,4
goto ADQUIEREA
bcf PORTB,7
call ESPERA
bsf PORTB,7
ADQUIEREB
movf PORTA,0
andlw 0x0F ; W =W(AND) 00001111 dejamos solo 4 bits hacia abajo
movwf FACTORB
btfss PORTA,4
goto ADQUIEREB
call ESPERA
call MULTIPLICA
call CONVIERTE
movwf PORTB
goto ADQUIEREA
ESPERA
movlw 0xFF
movf AUX
VUELTA
decfsz AUX,1
goto VUELTA
return
MULTIPLICA
movf FACTORA,1
btfsc ESTADO,2
retlw 0x00
movf FACTORB,1
btfsc ESTADO,2
retlw 0x00
movlw 0x00
BUCLE
addwf FACTORA,0
decfsz FACTORB,1
goto BUCLE
return
CONVIERTE
andlw 0x0F
addwf PCL,1
retlw b'00011111'
retlw b'00000110'
retlw b'01011011'
retlw b'01001111'
retlw b'01100110'
retlw b'01101101'
retlw b'01111101'
retlw b'01000111'
retlw b'01111111'
retlw b'01101111'
retlw b'01110111'
retlw b'01111100'
retlw b'01011000'
retlw b'01011110'
retlw b'01111001'
retlw b'01110001'
END
list p=16f84a ;Indica el tipo de pic
W EQU 0x00 ;
FACTORA EQU 0X0C
FACTORB EQU 0X0D
AUX EQU 0x0E
ESTADO EQU 0X03
PORTA EQU 0X05
PORTB EQU 0X06
PCL EQU 0x02
ORG 0 ; siempre empieza en la direccion 0
goto INICIO ; Saltamos al inicio del programa
ORG 5 ; se deja espacio para las interrupciones
INICIO
bsf ESTADO,5
movlw 0x00 ; Con un 0x00 en ADCON1 se programan
movwf PORTB ;
movlw 0XFF
movwf PORTA
bcf ESTADO,5
ADQUIEREA
bsf PORTB,7
movf PORTA,0
andlw 0x0F
movwf FACTORA
btfsc PORTA,4
goto ADQUIEREA
bcf PORTB,7
call ESPERA
bsf PORTB,7
ADQUIEREB
movf PORTA,0
andlw 0x0F ; W =W(AND) 00001111 dejamos solo 4 bits hacia abajo
movwf FACTORB
btfss PORTA,4
goto ADQUIEREB
call ESPERA
call MULTIPLICA
call CONVIERTE
movwf PORTB
goto ADQUIEREA
ESPERA
movlw 0xFF
movf AUX
VUELTA
decfsz AUX,1
goto VUELTA
return
MULTIPLICA
movf FACTORA,1
btfsc ESTADO,2
retlw 0x00
movf FACTORB,1
btfsc ESTADO,2
retlw 0x00
movlw 0x00
BUCLE
addwf FACTORA,0
decfsz FACTORB,1
goto BUCLE
return
CONVIERTE
andlw 0x0F
addwf PCL,1
retlw b'00011111'
retlw b'00000110'
retlw b'01011011'
retlw b'01001111'
retlw b'01100110'
retlw b'01101101'
retlw b'01111101'
retlw b'01000111'
retlw b'01111111'
retlw b'01101111'
retlw b'01110111'
retlw b'01111100'
retlw b'01011000'
retlw b'01011110'
retlw b'01111001'
retlw b'01110001'
END
Valora esta pregunta
0