Buscar

UFPI 6. Microcontroladores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Piauí
Centro de Tecnologia
Departamento de Engenharia Elétrica
CIRCUITOS DIGITAIS II
Prof. Marcos Zurita
zurita@ufpi.edu.br
www.ufpi.br/zurita
Teresina - 2011
 Microcontroladores
2
Circuitos Digitais II – Prof. Marcos Zurita
● 1. Introdução
● 2. Os Microcontroladores PIC
● 2.1. Os Microcontroladores de 8 bits
● 2.2. PICs de 8-bits: Principais Características 
● 3. O PIC 16F877A
● 3.1. Principais Características
● 3.2. Arquitetura
● 3.3. Conjunto de Instruções
● 3.4. Assembly
Sumário
3
Circuitos Digitais II – Prof. Marcos Zurita
 
1. Introdução
4
Circuitos Digitais II – Prof. Marcos Zurita
Introdução
Microcontrolador
● Também abreviado por µC, uC ou MCU.
● Reúne num único chip:
● Microprocessador
● Memória
● Periféricos de E/S 
programáveis.
4
5
Circuitos Digitais II – Prof. Marcos Zurita
Introdução
● Microcontroladores são dispositivos voltados a sistemas 
embarcados e aplicações específicas, ao contrário dos 
µPs, destinados a PCs e aplicações de uso geral.
● Memórias de programa e de dados também são frequen-
temente integradas ao chip, o que não ocorre nos µPs.
● Principais razões da integração das memórias aos µCs:
● redução do número de pinos do encapsulamento;
● redução dos custos com componentes externos;
● diminuição das dimensões da montagem;
● simplificação do circuito de aplicação;
● Em contrapartida, a integração das memórias aos µCs 
tem a desvantagem de limitar a complexidade do programa 
embarcado, bem como o montante de dados manipuláveis, 
uma vez que o tamanho da memória é limitada pelo µC.
6
Circuitos Digitais II – Prof. Marcos Zurita
Introdução
Alguns Fabricantes de Microcontroladores
● Atmel
● Cypress MicroSystems
● Freescale Semiconductor
● Fujitsu
● Intel
● Microchip Technology
● National Semiconductor
● NXP
● NEC
● STMicroelectronics
● Texas Instruments
● ZiLOG
7
Circuitos Digitais II – Prof. Marcos Zurita
Portas de Entrada e Saída
Memória ROMMemória RAM
(Dados Temporários)
Oscilador, timers, contadores, etc.
CPU
Introdução
Aplicações Típicas
● Periféricos de informática
● Eletrônicos de consumo
● Sistemas de supervisão
● Instrumentação
● Automação
● Robótica
8
Circuitos Digitais II – Prof. Marcos Zurita
Introdução
Unidade de Comando de Injeção Eletrônica
9
Circuitos Digitais II – Prof. Marcos Zurita
Introdução
Robo 3π: Em seu núcleo um uC Atmel à 20 MHz
10
Circuitos Digitais II – Prof. Marcos Zurita
Introdução
Osciloscópios de mão baseados em uCs (ARM e AVR)
11
Circuitos Digitais II – Prof. Marcos Zurita
Introdução
CLP baseado num uC PIC
12
Circuitos Digitais II – Prof. Marcos Zurita
 
