Vous êtes sur la page 1sur 6

Coleção TUTPRO

Tutoriais sobre programação de microcontroladores

Solbet Ltda
Expandindo a percepção humana

Neste volume: Acendendo um led com o


PIC16F877A- Linguagem “C”

versão 1.0 Campinas 16/12/2007


Sumário
Objetivo deste tutorial..........................................................................................................................3
Recursos necessários para acompanhar este tutorial ...........................................................................3
Como se acende um LED utilizando um microcontrolador?...............................................................4
Montando o hardware necessário para o experimento:........................................................................4
O desenvolvimento do fimrware..........................................................................................................5
Objetivo deste tutorial
Este tutorial se destina aqueles que estão se iniciando na programação de
microcontroladores. Seu objetivo é demonstrar como podemos utilizar as portas do PIC16F877A
para acender um LED.
Após estudar este tutorial e realizar os experimentos aqui descritos, você estará apto a
utilizar as portas digitais do PIC, no modo saída digital.

Recursos necessários para acompanhar este tutorial


Compilador “C”. Utilizamos neste exemplo o CCS, mas você pode experimentar com
outros compiladores. Uma versão gratuita você pode obter em:
http://www.ccsinfo.com/demopoll.php

Software sbMaster: Disponível gratuitamente:


versão Linux: http://www.solbet.com.br/softwares/sbMaster.tar.gz
versão Windows: http://www.solbet.com.br/softwares/sbMasterInstall.exe

Manual do PIC16F877A: http://www.solbet.com.br/manuais/manf877.pdf

Manual do Powerboard2:
http://www.solbet.com.br/manuais/ManualUsuarioPowerboard2.pdf

Placa Powerboard2: Este programa irá operar nas versões Light, Standard, Xtreme.
http://www.solbet.com.br/produtos.php

Cabo RS232-C DB9 macho/fêmea.


http://www.solbet.com.br/produtos.php

Fonte de alimentação 9V, 500mA.


http://www.solbet.com.br/produtos.php

Caso o seu micro não tenha porta serial RS232C disponível, será necessário também um
conversor USB para serial.
Um LED e um resistor de 150 ohms.

E principalmente, vontade de aprender.

Como se acende um LED utilizando um microcontrolador?


Utilizaremos uma saída digital do microcontrolador PIC16F877A. Observe a figura 1.
Ela mostra como é o circuito para se acender um LED. Com a saída do PIC em nível lógico 0 (zero
volts), o LED estará aceso. Com a saída em nível lógico 1 o LED estará apagado.

Vamos utilizar para o nosso experimento o bit correspondente ao bit zero da PORTD.
De uma maneira resumida identificamos este bit como PORTD,0. Caso você ainda não saiba o que
são as portas de um microcontrolador, leia inicialmente o nosso tutorial básico disponível em
http://www.solbet.com.br/downloads/notas_aplicacao/001_TUTPRO_BASICO.pdf.

Montando o hardware necessário para o experimento:


Monte um circuito com um LED e o resistor. O uso de placas de montagem temporária
(protoboards) é muito interessante, por não exigir solda e não estragar os componentes. Deixe dois
fios, de preferencia vermelho (para ligar os cinco volts) e preto (para ligar no conector da
Powerboard2 correspondente ao PORTD,0. Os cinco volts podem ser obtidos da própria placa
Powerboard, no conector marcado como Vcc.

Identifique na placa (através do manual do Powerboard2 ou da serigrafia) :

O conector com cinco volts: (vcc)

O conector da PORTD,0 (RD0)

Ligue o fio vermelho da montagem do LED no conector com cinco volts.

Ligue o fio preto da montagem do LED no conector da PORTD,0

Ligue a porta serial do Powerboard2 à porta serial do seu micro ou ao conversor


USB/RS232C.

Ligue a alimentação a placa. O led vermelho DA PLACA deverá se acender, indicando


a alimentação.

Pronto, o hardware está pronto para o nosso desenvolvimento do firmware.

Figura 1: Circuito para acionar o LED a partir da portD,0

O desenvolvimento do fimrware
Você deve ter notado, talvez com algum desapontamento, que o LED do protoboard não
acendeu, sequer piscou. Isto aconteceu porque, quando você energiza o PIC, todas as PORTAS são
inicializadas como entrada. A PORTD,0 está também como entrada. Nesta configuração ela possui
uma alta impedância de entrada e a corrente que flui é insuficiente para acender o LED.
O nosso software deve então:
1- programar a PORTD,0 para ser uma saída.
2- colocar esta saída em nível lógico zero.

Utilizando um compilador “C” o programa é muito simples. Digite o programa abaixo


em um editor qualquer ou na IDE do seu compilador. Salve o arquivo com o nome tutorial002.c .

#include <16F877A.h> // seleciona o PIC16F877A


#fuses HS,PUT,BROWNOUT,WRT,NOWDT

#ZERO_RAM

void main() {

setup_adc_ports(NO_ANALOGS); // nao usaremos nenhum porta analogica


setup_adc(ADC_OFF); // desligamos o conversor AD
setup_psp(PSP_DISABLED); // nao utiizamos a porta PSP
setup_spi(FALSE); // nao utilizamos a porta SPI
setup_counters(RTCC_INTERNAL,RTCC_DIV_2); //configuracao TMR0 default
setup_timer_1(T1_DISABLED); // desabilitarmos o TMR1
setup_timer_2(T2_DISABLED,0,1); // desabilitamos o TMR2
setup_comparator(NC_NC_NC_NC); // desabilitamos os comparadores
setup_vref(FALSE); // desabilitamos a tensão de referencia

output_bit( PIN_D0, 0); // finalmente, acendemos o LED


while(true); // fica em loop continuo apos acender o led

Após inserir este código no compilador e acionar a compilação, é gerado um arquivo


chamado tutorial002.hex. O formato hexa é um formato padrão gerado pelos compiladores e
montadores. Este aquivo em formato hexa deve agora ser transferido para o PIC.

Utilizando o Powerboard, como ele já possui um carregador embutido, esta


transferência é muito simples. Basta conectar a porta serial do Powerboard na porta serial do micro
e ativar o programa SbMaster, disponível na home page da Solbet.
Usando o SbMaster, selecione em primeiro lugar o item Configuração do menu
principal e ajuste os parâmetros da porta serial para a porta disponível no seu computador e o
formato 9600, 8, N, 1. Feche o programa após selecionar estes parâmetros e abra novamente. Se
você tiver escolhido uma porta inexistente ou já ocupada uma mensagem correspondente lhe será
apresentada. Corrija a porta e repita o passo.
Após configurada a serial pressione o botão SbTerm . Olhe na parte inferior e encontre o
botão “Upload 38400”. Click com o mouse neste botão.
Na caixa de texto selecione o arquivo tutorial002.hex.
Assim que começarem a aparecer pontos na tela superior, pressione e libere o botão de
reset do Powerboard. O arquivo hex começara a ser transmitido para o Powerboard.
Ao final da transferência o programa entra automaticamente em execução. O LED irá se
acender, e permanecerá aceso.
Pressione durante 5 segundos o botão de reset e libere em seguida. Você consegue
explicar o que ocorre com o LED.

Parabéns: Você acabou de completar o Tutorial002 de programação de


microcontroladores!

Vous aimerez peut-être aussi