;***********************************************************************************************************************
;****************  SUBRUTINA INICIALISA, ENVIA Y RECIBE  ***************************************************************
;***********************************************************************************************************************
;		BIT A DECLARAR PARA ESTA SUBRUTINA 
;		    
;   PUERTO_TX	EQU	6	;PIN DE TRANSMICION
;   PUERTO_RC	EQU	7	;PINDE RECEPCION
;		    
;		    
;******************************  INICIO  *******************************************************************************
			
					CBLOCK
					Temporal_Caracter
					Temporal_Posicion_Caracter
					Dato_TX_1				;?
					Dato_TX_2				;?
					Dato_TX_3				;?VARIABLES QUE USARE 
					Dato_TX_4				;? AHORA NO CUMPLEN  
					Dato_TX_5				;? NINGUNA FUNCION 
					Dato_TX_6				;?
					Dato_TX_7				;?
					Dato_TX_8				;?
					Dato_TX_Fin				;FIN DE TRANSMICION ENVIAR TRES ?NO CUMPRE NINGUNA   
					ENDC					;VECES PARA QUE LA PANTALLA     ?FUNCION AHORA
										;LEA FIN DE TRANSMICION		?
Inicia_USART_Nextion    		BSF	STATUS,RP0			;ENTRO EN BANCO 1								
					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   
					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
					RETURN					;RETORNA DE LA ULTIMA LLAMADA 

Envia_USART_Nextion			BSF	STATUS,RP0			;ENTRO EN BANCO 1
					BTFSS   TXSTA,TRMT			;PREGUNTO SI PUEDO TANSMITIR
					GOTO    Envia_USART_Nextion		;NO--> VUEVE A COMPROBAR 
					BCF	STATUS,RP0			;SI--> ENTRO EN BANCO 0
					MOVWF   TXREG				;GUARDA W EN EL REGISTRO DE TRANSMICION	    
					RETURN					;RETORNO DE LA ULTIMA LLAMADA

Recibe_USART_Nextion			BCF	STATUS,RP0			;ENTRO EN BANCO 0
					BTFSS   PIR1,RCIF			;PREGUNTA SI SE RECIVIO DATO 
					GOTO    Recibe_USART_Nextion		;NO--> VUELVE A COMPROBAR
					MOVF    RCREG,W				;SI--> LO GUARDA EN W
DATO					BCF	PIR1,RCIF			;PONGO LA BANDERA A CERO
					BSF	STATUS,RP0			;ENTRO AL BANCO 1
					RETURN					;RETORNA DE LA ULTIMA LLAMADA

Nextion					MOVWF	Temporal_Posicion_Caracter	;GUARDO LA POSICION DEL CARACTER A ENVIAR 
Nextion_1				MOVF	Temporal_Posicion_Caracter,W	;LA PIDO OTRAVES 
					CALL	Tabla_Nextion			;BUSCO EL CARACTER CON LA POSICION OBTENIDA ANTES 
					MOVWF	Temporal_Caracter		;GUARDO EL CARACTER OTENIDO PARA INTEROGAR Y ENVIAR
					MOVF	Temporal_Caracter,W		;LO PIDO OTRA VES Y PREGUNTO 
					BTFSS	STATUS,Z			;ES 0 INDICADA AL FINAL DEL MENSAJE COMO (0x00)
					GOTO	Nextion_2			;NO--> SALTO A LA LLAMADA DE ENVIO 
					RETURN					;SI--> ES 0 POR TANTO NO AGO NADA CON EL Y 
										;RETORNO A LA ULTIMA LLAMADA
Nextion_2				CALL	Envia_USART_Nextion		;LLAMO A LA TUTINA DE ENVIO 
					INCF	Temporal_Posicion_Caracter,F	;INCREMENTO UNA POCICION MAS YA QUE AUN 
					GOTO	Nextion_1			;AY CARACTERES POR ENVIAR 
					
			
			
			
			



			    
		
			    
		