2. Os Microcontroladores PIC
13
Circuitos Digitais II – Prof. Marcos Zurita
Os Microcontroladores PIC
Microcontroladores da Microchip Technologies
● Conhecidos como microcontroladores PIC, ou PICmicro.
● Seu nome é uma sigla para “Programmable Interface 
Controller” e origina-se no início dos anos 80, quando foi 
concebido para operar como interface controladora de 
periféricos para a CPU CP1600 da General Instruments.
● Mais de 570 uCs divididos em 3 grandes grupos:
● 8 bits
● 16 bits
● 32 bits
● Núcleo composto por uma máquina RISC:
● As versões mais simples tem apenas 33 instruções.
● Arquitetura de memória Harvard.
14
Circuitos Digitais II – Prof. Marcos Zurita
Os Microcontroladores PIC
● A família de Microcontroladores PIC
PIC10
PIC12
PIC16
PIC18
PIC24F
PIC24H
dsPIC30
dsPIC33
PIC32
8 bi
ts
16 b
its
32 b
its
Desempenho
Fu
nc
io
na
lid
ad
es
15
Circuitos Digitais II – Prof. Marcos Zurita
Os Microcontroladores PIC
Os Microcontroladores PIC de 8 bits
● Mais de 300 uCs, reunindo desde os mais simples e 
pequenos (6 pinos, 2x3mm) a dispositivos de alta gama, 
com maior poder de processamento, periféricos e 
interfaces, chegando a 100 pinos.
● Dividem-se em 4 categorias, de acordo com a 
complexidade da aplicação a que se destinam:
● Baseline
● Mid-Range
● Enhanced Mid-Range
● PIC18
16
Circuitos Digitais II – Prof. Marcos Zurita
Os Microcontroladores PIC
PIC 8-bits: Memória de Programa vs N° de Pinos
17
Circuitos Digitais II – Prof. Marcos Zurita
Os Microcontroladores PIC
PIC 8-bits: Principais Características
Atributo
Arquitetura
Baseline Mid-Range Enhanced Mid-Range PIC18
N° de Pinos 6-40 8-64 8-64 18-100
Suporte a 
Interrupções
sem suporte Uma interrupção Uma interrupção com 
armazenamento de 
contexto de hardware
Múltiplas interrupções com 
armazenamento de contexto 
de hardware
Desempenho 5 MIPS 5 MIPS 8 MIPS Up to 16 MIPS
Instruções 33, 12-bit 35, 14-bit 49, 14-bit 83, 16-bit
Mem. de Programa até 3 kB até 14 kB até 28 kB até 128 kB
Mem. De Dados até 134B até 368B até 1.5 kB até 4 kB
Recursos • Comparador
• ADC de 8 bits
• Memória de Dados
• Oscilador interno
Além dos da Baseline:
 • SPI/I2C
 • UART
 • PWMs
 • Suporte a LCD
 • ADC de 10 bits
 • Op Amp
Além dos da Mid-Range:
 • Comunicações com 
 Múltiplos Periféricos
 • Espaço para 
 Programação Linear
 • PWMs com 
 Temporização 
 Independente
Além dos da Enh. Mid-Range:
 •Multiplicador 8x8 em 
 Hardware
 • CAN
 • CTMU
 • USB
 • Ethernet
 • ADC de 12 bits
Famílias PIC10, PIC12, PIC16 PIC12, PIC16 PIC12F1XXX, 
PIC16F1XXX
PIC18
18
Circuitos Digitais II – Prof. Marcos Zurita
Os Microcontroladores PIC
PIC 8-bits: 10F200, 16F628 e 16F877
19
Circuitos Digitais II – Prof. Marcos Zurita
 
3. O PIC 16F877A
20
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
O PIC16F877A
● Microcontrolador “Mid-Range” de 8 bits.
● Reúne os principais pontos de interesse no estudo da 
arquitetura de sistemas digitais.
● Será adotado para a maior parte das aplicações desta 
disciplina.
21
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Principais Características do PIC 16F877A
● Apenas 35 instruções de máquina (Assembly, nível ISA)
● Execução em pipeline:
● 1 ciclo/instrução sequencial e 2 ciclos/instrução de desvio
● 1 ciclo = 4 pulsos de clock
● Operação com clock de até 20 MHz (5 MIPS)
● Arquitetura de memória Harvard:
● Memória de Programa: 8k x 14 bits (Flash)
● Memória de Dados: 368 Bytes (RAM)
● Memória auxiliar EEPROM (não volátil) de 256 Bytes, 
regravável por software.
22
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
● 4 encapsulamentos disponíveis:
● PDIP 40
● PLCC 44
● QFN 44
● TQFP 44
● Encapsulamento PDIP 40 (adotado):
● 4 pinos de alimentação;
● 2 pinos de clock;
● 1 pino de gravação/reset
● 33 pinos de entrada/saída 
configuráveis;
● Fácil prototipagem em 
Protoboards.
23
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Pinagem do Encapsulamento PDIP 40
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
P
IC
 1
