Índice

Transcrição

Índice
Índice
Dia 05 de fevereiro de 2014. .............................................................................................2
Apresentação................................................................................................................................................... 2
Dia 12 de fevereiro de 2013. .............................................................................................3
-Processador .................................................................................................................................................... 3
-Von Neumann ................................................................................................................................................ 3
-Harvard ........................................................................................................................................................... 4
-Von Neumann x Harvard ................................................................................................................................ 4
-Equipamentos que utilizam a arquitetura Harvard........................................................................................ 5
-RISC x CISC ...................................................................................................................................................... 5
Dia 19 de fevereiro de 2014. .............................................................................................8
Microprocessadores x Microcontroladores .................................................................................................... 8
Bits, Flags, Nibles, Bytes e Words. ................................................................................................................... 8
Dia 26 de fevereiro de 2014. .............................................................................................9
- PIC16F887 ...................................................................................................................................................... 9
CPU RISC de alta performance ........................................................................................................................ 9
Características especiais do microcontrolador ............................................................................................... 9
Características de baixo consumo: .................................................................................................................. 9
Características dos periféricos....................................................................................................................... 10
Dia 09 de março de 2014 .................................................................................................11
Estrutura interna do PIC16F887. ................................................................................................................... 11
Alguns exemplos do compartilhamento de pinos. ........................................................................................ 12
Dia 16 de abril de 2014. ..................................................................................................14
O que é ciclo de máquina? ............................................................................................................................ 14
Memória de programa. ................................................................................................................................. 14
- Vetor de reset.............................................................................................................................................. 15
- Vetor de interrupção. .................................................................................................................................. 15
- Tamanho da memória e páginas de memória. ........................................................................................... 15
- Pilha (stack). ................................................................................................................................................ 16
Set de instruções. .......................................................................................................................................... 16
Dia 05 de fevereiro de 2014.
Apresentação – conversa com os alunos.
Neste dia houve uma conversa com alunos para conhecimento e esclarecimento de alguns
tópicos como:
- Proibição do uso do celular ou outros que façam uso de fones de ouvido ou reprodução de
tipos diversos de mídia na sala de aula, proibição essa imposta pelos órgãos competentes da área da
educação e que o colégio bem como seus colaboradores devem fazer cumprir.
- Comportamento, procurar dar o exemplo de conduta e esperar ser seguido.
- A apresentação propriamente dita, vestir-se adequadamente e proibição do uso de boné, gorro,
toca ou outro tipo qualquer de acessório para uso na cabeça, também essas são regras.
- Possíveis métodos de avaliação como trabalhos, chamada oral, prova bimestral ou outros.
Dia 12 de fevereiro de 2013.
-Processador
O processador é a unidade central de processamento de um computador ou sistema
computacional, normalmente é um circuito integrado que executa instruções de máquina realizando
diversos cálculos e tomadas de decisão, o que o torna o cérebro do computador, pois todas as tarefas
são executas por ele.
Este componente processa os dados que recebe, transformando-os em outros dados que
chamamos de informação, todo processamento realizado é controlado por um programa
desenvolvido por um analista e implementado por um profissional programador ou equipe desses a
fim de realizar uma determinada tarefa ou um lote de tarefas com volumes diversos, precisão e
velocidade, que é o principal objetivo dos sistemas computacionais.
O processador também é denominado CPU (Central Processing Unit) ou UCP (Unidade
Central de Processamento).
Microprocessador é o nome dado ao processador usado em PCs (Computadores Pessoais),
servidor, notebook, Workstation e mainframe usados por pessoas, empresas e instituições em geral e
se deve ao fato das técnicas de construção dos chips que usam uma grande escala de integração de
componentes, ou seja, milhões de componentes discretos em uma pequena pastilha, normalmente de
silício que formam o componente em questão.
Arquitetura VON NEUMANN x HARVARD
-Von Neumann:
A Arquitetura de Von Neumann (de John Von Neumann) é uma arquitetura de computador que
se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo
espaço de memória que os dados, podendo assim manipular tais programas e dados com um único
barramento.
A máquina proposta por Von Neumann reúne os seguintes componentes: (I) uma memória, (II)
uma unidade aritmética e lógica (ALU), (III) uma unidade central de processamento (CPU),
composta por diversos registradores, e (IV) uma Unidade de Controle (CU), cuja função é a mesma
da tabela de controle da Máquina de Turing universal: buscar um programa na memória, instrução
por instrução, e executá-lo sobre os dados de entrada.
Cada um dos elementos apresentados é realizado à custa de componentes físicos independentes,
cuja implementação tem variado ao longo do tempo, conforme a evolução das tecnologias de
fabricação, desde os relés eletromagnéticos, as válvulas, até aos semicondutores, abrangendo os
transistores e os circuitos integrados, com média, alta ou muito alta densidade de integração (MSI medium scale, LSI - large scale, ou VLSI - very large scale integration), medida em termos de
milhões transistores por pastilha de silício.
As interações entre os elementos exibem tempos típicos de instrução que também têm variado
ao longo do tempo, conforme as tecnologias de fabricação. Atualmente, as CPUs processam
instruções sob o controle de relógios cujos períodos típicos são da ordem de menos de 1
nanosegundo, ou seja, 1−9 segundos. O mesmo vem acontecendo com as memórias que tem
velocidade de barramentos de 800MHz a 2,4GHz. Outras tecnologias são as portas USB, que na sua
versão mais recente USB3.0 pode transferir dados a uma velocidade de até 4,8Gbps.
-Harvard:
A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von-Neumann,
tendo vindo da necessidade de por o microcontrolador para trabalhar mais rápido. É uma arquitetura
de computador que se distingue das outras por possuir duas memórias diferentes e independentes em
termos de barramento e ligação ao processador.
Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de
programa e das memórias de dados, permitindo que um processador possa acessar as duas
simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de Von Neumann, pois
pode buscar uma nova instrução enquanto executa outra.
A principal vantagem desta arquitetura é dada pela dupla ligação às memórias de dados e
programa (código), permitindo assim que o processador leia uma instrução ao mesmo tempo em que
faz um acesso à memória de dados.
-Von Neumann x Harvard
Nessas distintas arquiteturas, temos vantagens e desvantagens, como se pode observar a seguir:
Arquitetura tipo Harvard: Caminhos de dados e de instrução distintos, dessa forma, seus
componentes internos têm a seguinte disposição.
Arquitetura Von-Neumann, processa uma única informação por vez, visto que nessa tecnologia
as instruções e dados percorrem o mesmo barramento, o que torna o processo lento em relação à
arquitetura Harvard.
-
Von Neumann
Arquitetura mais simples.
Mais lento, pois não permite acesso simultâneo a
dados e instruções.
Geralmente CISC.
Alguns exemplos de componentes com arquitetura
Von Neumann:
- 4004 – processador com 46 instruções.
- 8080 – Processador com 78 instruções.
- 8085 – Processador com 150 instruções.
- Z80 – Processador com mais de 500 instruções.
- 8051 – Microcontrolador com 111 instruções.
-
Harvard
Arquitetura mais complexa.
Mais rápido, pois permite acesso simultâneo a
dados e instruções.
Geralmente RISC
Permite o Pipelining.
Alguns exemplos de componentes com arquitetura
Von Neumann:
- Intel 8086 e 8088
- Microcontroladores PIC – 35 instruções na versão
PIC16.
Normalmente a arquitetura Havard também possui um repertório com menos instruções do que
a de Von-Neumann.
Os microcontroladores com arquitetura Havard são também conhecidos como
"microcontroladores RISC" (Reduced Instruction Set Computer - Computador com Conjunto
Reduzido de Instruções), e os microcontroladores com uma arquitetura Von-Neumann, são
conhecidos como "microcontroladores CISC" (Complex Instruction Set Computer - Computador
com um Conjunto Complexo de Instruções), apesar de isso não ser uma regra.
-Equipamentos que utilizam a arquitetura Harvard:
Os PICs (microcontroladores PIC) são uma família de microcontroladores fabricados pela
Microchip Technology, que processam dados de 8 bits, de 16 bits e mais recentemente 32 bits, com
extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de
instruções RISC (componentes que começam com conjuntos de 35 instruções), com recursos de
programação por Memória flash, EEPROM e OTP. Os microcontroladores PIC têm famílias com
núcleos de processamento de 12 bits, 14 bits e 16 bits e trabalham em velocidades de 0kHz (ou DC)
a 48MHz, usando ciclo de instrução de 4 períodos de clock, o que permite uma velocidade de no
máximo 12 MIPS para essas famílias, podendo ser mais rápidos em outras famílias. Há o
reconhecimento de interrupções tanto externas 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.).
Fonte:
http://sistemasuniban.blogspot.com.br/2010/04/arquiterura-von-neumann-vs-harvard.html
-RISC x CISC
CISC - (sigla para Complex Instruction Set Computer, ou, em uma tradução literal,
"Computador com um Conjunto Complexo de Instruções"): é uma linha de arquitetura de
processadores capaz de executar centenas de instruções complexas diferentes sendo, assim,
extremamente versátil. Exemplos de processadores CISC são os 386 e os 486 da Intel.
Os processadores baseados na computação de conjunto de instruções complexas contêm
uma micro programação, ou seja, um conjunto de códigos de instruções que são gravados no
processador, permitindo-lhe receber as instruções dos programas e executá-las, utilizando as
instruções contidas na sua micro programação. Seria como quebrar estas instruções, já em baixo
nível, em diversas instruções mais próximas do hardware (as instruções contidas no microcódigo do
processador). Como característica marcante esta arquitetura contém um conjunto grande de
instruções, a maioria deles em um elevado grau de complexidade.
Examinando do ponto de vista um pouco mais prático, a vantagem da arquitetura CISC é que já
temos muitas das instruções guardadas no próprio processador, o que facilita o trabalho
dos programadores de linguagem de máquina; disponibilizando, assim, praticamente todas as
instruções que serão usadas em seus programas. Os processadores CISC têm a vantagem de reduzir o
tamanho do código executável por já possuírem muito do código comum em vários programas, em
forma de uma única instrução.
Porém, do ponto de vista da performance, os CISCs têm algumas desvantagens em relação
aos RISCs, entre elas a impossibilidade de se alterar alguma instrução composta para se melhorar a
performance. O código equivalente às instruções compostas do CISC pode ser escrito nos RISCs da
forma desejada, usando um conjunto de instruções simples, da maneira que mais se adequar. Sendo
assim, existe uma disputa entre tamanho do código X desempenho.
RISC - Reduced Instruction Set Computer ou Computador com um Conjunto Reduzido
de Instruções (RISC), é uma linha de arquitetura de processadores que favorece um conjunto
simples e pequeno de instruções que levam aproximadamente a mesma quantidade de tempo para
serem executadas. Muitos dos microprocessadores modernos são RISCs, por exemplo DEC
Alpha, SPARC, MIPS, e PowerPC. Os computadores atuais mixam as duas arquiteturas, criando o
conceito de arquitetura híbrida, incorporando os conceitos das duas arquiteturas e a inclusão de um
núcleo RISC aos seus processadores. O tipo de microprocessador mais comum em desktops, o x86, é
mais semelhante ao CISC do que ao RISC, embora chips mais novos traduzam instruções
x86 baseadas em arquitetura CISC em formas baseadas em arquitetura RISC mais simples, utilizando
prioridade de execução.
Os processadores baseados na computação de conjunto de instruções reduzidas não têm micro
programação, as instruções são executadas diretamente pelo hardware. Como característica, esta
arquitetura, além de não ter microcódigo, tem o conjunto de instruções reduzidas, bem como baixo
nível de complexidade.
A ideia foi inspirada pela descoberta de que muitas das características incluídas na arquitetura
tradicional de processadores para ganho de desempenho foram ignoradas pelos programas que foram
executados neles. Mas o desempenho do processador em relação à memória que ele acessava era
crescente. Isto resultou num número de técnicas para otimização do processo dentro do processador,
enquanto ao mesmo tempo tentando reduzir o número total de acessos à memória.
RISC é também a arquitetura adotada para os processadores dos videogames modernos, que
proporcionam um hardware extremamente dedicado somente à execução do jogo, tornando-o muito
mais rápido em relação a micro computadores com mais recursos, embora com processador x86.
Seguem alguns links sobre as diferenças, vantagens e desvantagens destes dois sistemas de
processadores quanto ao conjunto de instruções que pode caracterizar um componente como RISC
ou CISC.
http://www.gruponetcampos.com.br/2011/03/arquitetura-cisc-e-risc-qual-diferenca/
http://pt.wikipedia.org/wiki/CISC
Dia 19 de fevereiro de 2014.
Microprocessadores x Microcontroladores
Basicamente podemos dizer que:
- Microprocessador é um componente eletrônico composto por uma unidade central de
processamento, barramento de endereço, barramento de dados e barramento de controle, não possui
memória nem periféricos (temporizadores, conversores ADC ou DAC, hardware de comunicação
serial, entre outros), devendo esses serem ligados externamente no projeto computacional que usa o
Microprocessador escolhido.
- Microcontrolador é um componente eletrônico que tem os mesmos recursos do
microprocessador, porém já tem em seu chip a memória de programa, a memória de dados e vários
periféricos, tudo em um encapsulamento único.
Bits, Flags, Nibles, Bytes e Words.
Em sistemas computacionais eletrônicos a base numérica é a binária, onde os dígitos variam
entre 0 e 1, onde o 0 equivale a 0Vcc ou estar ligado ao GND do circuito e o 1 equivale a +Vcc, ou
seja, em um circuito alimentado por +5Vcc essa será a tensão equivalente ao digito 1.
Cada dígito pode ser tratado de maneira individual ou em conjunto o que nos dá as seguintes
possibilidades:
Bit
- Um bit é a menor unidade em um sistema digital podendo, por exemplo, endereçar apenas
duas possibilidades, 0 e 1.
Flag
- Um flag contém apenas um bit e normalmente é parte de um byte, mas especificamente um
registrador, em sistemas computacionais microcontrolados os registradores são amplamente usados
para configurar dispositivos ou representar o status dos dispositivos, um flag pode ser usado, por
exemplo, para ligar ou desligar um determinado dispositivo ou periférico do microcontrolador em
uso.
Nibles
- Um nible é um conjunto de 4 bits o que permite 16 combinações.
Byte
- Um byte é um conjunto de 8 bits, ou dois nibles, que permite 256 combinações, é a unidade
mais usada para determinar capacidades de armazenamento e também transferências de dados
digitais, também pode ser usada com seus multiplicadores mais comuns, Kbytes, Mbytes entre
outros.
Word
- Em sistemas computacionais de estrutura Harvard como os PICs os barramentos podem ter
tamanhos que não são bit, nibles ou bytes esses barramentos podem ter tamanhos de 12, 14, 16 ou
outras capacidades em bits, para esses tamanhos de barramentos damos o nome de words.
Dia 26 de fevereiro de 2014.
- PIC16F887
O microcontrolador escolhido para nossos estudos é o PIC16F887, um microprocessador da
família de 8bits da MICROCHIP que pode ser encontrando e vários encapsulamentos entre eles o
DIP de 40 pinos o que facilita seu uso prático, seguem abaixo as principais características deste PIC:
CPU RISC de alta performance.
•
•
•
•
•
•
•
•
Apenas 35 instruções.
Maioria das instruções realizadas em um ciclo de máquina exceto as de desvio.
Velocidade de operação de DC a 20MHz com ciclo de DC a 200ns.
Capacidade de interrupção.
Pilha com 8 endereços de retorno por hardware.
8K x 14 words de memória de programa flash.
368 bytes de memória RAM.
256 bytes de memória EEPROM.
Características especiais do microcontrolador.
•
•
•
•
•
•
•
•
•
•
•
•
Oscilador interno de precisão.
o Calibrado em fábrica com precisão de 1%.
o Frequências de 31KHz a 8MHz selecionável por software.
o Ajuste fino via software.
o Modo de partida com duas velocidades.
o Detector de falha no oscilador a cristal para operações críticas.
o Troca o tipo de oscilador durante a execução do programa para baixar consumo.
Função SLEEP para redução de consumo.
Tensão de trabalho de 2,0Vcc a 5Vcc.
Faixa de temperatura de trabalho industrial e estendida.
Power On Reset (POR).
Power-up Timer (PWRT) e Oscillator Start-up Timer (OST).
Brown-out Reset (BOR) com opções de controle por software.
Watchdog Timer (WDT) melhorado com baixo consumo, com oscilador interno (selecionável por
software até 268 segundos com o uso de prescaler) e controle de habilitação por software.
Proteção de código de programa.
Alta capacidade de gravação das memórias FLASH e EEPROM:
o 100.000 de ciclos de escrita para a memoria FLASH.
o 1.000.000 de ciclos de escrita para a memoria EEPROM.
o Mínimo de 40 anos de retenção dos dados das memorias FLASH e EEPROM.
A memória de programa pode ser gravada durante a execução do programa.
Capacidade de gravação e depuração In Circuit.
Características de baixo consumo:
• Corrente de Standby:
- 50 nA @ 2.0V
• Corrente de operação:
- 11 µA @ 32 kHz, 2.0V
- 220 µA @ 4 MHz, 2.0V
• Corrente do circuito de Watchdog Timer:
- 1 µA @ 2.0V
Características dos periféricos.
•
•
•
•
•
•
•
•
•
•
•
Até 35 pinos de I/O com controle individual de direção.
o Capacidade de fornecer ou drenar até 20mA por pino.
o Interrupção por mudança de estado.
o Programação individual de resistores de PULL-UP.
o Ultra Low-Power Wake-up (ULPWU).
Módulo comparador analógico com:
o Dois comparadores analógicos.
o Tensão de referencia interna programável em % da alimentação (CVref).
o Tensão de referencia fixa de 0,6V.
o Acesso externo às entradas e saídas dos comparadores.
o Pode ser usado para habilitar ou desabilitar o TIMER1.
Conversor análogo digital:
o Até 14 canais com 10 bits de resolução.
TIMER0 – Temporizador e contador de 8 bits com prescaler programável de 8 bits.
TIMER1 – timer melhorado:
o Temporizador e contador de 16 bits com prescaler.
o Modo de entrada com gate externo.
o Opção de oscilador interno de 32Khz.
TIMER2 – Temporizador e contador de 8 bits, registrador de período, prescaler e postscaler.
Módulo de captura, comparação e PWM melhorado.
o 16 bits de captura com resolução máxima de 12,5nS.
o Comparador com resolução máxima de 200nS.
o PWM com 10 bits de resolução, tempo morto programável, frequência máxima de 20KHz e 1, 2
ou 4 saídas.
Módulo de captura, comparação e PWM:
o 16 bits de captura com resolução máxima de 12,5nS.
o Comparador de 16 bits com resolução máxima de 200nS.
o PWM com resolução de 10 bits e frequência máxima de 20KHz.
Módulo UART melhorado:
o Suporta RS485, RS232 e LIN 2.0.
o Detecção automática de velocidade de transmissão.
o Pode tirar o microcontrolador do estado de SLEEP no START BIT.
In Circuit Serial Programing (ICSP) programação do chip diretamente no circuito via dois pinos.
Master Synchronous Serial Port (MSSP) – este módulo suporta os 4 modos de comunicação SPI a 3 fios e
os modos mestre e escravo do I2C com máscara de endereço.
Dia 09 de março de 2014
Estrutura interna do PIC16F887.
Na figura abaixo podemos identificar vários dos conceitos explicados anteriormente, entre eles
podemos destacar:
•
•
•
Mais de um barramento como “DATA BUS”, usado para trafego de dados entre a ALU
(Aritmetic Logic Unit – Unidade Lógica e Aritmética) e memória e periféricos do nosso
chip, característica da arquitetura Von Neumann.
Uso de vários tipos de memória como a RAM para registradores e dados, memória
Flash para programa e EEPROM para armazenamento dados não voláteis.
Os vários recursos do microcontrolador como os Timers, conversor AD entre outros.
Alguns exemplos do compartilhamento de pinos.
Notem no desenho acima que os pinos RB0 a RB3 estão sendo usados como entradas (leitura
de teclas) e como saídas (acionamento dos LEDS), notem ainda que a porta D (RD0 a RD7) está
sendo usada para acionar 04 displays de 7 segmentos a LED usando uma varredura com os pinos
RB4 a RB7 e os transistores Q1 a Q4.
O uso dos pinos como entrada e como saída para poder ler uma tecla e também acionar o LED
pode ser necessário dependendo do custo da sua aplicação e é controlado por software, fazendo as
funções de entrada e saída se alternarem em tempos curtos e relativamente precisos a fim de poderem
ler as teclas com boa precisão e ao mesmo tempo conseguir dar ao usuário da aplicação uma
diferença bastante nítida dos estados de apagado e aceso do LED, bem como a varredura dos
displays que devem oferecer uma boa nitidez e clareza para sua leitura.
No exemplo abaixo temos a ligação de um display LCD de caracteres ligados à porta D, um
teclado configurado como matriz de 3 colunas e 4 linhas ligados à porta B, um botão ligado ao pino
RA0, dois LEDs ligados aos pinos RE0 e RE1 e um relé ligado ao pino RE2.
Notem que foram usados resistores de pull-down (ligados ao terra) nos pinos do LCD, o que
não é necessário tendo em vista que os pinos da porta D podem impor tanto o nível alto como o nível
baixo quando configurados como saída.
VDD
U1
+88.8
RV1
13
14
1
Volts
50%
+88.8
mA
1k
+88.8
2
3
4
5
6
7
Volts
8
9
10
OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV
U2
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RE0/AN5/RD
RC2/CCP1
RE1/AN6/WR
RC3/SCK/SCL
RE2/AN7/CS
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
VSS
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
PIC16877
33
34
35
36
37
38
39
40
3
4
7
8
13
14
17
18
15
16
17
18
23
24
25
26
1
11
19
20
21
22
27
28
29
30
D0
D1
D2
D3
D4
D5
D6
D7
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
2
5
6
9
12
15
16
19
D0
D1
D2
D3
D4
D5
D6
D7
D[0..15]
+5V
OE
LE
D[0..15]
74LS373
U3
3
4
7
8
13
14
17
18
1
11
D0
D1
D2
D3
D4
D5
D6
D7
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
2
5
6
9
12
15
16
19
D8
D9
D10
D11
D12
D13
D14
D15
OE
LE
74LS373
No esquema acima podemos ver uma aplicação não muito comum, pois faz uso de displays de
7 segmentos hexadecimais e usa 2 CIs 74LS373 que são buffers com retenção para multiplexar, em
conjunto com os pinos RD6 e RD7 os pinos da porta B, e o pino RA0 está sendo usado como entrada
analógica.
Dia 16 de abril de 2014.
O que é ciclo de máquina?
O que se deve saber é que nesse microcontrolador a frequência do clock interno equivale a ¼
da frequência do clock do circuito oscilador escolhido, ou seja, se tivermos um cristal de 4MHz
ligado aos pinos CLKIN / CLKOUT do PIC a frequência usada como referencia interna para
processamento e periféricos que façam uso do clock será de 1MHz.
Abaixo é possível ver um gráfico de tempo que explica melhor essa técnica:
Notem que no primeiro ciclo de máquina é buscada(fetch 1) a primeira instrução no próximo
ciclo ela é executada(execute 1) e ao mesmo tempo é buscada(fetch 2) a segunda instrução e assim
por diante, isso ocorre até encontrar uma instrução de salto (CALL SUB_1), nesse momento também
é buscada a instrução seguinte porém durante a execução da instrução CALL a próxima instrução
buscada é descartada e será realizado o salto para a rotina SUB_1.
O que significa que a grande maioria das instruções do PIC são realizadas em um único ciclo
de maquina, exceto aquelas de salto e algumas condições de teste como indicada no data sheet.
Memória de programa.
A memória deste chip tem um tamanho de 8Kword, cada Word tem 14 bits e fica armazenada
em uma memória flash, esta é uma memória não volátil que pode ser gravada por hardware externo
(gravador) ou pode ser gravada pelo software da sua aplicação o que possibilita um software
dinâmico ou ainda a implantação da técnica de boot loader, pequeno programa que pode ser usado
por exemplo para que o usuário da aplicação faça as atualizações disponibilizadas do firmware, outra
opção é o uso desta memória como uma expansão da EEPROM existente no chip.
Outras características importantes desta memória são:
- Vetor de reset.
Neste chip o vetor de reset é o endereço 0x0000, endereço inicial da memória e destino do
contador de programa (PC Program Counter) sempre que o chip é devidamente alimentado ou que o
pino MCLR recebeu um pulso de reset (pulso negativo).
- Vetor de interrupção.
Todos os periféricos deste chip inclusive o pino INT (entrada de interrupção externa) podem
gerar uma interrupção para o programa principal, apesar de existirem neste chip 15 fontes de
interrupção todas usam o mesmo vetor, este vetor é o endereço 0x0004 da memória de programa.
- Tamanho da memória e páginas de memória.
Como descrito acima a memória deste chip é de 8Kword, ou seja, 8.192 endereços de programa
e cada endereço é composto por uma palavra (Word) de 14 bits, isso gera um problema de
gerenciamento dos endereços, ou seja, para endereçar 9.192 endereços são necessários 13 bits e a
Word tem apenas 14 bits, porém essa Word tem que conter o opcode (código da instrução) e o
endereço do salto.
Veja alguns exemplos de opcode de instruções de salto:
Instrução
CALL
OPCODE
100 KKK KKKK KKKK
GoTo
101 KKK KKKK KKKK
Obs
KKK KKKK KKK equivalem a 11 dos 13 bits do endereço de
destino
KKK KKKK KKK equivalem a 11 dos 13 bits do endereço de
destino
Para solucionar o problema a memória de programa foi dividida em 04 páginas de 2.048
endereços cada página e foi implementado um registrador PCLATCH para armazenar dois bits que
são os bits mais significativos para completar o endereço. Veja abaixo uma representação das
páginas de memória do chip.
- Pilha (stack).
A pilha de memória é um bloco na memória separado para armazenar endereços de retorno das
instruções de chamada de sub rotinas e interrupção, ou seja, sempre que ocorre um desvio do
programa para atender a uma interrupção ou a uma chamada de sub rotina o endereço seguinte ao
endereço em execução é salvo nessa memória, no final da rotina uma instrução de retorno da rotina
busca na pilha o endereço de retorno para dar continuidade no programa principal.
Uma característica importante desta pilha é que ela é limitada em 8 endereços, ou seja, somente
será possível atender a 8 chamadas de rotinas ou atendimento de interrupção em sequência, sem que
ocorram o encerramentos dessas rotinas por retorno, caso aconteçam mais de 8 chamadas a sub
rotinas ao ocorrer a nona chamada o endereço da primeira chamada é perdido e assim por diante.
Outra característica é que o tamanho das words da pilha é de 13 bits, ou seja, ela pode
armazenar um endereço de retorno completo sem se preocupar com as páginas do endereço, no
entanto no caso de chamadas de sub rotinas por software (CALL) deve-se antes ajustar o PCLATCH
referente ao endereço da rotina que será chamada.
Set de instruções.
Instrução
Descrição
Ciclos
Status
afetado
Instruções com registradores em nível de Bytes
ADDWF
f,d Soma o conteúdo do registro W com o
conteúdo de um registrador F qualquer
1
C,DC,Z
ANDWF
f,d Operação “E” entre o conteúdo do registro W e
conteúdo de um registro F qualquer
1
Z
CLRF
f
Limpa o conteúdo de um registrador F qualquer
1
Z
CLRW
-
Limpa o conteúdo do registrador W
1
Z
1
Z
COMF
f,d Complementa o conteúdo de um registrador F
qualquer
DECF
f,d Decrementa o conteúdo de um registrador F
qualquer
1
Z
DECFSZ
f,d Decrementa o conteúdo de um registrador F
qualquer, pula próxima instrução se “zero”
1(2)
-
INCF
f,d Incrementa o conteúdo de um registrador F
qualquer
1
Z
INCFSZ
f,d Incrementa o conteúdo de um registrador F
qualquer, pula próxima instrução se “zero”
1(2)
-
IORWF
f,d Operação “OU” entre o conteúdo do registro W
e conteúdo de um registro F qualquer
1
Z
MOVF
f,d Move o conteúdo de um registrador F qualquer
1
Z
MOVWF
f
Move o conteúdo do registro W para um
registrador F qualquer
1
-
NOP
-
Consome um ciclo, sem executar nada
1
-
RLF
f,d Gira a esquerda o conteúdo de um registrador
F qualquer, considerando o “Carry”
1
C
RRF
f,d Gira a direita o conteúdo de um registrador F
qualquer, considerando o “Carry”
1
C
SUBWF
f,d Subtraí o conteúdo do registro W com o
conteúdo de um registrador F qualquer
1
C,DC,Z
SWAPF
f,d Troca os “nibble’s” de um registrador qualquer
1
-
XORWF
f,d Operação “OU Exclusivo” entre o conteúdo do
registro W e conteúdo de um registro F
qualquer
1
Z
Instruções com registradores em nível de Bit
BCF
f,b Zera um bit de um registrador F qualquer
1
-
BSF
f,b Seta um bit de um registrador F qualquer
1
-
BTFSC
f,b Testa um bit de um registrador F qualquer,
pula próxima instrução se igual a zero
1(2)
-
BTFSS
f,b Testa um bit de um registrador F qualquer,
pula próxima instrução se igual a “1”
1(2)
-
Operações com Literais e de controle
ADDLW
k
Soma o valor “k” ao registrador W
1
C,DC,Z
ANDLW
k
Operação “E” entre o valor “k” e o registrador
W
1
Z
CALL
k
Chama uma sub-rotina representada por “k”
2
-
CLRWDT
-
Limpa o WatchDog Timer
1
TO,PD
GOTO
k
Desvia para o endereço representado por “k”
2
-
IORLW
k
Operação “OU” entre o valor “k” e o registrador
W
1
-
MOVLW
k
Move o valor “k” para o registrador W
1
-
RETFIE
-
Retorno de uma interrupção
2
-
RETLW
k
Retorno de uma sub-rotina com valor “k” no
registrador W
2
-
RETURN
-
Retorno de uma sub-rotina
2
-
SLEEP
-
Entra em modo “Standby”
1
TO,TP
SUBLW
k
Subtraí o valor “k” do registrador W
1
C,DC,Z
XORLW
k
Operação “OU Exclusivo” entre o valor “k” e o
registrador W
1
Z

Documentos relacionados

Introdução a família de microcontroladores PIC

Introdução a família de microcontroladores PIC microcontroladores PIC como, memórias, arquiteturas, formato das instruções, registradores etc... Lets Go... É no ano de 1969 que uma equipa de engenheiros japoneses pertencentes à companhia BUSICO...

Leia mais