; ////////  SECUENCIAL  DE 8 CANALES Y VARIOS  EFECTOS    /////////////
;         IMPLEMENTADA EL 11 DE DICIEMBRE DEL 2013 EN MODO EMERGENCIA.
;     SE LE ADIHEREN EFECTOS NUEVOS Y SE ELIMINAN EFECTOS SIN USO
;     TAMBIEN SE MODIFICA VELOCIDAD DE EFECTOS 
;=================== Mapa de Memoria ======================
w			equ			0h
estado		equ	 		03h
trisa		equ			85h
trisb		equ			86h	      
porta		equ			05h
portb		equ			06h
registro1	equ			11h
registro2	equ			12h


;============== Configuración de puertos ==================

 reset      org    	   	  00h
           	goto  		  inicio
        	org   		  05h

inicio	bsf    		 estado,5	; cambio al banco 1 del pic
        movlw  		 B'11111111'		
        movwf  		 trisa		; Asigna al puerto A como entrada
        movlw  		 00h		
        movwf  		 trisb		; y Al puerto B como salida
        bcf    		 estado,5	; Regresa al banco 0
        clrf  		 porta		; limpia el puerto A
        clrf   		 portb		; limpia el puerto B
;======================== Efectos =========================

efect1	clrf    portb		; limpia el puerto B
        bsf     portb,7		; (10000000)
        call    clokon
        bsf     portb,6		; (11000000)
        call    clokon
        bsf     portb,5		; (11100000)
        call    clokon
        bsf     portb,4		; (11110000)
        call    clokon
        bsf     portb,3		; (11111000)
        call    clokon
        bsf     portb,2		; (11111100)
        call    clokon
        bsf	    portb,1		; (11111110)
        call    clokon
        bsf     portb,0		; (11111111)
        call    clokon
        bcf     portb,7		; (01111111)
        call    clokon
        bcf     portb,6		; (00111111)
        call    clokon
        bcf     portb,5		; (00011111)
        call    clokon
        bcf     portb,4		; (00001111)
        call    clokon
        bcf     portb,3		; (00000111)
        call    clokon
        bcf     portb,2		; (00000011)
        call    clokon
        bcf     portb,1		; (00000001)
        call    clokon
        clrf    portb		; (00000000)
        call    clokon
trece	bsf     portb,0		; (00000001)
        call    clokon
        bsf     portb,1		; (00000011)
        call    clokon
        bsf     portb,2		; (00000111)
        call    clokon
        bsf     portb,3		; (00001111)
        call    clokon
        bsf     portb,4		; (00011111)
        call    clokon
        bsf     portb,5		; (00111111)
        call    clokon
        bsf     portb,6		; (01111111)
        call    clokon
        bsf     portb,7		; (11111111)
        call    clokon
        bcf     portb,0		; (11111110)
        call    clokon
        bcf     portb,1		; (11111100)
        call    clokon
        bcf     portb,2		; (11111000)
        call    clokon
        bcf     portb,3		; (11110000)
        call    clokon
        bcf     portb,4		; (11100000)
        call    clokon
        bcf     portb,5		; (11000000)
        call    clokon
        bcf     portb,6		; (10000000)
        call    clokon
