			CBLOCK
			DATO_TX_0
			DATO_TX_1
			DATO_TX_2
			DATO_TX_3
			DATO_TX_4
			DATO_TX_5
			DATO_TX_6
			DATO_TX_7
			DATO_TX_8
			DATO_TX_9
			DATO_TX_10
			DATO_TX_11
			DATO_TX_12
			DATO_TX_13
			DATO_TX_14
			DATO_TX_15
			DATO_TX_16
			ENDC
;***************RUTINAS PARA ATRIBUTOS******************************************
			
;		RUTINA COLOR DE FUENTE 
			CBLOCK
			
			ENDC
Nex_Testo_Color_Fuente	MOVLW	't'
			MOVWF	DATO_TX_0
			MOVf	ID_OBJETO_CEN,W
			MOVWF	DATO_TX_1
			MOVF	ID_OBJETO_DEC,W
			MOVWF	DATO_TX_2
			MOVF	ID_OBJETO_UNI,W
			MOVWF	DATO_TX_3
			MOVLW	'.'
			MOVWF	DATO_TX_4
			MOVLW	'p'
			MOVWF	DATO_TX_5
			MOVLW	'c'
			MOVWF	DATO_TX_6
			MOVLW	'o'
			MOVWF	DATO_TX_7
			MOVLW	'='
			MOVWF	DATO_TX_8
			MOVF	BIN_BCD_16_DEC_MIL,W
			ADDLW	d'48'
			MOVWF	DATO_TX_9	
			MOVF	BIN_BCD_16_UNI_MIL,W	
			ADDLW	d'48'		 
			MOVWF	DATO_TX_10	
			MOVF	BIN_BCD_16_CEN,W
			ADDLW	d'48'
			MOVWF	DATO_TX_11
			MOVF	BIN_BCD_16_DEC,W
			ADDLW	d'48'
			MOVWF	DATO_TX_12
			MOVF	BIN_BCD_16_UNI,W
			ADDLW	d'48'
			MOVWF	DATO_TX_13
			MOVLW	d'0'
			MOVWF	DATO_TX_14
			MOVLW	d'0'
			MOVWF	DATO_TX_15
			MOVLW	d'0'
			MOVWF	DATO_TX_16
			CALL    Nex_Envia_Atributos
			RETURN			
;***************RUTINAS PARA ATRIBUTOS******************************************
			
;		RUTINA COLOR DE FONDO 
			CBLOCK
			
			ENDC
Nex_Testo_Color_Fondo	MOVLW	't'
			MOVWF	DATO_TX_0
			MOVf	ID_OBJETO_CEN,W
			MOVWF	DATO_TX_1
			MOVF	ID_OBJETO_DEC,W
			MOVWF	DATO_TX_2
			MOVF	ID_OBJETO_UNI,W
			MOVWF	DATO_TX_3
			MOVLW	'.'
			MOVWF	DATO_TX_4
			MOVLW	'b'
			MOVWF	DATO_TX_5
			MOVLW	'c'
			MOVWF	DATO_TX_6
			MOVLW	'o'
			MOVWF	DATO_TX_7
			MOVLW	'='
			MOVWF	DATO_TX_8
			MOVF	BIN_BCD_16_DEC_MIL,W
			ADDLW	d'48'
			MOVWF	DATO_TX_9	
			MOVF	BIN_BCD_16_UNI_MIL,W	
			ADDLW	d'48'		 
			MOVWF	DATO_TX_10	
			MOVF	BIN_BCD_16_CEN,W
			ADDLW	d'48'
			MOVWF	DATO_TX_11
			MOVF	BIN_BCD_16_DEC,W
			ADDLW	d'48'
			MOVWF	DATO_TX_12
			MOVF	BIN_BCD_16_UNI,W
			ADDLW	d'48'
			MOVWF	DATO_TX_13
			MOVLW	d'0'
			MOVWF	DATO_TX_14
			MOVLW	d'0'
			MOVWF	DATO_TX_15
			MOVLW	d'0'
			MOVWF	DATO_TX_16
			CALL    Nex_Envia_Atributos
			RETURN
