relatório de microcontroladores

25
JEAN FERNANDO DOS SANTOS VIEIRA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS TECNOLOGIA EM AUTOMAÇÃO INDÚSTRIAL MICROCONTROLADORES Relatório de utilização

Upload: canecarnage

Post on 02-Jul-2015

704 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: relatório de microcontroladores

Londrina2009

JEAN FERNANDO DOS SANTOS VIEIRA

CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICASTECNOLOGIA EM AUTOMAÇÃO INDÚSTRIAL

MICROCONTROLADORESRelatório de utilização

Page 2: relatório de microcontroladores

Londrina2009

MICROCONTROLADORESRelatório de utilização

Trabalho apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média bimestral na disciplina de Microcontroladores

Orientador: Prof. Miguel Angel Chincaro Bernuy

JEAN FERNANDO DOS SANTOS VIEIRA

Page 3: relatório de microcontroladores

SUMÁRIO

1 INTRODUÇÃO.....................................................................................................3

2 BÁSICO................................................................................................................4

2.1 Materiais Utilizados para o experimento...........................................................4

2.2 Código fonte......................................................................................................5

2.3 Resultados obtidos............................................................................................6

3 INTERMEDIÁRIO.................................................................................................9

3.1 Materiais...........................................................................................................9

3.2 Código fonte....................................................................................................10

3.3 Resultados obtidos..........................................................................................12

4 AVANÇADO.......................................................................................................13

4.1 Materiais.........................................................................................................14

4.2 Código fonte....................................................................................................14

4.3 Resultados obtidos..........................................................................................16

5 CONCLUSÃO.....................................................................................................19

6 REFERÊNCIAS BIBLIOGRÁFICAS..................................................................20

Page 4: relatório de microcontroladores

1 INTRODUÇÃO

o microcontrolador é um circuito integrado de custo baixo que

contém na sua síntese: memória programável somente para leitura, que armazena

permanentemente as instruções programadas; memória RAM, que trabalha

armazenando “variáveis” utilizadas pelo programa; CPU, que interpreta e executa

comandos desse programa. Existem também dispositivos de entradas e saídas, que

tem a finalidade de controle de dispositivos externos ou de receber sinais pulsados

de chaves e sensores. Esses componentes se encontram num mesmo circuito

integrado.

Este relatório tem como finalidade expor os recursos discretos, o uso

de periféricos intermediários, e alguns recursos relacionados à conversão Analógica

para digital em microcontroladores.

3

Page 5: relatório de microcontroladores

2 BÁSICO

Nesta aplicação foi desenvolvido um programa que utiliza um botão

e um Led, sendo que quando o botão estiver pressionado o led ficará acesso. Caso

contrário, o Led ficará apagado.

Utiliza-se neste programa a linguagem C, e as funções bit_test(),

output_high(), output_low(), input_a(), SET_TRIS_A(); alem das estruturas

condicionais e de loop, if e while.

Inicialmente o programa fará o teste se existe um sinal digital vindo

no pino do microcontrolador, caso esteja ele acenderá o Led, pelo contrário ele

manterá o estado de repouso do Led (desligado), figura 1.

Figura 1 – Fluxograma da aplicação do Led

2.1 MATERIAIS UTILIZADOS PARA O EXPERIMENTO

PIC 16F628A

Resistor 1k Ohm

Botão Normalmente Aberto (NA)

LED

Resistor 330 Ohm

Cristal 4Mhz

INÍCIO

CONFIGURAR

BOTÃO APERTAD

O?

LIGA LED

DESLIGALEDNÃO

SIM

4

Page 6: relatório de microcontroladores

Compilador C CCS

Simulador Proteus

2.2 CÓDIGO FONTE

Foi configurado o compilador, os fusíveis de programação ativando o

PowerUP Timer e Reset Whem Brownout Detect.(que aparecem na tela inicial do

assistente de configuração do programa C CCS).

O seguinte código fonte foi utilizado:

Biblioteca do arquivo modulobasico.h

#include <16F628A.h>

#FUSES NOWDT //No Watch Dog Timer

#FUSES RC //Resistor/Capacitor Osc with CLKOUT

#FUSES PUT //Power Up Timer

#FUSES NOPROTECT //Code not protected from reading

#FUSES BROWNOUT //Reset when brownout detected

#FUSES MCLR //Master Clear pin enabled

#FUSES LVP //Low Voltage Programming on B3(PIC16) or B5(PIC18)

#FUSES NOCPD //No EE protection

#use delay(clock=10000000)

Arquivo modulobasico.c

#include "C:\TEMP\modulobasico.h"

void main()