efect2	clrf    portb		; limpia el puerto B
        bsf     portb,7		; (10000000)		EFECTO ACUMULATIVO EN "0"
        call    clokon
        bcf     portb,7 	; (00000000)
        bsf     portb,6		; (01000000)
        call    clokon
        bcf     portb,6		; (00000000)
        bsf     portb,5		; (00100000)
        call    clokon
        bcf     portb,5		; (00000000)
        bsf     portb,4		; (00010000)
        call    clokon
        bcf     portb,4		; (00000000)
        bsf     portb,3		; (00001000)
        call    clokon
        bcf     portb,3		; (00000000)
        bsf     portb,2		; (00000100)
        call    clokon
        bcf     portb,2		; (00000000)
        bsf     portb,1		; (00000010)
        call    clokon
        bcf     portb,1		; (00000000)
        bsf     portb,0		; (00000001)
        call    clokon
        bsf     portb,7		; (10000001)
        call    clokon
        bcf     portb,7		; (00000001)
        bsf     portb,6		; (01000001)
        call    clokon
        bcf     portb,6		; (00000001)
        bsf     portb,5		; (00100001)
        call    clokon
        bcf     portb,5		; (00000001)
        bsf     portb,4		; (00010001)
        call    clokon
        bcf     portb,4		; (00000001)
        bsf     portb,3		; (00001001)
        call    clokon
        bcf     portb,3		; (00000001)
        bsf     portb,2		; (00000101)
        call    clokon
        bcf     portb,2		; (00000001)
        bsf     portb,1		; (00000011)
        call    clokon
        bsf     portb,7		; (10000011)
        call    clokon
        bcf     portb,7		; (00000011)
        bsf     portb,6		; (01000011)
        call    clokon
        bcf     portb,6		; (00000011)
        bsf     portb,5		; (00100011)
        call    clokon
        bcf     portb,5		; (00000011)
        bsf     portb,4		; (00010011)
        call    clokon
        bcf     portb,4		; (00000011)
        bsf     portb,3		; (00001011)
        call    clokon
        bcf     portb,3		; (00000011)
        bsf     portb,2		; (00000111)
        call    clokon
        bsf     portb,7		; (10000111)
        call    clokon
        bcf     portb,7		; (00000111)
        bsf     portb,6		; (01000111)
        call    clokon
        bcf     portb,6		; (00000111)
        bsf     portb,5		; (00100111)
        call    clokon
        bcf     portb,5		; (00000111)
        bsf     portb,4		; (00010111)
        call    clokon
        bcf     portb,4		; (00000111)
        bsf     portb,3		; (00001111)
        call    clokon
        bsf     portb,7		; (10001111)
        call    clokon
        bcf     portb,7		; (00001111)
        bsf     portb,6		; (01001111)
        call    clokon
        bcf     portb,6		; (00001111)
        bsf     portb,5		; (00101111)
        call    clokon
        bcf     portb,5		; (00001111)
        bsf     portb,4		; (00011111)
        call    clokon
        bsf     portb,7		; (10011111)
        call    clokon
        bcf     portb,7		; (00011111)
        bsf     portb,6		; (01011111)
        call    clokon
        bcf     portb,6		; (00011111)
        bsf     portb,5		; (00111111)
        call    clokon
        bsf     portb,7		; (10111111)
        call    clokon
        bcf     portb,7		; (00111111)
        bsf     portb,6		; (01111111)
        call    clokon
        bsf     portb,7		; (11111111)
        call    clokon
efect3	clrf    portb		; limpia el puerto B
        call    clokon
        bsf     portb,0		; (00000001)
        call    clokon
        bcf     portb,0		; (00000000)
        bsf     portb,1		; (00000010)
        call    clokon
        bcf     portb,1		; (00000000)
        bsf     portb,2		; (00000100)
        call    clokon
        bcf     portb,2		; (00000000)
        bsf     portb,3		; (00001000)
        call    clokon
        bcf     portb,3		; (00000000)
        bsf     portb,4		; (00010000)
        call    clokon
        bcf     portb,4		; (00000000)
        bsf     portb,5		; (00100000)
        call    clokon
        bcf     portb,5		; (00000000)
        bsf     portb,6		; (01000000)
        call    clokon
        bcf     portb,6		; (00000000)
        bsf     portb,7		; (10000000)
       	call    clokon
        bsf     portb,0		; (10000001)
        call    clokon
        bcf     portb,0		; (10000000)
        bsf     portb,1		; (10000010)
        call    clokon
        bcf     portb,1		; (10000000)
        bsf     portb,2		; (10000100)
        call    clokon
        bcf     portb,2		; (10000000)
        bsf     portb,3		; (10001000)
        call    clokon
        bcf     portb,3		; (10000000)
        bsf     portb,4		; (10010000)
        call    clokon
        bcf     portb,4		; (10000000)
        bsf     portb,5		; (10100000)
        call    clokon
        bcf     portb,5		; (10000000)
        bsf     portb,6		; (11000000)
        call    clokon
        bsf     portb,0		; (11000001)
        call    clokon
        bcf     portb,0		; (11000000)
        bsf     portb,1		; (11000010)
        call    clokon
        bcf     portb,1		; (11000000)
        bsf     portb,2		; (11000100)
        call    clokon
        bcf     portb,2		; (11000000)
        bsf     portb,3		; (11001000)
        call    clokon
        bcf     portb,3		; (11000000)
        bsf     portb,4		; (11010000)
        call    clokon
        bcf     portb,4		; (11000000)
        bsf     portb,5		; (11100000)
        call    clokon
        bsf     portb,0		; (11100001)
        call    clokon
        bcf     portb,0		; (11100000)
        bsf     portb,1		; (11100010)
        call    clokon
        bcf     portb,1		; (11100000)
        bsf     portb,2		; (11100100)
        call    clokon
        bcf     portb,2		; (11100000)
        bsf     portb,3		; (11101000)
        call    clokon
        bcf     portb,3		; (11100000)
        bsf     portb,4		; (11110000)
        call    clokon
        bsf     portb,0		; (11110001)
        call    clokon
        bcf     portb,0		; (11110000)
        bsf     portb,1		; (11110010)
        call    clokon
        bcf     portb,1		; (11110000)
        bsf     portb,2		; (11110100)
        call    clokon
        bcf     portb,2		; (11110000)
        bsf     portb,3		; (11111000)
        call    clokon
        bsf     portb,0		; (11111001)
        call    clokon
        bcf     portb,0		; (11111000)
        bsf     portb,1		; (11111010)
        call    clokon
        bcf     portb,1		; (11111000)
        bsf     portb,2		; (11111100)
        call    clokon
        bsf     portb,0		; (11111101)
        call    clokon
        bcf     portb,0		; (11111100)
        bsf     portb,1		; (11111110)
        call    clokon
        bsf     portb,0		; (11111111)
        call    clokon
efect4	clrf    portb		; limpia el puerto B
        bsf     portb,7		; (10000000)
		bsf     portb,0		; (10000001)
        call    clokon
        bsf     portb,6		; (11000001)
        bsf     portb,1		; (11000011)
        call    clokon
        bsf     portb,5		; (11100011)
        bsf     portb,2		; (11100111)
        call    clokon
        bsf     portb,4		; (11110111)
        bsf     portb,3		; (11111111)
        call    clokon
        bcf     portb,7		; (01111111)
        bcf     portb,0		; (01111110)
        call    clokon
        bcf     portb,6		; (00111110)
        bcf     portb,1		; (00111100)
        call    clokon
        bcf     portb,5		; (00011100)
        bcf     portb,2		; (00011000)
        call    clokon
        bcf     portb,4		; (00001000)
        bcf     portb,3		; (00000000)
        call    clokon
        call    clokon
        bsf     portb,3		; (00001000)
        bsf     portb,4		; (00011000)
        call    clokon
        bsf     portb,5		; (00111000)
        bsf     portb,2		; (00111100)
        call    clokon
        bsf     portb,6		; (01111100)
        bsf     portb,1		; (01111110)
        call    clokon
        bsf     portb,7		; (11111110)
        bsf     portb,0		; (11111111)
        call    clokon
		bcf     portb,3		; (11110111)
        bcf     portb,4		; (11100111)
        call    clokon
       	bcf     portb,5		; (11000111)
        bcf     portb,2		; (11000011)
        call    clokon
        bcf     portb,6		; (10000011)
        bcf     portb,1		; (10000001)
        call    clokon
        bcf     portb,7		; (00000001)
        bcf     portb,0		; (00000000)
        call    clokon

