Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 11 - PIC
Aula 11 - PIC
Nikolas Libert
Aula 11
Eletrônica Digital ET52C
Tecnologia em Automação Industrial
Memórias
Memória de dados
– Contém informações dinâmicas: o estado atual de um
contador, o número que o usuário digitou numa
calculadora…
– É volátil: há perda de informações quando o circuito é
desenergizado.
– Tipos:
● Estática: formada por flip-flops.
● Dinâmica: informação guardada em capacitores
(memórias DDR de PCs).
ADDR
Núcleo Núcleo
do μC do μC
DATA
ADDR
Memória Memória
de código DATA de código
Microcontrolador Genérico
Famílias de Microcontroladores
Fabricantes dividem seus modelos de μC em famílias.
– Todos μC numa família possuem o mesmo núcleo.
Núcleo C
Núcleo A Núcleo Memória
Memória
Periféricos
B Memória Periféricos
Periféricos
O PIC12F675
8 pinos
– 2 para alimentação.
– 6 para uso geral (um deles para reset / MCLR).
Pertence à família Mid Range: 35 instruções.
Tensão de alimentação 2 a 5,5 V (pino VDD).
Clock de até 20 MHz – Oscilador interno de 4MHz.
– Executa uma instrução a cada 4 ciclos de clock.
– 1M instruções por segundo com oscilador interno.
O PIC12F675
Memória de programa:
– Memória flash para 1024 comandos (words).
100000 escritas.
Memória de dados:
– 64 bytes de memória SRAM (volátil / flip-flops).
– 128 bytes de memória EEPROM (não volátil / 1000000
de escritas).
Conversor AD, 2 timers, um comparador, programação
in-circuit.
Registrador W:
– Memória de 8 bits presente no núcleo de todo μC PIC.
– Nas operações lógicas, o valor em W é usado como
operando e W pode armazenar o resultado.
Exemplo de Instrução
Memória de Código Estado de W
Operação
Posição Conteúdo (após instrução)
(...) (...) (...) 0b???? ????
Word N 0b11 0000 1010 1010 W = 0b1010 1010 0b1010 1010
Word N+1 0b11 1001 0000 1111 W = W . 0b0000 1111 0b0000 1010
(...) (...) (...) (...)
Status Register
– Registrador (memória de 8 bits) que contém
informações sobre a última operação realizada pela
ULA.
– Bits de Carry e Borrow.
– Bit de Zero: indica que última operação deu zero.
● Instruções de desvio no fluxo do programa podem
se basear no estado desse bit.
● Se dois número forem iguais, por exemplo, uma
subtração entre eles dará zero.
Estrutura Interna
O Compilador MikroC
Na prática, não precisamos aprender as 35 instruções
do PIC12F675.
Podemos escrever o programa em linguagem C e um
compilador faz a conversão para assembly (linguagem
de máquina).
Mas ainda precisamos conhecer os registradores do PIC
que afetam os periféricos que serão utilizados.
– O Datasheet é sempre indispensável!
– Os detalhes mudam muito entre modelos diferentes de
microcontroladores.
DAELT ● Nikolas Libert ● 16
Criando um projeto no MikroC
void main() {
unsigned long int Contador=0;
ANSEL = ANSEL & 0b11110000; // Desabilita pinos analógicos
CMCON = CMCON | 0b00000111; // Desabilita comparador
TRISIO = TRISIO & 0b11111011; // GP2->saída
while(1){
Contador = Contador +1;
if(Contador == 100000){
Contador = 0;
GPIO = GPIO ^ 0b00000100; // Comuta GP2
}
}
}
12F675
74HC595
c DS GP5 GP0
4 14 2 7
10k
g d Q3 SHCP GP4 GP1
3 11 3 6
e Q2 STCP MCLR GP2
2 12 4 5
e c f Q1 OE
1 13
d g Q0 Gnd
15 8
GP5 GP0
2 7
10k
GP4 GP1
3 6
MCLR GP2
4 5
Firmware:
– Em cada passo do loop, um dos 4 botões poderá ser
lido da saída do multiplexador, pelo pino GP2.
– Se você detectar que o botão foi pressionado, atualize
o display com o número correto.
– Pode ser necessário um delay de uns 5ms para
debounce depois da atualização.