#include <p16f876A.inc>        ; processor specific variable definitions
#DEFINE		BAUDRATE	d'3'			;PARA TRANSMISSAO A 57600 BPS, COM BRGH=1 E 3.582056 MHZ

;**********************************************************************

		ORG     0x000             ; processor reset vector
  		goto    main              ; go to beginning of program

init:
		BANKSEL	SPBRG

		MOVLW BAUDRATE
		MOVWF SPBRG			;57600 bps @ 3,582056 MHz

		MOVLW h'26'			;habilita transmissão serial, BRGH = 1
		MOVWF TXSTA

		BANKSEL	RCSTA

		MOVLW h'90'			;habilita porta serial e continuous receive
		MOVWF RCSTA		
		return

send_byte:
		MOVWF TXREG			;TRANSMITE VALOR
		BANKSEL TXSTA
		BTFSS TXSTA,TRMT	;TRANSMISSAO JÁ ACABOU??
		GOTO $-1
		return

get_byte:
		BANKSEL PIR1
		BTFSS PIR1, RCIF	;BYTE CHEGOU?
		GOTO get_byte
		MOVF RCREG,W		;move byte recebido para w	
		return

main:
		call init

loop:
		call get_byte
		call send_byte
		goto loop

	END                     



