Codigo Assembler
Enviado por FAWM • 14 de Octubre de 2012 • 347 Palabras (2 Páginas) • 594 Visitas
CODIGO EN ASSEMBLER
• Se generó el código con MPLAB como compilador.
LIST P=16F87
INCLUDE <P16F87.INC>
STATUS EQU 03H
PORTA EQU 05H
PORTB EQU 06H
CBLOCK 20H
PDEL0
PDEL1
DEL0
DEL1
ENDC
#DEFINE BANCO_1 BSF STATUS,RP0
#DEFINE BANCO_0 BCF STATUS,RP0
ORG 00H
GOTO INICIO
ORG 04H
ORG 10H
INICIO BANCO_1
MOVLW B'11111'
MOVWF TRISA ; CONFIGURANDO PUERTOS
MOVLW B'00000001'
MOVWF TRISB
BANCO_0
INICIA
BCF STATUS, Z
CLRF PORTA
CLRF PORTB ; LIMPIANDO PUERTOS
MOVF PORTA, W
XORLW B'00000'
BTFSC STATUS, Z
CALL ZERO ; % PARA LA BOMBILLA
MOVF PORTA, W
XORLW B'00001'
CALL CAMBIO1
MOVF PORTA, W
XORLW B'00011'
CALL CAMBIO2
MOVF PORTA, W
XORLW B'00111'
CALL CAMBIO3
MOVF PORTA, W
XORLW B’01111’
CALL CAMBIO4
GOTO INICIA
CROSS
BTFSS PORTB,0
RETURN
GOTO CROSS
ZERO
BCF PORTB, 1
BCF PORTB, 2
GOTO INICIA
CAMBIO1
CALL CROSS
BCF PORTB, 1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO2
BCF PORTB, 1
CALL RETARDO2
CALL RETARDO2
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
BSF PORTB, 1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO
RETURN
CAMBIO2
CALL CROSS
BCF PORTB, 1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO2
CALL RETARDO2
BSF PORTB, 1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO2
CALL RETARDO2
RETURN
CAMBIO3
CALL CROSS
BCF PORTB, 1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO2
BSF PORTB, 1
CALL RETARDO2
CALL RETARDO2
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
BSF PORTB, 1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO2
RETURN
CAMBIO4
CALL CROSS
BSF PORTB, 1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO2
CALL RETARDO2
CALL RETARDO2
CALL RETARDO2
RETURN
RETARDO1
MOVLW .248 ; 1ms
MOVWF DEL0
CICLO CLRWDT
DECFSZ DEL0, 1
GOTO CICLO
DELL1 GOTO DELL2
DELL2 CLRWDT
RETURN
RETARDO2
MOVLW .18 ; 0,08s
MOVWF PDEL0
CICLO1 CLRWDT
DECFSZ PDEL0, 1
GOTO CICLO1
PDELL1 GOTO PDELL2
PDELL2 CLRWDT
RETURN
END
...