Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Sequencial de Leds com o PIC, Manuais, Projetos, Pesquisas de Engenharia Elétrica

Aprenda neste artigo a montar um sequencial de leds com o PIC.

Tipologia: Manuais, Projetos, Pesquisas

Antes de 2010

Compartilhado em 27/06/2009

vitor-amadeu-souza-7
vitor-amadeu-souza-7 🇧🇷

4.3

(4)

57 documentos

1 / 6

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Seencial de Leds utilizando o microcontrolador PIC16F628A
Vitor Amadeu
A Cerne Tecnologia e Treinamento, estará neste mês de agosto, abrindo
várias seções mostrando o que é, para que servem e onde são utilizados os
microcontroladores. Este evento ocorrerá na própria sede da empresa e todos
estão convidados, sendo necessário a inscrição por parte do leitor. O certificado
de presença e entrada são totalmente gratuitos. Ligue para (21) 3064-4526 ou
envie um e-mail para cerne@cerne-tec.com.br e reserve sua vaga.
Dando prosseguimento a utilização dos microcontroladores no nosso dia-a-
dia, mostrarei neste artigo, como é feito um seqüencial de leds com esta
tecnologia. O microcontrolador PIC16F628A possui 16 portas de I/O (entrada e
saída) usadas para comunicação com o mundo externo. Abaixo está representado
a pinagem deste chip:
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Sequencial de Leds com o PIC e outras Manuais, Projetos, Pesquisas em PDF para Engenharia Elétrica, somente na Docsity!

Seqüencial de Leds utilizando o microcontrolador PIC16F628A

Vitor Amadeu

A Cerne Tecnologia e Treinamento, estará neste mês de agosto, abrindo várias seções mostrando o que é, para que servem e onde são utilizados os microcontroladores. Este evento ocorrerá na própria sede da empresa e todos estão convidados, sendo necessário a inscrição por parte do leitor. O certificado de presença e entrada são totalmente gratuitos. Ligue para (21) 3064-4526 ou envie um e-mail para [email protected] e reserve sua vaga. Dando prosseguimento a utilização dos microcontroladores no nosso dia-a- dia, mostrarei neste artigo, como é feito um seqüencial de leds com esta tecnologia. O microcontrolador PIC16F628A possui 16 portas de I/O (entrada e saída) usadas para comunicação com o mundo externo. Abaixo está representado a pinagem deste chip:

Os pinos de I/O (entrada e saída) são divididos em dois PORTS, sendo estes o PORTA e o PORTB. É através destes pinos que o microcontrolador terá acesso ao mundo externo, podendo controlar um led ou ler o estado de um botão. Verifique que os pinos 1, 2, 3, 4, 15, 16, 17 e 18 sempre começam com RAX, onde X é o número da porta, podendo variar de 0 até 7. Mesma coisa é válida para os pinos 6, 7, 8, 9, 10, 11, 12 e 13, onde os pinos começam com RB. No pino 5 fica ligada a tensão negativa da fonte enquanto no pino 14 a tensão positiva. Este microcontrolador funciona de 3V até 5,5 V. Os pinos indicados pela seta indicam que o pino tem somente um sentido sendo desta forma unidirecional. Já os pinos indicados pela seta indicam que o pino é bidirecional, podendo ser configurado tanto como entrada ou como saída. Note que além de pino de I/O, um pino pode ter muito mais funções. Vejamos o caso do pino 6, designado como RB0/INT. Este pino têm duas funções, sendo a primeira de I/O, chamada de RB0. A segunda, é que ele também é um pino de interrupção externa. Desta forma, o pino pode funcionar como I/O, ou seja, RB0 ou como entrada de interrupção externa. Quem define de que forma este pino irá funcionar, são os registradores de função especial (SFR). Utilizarei 8 pinos de I/O do microcontrolador para ligar os oito leds. Os leds acenderão em intervalos diferentes, de 500ms em 500 ms. Teremos a seguinte impressão assim que este projeto estiver funcionando:

led1 led2 led3 led4 led5 led6 led7 led

t

500ms

t

...

t

Note que o sistema começa deixando apenas o led1 aceso. Após 500 ms, o led1 apaga e o led2 fica aceso. Este processo ocorre até o led8, quando o processo volta para o primeiro led.

Para a fonte de 5 VCC:

ƒ 01 Conector KRE02; ƒ 01 Diodo 1N4007; ƒ 02 Capacitor cerâmico 100 nF; ƒ 01 Capacitor eletrolítico 100uF/50 V; ƒ 01 Capacitor eletrolítico 10uF/16 V; ƒ 01 Regulador de tensão 7805.

Estes circuitos podem ser facilmente comprados na Cerne Tecnologia através do telefone (21) 3064-4526 ou através do site www.cerne-tec.com.br. O fluxograma que irá governar o funcionamento deste exemplo é o seguinte:

Novamente, o código para controlar este projeto, foi escrito na linguagem BASIC baseado no compilador mikroBASIC. Este compilador pode ser baixado gratuitamente no site www.mikroelektronika.co.yu. O código que “roda” dentro do microcontrolador é o seguinte:

Liga LED Aguarda 500 ms Desliga LED

Liga LED Aguarda 500 ms Desliga LED

...

Liga LED Aguarda 500 ms Desliga LED

Início

Configurações iniciais de I/O

program sequencial 'nome do programa

symbol led1 = portb.0 'define o pino do led symbol led2 = portb.1 'define o pino do led symbol led3 = portb.2 'define o pino do led symbol led4 = portb.3 'define o pino do led symbol led5 = portb.4 'define o pino do led symbol led6 = portb.5 'define o pino do led symbol led7 = portb.6 'define o pino do led symbol led8 = portb.7 'define o pino do led

main:

trisb=0 'configura todos os pinos do PORTB como saída

loop_principal:

led1=1 'liga o led delay_ms(500) 'aguarda 500 ms led1=0 'desliga o led

led2=1 'liga o led delay_ms(500) 'aguarda 500 ms led2=0 'desliga o led

led3=1 'liga o led delay_ms(500) 'aguarda 500 ms led3=0 'desliga o led

led4=1 'liga o led delay_ms(500) 'aguarda 500 ms led4=0 'desliga o led

led5=1 'liga o led delay_ms(500) 'aguarda 500 ms led5=0 'desliga o led

led6=1 'liga o led delay_ms(500) 'aguarda 500 ms led6=0 'desliga o led

led7=1 'liga o led delay_ms(500) 'aguarda 500 ms led7=0 'desliga o led

led8=1 'liga o led delay_ms(500) ‘aguarda 500 ms led8=0 'desliga o led

goto loop_principal 'volta para o loop_principal