;****************************************************************************************
;RUTINA QUE FUNCIONA CON LA RUTINA RX_USART. LEER EL MISMO PARA UNA CORRECTA INSTALACIÓN.
;****************************************************************************************
;AUTORES:
;			DAVID PERSI 	www.meteorologiafacil.com.ar
;			SUKY		http://infopic-suky.blogspot.com/
;
;DETERMINAR PARIDAD
;
;****************************************************
;LOS NÚMEROS PARES, POSEEN UN CERO EN EL BIT 0 DE UN REGISTRO, MIENTRAS QUE LOS IMPARES POSEEN
;UN 1 EN EL BIT 0 DE UN REGISTRO.
;****************************************************
; ***********************************************
; SE APLICA PARIDAD PAR
; ***********************************************
DETERMINAR_PAR
;
			BCF		STATUS,RP0
			BCF		STATUS,RP1
			MOVFW		RCSTA
			MOVWF		RCSTA_temp
			MOVFW		RCREG					;RECUPERO EL VALOR RECIBIDO
			MOVWF		dato_recibido
			MOVWF		dato_recibido_temp
			MOVLW		H'07'
			MOVWF		bit_cont				;CARGO bit_cont EN 7, PARA IR TESTEANDO LOS BITS.
			CLRF		bit_cont_temp
			
BUCLE_PAR
			BTFSC		dato_recibido_temp,0			;¿ES 1 EL BIT DETERMINADO POR CONTADOR?
			INCF		bit_cont_temp,F				;SI, INCREMENTO CUENTA
			RRF		dato_recibido_temp,F			;ROTO EL BIT PARA CHEQUEAR LOS DEMÁS BITS.
			DECFSZ		bit_cont				;DECREMENTO BIT_CONT
			GOTO		BUCLE_PAR				;CONTINUO CON EL SIGUIENTE BIT

			BTFSS		bit_cont_temp,0				;¿ES IMPAR LA CANTIDAD DE 1s? (EL BIT 0 = 1?
			GOTO		CHEQ_RX9_CERO				;NO, ES PAR (EL BIT 0 = 0)
			BTFSS		RCSTA_temp,0				;SI, ES IMPAR. ¿ES 1 (IMPAR) EL NOVENO BIT RECIBIDO?
			GOTO		ERROR_RECEPCION				;NO, EL NOVENO BIT MARCA QUE DEBE SER PAR (0).
			BSF		bit_recepcion,0				;SI, AJUSTO LA BANDERA BIT_RECEPCIÓN A 1
			GOTO		SALIR_USART				;ES IMPAR TAL COMO MARCA EL NOVENO BIT. DATO RECIBIDO EN FORMA CORRECTA.

CHEQ_RX9_CERO		BTFSC		RCSTA_temp,0				;¿ES PAR EL NOVENO BIT RECIBIDO?
			GOTO		ERROR_RECEPCION				;NO, EL NOVENO BIT MARCA QUE DEBE SER IMPAR (1)
			BSF		bit_recepcion,0				;SI, AJUSTO LA BANDERA BIT_RECEPCIÓN A 1
			GOTO		SALIR_USART				;ES PAR TAL COMO MARCA EL NOVENO BIT. DATO RECIBIDO EN FORMA CORRECTA.

ERROR_RECEPCION		BCF		bit_recepcion,0				;ERROR EN LA RECEPCIÓN, AJUSTO LA BANDERA BIT_RECEPCIÓN A 0
SALIR_USART		BCF		RCSTA,CREN				;DESHABILITO LA RECEPCIÓN
			NOP							;PARA ESTABILIZAR.
			BSF		RCSTA,CREN				;HABILITO LA RECEPCIÓN
			GOTO		SALIR	
;