;***********ESTA RUTINA LA APROBECHAREMOS PARA TODOS LOS ATRIBUTOS *************
;	    PUESTO QUE SOLO MANDAMOS CONSTANTES Y BARIABLE
Nex_Envia_Atributos	MOVf	DATO_TX_0,W
			CALL	Envia_USART_Nextion
			MOVf	DATO_TX_1,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_2,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_3,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_4,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_5,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_6,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_7,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_8,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_9,W
			CALL	Envia_USART_Nextion
			MOVf	DATO_TX_10,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_11,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_12,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_13,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_14,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_15,W
			CALL	Envia_USART_Nextion
			MOVF	DATO_TX_16,W
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			
			RETURN

;******************PASA DE BINARIO A BCD**********************************************
			CBLOCK			
			AUXILIAR 
			BCD_UNIDADES
			BCD_DECENAS
			BCD_CENTENAS	
			ENDC
BIN_a_BCD_8		CLRF	BCD_UNIDADES
			CLRF	BCD_DECENAS
			CLRF	BCD_CENTENAS
			MOVWF	AUXILIAR
			CLRF	BCD_UNIDADES
			CLRF	BCD_DECENAS
			CLRF	BCD_CENTENAS
S_Centenas
			MOVLW	d'100'
			SUBWF	AUXILIAR,W
			BTFSC	STATUS,C
			GOTO	Suma_Centenas
			GOTO	S_Decenas
Suma_Centenas
			MOVWF	AUXILIAR
			INCF	BCD_CENTENAS,F
			GOTO	S_Centenas
S_Decenas
			MOVLW	d'10'
			SUBWF	AUXILIAR,W
			BTFSC	STATUS,C
			GOTO	Suma_Decenas
			GOTO	Suma_Unidades
Suma_Decenas
			MOVWF	AUXILIAR
			INCF	BCD_DECENAS,1
			GOTO	S_Decenas
Suma_Unidades
			MOVF	AUXILIAR,W
			MOVWF	BCD_UNIDADES
			BCF	STATUS,Z
			BCF	STATUS,C
			
			RETURN
			
;************************BIN_a_BCD_16******************************************
			CBLOCK
			BIN_BCD_16_DEC_MIL
			BIN_BCD_16_UNI_MIL
			BIN_BCD_16_CEN
			BIN_BCD_16_DEC
			BIN_BCD_16_UNI
			AUX_BCD_16_L
			AUX_BCD_16_H
			ENDC
BIN_a_BCD_16_H		CLRF	AUX_BCD_16_H
			MOVWF	AUX_BCD_16_H
			RETURN
BIN_a_BCD_16_L		CLRF	AUX_BCD_16_L
			MOVWF	AUX_BCD_16_L
			swapf 	AUX_BCD_16_H,w
			andlw 	0x0F
			addlw 	0xF0
			movwf 	BIN_BCD_16_UNI_MIL
			addwf 	BIN_BCD_16_UNI_MIL,f
			addlw 	0xE2
			movwf 	BIN_BCD_16_CEN
			addlw 	0x32
			movwf 	BIN_BCD_16_UNI
			movf 	AUX_BCD_16_H,w
			andlw 	0x0F
			addwf 	BIN_BCD_16_CEN,f
			addwf 	BIN_BCD_16_CEN,f
			addwf 	BIN_BCD_16_UNI,f
			addlw 	0xE9
			movwf 	BIN_BCD_16_DEC
			addwf 	BIN_BCD_16_DEC,f
			addwf 	BIN_BCD_16_DEC,f
			swapf 	AUX_BCD_16_L,w
			andlw 	0x0F
			addwf 	BIN_BCD_16_DEC,f
			addwf 	BIN_BCD_16_UNI,f
			rlf 	BIN_BCD_16_DEC,f
			rlf 	BIN_BCD_16_UNI,f
			comf 	BIN_BCD_16_UNI,f
			rlf 	BIN_BCD_16_UNI,f
			movf 	AUX_BCD_16_L,w
			andlw 	0x0F
			addwf 	BIN_BCD_16_UNI,f
			rlf 	BIN_BCD_16_UNI_MIL,f
			movlw 	0x07
			movwf 	BIN_BCD_16_DEC_MIL
			movlw 	0x0A
