; RULETA ELECTRONICA CON PIC16F877A

	LIST		P=16F877A
	RADIX		HEX
	;ERRORLEVEL -302 , -305 , -306
;==========================================================================
;       Configuration Bits
;==========================================================================
_CP_ALL                      EQU     H'3FFF'
_CP_OFF                      EQU     H'1FFF'
_DEBUG_OFF                   EQU     H'3FFF'
_DEBUG_ON                    EQU     H'37FF'
_WRT_OFF                     EQU     H'3FFF'    ; No prog memmory write protection
_WRT_256                     EQU     H'3DFF'    ; First 256 prog memmory write protected
_WRT_1FOURTH                 EQU     H'3BFF'    ; First quarter prog memmory write protected
_WRT_HALF                    EQU     H'39FF'    ; First half memmory write protected
_CPD_OFF                     EQU     H'3FFF'
_CPD_ON                      EQU     H'3EFF'
_LVP_ON                      EQU     H'3FFF'
_LVP_OFF                     EQU     H'3F7F'
_BODEN_ON                    EQU     H'3FFF'
_BODEN_OFF                   EQU     H'3FBF'
_PWRTE_OFF                   EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_RC_OSC                      EQU     H'3FFF'
_HS_OSC                      EQU     H'3FFE'
_XT_OSC                      EQU     H'3FFD'
_LP_OSC                      EQU     H'3FFC'

 __CONFIG   _CP_OFF & _LVP_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC 
;__CONFIG	0x3F71
; ----------------------------------------------------------------------     
		W			EQU 	0x00	; Registro de destino W : d=0
		F 			EQU 	0x01	; Registro de destino F : d=1
		Z			EQU 	0x02	; Bit 2 del registro ESTADO	
		PC			EQU 	0x02	; El registro PC ocupa la direcci¢n 2 
		PUERTAA  	EQU     0x05
		PUERTAB  	EQU     0x06
		PUERTAC  	EQU     0x07
		PUERTAD   	EQU     0x08
		PUERTAE		EQU		0x09
        ESTADO    	EQU     0x03
        TMR0_OPT  	EQU     0x01
        INTCON    	EQU     0x0B
		ADCON1      EQU     H'009F'
		TXSTA       EQU     H'0098'
		SPBRG       EQU     H'0099'
		PIR1        EQU     H'000C'
		TXIF        EQU     H'0004'
		TXREG       EQU     H'0019'
		TRMT        EQU     H'0001'
		PIE1        EQU     H'008C'
		RCIE        EQU     H'0005'
		RCSTA       EQU     H'0018'
		CONTA	  	EQU	  	0X21
		CONTA1		EQU		0X23
		RESUL	  	EQU	  	0X24
		PASADA	  	EQU	  	0X25
		AUX			EQU		0X26
		CONTA2		EQU		0X27
		CONCA		EQU		0X28
		OFFSET		EQU		0X29
		CONT1		EQU		0X30
		CONF_ADCON1 equ 	b'00000110'	; Configuracion PORTA E/S digital
; ----------------------------------------------------------------------------------------------------------
;PROGRAMA PRINCIPAL
			ORG 	0			; El programa comienza en la direcci¢n 0 y 
			goto 	PRINC 		; salta a la direcci¢n 5 para sobrepasar el
								; vector de interrupci¢n
			ORG		5
			INCLUDE "LCD.H"
; ----------------------------------------------------------------------------------------------------------
;RUTINA DE VISUALIZACIàN---------------------------------------------------------------------------------- 
VISUA		addwf	PC,F	
			call	LED0	
			call	LED1
			call	LED2
			call	LED3
			call	LED4
			call	LED5
			call	LED6
			call	LED7
			call	LED8
			call	LED9
			call	LED10
			call	LED11
			call	LED12
			call	LED13
			call	LED14	
			call	LED15
			call	LED16
			call	LED17
			call	LED18
			call	LED19
			call	LED20
			call	LED21
			call	LED22
			call	LED23
			call	LED24
			call	LED25
			call	LED26
			call	LED27
			call	LED28	
			call	LED29
			call	LED30
			call	LED31
			call	LED32
			call	LED33
			call	LED34
			call	LED35
			call	LED36							
			return

