Então, Renie, explicando a topologia:
O sistema em desenvolvimento será comandado por um 16F877A (mestre) na recepção, onde ao ser apertado um botão (são 22, para diferentes localidades), um led que indica qual botão foi apertado (no próprio console) deverá ficar aceso e a serial deverá enviar um comando (L01, L02...) para acendimento de outro led (sinalização externa) em um painel remoto, onde outro 16F877A receberá este sinal. A comunicação a princípio será serial. Para apagar os leds, um terceiro 16F877A, conectado a botões em salas distintas enviaria o sinal para o desligamento dos leds correspondentes (D01, D02...), tanto do painel de sinalização quanto do console. Enviar o sinal eu já consegui, porém o problema está no recebimento do sinal, o programa não está reconhecendo corretamente...
Sobre a fragilidade do código, considero sim essa possibilidade. Como o Sérgio mesmo disse, provavelmente o CR não esteja vindo, mas isso é intermitente, ora vem, ora não vem. Infelizmente tenho que estudar mais isso, pois é a primeira vez que estou fazendo algo com serial...
Eu não mencionei no início, mas o clock que estou usando é de 8MHz e BR 9600. Já vi dar problemas parecidos em BR 9600, porém com clock de 4MHz. Será que ainda há a necessidade de baixar ainda mais o BR?
Foi tentado antes em um exemplo uma transmissão serial com interrupção e uma como o descrito, que estou usando, aparentemente funcionou nas duas situações. Será que o pacote de instruções é considerado "grande" a ponto de requerer ser "quebrado"? Acho que não, já vi transmissões maiores...
De qualquer forma, estou tentando acertar ele usando o programa CCS, conforme já mencionado. Ainda não cheguei na parte de transmissão do sinal, mas já vi que terei que fazer uns acertos para o circuito real (ainda não está a contento), no Proteus o que fiz já funcionou.
Obrigado pelas dicas!
