



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Aprenda neste artigo a montar um sequencial de leds com o PIC.
Tipologia: Manuais, Projetos, Pesquisas
1 / 6
Esta página não é visível na pré-visualização
Não perca as partes importantes!




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