;=====================================================================================
;	ENCABEZADOS
;=====================================================================================
	list p=16f88, r=dec		;especificaciones del micro
#include <p16f88.inc>		; inclusion de archivos y registros

__CONFIG _CONFIG1, _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _MCLR_OFF & _LVP_OFF & _INTRC_IO

cblock H'70'
	d1
	d2
    d3
    TEMP
    tempa
	endc

RST   code  0x00
      goto  Start

Start
      bsf       STATUS, RP0
      movlw 	b'00001111'
      movwf 	TRISA
      clrf  	TRISB
      movlw     0x60
      movwf     OSCCON
      clrf      ANSEL
      MOVLW     D'25'         ;  9600 BAUD @ 20 MHZ FOSC +0.16 ERR
      MOVWF     SPBRG
      MOVLW     B'00100100'    ; BRGH = 1
      MOVWF     TXSTA           ; ENABLE ASYNC TRANSMISSION, SET BRGH
      BANKSEL   RCSTA       ; BANK0
      MOVLW     B'10010000'
      MOVWF     RCSTA          ; ENABLE ASYNC RECEPTION
      MOVF      RCREG,W
      MOVF      RCREG,W
      MOVF      RCREG,W        ; FLUSH RECEIVE BUFFER
      clrf      PORTA
      CLRF      TEMP
      movlw     d'12'
      movwf     tempa
      goto      INICIO

SETTLE
	DECFSZ  TEMP
    GOTO 	SETTLE

INICIO
    movf    PORTA, W
    subwf   tempa, W
    btfsc   STATUS, Z
    goto    INICIO
    movf    PORTA, W
    movwf   tempa
    addlw   h'30'
    call    transmitir
    goto    INICIO

transmitir
	NOP
	BTFSS     PIR1,TXIF         ;XMIT BUFFER EMPTY?
    GOTO      transmitir        ;NO, WAIT
	MOVWF     TXREG
    return

    END