6F
87
7A
MCLR/VPP
RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
VDD
VSS
OSC1/CLKI
OSC2/CLKO
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RD0/PSP0
RD1/PSP1
RB7/PGD
RB6/PGC
RB5
RB4
RB3/PGM
RB2
RB1
RB0/INT
VDD
VSS
RD7/PSP7
RD6/PSP6
RD5/PSP5
RD4/PSP4
RC7/RX/DT
RC6/TX/CK
RC5/SDO
RC4/SDI/SDA
RD3/PSP3
RD2/PSP2
24
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
● Opção para proteção de código executável:
● Uma vez ativada, impossibilita a leitura da memória de 
programa, evitando a piratariado código para outros 
microcontroladores;
● Tensão de trabalho de 2 a 5.5V;
● Modo SLEEP:
● Coloca o uC para “dormir”, reduzindo drasticamente o 
consumo de energia;
● Sistema integrado de programação e depuração “in 
circuit”:
● Programação e depuração serial: apenas 2 pinos;
● Programação e depuração possível sem a necessidade 
desconectar o uC do circuito;
25
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
● Conversor AD de 10 bits x 8 canais;
● Dois comparadores analógicos configuráveis;
● 2 pinos para captura, comparação e PWM
● Uma porta serial síncrona com SPI (mestre) e I2C 
(mestre/escravo);
● Uma porta serial universal (USART);
● Uma porta paralela de 8 bits (escrava);
● Sistema de interrupções com 14 fontes diferentes (por 
hardware e por software);
● Sistema monitor capaz de reiniciar automaticamente o 
uC caso alguma anormalidade seja detectada, evitando 
o travamento do sistema.
26
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Arquitetura do PIC 16F877: Diagrama Simplificado 
ULA
UNIDADE DE
CONTROLE
PC
W
STATUS
FSR
IR
MUX
SISTEMAS DE
SUPORTE
●Programação 
●Depuração 
●Temporização
●Reset 
Stack
Memória
de Programa
(Flash)
Memória
de Dados
(RAM)
M
U
X
EEPROM
PORTAS de E/S
A B C D E
3
PERIFÉRICOS
●ADC 
●Timers 
●etc. 
27
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Arquitetura do PIC 16F877: Diagrama Detalhado 
28
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Memória de Programa
● Armazena de forma permanente o 
programa a ser executado pelo PIC.
● Memória ROM tipo flash de 8 kWords 
(8192 endereços) de 14 bits.
● Pode ser alterada aplicando-se 13V 
ao pino VPP (5V no modo LVP).
● Divida em 4 “páginas” de 2k, sendo a 
primeira reduzida em 5 endereços, 
que possuem função especial:
● 0x0000: vetor de reset;
● 0x0004: vetor de interrupção;
● 0x0001 a 0x0003: reservados.
29
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Memória de Dados (RAM)
● Armazena dados do programa e registradores da CPU.
● Divida em 4 bancos de 128 bytes.
● Cada posição endereçável é chamada 
registro.
● É composta por dois tipos de 
registradores:
● Registradores de propósito geral (368 
bytes);
● Registradores de função específica 
(SFR).
● SFRs complementam os registradores 
nativos da CPU.
Banco 0
Banco 1
Banco 2
Banco 3
RAM
30
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Acesso Direto aos SFRs
30
31
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Mapa da RAM
32
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
SFRs - Banco 0
33
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Stack
● Memória interna composta por 8 registros de 13 bits 
destinada a armazenar endereços da memória de 
programa.
● Tem papel semelhante ao do registrador OPC (da 
arquitetura MIC-1), porém com maior capacidade.
● Quando uma sub-rotina é chamada ou na ocorrência de 
uma interrupção, o endereço para onde o PC deveria 
apontar (caso não houvesse desvio), é salvo automati-
camente na pilha (stack) e recuperado ao final da 
execução da sub-rotina.
● É escrita de forma circular, isto é, após 8 chamadas 
aninhadas, a nona irá sobrescrever o endereço da 
primeira (naturalmente isto deve ser evitado)
34
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
O Assembly do 16F877A
● 35 instruções divididas em 4 grupos:
Operações com Bytes de Registradores
ADDWF ANDWF CLRF COMF DECF DECFZ
INCF INCFSZ IORWF MOVF MOVWF RLF
RRF SUBWF SWAPF XORWF 
Operações com Números Literais
ADDLW ANDLW IORLW MOVLW SUBLW XORLW
Operações com Bits de Registradores
BCF BSF BTFSC BTFSS 
Controle
CLRW NOP CALL CLRWDT GOTO RETFIE
RETLW RETURN SLEEP 
35
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Instruções de Operação com Bytes de Registradores
N° Instrução Argumentos Descrição
1 ADDWF f,d Soma W e F, guardando o resultado em d.
2 ANDWF f,d Lógica "E" entre W e f, guardando o resultado em d.
3 CLRF f Limpa f.
4 COMF f,d Calcula o complemento de f, guardando o resultado em d.
5 DECF f,d Decrementa f, guardando o resultado em d.
6 DECFSZ f,d Decrementa f, guarda o resultado em d e pula a próxima linha se for zero
7 INCF f,d Incrementa f, guardando o resultado em d.
8 INCFSZ f,d Incrementa f, guarda o resultado em d e pula a próxima linha se for zero
9 IORWF f,d Lógica "OU" entre W e f, guardando o resultado em d.
10 MOVF f,d Move f para d (copia).
11 MOVWF f Move W para f (copia).
12 RLF f,d Rotaciona f  1 bit para esquerda.
13 RRF f,d Rotaciona f  1 bit para direita.
14 SUBWF f,d Subtrai W de f (f – W), guardando o resultado em d.
15 SWAPF f,d Inverte as partes alta e baixa de f, guardando o resultado em d.
16 XORWF f,d Lógica "OU exclusivo" entre W e f, guardando o resultado em d.
36
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Instruções de Operação com Números Literais
Instruções de Operação com Bits de Registradores
N° Instrução Argumentos Descrição
17 ADDLW k Soma um número k com W, guardando o resultado em W.
18 ANDLW k Lógica "E" entre k e W, guardando o resultado em W.
19 IORLW k Lógica "OU" entre k e W, guardando o resultado em W.
20 MOVLW k Move k para W.
21 SUBLW k Subtrai W de k (k - W), guardando o resultado em W.
22 XORLW k Lógica "OU  exclusivo" entre k e W, guardando o resultado em W.
N° Instrução Argumentos Descrição
23 BCF f,b Coloca 0 (zero) ao bit b do registrador f.
24 BSF f,b Coloca 1 (um) ao bit b do registrador f.
25 BTFSC f,b Testa o bit b  do registrador, e pula a próxima linha se ele for 0 (zero).
26 BTFSS f,b Testa o bit b  do registrador, e pula a próxima linha se ele for 1 (um).
37
Circuitos Digitais II – Prof. Marcos Zurita
O PIC 16F877A
Instruções de Controle
N° Instrução Argumentos Descrição
27 CLRW   Limpa W (deixa W com valor 0)
28 NOP   Gasta um ciclo de máquina sem fazer nada.
29 CALL Rotina X Executa a rotina X.
30 CLRWDT   Limpa o registrador WDT para não acontecer o reset.
31 GOTO R Desvia para o ponto R, mudando o PC.
32 RETFIE   Retorna de uma interrupção.
33 RETLW k Retorna de uma rotina, com k em W.
34 RETURN   Retorna de uma rotina, sem afetar W.
35 SLEEP   Coloca o PIC em modo Sleep para economia de energia.
38
Circuitos Digitais II – Prof. Marcos Zurita
Assembly
Exemplo 1: (parte 1)
39
Circuitos Digitais II – Prof. Marcos Zurita
Assembly
Exemplo 1: (parte 2)
40
Circuitos Digitais II – Prof. Marcos Zurita
Assembly
Exemplo 1 Comentado: (parte 1)
41
Circuitos Digitais II – Prof. Marcos Zurita
Assembly
Exemplo 1 Comentado: (parte 2)
42
Circuitos Digitais II – Prof. Marcos Zurita
Assembly
Exemplo 1 Comentado: (parte 3)
43
Circuitos Digitais II – Prof. Marcos Zurita
Assembly
Exemplo 1 Comentado: (parte 4)
44
Circuitos Digitais II – Prof. Marcos Zurita
Razões para Programar o PIC em Assembly
● Aplicações de controle crítico de tempo.
● Maximização da eficiência do código.
● Redução do tamanho do programa.
● Dominar melhor a arquitetura do uC.
● Castigo, autoflagelo ou masoquismo crônico (procure um 
bom tratamento psicológico)
Assembly
45
Circuitos Digitais II – Prof. Marcos Zurita
Bibliografia
● Milan Verle, “PIC Microcontrollers - 
Programming in C”, 1a Ed., MikroElektronika, 
2009.
● Microchip Tec. Inc., “8-bit PIC 
Microcontrollers”, Data Sheet, 2010.
● Microchip Tec. Inc., “PIC16F87XA - 28/40/44-Pin 
Enhanced Flash Microcontrollers”, Data Sheet, 
2003.
● Andrew S. Tanenbaum, “Organização 
Estruturada de Computadores”, 5a Ed., 
Pearson, 2006.
● J. L. Hennessy & D. A. Patterson, “Arquiteturade Computadores - Uma Abordagem 
Quantitativa”, Editora Campus, 2003.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45

Outros materiais