HOLA COMPAÑEROS DE TODO PIC, ESPERO QUE ESTEN BIEN, LES COMENTO HICE UN SECUENCIADOR 6 CANALES USANDO EL PIC 16F628A.PERO AL COMPILARLO ME SALEN 2 ERRORES, ESTE ES MI PRIMER PROGRAMA EN LENGUAJE ENSAMBLANDOR. LES PIDO EL FAVOR SI ME PUEDEN AYUDARME, en corregir los 2 ERRORES, ES PARA UN TRABAJO EN LA UNVIVERSIAD.GRACIAS JOSE LUIS
ESTE ES EL PROGRAMA
INCLUDE "P16F628a.inc"
RADIX HEX
REG EQU 0C
CON1 EQU 0D
CON2 EQU 0E
ORG 0
GOTO INICIO
INICIO BSF STATUS,RP0 ;CAMBIO A BANCO 1
MOVLW 0xFF
MOVWF TRISA ;PUERTO A ENTRADA
MOVLW 0x00
MOVWF TRISB ;PUERTO B SALIDA
BCF STATUS,RP0 ;CAMBIO A BANCO 0
CLRF CON1
CLRF CON2
CLRF REG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LECTURA DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LEER MOVF PORTA,W
SUBLW 0x00
BTFSC STATUS,Z ;verifico si bit z del reg status es cero y salto a verificar la otra alternativa
GOTO EFECTO_UNO ;si no cero salto a efecto uno
MOVF PORTA,W
SUBLW 0x01
BTFSC STATUS,Z
GOTO EFECTO_DOS
MOVF PORTA,W
SUBLW 0x02
BTFSC STATUS,Z
GOTO EFECTO_TRES
MOVF PORTA,W
SUBLW 0x03
BTFSC STATUS,Z
GOTO EFECTO_CUATRO
MOVF PORTA,W
SUBLW 0x04
BTFSC STATUS,Z
GOTO EFECTO_CINCO
MOVF PORTA,W
SUBLW 0x05
BTFSC STATUS,Z
GOTO EFECTO_SEIS
MOVF PORTA,W
SUBLW 0x06
BTFSC STATUS,Z
GOTO EFECTO_SIETE
MOVF PORTA,W
SUBLW 0x07
BTFSC STATUS,Z
GOTO EFECTO_OCHO
GOTO LEER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DELAY SIMPLE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY NOP ;DELAY----->RETARDO DE 196ms
BUCLE DECFSZ CON1,F
GOTO BUCLE
DECFSZ CON2,F
GOTO BUCLE
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;; TABLAS EFECTOS 1,2,3 Y 4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EFECTO_UNO MOVLW 0x03
MOVWF REG
LEO_UNO DECFSZ REG,F
GOTO COMB_UNO
GOTO LEER
COMB_UNO MOVF REG,W
CALL TABLA_UNO
MOVWF PORTB
CALL DELAY
CALL DELAY GOTO LEO_UNO
TABLA_UNO ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00010101' ;EFECTO ALTERNADO 1
RETLW B'00101010'
EFECTO_DOS MOVLW 0x03
MOVWF REG
LEO_DOS DECFSZ REG,F
GOTO COMB_DOS
GOTO LEER
COMB_DOS MOVF REG,W
CALL TABLA_DOS
MOVWF PORTB
CALL DELAY
CALL DELAY
GOTO LEO_DOS
TABLA_DOS ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00000111' ;EFECTO ALTERNADO 2
RETLW B'00111000'
EFECTO_TRES MOVLW 0x03
MOVWF REG
LEO_TRES DECFSZ REG,F
GOTO COMB_TRES
GOTO LEER
COMB_TRES MOVF REG,W
CALL TABLA_TRES
MOVWF PORTB
CALL DELAY
CALL DELAY
GOTO LEO_TRES
TABLA_TRES ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00001100' ;EFECTO ALTERNADO 3
RETLW B'00110011'
EFECTO_CUATRO MOVLW 0x03
MOVWF REG
LEO_CUATRO DECFSZ REG,F
GOTO COMB_CUATRO
GOTO LEER
COMB_CUATRO MOVF REG,W
CALL TABLA_CUATRO
MOVWF PORTB
CALL DELAY
CALL DELAY
GOTO LEO_CUATRO
TABLA_CUATRO ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00000000' ;EFECTO ALTERNADO 3
RETLW B'00111111'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;; TABLAS EFECTOS 5,6,7 Y 8 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EFECTO_CINCO MOVLW 0x0B
MOVWF REG
LEO_CINCO DECFSZ REG,F
GOTO COMB_CINCO
GOTO LEER
COMB_CINCO MOVF REG,W
CALL TABLA_CINCO
MOVWF PORTB
CALL DELAY
CALL DELAY
GOTO LEO_CINCO
TABLA_CINCO ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00100000' ;EFECTO DESPLAZADOR
RETLW B'00010000'
RETLW B'00001000'
RETLW B'00000100'
RETLW B'00000010'
RETLW B'00000001'
RETLW B'00000010'
RETLW B'00000100'
RETLW B'00001000'
RETLW B'00010000'
EFECTO_SEIS MOVLW 0x13
MOVWF REG
LEO_SEIS DECFSZ REG,F
GOTO COMB_SEIS
GOTO LEER
COMB_SEIS MOVF REG,W
CALL TABLA_SEIS
MOVWF PORTB
CALL DELAY
CALL DELAY
GOTO LEO_SEIS
TABLA_SEIS ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00110000' ;EFECTO COMBINADO 1
RETLW B'00011000'
RETLW B'00001100'
RETLW B'00000110'
RETLW B'00000011'
RETLW B'00000110'
RETLW B'00001100'
RETLW B'00011000'
RETLW B'00110000'
RETLW B'00100001'
RETLW B'00010010'
RETLW B'00001100'
RETLW B'00010010'
RETLW B'00100001'
RETLW B'00010010'
RETLW B'00001100'
RETLW B'00010010'
RETLW B'00100001'
EFECTO_SIETE MOVLW 0x13
MOVWF REG
LEO_SIETE DECFSZ REG,F
GOTO COMB_SIETE
GOTO LEER
COMB_SIETE MOVF REG,W
CALL TABLA_SIETE
MOVWF PORTB
CALL DELAY
CALL DELAY
GOTO LEO_SIETE
TABLA_SIETE ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00001111' ;EFECTO COMBINADO 2
RETLW B'00100111'
RETLW B'00110011'
RETLW B'00111001'
RETLW B'00111100'
RETLW B'00111001'
RETLW B'00110011'
RETLW B'00100111'
RETLW B'00001111'
RETLW B'00011110'
RETLW B'00101101'
RETLW B'00110011'
RETLW B'00101101'
RETLW B'00011110'
RETLW B'00101101'
RETLW B'00110011'
RETLW B'00101101'
RETLW B'00011110'
EFECTO_OCHO MOVLW 0x12
MOVWF REG
LEO_OCHO DECFSZ REG,F
GOTO COMB_OCHO
GOTO LEER
COMB_OCHO MOVF REG,W
CALL TABLA_OCHO
MOVWF PORTB
CALL DELAY
CALL DELAY
GOTO LEO_OCHO
TABLA_OCHO ADDWF PCL,F ;PC=PC+W
RETURN
RETLW B'00100000' ;EFECTO ACUMULADOR
RETLW B'00010000'
RETLW B'00001000'
RETLW B'00000100'
RETLW B'00000010'
RETLW B'00100001'
RETLW B'00010001'
RETLW B'00001001'
RETLW B'00000101'
RETLW B'00100011'
RETLW B'00010011'
RETLW B'00001011'
RETLW B'00100111'
RETLW B'00010111'
RETLW B'00101111'
RETLW B'00111111'
RETLW B'00000000'
END