{

5

Page 7: relatório de microcontroladores

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

setup_oscillator(False);

SET_TRIS_A(0xF1);

while(true)

{

if(bit_test(input_a(),0))

{

output_high(PIN_A1);

while(input_a(),0);

}

else

{

output_low(PIN_A1);

while(!input_a(),0);

}

}

}

2.3 RESULTADOS OBTIDOS

Simulando-se no programa Proteus, verificou-se que com o

experimento realizado obteve-se o resultado esperado, a aplicação do Led foi

realizada com sucesso. Ao fechar o contato NA ligou-se o Led (figura 2), ao abri-lo o

Led se apaga (figura 3)

6

Page 8: relatório de microcontroladores

Figura 2 – Led ligado com chave fechada

Figura 3 – Led desligado com chave aberta

Essa aplicação poderia ser trabalhada utilizando-se dois botões um

para ligar e o outro para desligar o Led, figura 4.

7

Page 9: relatório de microcontroladores

Figura 4 – Fluxograma da nova aplicação para acender o Led

INÍCIO

CONFIGURAR

BOTÃO APERTAD

O2?

LIGA LED

DESLIGALED

NÃO

NÃO

BOTÃO APERTAD

O1?SIM

NÃO

8

Page 10: relatório de microcontroladores

3 INTERMEDIÁRIO

Nesta aplicação foi desenvolvido um programa que utiliza um botão,

um Led e um LCD, sendo que quando o botão estiver pressionado o led ficará

acesso e no LCD aparecerá a seguinte informação Saída Ativada. Caso contrário, o

Led ficará apagado e no LCD ficará escrito Saída Desativada.

Utiliza-se neste programa a linguagem C, e as funções bit_test(),

output_high(), output_low(), input_a(), SET_TRIS_B(), lcd_gotoxy(), lcd_putc; alem

das estruturas condicionais e de loop, if e while.

Inicialmente o programa fará o teste se existe um sinal digital vindo

no pino do microcontrolador, caso esteja ele acenderá o Led e escrever no LCD

Saída Ativada, pelo contrário ele manterá o estado de repouso do Led (desligado) e

No LCD a Mensagem Saída Desativada, figura 5.

Figura 5 – Fluxograma da aplicação para acender o Led e escrever no LCD

3.1 MATERIAIS

PIC 16F877A

LCD 16X2 (Display de Cristal Líquido)

Resistor 1k Ohm

INÍCIO

CONFIGURAR

BOTÃO APERTADO ?

MENSAGEM:SAÍDA ATIVADA

Liga Led

MENSAGEM:SAÍDA DESATIVADA

Desliga Led

NÃO

SIM

9

Page 11: relatório de microcontroladores

Botão Normalmente Aberto (NA)

LED

Resistor 330 Ohm

Cristal 4Mhz

Compilador C CCS

Simulador Proteus

3.2 CÓDIGO FONTE

Foi utilizado os mesmos recursos de configuração da aplicação

anterior.

Biblioteca do arquivo modulointermediario.h

#include <16F877A.h>

#device adc=8

#FUSES NOWDT //No Watch Dog Timer

#FUSES RC //Resistor/Capacitor Osc with CLKOUT

#FUSES PUT //Power Up Timer

#FUSES NOPROTECT //Code not protected from reading

#FUSES NODEBUG //No Debug mode for ICD

#FUSES BROWNOUT //Reset when brownout detected

#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18)

used for I/O

#FUSES NOCPD //No EE protection

#FUSES NOWRT //Program memory not write protected

#use delay(clock=10000000)

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

Arquivo modulointermediario.c

10

Page 12: relatório de microcontroladores

#include "C:\TEMP\modulointermediario.h"

#include <LCD.C>

void main()

{

setup_adc_ports(NO_ANALOGS);

setup_adc(ADC_OFF);

setup_psp(PSP_DISABLED);

setup_spi(FALSE);

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

SET_TRIS_B(0x02);

lcd_init();

while(true)

{

if(bit_test(input_b(),0))

{

lcd_gotoxy(1,1);

printf(lcd_putc,"Saida Ativada ");

output_high(PIN_B1);

}

else

{

lcd_gotoxy(1,1);

printf(lcd_putc,"Saida Desativada");

output_low(PIN_B1);

}

}

}

11

Page 13: relatório de microcontroladores

3.3 RESULTADOS OBTIDOS

Simulando-se no programa Proteus, verificou-se que com o

experimento realizado não obteve o resultado desejado, a aplicação do Led com

recurso de intermediação do LCD, a partir do código fonte especificado não trouxe

sucesso. Ao fechar o contato NA ligou-se o Led não ligou, entretanto a mensagem

do LCD foi mostrada (figura 6), ao abrir o contato, observou-se que o Led manteu-se

apagado, com a mensagem Saída Desativada (figura 7).

