Vamos lá vou tentar lhe ajudar, baseado no pic 16, mas o 18 deve ser igual, pois são compatíveis
1-> sete os bits 7 e 6 do registrador INTCON(7=int.geral e 6= int. periféricos), esse FSR está no bank1.
2-> sete o bit 5 de PIE1(este bit libera a interrupção de recepção da serial), esse TAMBÉM ESTÁ NO BANK1.
3-> teste o bit 5 de PIR1 dentro da interrupção, pois é ele que vai lhe indicar recepção de dados na serial, não se preocupe em limpar esse bit ele é limpo automaticamente quando vc ler o valor rcebido no registro RCREG, POR ESSE MOTIVO É INDICADO LER RCREG DENTRO DA INTERRUPÇÃO. Outro detalhe importante tb é se vc for receber dados em tempo relativamente longo(mais de 10ms em 9600) entre um e outro, não será necessário utilizar a interrupção da serial basta no loop principal testar o PIR1,5, ou manter uma imagem de RCREG e comparar se houve alteração, caso afirmativo há dados recebido, outa coisa ruim da serial do pic é se vc receber dados e não ler pode travar a serial, e se isso acontecer, ai só resetando o menino.Há o ideal é enviar um byte e esperar que o pic retorne uma confirmação que leu esse dado, ai se pode iniciar uma comunicação com extrema rapidez e confiável.
Turuna
