comunicando com o microcontrolador pic16f877a através da placa cuscopic

5
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

Upload: milhoso

Post on 25-Nov-2015

74 views

Category:

Documents


25 download

TRANSCRIPT

Comunicando com o microcontrolador PIC16F877A atravs da placa CuscoPIC.1. Introduo

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 ento passar o bootloader para que a placa habilite a porta RS232. (O site da CuscoPIC apresenta os passos para a gravao do bootloader).

Em seguida, na programao do controlador, pode-se utilizar o programador MPLab, software prprio da Microchip, fabricante do PIC16F877A.

2. Programao

O programa utilizado neste exemplo funciona de modo a ler os valores vindo da serial do computador.void main() // funo principal{ char x,y, linha[17]; signed long aux; int index; while(1) // lao infinito { if (!kbhit()) continue; x = getch(); if (x == 'A') { //Testa valor vindo do supervisrio aux = AD(0); //Passa o valor do potencimetro para uma varivel "aux" printf("%04li", aux); //Imprime no display o valor do potencimetro } else if (x == 'B') { //Testa valor vindo do supervisrio output_d(y); //Escreve o valor de "y" na sada 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 supervisrio 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 supervisrio. } }}

3. Configurao

Aps compilar e gravar o programa na CuscoPIC, deve-se configurar o supervisrio, seja ele o Elipse SCADA ou o Elipse E3. No exemplo abaixo, a configurao foi desenvolvida no Elipse SCADA, mas tambm vlida 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.: possvel configurar o tipo de informao a ser lida pelo driver como o exemplo do comando "C" descrito na programao no microcontrolador, no caso C%4u/h00 (sendo % - smbolo identificador de campo varivel; 4 - nmero de caracteres; u - decimal sem sinal; e /00 - caractere especial em formato hexadecimal de dois dgitos). Todas as possibilidades para esta configurao encontram-se no manual do driver, no captulo Configurao dos Comandos ASCII.

3. Configure o meio fsico de conexo (Physical Layer) como serial e preencha os dados conforme as informaes dados pelo desenvolvedor da placa.

4. Insira e configure os tags conforme o ID configurado nos extras do driver e o parmetro desejado, seja ele de leitura e/ou escrita. Para maiores informaes dos parmetros de leitura e escrita, ver o captulo Referncia de Tags do manual do driver.

Exemplos de configurao 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 varivel 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 variveis de TX antes de enviar um comando (N1 = 1); utilizando o comando de ndice 4 (N2 = 4); com o ndice da varivel em 0 (N3 = 0); e padro 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); padro 0 no N3 (N3 = 0); e padro 0 no N4 (N4 = 0).

5. Aps configurados os tags, configure as telas conforme desejado.

4. Consideraes Finais

possvel comunicar com um equipamento microcontrolado utilizando o driver ASCII, desde que ele tenha suporte a escrita e leitura de mensagens com o supervisrio pela porta RS232. Estas mensagens so configuradas anteriormente no programa do microcontrolador.