efect5	clrf    portb		; limpia el puerto B
        call    clokon
        bsf     portb,0		; (00000001)
        call    clokon
        bcf     portb,0		; (00000000)
        bsf     portb,1		; (00000010)
        call    clokon
        bcf     portb,1		; (00000000)
        bsf     portb,2		; (00000100)
        call    clokon
        bcf     portb,2		; (00000000)
        bsf     portb,3		; (00001000)
        call    clokon
        bcf     portb,3		; (00000000)
        bsf     portb,4		; (00010000)
        call    clokon
        bcf     portb,4		; (00000000)
        bsf     portb,5		; (00100000)
        call    clokon
        bcf     portb,5		; (00000000)
        bsf     portb,6		; (01000000)
        call    clokon
        bcf     portb,6		; (00000000)
        bsf     portb,7		; (10000000)
        call    clokon
        bsf     portb,6		; (11000000)
        call    clokon
        bcf     portb,6		; (10000000)
        bsf     portb,5		; (10100000)
        call    clokon
        bcf     portb,5		; (10000000)
        bsf     portb,4		; (10010000)
        call    clokon
        bcf     portb,4		; (10000000)
        bsf     portb,3		; (10001000)
        call    clokon
        bcf     portb,3		; (10000000)
        bsf     portb,2		; (10000100)
        call    clokon
        bcf     portb,2		; (10000000)
        bsf     portb,1		; (10000010)
        call    clokon
        bcf     portb,1		; (10000000)
        bsf     portb,0		; (10000001)
        call    clokon
        bsf     portb,1		; (10000011)
        call    clokon
        bcf     portb,1		; (10000001)
        bsf     portb,2		; (10000101)
        call    clokon
        bcf     portb,2		; (10000001)
        bsf     portb,3		; (10001001)
        call    clokon
        bcf     portb,3		; (10000001)
        bsf     portb,4		; (10010001)
        call    clokon
        bcf     portb,4		; (10000001)
        bsf     portb,5		; (10100001)
        call    clokon
        bcf     portb,5		; (10000001)
        bsf     portb,6		; (11000001)
        call    clokon
        bsf     portb,5		; (11100001)
        call    clokon
        bcf     portb,5		; (11000001)
        bsf     portb,4		; (11010001)
        call    clokon
        bcf     portb,4		; (11000001)
        bsf     portb,3		; (11001001)
        call    clokon
        bcf     portb,3		; (11000001)
        bsf     portb,2		; (11000101)
        call    clokon
        bcf     portb,2		; (11000001)
        bsf     portb,1		; (11000011)
        call    clokon
        bsf     portb,2		; (11000111)
        call    clokon
        bcf     portb,2		; (11000011)
        bsf     portb,3		; (11001011)
        call    clokon
        bcf     portb,3		; (11000011)
        bsf     portb,4		; (11010011)
        call    clokon
        bcf     portb,4		; (11000011)
        bsf     portb,5		; (11100011)
        call    clokon
        bsf     portb,4		; (11110011)
        call    clokon
        bcf     portb,4		; (11100011)
        bsf     portb,3		; (11101011)
        call    clokon
        bcf     portb,3		; (11100011)
        bsf     portb,2		; (11100111)
        call    clokon
        bsf     portb,3		; (11101111)
        call    clokon
        bcf     portb,3		; (11100111)
        bsf     portb,4		; (11110111)
        call    clokon
        bsf     portb,3		; (11111111)
        call    clokon
        bcf     portb,2		; (11111011)
        call    clokon
        bsf     portb,2		; (11111111)
        call    clokon
        bcf     portb,1		; (11111101)
        call    clokon
        bsf     portb,1		; (11111111)
        call    clokon
        bcf     portb,0		; (11111110)
        call    clokon
		bsf     portb,0		; (11111111)
        call    clokon
        bcf     portb,0		; (11111110)
        call    clokon
        bcf     portb,1		; (11111100)
        call    clokon
        bcf     portb,2		; (11111000)
        call    clokon
        bcf     portb,3		; (11110000)
        call    clokon
        bcf     portb,4		; (11100000)
        call    clokon
        bcf     portb,5		; (11000000)
        call    clokon
        bcf     portb,6		; (10000000)
        call    clokon
        bcf     portb,7		; (00000000)
        call    clokon
efect6	clrf	portb
		call	clokon
		call	clokon
		bsf		portb,0
		call	clokon
		bcf		portb,0
		call	clokon
		bsf		portb,1
		call	clokon
		bcf		portb,1
		call	clokon
		bsf		portb,2
		call	clokon
		bcf		portb,2
		call	clokon
		bsf		portb,3
		call	clokon
		bcf		portb,3
		call	clokon
		bsf		portb,4
		call	clokon
		bcf		portb,4
		call	clokon
		bsf		portb,5
		call	clokon
		bcf		portb,5
		call	clokon
		bsf		portb,6
		call	clokon
		bcf		portb,6
		call	clokon
		bsf		portb,7
		call	clokon
		bcf		portb,7
		call	clokon
		call	clokon