;TABLA CON LOS DATOS A SACAR POR EL LCD----------------------------------------------------------------------
;------------------------------------------------------------------------------------------------------------
DATOS1 	addwf 	PC,F
	retlw 	' '          ; OFFSET = 0x00
	retlw 	'R' 		
	retlw 	'U'
	retlw 	'L'
	retlw 	'E'
	retlw 	'T'
	retlw 	'A'
	retlw 	' '
	retlw 	'Y'
	retlw 	' '
	retlw 	'B'
	retlw 	'I'
	retlw 	'N'
	retlw 	'G'
	retlw 	'O'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
DATOS2 	addwf 	PC,F
	retlw 	' '			; OFFSET = 0x00
	retlw 	' '
	retlw 	'E' 		
	retlw 	'L'
	retlw 	'E'
	retlw 	'C'
	retlw 	'T'
	retlw 	'R'
	retlw 	'O'
	retlw 	'N'
	retlw 	'I'
	retlw 	'C'
	retlw 	'O'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
DATOS3 	addwf 	PC,F
	retlw 	'N'
	retlw 	'0'
	retlw 	' '
	retlw 	'V'
	retlw 	'A'
	retlw 	' '
	retlw 	'M'
	retlw 	'A'
	retlw 	'S'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
DATOS4 	addwf 	PC,F
	retlw 	'H'
	retlw 	'A'
	retlw 	'G'
	retlw 	'A'
	retlw 	'N'
	retlw 	' '
	retlw 	'S'
	retlw 	'U'
	retlw 	'S'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
DATOS5 	addwf 	PC,F
	retlw 	'A'
	retlw 	'P'
	retlw 	'U'
	retlw 	'E'
	retlw 	'S'
	retlw 	'T'
	retlw 	'A'
	retlw 	'S'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
DATOS6 	addwf 	PC,F
	retlw 	'C'
	retlw 	'O'
	retlw 	'L'
	retlw 	'O'
	retlw 	'R'
	retlw 	'A'
	retlw 	'D'
	retlw 	'O'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
DATOS7 	addwf 	PC,F
	retlw 	'N'
	retlw 	'E'
	retlw 	'G'
	retlw 	'R'
	retlw 	'O'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
DATOS8 	addwf 	PC,F
	retlw 	'C'
	retlw 	'E'
	retlw 	'R'
	retlw 	'O'
	retlw 	0x00
;-----------------------------------------------------------------------------------------------------------
			
PRINC	clrf    	PUERTAC
		call 		UP_LCD 				; Configura el PIC para el uso del LCD
		bsf			ESTADO,5			; Banco 1
    	bcf     	ESTADO,6
		movlw		CONF_ADCON1			; Configurar el PORTA como digital
    	movwf		ADCON1 
		movlw       b'11010101'     	; Valor a cargar en 
										; OPTION
		movwf		TMR0_OPT
		movlw		0x00
		movwf		PUERTAC				; La Puerta c salida
		movlw		0x00
		movwf		PUERTAD				; La Puerta d salida
		movlw		0x00
		movwf		PUERTAE				; La Puerta e salida
		movlw		b'00010000'
		movwf       PUERTAA
		clrf		PUERTAB
		movlw   	b'00100100'    ; Configuración USART
        movwf   	TXSTA          ; y activación de transmisión
        movlw   	.25            ; 9600 baudios
        movwf   	SPBRG
        bsf     	PIE1,RCIE      ; Habilita interrupción en recepción
		
		bcf			ESTADO,5			; Banco 0
		movlw   	b'10010000'    ; Configuración del USART para recepción continua
        movwf   	RCSTA          ; Puesta en ON
			
		clrf		CONTA1				
		clrf		RESUL
		bcf			PUERTAA,3
		
		call		estable
		call		msgCR
		call		bienv
		call		msgCR
		call		estable
		call		msgCR
		call		comun
		call		msgCR

 	  	call 		LCD_INI 			;Inicializa el LCD
INICIO  call 		BORRA_Y_HOME
	 	call 		DISPLAY_ON_CUR_OFF
	 	movlw 		0x80 				; Primera posici¢n de primera fila
	 	call 		LCD_REG
	 	movlw 		b'00000110' 		; Entry Mode Set. Inc de cursor
	 	call 		LCD_REG
	 	clrf 		OFFSET 				; Direcci¢n del mensaje
	 		 
;------------------------------------------------------------------------------------------------------------------		
  		call 		MENS_r				;muestra ruleta
		
		movlw 		0xC0				; Segunda linea
	 	call 		LCD_REG
		clrf 		OFFSET 				; Direcci¢n del mensaje
		call 		MENS_b				;muestra bingo
;----------------------------------------------------------------------------------------------------------------				

RANDOM_	clrf		PUERTAE
		clrf		PUERTAD
		clrf		PUERTAC				; Las lineas de salida 
										; de PC y PD a 0
		movlw		0xFF
		movwf		CONTA2	
			
;---------------------------------------------------------------------------------------------------------------	
		movlw		0x1E
		movwf		CONTA
		call		retardo					;inicializacion
		movlw		0xFF
		movwf		PASADA
		movlw		0x03
		movwf		CONTA
		movlw		0x00
		call		VISUA					;pasada de chequeo
		clrf		PUERTAE
		clrf		PUERTAD
		clrf		PUERTAC	
		
		call		RANDOM					;genera un numero aleatorio
	
		call 		BORRA_Y_HOME
		movlw 		0x83 					; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		no_va_mas				;mensaje no va mas
;---------------------------------------------------------------------------------------------------------------

		movlw		0x00
		movwf		CONTA
ver		incf		CONTA,F
		movlw		0x00
		call		VISUA
		movlw		0x0B
		subwf		CONTA,W
		btfss		ESTADO,Z
		goto		ver
		movlw		0x00
		movwf		PASADA
		movlw		0x00
		call		VISUA
		goto		INICIO
			
;------------------------------------------------------------------------------------------------------------
;RUTINA MENS: Esta rutina saca mensajes por la pantalla LCD,
;siendo el primer car cter aquel que est  en la posici¢n apuntada
;por OFFSET, y debiendo ser el £ltimo 0x00
 
;-----------------------------------------------------------------------------------------------------------
;MUESTRA CERO
MENS0 	clrf 	OFFSET 
		clrf 	CONCA 		;Inicializa contador de caracteres
MENS_0 	movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS8 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		return 				;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	MENS_0
;-----------------------------------------------------------------------------------------------------------
;MUESTRA COLORADO
MENS_C 	clrf 	OFFSET 
		clrf 	CONCA 		;Inicializa contador de caracteres
MENSC_ 	movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS6 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		return 				;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	MENSC_
;-----------------------------------------------------------------------------------------------------------
;MUESTRA NEGRO
MENS_N 	clrf 	OFFSET 
		clrf 	CONCA 		;Inicializa contador de caracteres
MENSN 	movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS7 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		return 				;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	MENSN

;-----------------------------------------------------------------------------------------------------------
;MUESTRA no va mas
no_va_mas clrf 	OFFSET 
		clrf 	CONCA 		;Inicializa contador de caracteres
no_va 	movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS3 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		return 				;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	no_va
;-----------------------------------------------------------------------------------------------------------
;MUESTRA HAGAN SUS APUESTAS
hagan 	movlw 	0x83 		; Primera posici¢n de primera fila
	 	call 	LCD_REG
		clrf 	OFFSET 
		clrf 	CONCA 		;Inicializa contador de caracteres
hagan_ 	movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS4 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		goto	apuestas	;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	hagan_

apuestas  movlw 0xC4 		; Segunda linea
	 	  call 	LCD_REG
		  clrf 	CONCA 		;Inicializa contador de caracteres
		  clrf 	OFFSET 
apuestas_ movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS5 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		goto	RANDOM_		;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	apuestas_

;-----------------------------------------------------------------------------------------------------------
;MUESTRA ruleta
MENS_r 	clrf 	CONCA 		;Inicializa contador de caracteres
MENSr 	movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS1 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		return 				;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	MENSr

;-----------------------------------------------------------------------------------------------------------
;MUESTRA bingo
MENS_b 	clrf 	CONCA 		;Inicializa contador de caracteres
MENSb 	movf 	OFFSET,W 	;Coge el desplazamiento
		addwf 	CONCA,W 	;Calcula el car cter a coger
		call 	DATOS2 		;Coge el car cter
		iorlw 	0 			;Actualiza flags
		btfsc 	ESTADO,Z 	;Comprueba si es el £ltimo	
		return 				;Si es el £ltimo vuelve	
		call 	LCD_DATO 	;Visualiza el car cter
		incf 	CONCA,F 	;Incrementa contador de caracteres
		goto 	MENSb

