Eletrônica Embarcada
Atividade 12
Prof. Guillermo Alvarez Bestard, Dr.
guillermo@[Link]
Tópicos
• Programação em assembly de desvios do fluxo de programa e sub-
rotinas de atenção a interrupção por mudança de portas de entrada
digital.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Literatura recomendada
• PICmicro Mid-Range MCU Family Reference Manual. Tópico 8
[Link]
• PEREIRA, Fábio. Microcontroladores PIC - Técnicas Avançadas. Tópico
7.4 [Minha Biblioteca] [Link]
• PIC16F882/883/884/886/887 Data Sheet,
[Link]
f
• PIC16(L)F1826/27 18/20/28-Pin Flash MCU with nanoWatt XLP.
[Link]
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 1
Fuso de
Esferas
• Um decodificador rotacional óptico Encoder
(encoder) em quadratura de fase,
que utiliza o código Gray de 2 bits,
está conectado num eixo de um
motor que movimenta uma base Sensor de
móvel de uma máquina ferramenta, Fim de
Curso
utilizando um fuso de esferas.
• O percurso máximo da base
contempla 65535 passos.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 1
• O encoder vai indicar a posição absoluta do
eixo da engrenagem utilizando um disco e
um sistema óptico, conforme a tabela.
• Os bits da posição são fornecidos no canal
A e B, conforme exibido nas gráficas para o
movimento para frente (CW) e para trás Disco do
(CCW) sistema
óptico
Posição Binário Gray
0 00 00
1 01 01
2 10 11
3 11 10
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 1 1
0
• Outro sensor óptico de fim de
curso indica quando a ferramenta
está na posição inicial (posição
zero).
• Sua saída é a coletor aberto,
ficando em saturação (‘0’) quando
chega luz no sensor.
• Quando a ferramenta chega na
posição inicial o az de luz é
interrompido por uma lâmina
móvel e o sensor muda sua saída
colocando o transistor em corte
(‘1’).
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 1
• Implemente um
sistema de medição
da posição
utilizando um
PIC16F887
utilizando
interrupções,
conforme o
esquemático
mostrado na figura.
• A indicação da
posição será feita
com 16 leds.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 1
• Precisamos
configurar as
portas C e D como
saída e ativar os
pool-ups dos pinos
RB0, RB4 e RB5
• Vamos usar duas
interrupções:
• INT para detectar
o fim de curso
• e RB (IOC) para o
encoder.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Registradores utilizados
RB5 RB0 RB4
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
RB0
RB5 RB4 RB0
RB0 RB4 e RB5
RB5 RB4
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Registradores utilizados
Uso do flag C de STATUS
Lembrar que conseguimos trabalhar com
apenas 8 bits de dados, então para operações Se temos a posição atual
de maior comprimento precisamos Pos = 0000 0000 1111 1110
considerar carry e borrow.
E detectamos um movimento positivo
No caso de Pos, ele ocupa 2 bytes de INCF Pos,F
memória que devem ser tratados de forma Pos = 0000 0000 1111 1111
independente.
No código eles vão ser divididos em Novamente movimento positivo
Pos (parte baixa) e INCF Pos,F
Pos+1 (parte alta) Pos = 0000 0001 0000 0000
INCF Pos+1,F
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Estudo individual
• Procurar informação sobre os tipos de conversores analógico-digitais
e seu principio operacional.
• Descrever funcionamento em cada caso.
• Coloque um resumo de sua pesquisa no Aprender
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]