efect7	clrf	portb
		call	clokon
		call	clokon
		bsf		portb,0
		call	clokon
		bcf		portb,0
		call	clokon
		bsf		portb,1
		call	clokon
		bcf		portb,1
		call	clokon
		bsf		portb,2
		call	clokon
		bcf		portb,2
		call	clokon
		bsf		portb,3
		call	clokon
		bcf		portb,3
		call	clokon
		bsf		portb,4
		call	clokon
		bcf		portb,4
		call	clokon
		bsf		portb,5
		call	clokon
		bcf		portb,5
		call	clokon
		bsf		portb,6
		call	clokon
		bcf		portb,6
		call	clokon
		bsf		portb,7
		call	clokon
		bcf		portb,7
		call	clokon
efect8	clrf	portb
		call	clokon
		call	clokon
		bsf		portb,0
		call	clokon
		bcf		portb,0
		call	clokon
		bsf		portb,1
		call	clokon
		bcf		portb,1
		call	clokon
		bsf		portb,2
		call	clokon
		bcf		portb,2
		call	clokon
		bsf		portb,3
		call	clokon
		bcf		portb,3
		call	clokon
		bsf		portb,4
		call	clokon
		bcf		portb,4
		call	clokon
		bsf		portb,5
		call	clokon
		bcf		portb,5
		call	clokon
		bsf		portb,6
		call	clokon
		bcf		portb,6
		call	clokon
		bsf		portb,7
		call	clokon
		bcf		portb,7
		call	clokon
		call	clokon
efect9	clrf	portb
		call	clokon
		call	clokon
		bsf		portb,0
		call	clokon
		bcf		portb,0
		call	clokon
		bsf		portb,1
		call	clokon
		bcf		portb,1
		call	clokon
		bsf		portb,2
		call	clokon
		bcf		portb,2
		call	clokon
		bsf		portb,3
		call	clokon
		bcf		portb,3
		call	clokon
		bsf		portb,4
		call	clokon
		bcf		portb,4
		call	clokon
		bsf		portb,5
		call	clokon
		bcf		portb,5
		call	clokon
		bsf		portb,6
		call	clokon
		bcf		portb,6
		call	clokon
		bsf		portb,7
		call	clokon
		bcf		portb,7
		call	clokon
		call	clokon
efect10	clrf	portb
		call	clokon
		bsf		portb,0
		call	clokon
		bcf		portb,0
		bsf		portb,1
		call	clokon
		bcf		portb,1
		bsf		portb,2
		call	clokon
		bcf		portb,2
		bsf		portb,3
		call	clokon
		bcf		portb,3
		bsf		portb,4
		call	clokon
		bcf		portb,4
		bsf		portb,5
		call	clokon
		bcf		portb,5
		bsf		portb,6
		call	clokon
		bcf		portb,6
		bsf		portb,7
		call	clokon
		bcf		portb,7
		call	clokon
efect11	clrf	portb
		call	clokon
		bsf		portb,0
		call	clokon
		bcf		portb,0
		bsf		portb,1
		call	clokon
		bcf		portb,1
		bsf		portb,2
		call	clokon
		bcf		portb,2
		bsf		portb,3
		call	clokon
		bcf		portb,3
		bsf		portb,4
		call	clokon
		bcf		portb,4
		bsf		portb,5
		call	clokon
		bcf		portb,5
		bsf		portb,6
		call	clokon
		bcf		portb,6
		bsf		portb,7
		call	clokon
		bcf		portb,7
		call	clokon
efect12	clrf	portb
		call	clokon
		bsf		portb,0
		call	clokon
		bcf		portb,0
		bsf		portb,1
		call	clokon
		bcf		portb,1
		bsf		portb,2
		call	clokon
		bcf		portb,2
		bsf		portb,3
		call	clokon
		bcf		portb,3
		bsf		portb,4
		call	clokon
		bcf		portb,4
		bsf		portb,5
		call	clokon
		bcf		portb,5
		bsf		portb,6
		call	clokon
		bcf		portb,6
		bsf		portb,7
		call	clokon
		bcf		portb,7
		call	clokon
		goto	efect1
;    SUB PROGRAMA   
clokon		movlw	D'200'			; RUTINA DE TIEMPO FIJO
			movwf	registro1
t1			movlw	D'90'
			movwf	registro2
t2			nop
			nop
			nop
			decfsz	registro2
			goto	t2
			decfsz	registro1
			goto 	t1
			return
			end

;========================= final ==========================
;  SE SIGUE USANDO PIC 16F84A, POR TENER PROBLEMA EL 16F628A (muy ràpido)
;  Departamento de Ingeniería Electrónica  JCCAtecnología