Figura 6 – Posição ligada

Figura 7 – Posição desligada

12

Page 14: relatório de microcontroladores

4 AVANÇADO

Nesta aplicação foi desenvolvido um programa que utiliza um

reostato e um LCD, sendo que quando o reostato estiver na posição máxima, no

LCD aparecerá a informação do valor máximo referenciado, que na experiência é de

255, quando o reostato estiver no valor mínimo o resultado deve ser 0 (zero) a ser

mostrado no LCD, no meio do reostato deve ser a referência 127 que será visível no

LCD e nos valores restantes a variação será de acordo com os valores máximo

(255) e mínimo (0).

Utiliza-se neste programa a linguagem C, e as funções bit_test(), output_high(),

output_low(), input_a(), SET_TRIS_B(), lcd_gotoxy(), lcd_putc, setup_adc_ports (),

set_adc_channel(), read adc(); alem das estruturas condicionais e de loop, if e while.

Inicialmente o programa fará o teste se existe um sinal analógico

vindo do reostato no pino do microcontrolador, em seguida o microcontrolador fará a

conversão analógico/digital para mostrar os valores em decimal no LCD (figura 8).

Figura 8 – Fluxograma da aplicação para analisar o valor analógico e converte-lo em digital

INÍCIO

CONFIGURAR

Escreve na linha 2 do LCD a leitura

Leitura Analógico/Digital

13

Page 15: relatório de microcontroladores

4.1 MATERIAIS

PIC 16F877A

LCD 16X2 (Display de Cristal Líquido)

Potenciômetro

Resistor 1k Ohm

Cristal 4Mhz

Compilador C CCS

Simulador Proteus

4.2 CÓDIGO FONTE

Arquivo moduloavancado.h

#include <16F877A.h>

#device adc=8

#FUSES NOWDT //No Watch Dog Timer

#FUSES RC //Resistor/Capacitor Osc with CLKOUT

#FUSES PUT //Power Up Timer

#FUSES NOPROTECT //Code not protected from reading

#FUSES NODEBUG //No Debug mode for ICD

#FUSES BROWNOUT //Reset when brownout detected

#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18)

used for I/O

#FUSES NOCPD //No EE protection

#FUSES NOWRT //Program memory not write protected

#use delay(clock=4000000)

#use rs232(baud=9600,parity=N,xmit=PIN_B0,rcv=PIN_B0,bits=8)

#include "C:\TEMP\moduloavancado.h"

14

Page 16: relatório de microcontroladores

#include <LCD.C>

Arquivo moduloavancado.c

void main()

{int analo, refmin, refmax;

refmin=0;

refmax=255;

setup_adc_ports(AN0);

setup_adc(ADC_CLOCK_INTERNAL);

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE);

lcd_init();

while(true)

{

set_adc_channel(0);

analo=read_adc();

lcd_gotoxy(1,2);

if(analo<refmin)

{

analo=refmin;

printf(lcd_putc,"Valor= %u",analo);

}

else

if(analo>refmax)

{

analo=refmax;

printf(lcd_putc,"Valor= %u", analo);

15

Page 17: relatório de microcontroladores

}

else

printf(lcd_putc,"Valor= %u",analo);

}

}

4.3 RESULTADOS OBTIDOS

Ao ligar o experimento, verificou-se que os dados foram obtidos com

sucesso, na posição máxima do reostato o valor que é demonstrado no LCD é de

255 (figura 9), nas posições mínima e central são apresentados os valores de 0 e

127 respectivamente na leitura do LCD (figura 10 e 11), entretanto notou-se que nos

valores em que estivessem entre essas duas posições no reostato apresentaram

valores inesperados à este experimento o que é demonstrado na figura 12.

Figura 9 – Posição do reostato no máximo

16

Page 18: relatório de microcontroladores

Figura 10 – Posição do reostato no mínimo

Figura 11 – Posição do reostato no centro

17

Page 19: relatório de microcontroladores

Figura 12 – Posição do reostato no qual existe um erro de leitura

18

Page 20: relatório de microcontroladores

5 CONCLUSÃO

Por meio deste trabalho, podem-se perceber as características de

alguns circuitos utilizando microcontroladores mais conhecidos. Acima de tudo,

julga-se necessário um melhor aprimoramento nos comandos relacionados aos

recursos de manipulação de dados analógicos e interação com outros dispositivos.

19

Page 21: relatório de microcontroladores

6 REFERÊNCIAS BIBLIOGRÁFICAS

PEREIRA, Fábio. Microcontroladores PIC: técnicas avançadas. São Paulo: Érica, 2002.

SOUZA, David José de. Desbravando o PIC. São Paulo: Érica, 2000.

20