;-----------------------------------------------------------------------------------------------------------
;RUTINA PARA GENERACIàN DE NéMERO ALEATORIO-----------------------------------------------------------------
 
RANDOM		btfsc	PUERTAA,4	; Se utiliza la presi¢n del pulsador para parar el 
								; contaje y obtener as¡ el n£mero aleatorio 	
			goto	VOLVER		; Si se ha pulsado se vuelve al punto de llamada
			movlw	b'00100100'	; Se hace una comparaci¢n de RESUL con 36, por si 
			subwf	RESUL,W		; se tiene que volver a empezar de 1. 
			btfsc	ESTADO,Z	; Si RESUL=36 se inicializa, si no, se incrementa
			clrf	RESUL
			incf	RESUL,F
			goto	RANDOM		; Se repite el bucle hasta que se pulse (orden de 
								; parada)
VOLVER		return					; Sobre W queda el £ltimo n£mero antes de la 
								; pulsaci¢n		
;RUTINA RETARDO-------------------------------------------------------------------------------------------------

retardo	movf		CONTA,W
		movwf		CONTA1
ret		clrf		TMR0_OPT		; TMR0 = 0  y empieza su 
									; incremento
explora btfss       INTCON,2        ; TMR0<6> = 1?
		goto 		explora			; No ha llegado TMR0 a 
									; 255d
        bcf         INTCON,2        ; Borra el flag por software
		decfsz		CONTA1,F
		goto		ret
		return
;---------------------------------------------------------------------------------------------------------------
;RUTINA RETARDO2-------------------------------------------------------------------------------------------------

retardo1 movlw		0xFF
		 movwf		CONTA2
retardo_ clrf		TMR0_OPT		; TMR0 = 0  y empieza su 
									; incremento
explora1 btfss      INTCON,2        ; TMR0<6> = 1?
		 goto 		explora1		; No ha llegado TMR0 a 
									; 255d
         bcf        INTCON,2        ; Borra el flag por software
		 decfsz		CONTA2,F
		 goto		retardo_	
		 movlw		0xFF
		 movwf		CONTA2
retardo_1 clrf		TMR0_OPT		; TMR0 = 0  y empieza su 
									; incremento
explora1_ btfss      INTCON,2        ; TMR0<6> = 1?
		 goto 		explora1_		; No ha llegado TMR0 a 
									; 255d
         bcf        INTCON,2        ; Borra el flag por software
		 decfsz		CONTA2,F
		 goto		retardo_1	
		 return

;-----------------------------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------------------------
; Se transmite via Serie el dato que esta en el registro W
TX_DATO bcf     	PIR1,TXIF      ; Restaura el flag del transmisor
        movwf   	TXREG          ; Mueve el byte a transmitir al registro de transmision
        bsf     	ESTADO,5     	 ; Bank01
        bcf     	ESTADO,6

TX_DAT_W  btfss   	TXSTA,TRMT     ; ¿Byte transmitido?
        goto    	TX_DAT_W       ; No, esperar
        bcf     	ESTADO,5     	 ; Si, vuelta a Bank00
        return
;-----------------------------------------------------------------------------------------------------------------
;ESTABILIZACION AL ENVIAR DATOS-----------------------------------------------------------------------------------
estable	movlw	  	0x00
		call	  	TX_DATO	
		movlw	  	0x00
		call	  	TX_DATO
		movlw	  	0x00
		call	  	TX_DATO
		movlw	  	0x00
		call	  	TX_DATO
	    movlw	  	0x00
		call	  	TX_DATO
		return
;------------------------------------------------------------------------------------------------------------------
msgCR	movlw	  	0x0D
		call	  	TX_DATO
		movlw		0x0A
		call		TX_DATO
		return
