
	LIST P=16F628
	INCLUDE	<P16F628.INC>
	__CONFIG   3F61	;_CP_OFF & _LVP_OFF & _BOREN_OFF & _WDT_OFF & _PWRTE_ON & _INTOSC_OSC_NOCLKOUT & _DATA_CP_OFF



;################################
;DECLARACION DE VARIABLES	#
;################################

	DEL00	EQU	20H
	DEL01	EQU	21H
	CONTA00	EQU	22H
	CONT01	EQU	23H
	INCR	EQU 	24H
	
	ORG 0X00
	GOTO	INICIO


;################################
;TABLAS PARA LAS SECUENCIAS	#
;################################
SECU01	ADDWF 	PCL,1
	RETLW	B'00010001'
	RETLW	B'00001010'
	RETLW	B'00000100'
	RETLW	B'00000000'
	RETLW	B'00001010'
	RETLW	B'00010101'

SECU02	ADDWF	PCL,1
	RETLW	B'00000001'
	RETLW	B'00000011'
	RETLW	B'00000101'
	RETLW	B'00000111'
	RETLW	B'00001001'
	RETLW	B'00010010'

SECU03	ADDWF	PCL,1
	RETLW	B'00000001'
	RETLW	B'00000011'
	RETLW	B'00000111'
	RETLW	B'00001111'
	RETLW	B'00011111'
	RETLW	B'00010101'

;################################
;CONFIGURACION DE PUERTOS	#
;################################
INICIO	CLRF	PORTA
	MOVLW	0X07
	MOVWF	CMCON
	BSF	STATUS,5
	MOVLW	B'00011100'
	MOVWF	TRISA
	MOVLW	B'00000000'
	MOVWF	TRISB
	BCF	STATUS,5
	CLRF	CONTA00
	CLRF	PORTB
	GOTO	PROGRAMA

;################################
;INICIO DEL PROGRAMA		#
;################################
PROGRAMA	BTFSC	PORTA,2
		NOP
		GOTO	AUTOMATICO
		GOTO	MANUAL
		

;################################
;PROCEDIMIENTO MANUAL		#
;################################

MANUAL	CLRF	CONT01
	MOVLW	0X00
	XORWF	CONTA00,0
	BTFSC	STATUS,Z
	GOTO	SEC01
	MOVLW	0X01
	XORWF	CONTA00,0
	BTFSC	STATUS,Z
	GOTO	SEC02
	MOVLW	0X02
	XORWF	CONTA00,0
	BTFSC	STATUS,Z
	GOTO	SEC03
	GOTO	MANUAL
;-------------------------------
SEC01	MOVF	CONT01,0
	CALL	SECU01
	MOVWF	PORTB
	NOP
	BTFSC	PORTA,3
	GOTO	INCRE
	BTFSC	PORTA,4
	NOP
	;GOTO	DECR
	INCF	CONT01,1
	MOVLW	0X06
	XORWF	CONT01,0
	BTFSC	STATUS,Z
	CLRF	CONT01
	GOTO	SEC01
;-------------------------------
SEC02	MOVF	CONT01,0
	CALL	SECU02
	MOVWF	PORTB
	NOP
	BTFSC	PORTA,3
	GOTO	INCRE
	BTFSC	PORTA,4
	NOP
	;GOTO	DECR
	INCF	CONT01,1
	MOVLW	0X06
	XORWF	CONT01,0
	BTFSC	STATUS,Z
	CLRF	CONT01
	GOTO	SEC02
;-------------------------------
SEC03	MOVF	CONT01,0
	CALL	SECU03
	MOVWF	PORTB
	NOP
	BTFSC	PORTA,3
	GOTO	INCRE
	BTFSC	PORTA,4
	NOP
;GOTO	DECR
	INCF	CONT01,1
	MOVLW	0X06
	XORWF	CONT01,0
	BTFSC	STATUS,Z
	CLRF	CONT01
	GOTO	SEC03
;-------------------------------
INCRE	INCF	CONTA00,1
	MOVLW	0X3
	XORWF	CONTA00,0
	BTFSC	STATUS,Z
	CLRF	CONTA00
	GOTO	MANUAL

;################################
;SECUANECIA AUTOMATICA		#
;################################

AUTOMATICO	CLRF	CONT01
		MOVLW	0X00
		XORWF	CONTA00,0
		BTSFSC	STATUS,Z
		GOTO	SEC11
		CLRF	CONT01
		MOVLW	0X00
		XORWF	CONTA00,0
		BTSFSC	STATUS,Z
		GOTO	SEC12
		CLRF	CONT01
		MOVLW	0X00
		XORWF	CONTA00,0
		BTSFSC	STATUS,Z
		GOTO	SEC13
		CLRF	CONT01
		
;-------------------------------
SEC11	MOVF	CONT01,0
	CALL	SECU01
	MOVWF	PORTB
	NOP
	BTF
	INCF	CONT01,1
	MOVLW	0X06
	XORWF	CONT01,0
	BTFSC	STATUS,Z
	CLRF	CONT01
	GOTO	SEC01
;-------------------------------
SEC12	MOVF	CONT01,0
	CALL	SECU02
	MOVWF	PORTB
	NOP

	INCF	CONT01,1
	MOVLW	0X06
	XORWF	CONT01,0
	BTFSC	STATUS,Z
	CLRF	CONT01
	GOTO	SEC02
;-------------------------------
SEC13	MOVF	CONT01,0
	CALL	SECU03
	MOVWF	PORTB
	NOP

	INCF	CONT01,1
	MOVLW	0X06
	XORWF	CONT01,0
	BTFSC	STATUS,Z
	CLRF	CONT01
	GOTO	SEC03

	END