Lb1	
			addwf 	BIN_BCD_16_UNI,f
			decf 	BIN_BCD_16_DEC,f
			btfss	STATUS,C
			goto 	Lb1
Lb2
			addwf 	BIN_BCD_16_DEC,f
			decf 	BIN_BCD_16_CEN,f
			btfss 	STATUS,C
			goto 	Lb2
Lb3
			addwf 	BIN_BCD_16_CEN,f
			decf 	BIN_BCD_16_UNI_MIL,f
			btfss 	STATUS,C
			goto 	Lb3
Lb4
			addwf 	BIN_BCD_16_UNI_MIL,f
			decf 	BIN_BCD_16_DEC_MIL,f
			btfss 	STATUS,C
			goto 	Lb4
			BCF	STATUS,Z
			BCF	STATUS,C
			RETURN			
			
;****************MEMORIA PARA MAMTENER LA RUTINA TEXO POR DEFECTO**************
			CBLOCK
			AUX_MEMO_1
			AUX_MEMO_2
			AUX_MEMO_3
			ENDC
Guardo_ID		MOVF	DATO_TX_1,W
			MOVWF	AUX_MEMO_1
			MOVF	DATO_TX_2,W
			MOVWF	AUX_MEMO_2
			MOVF	DATO_TX_3,W
			MOVWF	AUX_MEMO_3
			RETURN

Retorno_ID		MOVF	AUX_MEMO_1,W
			MOVWF	DATO_TX_1
			MOVF	AUX_MEMO_2,W
			MOVWF	DATO_TX_2
			MOVF	AUX_MEMO_3,W
			MOVWF	DATO_TX_3
			RETURN

;******************INICIA COMUNICACION USART************************************		    
			CBLOCK
			AUX_TXREG
			ENDC
Inicia_USART_Nextion    BSF	STATUS,RP0				
			BCF	TRISC,PUERTO_TX	;PONE A (0) ESTE PIN COMO SALIDA 
			BSF	TRISC,PUERTO_RC	;PONE A (1) ESTE PIN COMO ENTRADA
			MOVLW   0x24		;TX HABILITADA, MODO ASINCRON0
			MOVWF   TXSTA		;CON 8 BITS Y ALTA VELOCIDAD
			MOVLW   0x19		;SET BAUDIOS A 9600  0x19 
			MOVWF   SPBRG		;CON Fosc = 4MHz
			BCF	STATUS,RP0	;ENTRO EN BANCO 0
			MOVLW   0x90		;AJUSTA RECEPTOR A 8 BITS, RECEPCION
			MOVWF   RCSTA		;CONTINUA HABILITADA USART EN ON
			MOVLW	'ÿ'
			MOVWF	TX_FIN
			RETURN

Envia_USART_Nextion	BSF	STATUS,RP0
			BTFSS   TXSTA,TRMT
			GOTO    Envia_USART_Nextion
			BCF	STATUS,RP0
			MOVWF	AUX_TXREG
			MOVF	AUX_TXREG,W
			SUBLW	d'0'
			BTFSS	STATUS,Z
			GOTO	No_Nulo
			GOTO	Es_Nulo
No_Nulo			MOVF	AUX_TXREG,W
			MOVWF	TXREG
Es_Nulo			CLRW
			RETURN
Recibe_USART_Nextion	BCF	STATUS,RP0
			BTFSS   PIR1,RCIF
			GOTO    Recibe_USART_Nextion
			MOVF    RCREG,W
DATO			BCF	PIR1,RCIF
			BSF	STATUS,RP0
			RETURN
;**************INICIA PANLALLA**************************************************
			CBLOCK
			TX_FIN
			ENDC