;------------------------------------------------------------------------------------------------------------------
;ENVIO DE MENSAJE DE BIENVENIDA
bienv	movlw	  	'R'
		call	  	TX_DATO	
		movlw	  	'U'
		call	  	TX_DATO
		movlw	  	'L'
		call	  	TX_DATO	
		movlw	  	'E'
		call	  	TX_DATO	
		movlw	  	'T'
		call	  	TX_DATO	
		movlw	  	'A'
		call	  	TX_DATO	
		movlw	  	' '
		call	  	TX_DATO	
		movlw	  	'E'
		call	  	TX_DATO	
		movlw	  	'L'
		call	  	TX_DATO	
		movlw	  	'E'
		call	  	TX_DATO	
		movlw	  	'C'
		call	  	TX_DATO		
		movlw	  	'T'
		call	  	TX_DATO	
		movlw	  	'R'
		call	  	TX_DATO	
		movlw	  	'O'
		call	  	TX_DATO	
		movlw	  	'N'
		call	  	TX_DATO	
		movlw	  	'I'
		call	  	TX_DATO	
		movlw	  	'C'
		call	  	TX_DATO	
		movlw	  	'A'
		call	  	TX_DATO	
		return
;--------------------------------------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------------------------------------
;ENVIO DE MENSAJE DE OK
comun	movlw	  	'C'
		call	  	TX_DATO	
		movlw	  	'O'
		call	  	TX_DATO
		movlw	  	'M'
		call	  	TX_DATO	
		movlw	  	'U'
		call	  	TX_DATO	
		movlw	  	'N'
		call	  	TX_DATO	
		movlw	  	'I'
		call	  	TX_DATO	
		movlw	  	'C'
		call	  	TX_DATO	
		movlw	  	'A'
		call	  	TX_DATO	
		movlw	  	'C'
		call	  	TX_DATO	
		movlw	  	'I'
		call	  	TX_DATO	
		movlw	  	'O'
		call	  	TX_DATO		
		movlw	  	'N'
		call	  	TX_DATO	
		movlw	  	' '
		call	  	TX_DATO	
		movlw	  	'O'
		call	  	TX_DATO	
		movlw	  	'K'
		call	  	TX_DATO	
		return
;--------------------------------------------------------------------------------------------------------------------
;RUTINA LED 0

LED0	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES
		goto 		#ES
	
#ES 	movlw		b'00000000'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES
		goto		NOES
		
ES		movlw		0x00
		movwf		PUERTAE
		movlw		b'00000001'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x86 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS0			;muestra cero
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'0'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES	movlw		0x00
		movwf		PUERTAE
		movlw		b'00000001'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 1 (32)

LED1	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_1
		goto 		#ES_1
	
#ES_1	movlw		b'0000001'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_1
		goto		NOES_1
		
ES_1	movlw		0x00
		movwf		PUERTAE
		movlw		b'00000010'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7			; Segunda linea
	 	call 		LCD_REG
		movlw   	'3'
        call        LCD_DATO
		movlw   	'2'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'3'
        call        TX_DATO
		movlw   	'2'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_1  movlw		0x00
		movwf		PUERTAE
		movlw		b'00000010'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 2 (15)

LED2	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_2
		goto 		#ES_2
	
#ES_2	movlw		b'00000010'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_2
		goto		NOES_2
		
ES_2	movlw		0x00
		movwf		PUERTAE
		movlw		b'00000100'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'5'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'5'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_2  movlw		0x00
		movwf		PUERTAE
		movlw		b'00000100'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
	
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 3 (19)

LED3	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_3
		goto 		#ES_3
	
#ES_3	movlw		b'00000011'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_3
		goto		NOES_3
		
ES_3	movlw		0x00
		movwf		PUERTAE
		movlw		b'00001000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'9'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'9'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_3  movlw		0x00
		movwf		PUERTAE
		movlw		b'00001000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 4 (4)

LED4	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_4
		goto 		#ES_4
	
#ES_4	movlw		b'00000100'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_4
		goto		NOES_4
		
ES_4	movlw		0x00
		movwf		PUERTAE
		movlw		b'00010000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'4'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'4'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_4  movlw		0x00
		movwf		PUERTAE
		movlw		b'00010000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 5 (21)

LED5	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_5
		goto 		#ES_5
	
#ES_5	movlw		b'00000101'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_5
		goto		NOES_5
		
ES_5	movlw		0x00
		movwf		PUERTAE
		movlw		b'00100000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'1'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'1'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_5  movlw		0x00
		movwf		PUERTAE
		movlw		b'00100000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 6 (2)

LED6	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_6
		goto 		#ES_6
	
#ES_6	movlw		b'00000110'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_6
		goto		NOES_6
		
ES_6	movlw		b'00000001'
		movwf		PUERTAE
		movlw		b'01000000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'2'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'2'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_6  movlw		b'00000001'
		movwf		PUERTAE
		movlw		b'01000000'
		movwf		PUERTAC	
		movlw		b'00011111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 7 (25)

