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.  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.

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).


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.

Anexos:

CuscoPic.zip

Este artigo foi útil? Was this post helpful?
Yes1
No0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *