Upload
alexcya-lopes
View
234
Download
0
Embed Size (px)
Citation preview
8/19/2019 01 Microcontroladores Arquitetura Básica
1/20
1
Microprocessadores
Prof. Arthur Braga
Tópicosn Microcontroladores
n O PIC16F628A
¨ Características Gerais
¨ Memória de Programa
¨
Memória EEPROM¨ Memória RAM
n Endereçamento Direto
n Endereçamento Indireto
¨ Linguagem de Máquina e Linguagem Montadora
8/19/2019 01 Microcontroladores Arquitetura Básica
2/20
2
Microcontroladores PICOs PIC (Peripheral Integrated Controler) são uma família de
microcontroladores fabricados pela Microchip TechnologyTM, que
processam dados de 8 e 16 bits com extensa variedade de modelos e
periféricos internos, com arquitetura Harvard e conjunto de instruções
RISC (sets de 35 instruções e de 76 instruções), com recursos de
programação por memória FLASH, EEPROM e OTP.
Os microcontroladores PIC são divididos em grupos diferenciados pela
capacidade de armazenamento em cada localidade de sua memória de
programa: 12 bits, 14 bits e 16 bits. As CPUs da família PIC trabalham em
frequências de até 40 MHz. Há o reconhecimento de interrupções tantoexternas como de periféricos internos. Funcionam com tensões de
alimentação de 2 a 6V e os modelos possuem encapsulamento de 6 a 100
pinos em diversos formatos (SOT23, DIP, SOIC, TQFP, etc).
Memória de Programa
Memória de Dados8-Bits
12/14/16-Bits
Harvard
Memória de Dados
e Programa
Von Neumann
8-Bits
Microcontroladores PIC
PIC
PIC 16F628A
8/19/2019 01 Microcontroladores Arquitetura Básica
3/20
3
Microcontroladores PIC
Evolução da família
PIC
Microcontroladores PICPara as famílias de microcontroladores de 8 bits no barramento de dados,
a MICROCHIP adota as seguintes classificações:
• PIC 10: Linha de performance básica, dispositivos de baixo custo,
utilizam 33 instruções de 12 bits de tamanho, possuem oscilador
interno.
• PIC 12: Linha de performances básica e média, 33 instruções, quatro
opções podem ser selecionadas para o oscilador, maior memória RAM.
• PIC 14: Linha de performances básica, o único membro desta família
é o PIC14000, produzido para operar em um range de temperaturas
compatível com o ambiente industrial.
• PIC 16: Linha de performances básica e média, nos de performance
média as palavras de programa são de 14 bits, alguns membros
possuem USB, I2C, LCD, USART e conversores A/D.
• PIC 18: Topo de Linha, utilizam palavras de programa de 16 bits,
possuem conversor A/D integrado.
8/19/2019 01 Microcontroladores Arquitetura Básica
4/20
4
PIC 16F628A
PIC 16F628A
8/19/2019 01 Microcontroladores Arquitetura Básica
5/20
5
PIC 16F628A
Arquitetura
Interna do PIC16F628A
PIC 16F628A
Como funciona ?
8/19/2019 01 Microcontroladores Arquitetura Básica
6/20
6
Contador de Programa - PCO contador de programa (PC – Program Counter) é o responsável pelo controle da
sequência de execução das instruções no PIC. O registrador aponta sempre para a
próxima instrução a ser executada pela CPU, desta forma, para alterar o fluxo do
programa, o conteúdo do PC deve ser alterado.
Nos PICs da série 16, o contador de programa possui largura de 13 bits, o que implica
dizer que é possível acessar até 213 ou 8.192 instruções.
EXEMPLO:
PCPCPCPC
PCPC
Contador de Programa - PCO contador de programa (PC – Program Counter) é o responsável pelo controle da
sequência de execução das instruções no PIC. O registrador aponta sempre para a
próxima instrução a ser executada pela CPU, desta forma, para alterar o fluxo do
programa, o conteúdo do PC deve ser alterado.
No entanto, ao contrário de outros MCUs e MPUs, nos PICs não é possível ao usuário
acessar diretamente o conteúdo do PC.
Nos PICs da série 16, o contador de programa possui largura de 13 bits, o que implica
dizer que é possível acessar até 213 ou 8.192 instruções.
8/19/2019 01 Microcontroladores Arquitetura Básica
7/20
7
Contador de Programa - PC
Pilha (Stack)Outra estrutura encontrada no interior dos PICs é a pilha, cuja principal função é
armazenar endereços de retorno para sub-rotinas.
Nos PICs, a pilha não está localizada na área de memória RAM, mas em uma
região separada (inacessível diretamente ao usuário) que é dedicada apenas a ela.
O tamanho total dessa área é de oito posições (para os PICS de 14 bits), cada uma
com 13 bits de capacidade (porque cada posição precisa ter capacidade suficiente
para armazenar o valor do PC).
Não há instruções para manipular diretamente a pilha. Isto é feito indiretamente por
meio de instruções como CALL, RETURN, RETLW e RETFIE, além do evento de
interrupção (que podemos considerar como um CALL).
8/19/2019 01 Microcontroladores Arquitetura Básica
8/20
8
Arquitetura
Interna do PIC
16F628A
PIC 16F628A
Registrador W
8/19/2019 01 Microcontroladores Arquitetura Básica
9/20
9
Arquitetura
Interna do PIC
16F628A
PIC 16F628A
Arquitetura
Interna do PIC16F628A
PIC 16F628A
Como funciona ?
8/19/2019 01 Microcontroladores Arquitetura Básica
10/20
10
Memórias no PIC
(Programa, EEPROM, RAM)
8/19/2019 01 Microcontroladores Arquitetura Básica
11/20
11
Memória EEPROMO PIC16F628A possui 128 posições de memória EEPROM, com capacidade de
armazenamento de 1 byte em cada posição. A faixa de endereços usada para acesso a
essa memória é 00h – 7Fh.
Esta é uma memória não-volátil, o que significa que os dados continuam
armazenados em suas localidades mesmo sem alimentação.
O acesso a essa memória é feito por meio de alguns registradores especiais:
•EECON1
• EECON2
• EEDATA
• EEADR
Memória RAMA memória RAM é dividida em
quatro bancos, e é compartilhada
pelos Registradores de Propósito
Geral (GPRs) e pelos
Registradores com Finalidades
Específicas (SFRs).
Registradores de PropósitoGeral (GPRs) – são utilizados
para o armazenamento temporário
d e dad os e i nfor ma çõ es do
programa do usuário.
Registradores com Finalidades
Específicas (SFRs) – são
utilizados para controlar os
periféricos e dispositivos internos,
flags de estado do processador,
entre outras funções.
8/19/2019 01 Microcontroladores Arquitetura Básica
12/20
12
Endereçamento
Direto
Utilização dos Registradores GPRO PIC implementa um conjunto de 128 registradores GPR (Registradores dePropósito Geral) na memória RAM disponível para o usuário. A utilizaçãodos registradores GPR ocorre da mesma forma que os registradores SFR,ou seja: podemos acessar um registrador tanto pelo seu nome definido noprograma, como pelo seu Endereço na RAM.
No caso dos registradores GPR, é possível atribuir nomes a cada um delesde forma a facilitar a escrita e entendimento do programa. Uma forma de
realizar a atribuição de nomes a um registrador é atravésda diretiva EQU.
EXEMPLO
TESTE EQU 0x20
Valor que s erá assoc iado ao nom e TESTE
(pode ser usad o como Ender eço na RAM)
8/19/2019 01 Microcontroladores Arquitetura Básica
13/20
13
Utilização dos Registradores GPRO PIC implementa um conjunto de 128 registradores GPR (Registradores dePropósito Geral) na memória RAM disponível para o usuário. A utilizaçãodos registradores GPR ocorre da mesma forma que os registradores SFR,ou seja: podemos acessar um registrador tanto pelo seu nome definido noprograma, como pelo seu Endereço na RAM.
No caso dos registradores GPR, é possível atribuir nomes a cada um delesde forma a facilitar a escrita e entendimento do programa. Uma forma derealizar a atribuição de nomes a um registrador é atravésda diretiva EQU.
EXEMPLO
TESTE
E os Registradores com Finalidades Específicas (SFR) ?
8/19/2019 01 Microcontroladores Arquitetura Básica
14/20
14
Registradores SFR
A grande maioria dos registradores SFR estão associados a módulos
(periféricos) do PIC16F628A !
Mas alguns, como o Registrador STATUS, está relacionado ao
processador do PIC.
Registradores SFR
8/19/2019 01 Microcontroladores Arquitetura Básica
15/20
15
Registradores SFR
Registradores SFR
Os outros registradores SFR serão detalhados conforme a
apresentação dos módulos do PIC16F628A !
8/19/2019 01 Microcontroladores Arquitetura Básica
16/20
16
Endereçamento
Indireto
Até o momento os registradores utilizados foram acessados por
Endereçamento Direto – o endereço do registrador na memória RAM
aparece na instrução (ou como o endereço propriamente dito, ou como
um rótulo que o montador associa especificamentecom um endereço).
Endereçamento Indireto
Porém, é possível no PIC16F628A passar indiretamente um
dado para um endereço (REGISTRADOR) !
8/19/2019 01 Microcontroladores Arquitetura Básica
17/20
17
O acesso a um REGISTRADOR via Endereçamento Indireto é feito por meio dos registradores FSR e INDF.
Endereçamento Indireto
O conteúdo do registrador FSR aponta para o endereço de memóriadesejado.
O valor contido em INDF é o valor armazenado no endereço apontado por FSR.
Linguagem de Máquina e
Linguagem Montadora
8/19/2019 01 Microcontroladores Arquitetura Básica
18/20
18
Linguagem de Máquina e Linguagem Montadora
Arquivo fonte em Assembly (.ASM)
Montador (Assembler)
+
LINKER
Linguagem Montadora
Assembly e Assembler (LINGUAGEM) (PROGRAMA)
8/19/2019 01 Microcontroladores Arquitetura Básica
19/20
19
Linguagem Montadora
Linguagem Montadora
8/19/2019 01 Microcontroladores Arquitetura Básica
20/20
20
Bibliografia Básica
n Zanco, Wagner da Silva. Microcontroladores PIC16F628A/648A – uma abordagem prática e objetiva,Editora Érica, 2005.
n Datasheet do PIC16F628A/648A
Material da DisciplinaPlataforma SIGAA/UFC