LED7	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_7
		goto 		#ES_7
	
#ES_7	movlw		b'00000111'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_7
		goto		NOES_7
		
ES_7	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'5'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'5'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_7  movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 8 (17)

LED8	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_8
		goto 		#ES_8
	
#ES_8	movlw		b'00001000'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_8
		goto		NOES_8
		
ES_8	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'7'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'7'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_8  movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 9 (27)

LED9	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_9
		goto 		#ES_9
	
#ES_9	movlw		b'00001001'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_9
		goto		NOES_9
		
ES_9	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'7'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'7'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_9  movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 10 (6)

LED10	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_10
		goto 		#ES_10
	
#ES_10	movlw		b'00001010'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_10
		goto		NOES_10
		
ES_10	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'6'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'6'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_10 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
			
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 11 (34)

LED11	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_11
		goto 		#ES_11
	
#ES_11	movlw		b'00001011'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_11
		goto		NOES_11
		
ES_11	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'3'
        call        LCD_DATO
		movlw   	'4'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'3'
        call        TX_DATO
		movlw   	'4'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_11 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 12 (13)

LED12	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_12
		goto 		#ES_12
	
#ES_12	movlw		b'00001100'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_12
		goto		NOES_12
		
ES_12	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3	
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'3'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'3'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_12 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
	
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 13 (36)

LED13	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_13
		goto 		#ES_13
	
#ES_13	movlw		b'00001101'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_13
		goto		NOES_13
		
ES_13	movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'3'
        call        LCD_DATO
		movlw   	'6'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'3'
        call        TX_DATO
		movlw   	'6'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_13 movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'00011110'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 14 (11)

LED14	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_14
		goto 		#ES_14
	
#ES_14	movlw		b'00001110'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_14
		goto		NOES_14
		
ES_14	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'1'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'1'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_14 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 15 (30)

LED15	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_15
		goto 		#ES_15
	
#ES_15	movlw		b'00001111'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_15
		goto		NOES_15
		
ES_15	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'3'
        call        LCD_DATO
		movlw   	'0'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'3'
        call        TX_DATO
		movlw   	'0'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_15 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
	
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 16 (8)

LED16	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_16
		goto 		#ES_16
	
#ES_16	movlw		b'00010000'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_16
		goto		NOES_16
		
ES_16	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'8'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'8'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_16 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 17 (23)

LED17	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_17
		goto 		#ES_17
	
#ES_17	movlw		b'00010001'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_17
		goto		NOES_17
		
ES_17	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
	    call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'3'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'3'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_17 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 18 (10)

LED18	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_18
		goto 		#ES_18
	
#ES_18	movlw		b'00010010'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_18
		goto		NOES_18
		
ES_18	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'0'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'0'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_18 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 19 (5)

LED19	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_19
		goto 		#ES_19
	
#ES_19	movlw		b'00010011'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_19
		goto		NOES_19
		
ES_19	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'5'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'5'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_19 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 20 (24)

LED20	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_20
		goto 		#ES_20
	
#ES_20	movlw		b'00010100'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_20
		goto		NOES_20
		
ES_20	movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'4'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'4'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_20 movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'11111101'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
	
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 21 (16)

LED21	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_21
		goto 		#ES_21
	
#ES_21	movlw		b'00010101'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_21
		goto		NOES_21
		
ES_21	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'6'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'6'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_21 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 22 (33)

LED22	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_22
		goto 		#ES_22
	
#ES_22	movlw		b'00010110'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_22
		goto		NOES_22
		
ES_22	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'3'
        call        LCD_DATO
		movlw   	'3'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'3'
        call        TX_DATO
		movlw   	'3'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_22 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
	
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 23 (1)

LED23	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_23
		goto 		#ES_23
	
#ES_23	movlw		b'00010111'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_23
		goto		NOES_23
		
ES_23	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'1'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'1'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_23 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 24 (20)

LED24	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_24
		goto 		#ES_24
	
#ES_24	movlw		b'00011000'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_24
		goto		NOES_24
		
ES_24	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'0'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'0'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_24 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 25 (14)

LED25	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_25
		goto 		#ES_25
	
#ES_25	movlw		b'00011001'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_25
		goto		NOES_25
		
