1. 25/6/2014 Imprimir este Artigo - Comunicando com o microcontrolador PIC16F877A através da placa CuscoPIC.
http://kb.elipse.com.br/pt-br/questions/4563/__print 1/4
Este artigo também está disponível para visualização online em http://kb.elipse.com.br/pt-br/questions/4563/
Comunicando com o microcontrolador PIC16F877A através da placa CuscoPIC.
1. Introdução
Este artigo mostra como comunicar com o microcontrolador PIC16F877A utlizando a placa CuscoPIC. Para
isto, utilizaremos o driver ASCII para comunicar via Serial/Serial (RS232/RS232).
Primeiramente, deve-se programar o microcontrolador utilizando a porta paralela, e então passar o
bootloader para que a placa habilite a porta RS232. (O site da CuscoPIC apresenta os passos para a
gravação do bootloader).
Em seguida, na programação do controlador, pode-se utilizar o programador MPLab, software próprio da
Microchip, fabricante do PIC16F877A.
2. Programação
O programa utilizado neste exemplo funciona de modo a ler os valores vindo da serial do computador.
void main() // função principal
{
char x,y, linha[17];
signed long aux;
int index;
while(1) // laço infinito
{
if (!kbhit()) continue;
x = getch();
if (x == 'A') { //Testa valor vindo do supervisório
aux = AD(0); //Passa o valor do potenciômetro para uma variável "aux"
printf("%04li", aux); //Imprime no display o valor do potenciômetro
} else if (x == 'B') { //Testa valor vindo do supervisório
output_d(y); //Escreve o valor de "y" na saída D
if (y) y=0; else y=128; //Se "y" for igual a "0", recebe o valor "128"
} else if (x == 'C') { //Testa valor vindo do supervisório
index=0; //Configura o vetor para o display
do {
linha[index]=getch();
index++;
} while(linha[index-1]);
lcd_gotoxy(1,2);
printf(lcd_putc,"SLIDER=%s", linha); //Imprime no display "Slider=" o
valor vindo do slider do supervisório.
}
}
}
3. Configuração
Após compilar e gravar o programa na CuscoPIC, deve-se configurar o supervisório, seja ele o Elipse
SCADA ou o Elipse E3. No exemplo abaixo, a configuração foi desenvolvida no Elipse SCADA, mas
também é válida para o Elipse E3.
1. Adicione o driver ASCII no projeto.
2. 25/6/2014 Imprimir este Artigo - Comunicando com o microcontrolador PIC16F877A através da placa CuscoPIC.
http://kb.elipse.com.br/pt-br/questions/4563/__print 2/4
2. Configure os extras do driver com os comandos TX e RX (escrita e leitura) da serial.
Obs.: É possível configurar o tipo de informação a ser lida pelo driver como o exemplo do comando "C"
descrito na programação no microcontrolador, no caso C%4u/h00 (sendo % - símbolo identificador de
campo variável; 4- número de caracteres; u- decimal sem sinal; e /00- caractere especial em formato
hexadecimal de dois dígitos). Todas as possibilidades para esta configuração encontram-se no manual do
driver, no capítulo Configuração dos Comandos ASCII.
3. Configure o meio físico de conexão (Physical Layer) como serial e preencha os dados conforme as
informações dados pelo desenvolvedor da placa.
3. 25/6/2014 Imprimir este Artigo - Comunicando com o microcontrolador PIC16F877A através da placa CuscoPIC.
http://kb.elipse.com.br/pt-br/questions/4563/__print 3/4
4. Insira e configure os tags conforme o ID configurado nos extras do driver e o parâmetro desejado,
seja ele de leitura e/ou escrita. Para maiores informações dos parâmetros de leitura e escrita, ver o
capítulo Referência de Tags do manual do driver.
Exemplos de configuração de tags:
N1 = 0; N2 = 3; N3 = 0; N4 = 0
Tag de leitura e escrita (N1=0); utilizando o comando de índice 3 (N2 = 3); com o índice da variável em 0
(N3 = 0); e sem Offset na mensagem (N4 = 0).
4. 25/6/2014 Imprimir este Artigo - Comunicando com o microcontrolador PIC16F877A através da placa CuscoPIC.
http://kb.elipse.com.br/pt-br/questions/4563/__print 4/4
N1 = 1; N2 = 4; N3 = 0; N4 = 0
Tag que lê ou escreve os valores dos campos variáveis de TX antes de enviar um comando (N1 = 1);
utilizando o comando de índice 4 (N2 = 4); com o índice da variável em 0 (N3 = 0); e padrão 0 no N4 (N4
= 0).
N1 = 4; N2 = 4; N3 = 0; N4 = 0
Tag que envia uma pergunta ao microcontrolador (N1 = 4); utilizando o comando de índice 4 (N2 = 4);
padrão 0 no N3 (N3 = 0); e padrão 0 no N4 (N4 = 0).
5. Após configurados os tags, configure as telas conforme desejado.
4. Considerações Finais
É possível comunicar com um equipamento microcontrolado utilizando o driver ASCII, desde que ele
tenha suporte a escrita e leitura de mensagens com o supervisório pela porta RS232. Estas mensagens
são configuradas anteriormente no programa do microcontrolador.