Inicia_Nextion		CALL	Retardo_200ms
			MOVLW	'0'
			CALL	Envia_USART_Nextion
			MOVLW	'0'
			CALL	Envia_USART_Nextion
			MOVLW	'0'
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			CALL	Retardo_200ms
			RETURN			

			
			
;***************** SOLO SI CUALQUIERA DE LOS REGISTROS BCD>0 + ASCII ***********
			CBLOCK
			ID_OBJETO_UNI
			ID_OBJETO_DEC
			ID_OBJETO_CEN
			ENDC
			
ID_Objeto		CALL	BIN_a_BCD_8
			MOVF	BCD_CENTENAS,W	    
			SUBLW	d'0'
			BTFSS	STATUS,Z
			GOTO	Todo_UDC
			GOTO	Pregunta_Dec
Todo_UDC		MOVLW	d'48'
			ADDWF	BCD_UNIDADES,F
			ADDWF	BCD_DECENAS,F
			ADDWF	BCD_CENTENAS,F
			MOVF	BCD_UNIDADES,W
			MOVWF	ID_OBJETO_UNI
			MOVF	BCD_DECENAS,W
		    	MOVWF	ID_OBJETO_DEC
			MOVF	BCD_CENTENAS,W
			MOVWF	ID_OBJETO_CEN
			BCF	STATUS,Z
			BCF	STATUS,C
			RETURN
Pregunta_Dec		MOVF	BCD_DECENAS,W	    
			SUBLW	d'0'
			BTFSS	STATUS,Z
			GOTO	Todo_UD
			GOTO	Solo_Uni
Todo_UD			MOVLW	d'48'
			ADDWF	BCD_UNIDADES,F
			ADDWF	BCD_DECENAS,F
			MOVF	BCD_UNIDADES,W
			MOVWF	ID_OBJETO_UNI
			MOVF	BCD_DECENAS,W
			MOVWF	ID_OBJETO_DEC
			MOVLW	d'0'
			MOVWF	ID_OBJETO_CEN
			BCF	STATUS,Z
			BCF	STATUS,C
			RETURN
Solo_Uni		MOVLW	d'48'
			ADDWF	BCD_UNIDADES,F
			MOVF	BCD_UNIDADES,W
			MOVWF	ID_OBJETO_UNI
			MOVLW	d'0'
			MOVWF	ID_OBJETO_DEC
			MOVLW	d'0'
			MOVWF	ID_OBJETO_CEN
			RETURN
;***************ENVIAMOS LAS CONSTANTES, VARIABLE Y EL TEXTO*******************
			CBLOCK
			Guarda_Posicion_Tabla
			Guarda_Caracter
			ENDC
Nex_Texto_Envia		MOVWF	Guarda_Posicion_Tabla
			MOVLW	't'
			CALL	Envia_USART_Nextion
			MOVf	ID_OBJETO_CEN,W
			CALL	Envia_USART_Nextion
			MOVF	ID_OBJETO_DEC,W
			CALL	Envia_USART_Nextion
			MOVF	ID_OBJETO_UNI,W
			CALL	Envia_USART_Nextion
			MOVLW	'.'
			CALL	Envia_USART_Nextion
			MOVLW	't'
			CALL	Envia_USART_Nextion
			MOVLW	'x'
			CALL	Envia_USART_Nextion
			MOVLW	't'
			CALL	Envia_USART_Nextion
			MOVLW	'='
			CALL	Envia_USART_Nextion
			MOVLW	'"'
			CALL	Envia_USART_Nextion
Nex_Texto_1		MOVF	Guarda_Posicion_Tabla,W
			CALL	T_Texto_NEX
			MOVWF	Guarda_Caracter
			MOVF	Guarda_Caracter,F
			BTFSS	STATUS,Z
			GOTO	Nex_Texto_2
			MOVLW	'"'
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			MOVF	TX_FIN,W
			CALL	Envia_USART_Nextion
			BCF	STATUS,Z
			RETURN	
Nex_Texto_2		CALL	Envia_USART_Nextion
			INCF	Guarda_Posicion_Tabla,F
			GOTO    Nex_Texto_1