ES_25	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'4'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'4'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_25 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 26 (31)

LED26	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_26
		goto 		#ES_26
	
#ES_26	movlw		b'00011010'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_26
		goto		NOES_26
		
ES_26	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'3'
        call        LCD_DATO
		movlw   	'1'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'3'
        call        TX_DATO
		movlw   	'1'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_26 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
	
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 27 (9)

LED27	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_27
		goto 		#ES_27
	
#ES_27	movlw		b'00011011'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_27
		goto		NOES_27
		
ES_27	movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'9'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'9'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_27 movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'11111011'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 28 (22)

LED28	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_28
		goto 		#ES_28
	
#ES_28	movlw		b'00011100'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_28
		goto		NOES_28
		
ES_28	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'2'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'2'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_28 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 29 (18)

LED29	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_29
		goto 		#ES_29
	
#ES_29	movlw		b'00011101'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_29
		goto		NOES_29
		
ES_29	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'8'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'8'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_29 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 30 (29)

LED30	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_30
		goto 		#ES_30
	
#ES_30	movlw		b'00011110'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_30
		goto		NOES_30
		
ES_30	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'9'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'9'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_30 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000100'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 31 (7)

LED31	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_31
		goto 		#ES_31
	
#ES_31	movlw		b'00011111'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_31
		goto		NOES_31
		
ES_31	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'7'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'7'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_31 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10001000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 32 (28)

LED32	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_32
		goto 		#ES_32
	
#ES_32	movlw		b'00100000'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_32
		goto		NOES_32
		
ES_32	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'8'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'8'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_32 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10010000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 33 (12)

LED33	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_33
		goto 		#ES_33
	
#ES_33	movlw		b'00100001'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_33
		goto		NOES_33
		
ES_33	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'1'
        call        LCD_DATO
		movlw   	'2'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'1'
        call        TX_DATO
		movlw   	'2'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_33 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10100000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 34 (35)

LED34	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_34
		goto 		#ES_34
	
#ES_34	movlw		b'00100010'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_34
		goto		NOES_34
		
ES_34	movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'3'
        call        LCD_DATO
		movlw   	'5'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'3'
        call        TX_DATO
		movlw   	'5'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_34 movlw		b'00000011'
		movwf		PUERTAE
		movlw		b'11000000'
		movwf		PUERTAC	
		movlw		b'11110111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 35 (3)

LED35	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_35
		goto 		#ES_35
	
#ES_35	movlw		b'00100011'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_35
		goto		NOES_35
		
ES_35	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11101111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x84 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_C			;muestra colorado
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'0'
        call        LCD_DATO
		movlw   	'3'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'0'
        call        TX_DATO
		movlw   	'3'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_35 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000001'
		movwf		PUERTAC	
		movlw		b'11101111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;---------------------------------------------------------------------------------------------------------------

;--------------------------------------------------------------------------------------------------------------
;RUTINA LED 36 (26)

LED36	movlw		0xFF
		subwf		PASADA,W
		btfsc		ESTADO,Z
		goto		NOES_36
		goto 		#ES_36
	
#ES_36	movlw		b'00100100'		; es el numero?
		subwf		RESUL,W
		btfsc		ESTADO,Z
		goto		ES_36
		goto		NOES_36
		
ES_36	movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11101111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call 		BORRA_Y_HOME
		movlw 		0x85 			; Primera posici¢n de primera fila
	 	call 		LCD_REG
		call 		MENS_N			;muestra negro
		movlw 		0xC7 			; Segunda linea
	 	call 		LCD_REG
		movlw   	'2'
        call        LCD_DATO
		movlw   	'6'
        call        LCD_DATO
		call		retardo1
		bcf			PUERTAA,3
		call		estable
		call		msgCR
		movlw   	'2'
        call        TX_DATO
		movlw   	'6'
        call        TX_DATO
		call		msgCR
		goto		hagan

NOES_36 movlw		b'00000010'
		movwf		PUERTAE
		movlw		b'10000010'
		movwf		PUERTAC	
		movlw		b'11101111'
		movwf		PUERTAD			; 
		bsf			PUERTAA,3
		call		retardo			; Llamada a subrutina de RETARDO
		bcf			PUERTAA,3
		
		return
;--------------------------------------------------------------------------------------------------------------------
;--------------------------------------------------------------------------------------------------------------------
		END




