• Nenhum resultado encontrado

relatório de microcontroladores

N/A
N/A
Protected

Academic year: 2021

Share "relatório de microcontroladores"

Copied!
21
0
0

Texto

(1)

Londrina Londrina

2009 2009

JEAN FERNANDO DOS SANTOS VIEIRA

JEAN FERNANDO DOS SANTOS VIEIRA

MICROCONTROLADORES

MICROCONTROLADORES

Relatório de utilização

Relatório de utilização

(2)

Londrina Londrina 2009 2009

MICROCONTROLADORES

MICROCONTROLADORES

Relatório de utilização

Relatório de utilização

Trabal

Trabalho apresentado à ho apresentado à UniverUniversidade Norte do sidade Norte do Paraná -Paraná -UNOPAR, como requisito parcial para a obtenção de UNOPAR, como requisito parcial para a obtenção de média bimestral na disciplina de Microcontroladores média bimestral na disciplina de Microcontroladores Orientador: Prof. Miguel Angel Chincaro Bernuy Orientador: Prof. Miguel Angel Chincaro Bernuy

(3)

1 INTRODUÇÃO...3 2 Básico...4 3 Intermediário...9 4 Avançado...13 5 CONCLUSÃO...19 6 REFERÊNCIAS BIBLIOGRÁFICAS...20

(4)

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.

(5)

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 DESLIGA LED NÃO S I M

(6)

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() {

(7)

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)

(8)

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.

(9)

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

CONFIGURAR

BOTÃO APERTAD

O2? LIGA LED

DESLIGA LED NÃO N à O BOTÃO APERTAD O1? SIM N      à      O     

(10)

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 S I M

(11)

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)

(12)

#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); } } }

(13)

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

(14)

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

(15)

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)

(16)

#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;

(17)

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

(18)

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

(19)
(20)

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.

(21)

6 REFERÊNCIAS BIBLIOGRÁFICAS

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

Referências

Documentos relacionados

Você pode usar consultas para gerar relatórios financeiros ( Como Trabalhar com Relatórios Financeiros do Oracle Profitability and Cost Management Cloud ).. Você também pode

EXPERIMENTANDO E DESCOBRINDO: A CONTRIBUIÇÃO DE UMA OFICINA PARA DESPERTAR ALUNOS DE NÍVEL MÉDIO PARA AS DIMENSÕES DA ÓPTICA COMO DISCIPLINA E CAMPO DE PESQUISA..

Análise do Tempo e Renda Auferidos a partir da Tecnologia Social Durantes os períodos de estiagem, as famílias do semiárido busca água para o consumo familiar em locais mais

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

Corograpliiu, Col de Estados de Geografia Humana e Regional; Instituto de A lta C ultura; Centro da Estudos Geográficos da Faculdade de Letras de Lisboa.. RODRIGUES,

FIGURA 4 - Modo de preparo das espécies medicinais utilizadas pela população dos bairros atendidos pelo Programa de Saúde da Família, Governador Valadares, MG (ago-dez/ 2002; n =

We propose a conformance testing theory to deal with this model and describe a test case generation process based on a combination of symbolic execution and constraint solving for

Reduzir desmatamento, implementar o novo Código Florestal, criar uma economia da restauração, dar escala às práticas de baixo carbono na agricultura, fomentar energias renováveis