SlideShare ist ein Scribd-Unternehmen logo
1 von 81
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Curso de Introdução ao
Microcontrolador PIC
Microchip
Carlos Alberto Cunha
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Pré-requisitos: Conhecimentos básicos em Eletrônica Digital e Analógica
Abordagem:
 Conceitos básicos
 A pergunta que não quer calar: PIC ou 8051?
 Arquitetura Harvard RISC x CISC
 O PIC16F84:
 Características, Pinagem
 Organização das memórias:
 Memória de programa, Memória de dados
 Vetores, Pilha (Stack), Registradores
 Introdução às Interrupções
 Bits de Configuração, Circuitos de Clock e Reset
 Introdução ao Assembler do PIC - SET de Instruções
 Introdução ao MPLAB
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Conceitos:
 Microcontrolador: É um computador dentro de um circuito integrado. Devido à
evolução tecnológica e à miniaturização é possível integrar num único chip todos os
componentes de um computador. Podemos defini-lo como um chip dotado de uma
“inteligência programável”, embora seja limitada a quantidade de informações e
instruções que pode executar, normalmente as limitações de aplicações são limitações
da imaginação, criatividade e experiência do projetista e programador.
 Microprocessador x Microcontrolador: Um microprocessador é um circuito muito
complexo, em forma de circuito integrado, que pode conter entre alguns milhares (Z80)
até 7 milhões de transistores (Pentium II), constituindo os mais diversos circuitos
lógicos. O microcontrolador integra num único componente os três elementos
principais na arquitetura de um computador: CPU, memória e I/O.
 I/O: Pinos físicos de entrada ou saída de dados para ou proveniente do mundo
exterior, podem ser digitais ou analógicas.
 Memória: Registros físicos onde são armazenados os dados e programas, os
microcontroladores normalmente possuem duas: Memória de dados e Memória de
programa, alguns microcontroladores possuem ainda EEPROM.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 A pergunta que não quer calar: PIC ou 8051?
Todo iniciante na programação de microcontroladores enfrenta um dilema na escolha
de uma linha para adoção e dedicação, há defensores ferrenhos de todos os lados: 8051, PIC,
AVR, COP, Hitachi e muitos outros.
É necessário admitir que a linha base da Microchip PIC (Linhas 12, 16 e 17)
apresentam algumas limitações em relação ao 8051 devido ao número reduzido de instruções, por
exemplo, operações aritméticas de multiplicação e divisão não estão contempladas no SET de
instruções do PIC, caso se necessite dessas operações, elas deverão ser implementadas através de
algoritmos e sub-rotinas.
Contudo podemos apontar algumas vantagens da família Microchip:
 Utiliza Arquitetura Harvard - Memória e Barramentos separados para dados e programas.
 Registradores de propósitos gerais, conectados diretamente a ULA.
 Timer/counters flexíveis, com prescaler e modos de comparação.
 Interrupções internas e externas.
 Watchdog Timer programável com oscilador interno.
 Instruções executadas em dois estágios de pipeline, enquanto uma instrução está sendo
executada, o pre-fetch da próxima instrução na memória de programas é realizado.
 Todas as instruções são single word.
 Bastante flexibilidade na configuração das I/Os e pinos com funções multiplexadas.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Arquitetura Harvard RISC x CISC
 CISC (Complex Instruction Set Computers)
 RISC (Reduced Instruction Set Computers)
Um CISC tende a ter um grande número de instruções, cada uma executando uma
permutação diferente da mesma operação.
Um RISC tem um número mínimo de instruções que permite ao utilizador desenhar as
suas próprias instruções, em vez de usar as que o desenhador do processador oferece.
Como resultado de um pedido do governo dos EUA, as Universidades de Princeton e de Harvard
criaram arquiteturas de computadores para serem usadas no cálculo das tabelas de artilharia
naval.
 CISC - Arquitetura de Princeton (Von Neumann)
Em 1945 Von Neumann estabeleceu as bases para a construção de computadores.
Desenhou uma máquina em que existia uma unidade de controle, capaz de decodificar um
conjunto de instruções. Um processador que realiza as operações que as instruções implicam. Um
bloco de memória para guardar as instruções dos programas e dos dados. Uma unidade de
interface de memória que é responsável pela gestão do acesso à memória. Um último bloco
permitia a transferência de informação aos periféricos exteriores.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
A vantagem é a simplicidade de acesso à memória. Possui um barramento único para
acessar a memória (endereços, dados e controle)
O grande inconveniente é o fato de a memória de programa e de dados serem comuns,
pois impede que se possa acessar ao programa e aos dados simultaneamente e muitas vezes o
tamanho dos dados é diferente do tamanho das instruções.
CPU
Memory
(Program
& Data)
 RISC - Arquitetura de Harvard
Existem duas memórias diferentes e independentes, uma para as instruções e outra
para os dados. Isto permite realizar acessos simultâneos a ambas as memórias. Esta arquitetura
tende a executar as instruções em menos ciclos de relógio, melhorando a taxa de uso dos
barramentos. As duas memórias podem também ter palavras de comprimento diferentes. No caso
do PIC16F84 a memória de programa é Flash e possui 1024 posições de 14 bits cada. A memória
de dados tem uma capacidade muito menor e um tamanho típico de 8 bits.
Memory
(Data)
CPU
Memory
(Program)
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Princenton x Harvard
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Pipeline de instruções em dois estágios:
 Fase de busca (fetch) – Procura-se o código binário da instrução na memória do
programa.
 Fase de execução – Interpreta-se o código, buscam-se os operandos e executa-se a
operação.
Enquanto executa a fase de execução de uma instrução, executa a fase de busca da instrução
seguinte. Cada uma das fases é realizada em 4 ciclos de relógio, porém as instruções de
salto demoram 8 ciclos de relógio.
Desta forma consegue-se executar cada instrução em quatro ciclos de relógio.
Em um PIC16F84 a 4Mhz, o período de um ciclo de clock é (1/4.000.000) = 0.25us, logo, o
tempo de execução de uma instrução comum é 4*0.25us = 1us e de uma instrução com salto é
8*0.25us = 2us.
Pipeline de instruções sobrepõe no tempo a busca e a execução de instruções, fazendo com que a
execução destas seja em “single cicle”.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Relação entre o sinal de clock e o ciclo de instrução:
Exemplo de execução de uma instrução:
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 O PIC16F84
 Fabricado com a tecnologia CMOS
 Capaz de trabalhar até 10 Mhz. PIC16F84A Capaz de trabalhar até 20 Mhz
 Pequeno, só tem 18 pernas devido à multiplexação de função dos pinos.
 Barato. O PIC16F84A custa aproximadamente R$7,00.
 Memória de programa de 1K palavras de 14 bits FLASH, em que em cada uma cabe uma
instrução. Pode ser regravada cerca de 10.000 vezes com toda a segurança
 Memória de dados RAM de 68 Bytes
 Memória de dados EEPROM de 64 Bytes, não volátil
 8 níveis de stack (pilha)
 35 instruções de 14 bits
 Tempo de execução das instruções normais: 4xTosc
 Tempo de execução das instruções de salto: 8xTosc
 4 tipos de interrupções (External RB0/INT pin, TMR0 timer overflow, PORTB<7:4>
interrupt-on-change, Data EEPROM write complete)
 13 linhas de entradas/saída digitais
 1 timer
 1 watch-dog
 Alimentação de 2V a 6 V
 Gravação de 12V a 14V
 Encapsulamento DIP de 18 pernas (SOIC)
 Proteção de código , SLEEP, PWRT
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Pinagem do PIC16F84
 RA0-RA4 – PORTA
 RB0-RB7 – PORTB
 MCLR – Master Clear
 OSC1/CLKIN – Conexão do oscilador
externo ou entrada de clock
 OSC2/CLKOUT – Conexaõ do oscilador
externo ou saída de clock
 RA4/TOCKI – I/O RA4 ou entrada de
clock externo para contador TMR0.
RB0/INT – I/O RB0 ou entrada para
interrupção externa
 VDD – Alimentação +5V (2-6V)
 VSS – Terra do CI
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Arquitetura do PIC16F84
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Organização da memória de programa do PIC 16F84
 O PIC16F84 dispõe de um contador de programa
com 13 bits capaz de endereçar 8K posições de
memória de 14 bits. Neste µC só se encontra
implementado 1K com endereços de 0000h a 03FFh.
 A estrutura de stack apresenta um máximo de 8
níveis o que impõe uma limitação em termos de
chamadas a subrotinas dentro de outras subrotinas.
O vetor de reset corresponde à posição de memória
0000h enquanto que o vetor de interrupção se
encontra na posição 0004h.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Organização da memória de dados do PIC 16F84
 A memória de dados do 16F84 encontra-se dividida
em duas áreas. A primeira é a área correspondente aos
Registros de Função Especial (SFR) enquanto que a
segunda diz respeito aos Registros de Uso Geral. Os
SFRs são utilizados para o controle do µC.
 Uma das particularidades desta memória é a sua
divisão em dois Bancos (Banco 0 e Banco 1) sendo o
acesso a cada um destes bancos controlado a partir do
bit 5 do registro STATUS (RP0).
 No que diz respeito aos registros de uso geral, o
banco 1 destes registos encontra-se mapeado no banco
0 o que quer dizer que qualquer acesso ao banco 1 é
feito na realidade sobre o banco 0.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Registros de Uso Geral
Cada registro de uso geral tem uma largura de 8 bits e pode ser acedido diretamente ou
indiretamente através do registro FSR (ver mais à frente).
 Registros de Função Especial
Os Registros de Função Especial são utilizados pelo CPU e pelos periféricos para o controle do
µC. Estes registros são implementados em RAM estática.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Registro STATUS
O registro STATUS contém as flags ligadas à ALU, os flags de RESET e os bits de seleção
do banco da memória de dados.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Registro OPTION_REG
Trata-se de um registro que permite escrita e leitura e que contém vários bits de controle para a
configuração do divisor de frequência (prescaler) do TMR0 / WDT, da interrupção externa
INT, do TMR0 e das polarizações (pull-ups) do PORTB.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Registro INTCON
O registro INTCON contém os diferentes bits que permitem configurar o sistema de interrupções
(enable /disable) e os flags de pedido de interrupção. Este registro pode ser lido ou escrito.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Registros PCL e PCLATH
O contador de programa (PC) especifica o endereço da instrução a ser pesquisada (‘fetch’) da
memória de programa para ser executada. No PIC16F84 o PC tem uma largura de 13 bits,
estando os 8 bits menos significativos no registro PCL. Este registro pode ser lido ou escrito por
software. O byte mais significativo do PC é designado por PCH e contém os bits 12:8 do
contador de programa. Este registro não pode ser escrito ou lido diretamente. Todas as operações
que seja necessário efetuar sobre ele são feitas indiretamente sobre o registro PCLATH.
 STACK
A estrutura de Pilha (stack) implementada no PIC16F84 permite a ocorrência de combinações de
até 8 chamadas de subrotinas ou interrupções, permitindo armazenar os respectivos endereços de
retorno. A utilização desta estrutura é da exclusiva responsabilidade da unidade de controle do
µC, não havendo por isso qualquer instrução de software que a permita manipular. Como possui
8 níveis de profundidade (8 deep level Stack), significa que se forem chamadas 8 subrotinas uma
dentro da outra, a chamada de uma nona subrotina fará com que o endereço de retorno da
primeira seja definitivamente perdida (memória tipo FILO).
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Endereçamento indireto: registros INDF e FSR
O registro INDF (endereço 00h / 80H) não é um registro físico. O acesso a este registro (leitura
ou escrita) conduz realmente ao registro cujo endereço se encontra no registro FSR. Este último
registro é o ponteiro para as operações com endereçamento indireto.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Periféricos de Interfaceamento
 Timers/Counters;
 Watchdog timers (WDT);
 On-chip Oscillator Start-up Timer (OST)/ Power-up Timer (PWRT)
 Portas paralelas
 Coversores A/D
 Módulos CCP (Capture/Compare/PWM)
 Módulos I2C
 Módulos SSP (Synchronous serial port)
 Addressable USART
 Conversor A/D
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Temporizador / Contador TMR0
O periférico TMR0 apresenta as seguintes características principais:
• Funções de temporizador ou contador de 8 bits
• Possibilidade de leitura e de escrita do registro
• Possibilidade de seleção de relógio interno ou externo
• Divisor de freqüência de 8 bits programável por software (Prescaler)
• Permite gerar uma interrupção quando ocorrer um overflow (passagem de FFh a 00h)
O Timer0 pode funcionar como temporizador ou como contador. A seleção do modo de
funcionamento é feita através do bit T0CS ( Timer0 Clock Sourse, bit 5 do OPTION_REG).
No modo temporizador, T0CS=0, o registro TMR0 incrementa em cada ciclo de instrução
desde que não seja utilizado o Prescaler (divisor de freqüência).
No modo contador, T0CS=1, o registro TMR0 incrementa em cada borda de subida ou de
descida do sinal presente no pino exterior RA4/T0CKI. O bit T0SE (Timer0 Source Edge, bit 4
do OPTION_REG), determina se será na borda de subida ou descida: T0SE=0 TOSE=1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Prescaler
O prescaler é um divisor de freqüência programável e é constituído por um contador de 8 bits
associado a um multiplexador de 8÷1, como se mostra na figura 16. Este prescaler é partilhado
pelo Timer0 e pelo Watchdog Timer, não podendo contudo ser usado simultaneamente pelos dois
periféricos. Sendo assim, a atribuição do prescaler ao Timer0 significa que o Watchdog Timer
funciona sem prescaler, e vice-versa.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Watchdog Timer (WDT)
 WDT permite a recuperação funcional da CPU em caso de perda do fluxo de execução (ex.
loops infinitos)
Overflow do WDT reseta o chip
 O temporizador Watchdog é constituído por um oscilador interno RC, não necessitando de
quaisquer outros componentes externos. Este oscilador é totalmente independente do
oscilador do µC. Isto quer dizer que, mesmo que o oscilador principal não funcione (por
exemplo no caso do µC se encontrar no estado de SLEEP), o WDT continuará em
funcionamento.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Portas de I/O
Alguns dos pinos das portas de I/O apresentam funções alternativas (Multiplexadas) para a
utilização com alguns periféricos do µC. Geralmente, quando essas funções são utilizadas, o
respectivo bit não pode ser utilizado como I/O.
 PORTA e TRISA
O registro PORTA implementa uma porta de I/O bidirecional com 5 bits, estando ligado aos
pinos exteriores do µC, RA0:RA4. O registro onde se define, para cada bit, se se trata de entrada
ou saída de dados é o TRISA.
Colocando um bit do registro TRISA a 1 permite programar o respectivo bit do PORTA como
entrada de dados. A escrita de um 0 num bit do registro TRISA programa o respectivo bit do
PORTA como saída de dados. Após uma operação de reset, qualquer um dos bits de I/O fica
programado como entrada de dados.
A leitura do registro PORTA permite fazer a leitura do estado dos pinos exteriores enquanto
que uma operação de escrita sobre o mesmo registro coloca os valores de escrita nas ‘Data
Latch’ de saída.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
RA0 – RA3 RA4
Exemplo de Configuração da PORTA
clrf PORTA ;Zera o ‘Data Latch’ da PORTA
bsf STATUS,RP0 ;Muda para o banco 1
movlw b’00011100’ ;Configura pinos RA0 e RA1 como saídas
movwf TRISA ;e RA2, RA3 e RA4 como entradas
bcf STATUS,RP0 ;Volta para o banco 0
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 PORTB e TRISB
PORTB é uma porta bidirecional de 8 bits que, como acontece com o PORTA, dispõe também de
um registro TRISB para a configuração dos bits como entrada ou saída de dados.
Cada um dos bits do PORTB dispõe de um pull-up interno que é controlado pelo bit 7 do
registro OPTION (RBPU). Quando este bit é igual a 0, todos os pull-ups estão ativados. A
configuração de um bit como saída de dados provoca automaticamente a desativação do
respectivo pull-up. Quando é feito o power-on reset, os pull-ups são desativados.
Quatro dos bits do PORTB, RB7:RB4, permitem gerar uma interrupção sempre que há uma
mudança de estado em qualquer um deles, desde que estejam programados como entrada de
dados. Os bits de entrada são permanentemente comparados com o último valor lido.
Desde que seja encontrada uma diferença em qualquer um desses bits, é ativado o flag RBIF
de pedido de interrupção.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
RB0 – RB3 RB4 – RB7
Exemplo de Configuração da PORTB
clrf PORTB ;Zera o ‘Data Latch’ do PORTB
bsf STATUS,RP0 ;Muda para o banco 1
movlw b’11110000’ ;Configura pinos RB0 a RB3 como saídas
movwf TRISA ;e RA4 a RA7 como entradas
bcf STATUS,RP0 ;Volta para o banco 0
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Modo SLEEP
 Execução da instrução Sleep;
 A CPU entra no modo de Power down;
Consumo de 60uA (7mA operação normal)
 Características:
 WDT é resetado, mas continua operando;
Bit PD é sinalizado (Status Register);
Oscilador interno é desligado;
TMR0 desligado
 Modos de saída do estado sleep:
Reset externo (MCLR);
Time-out do WDT;
Interrupção externa (RB0/INT);
Interrupção de fim de escrita na EEPROM
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Interrupções
O PIC16F84A dispõe de um único nível de interrupção com 4 fontes de interrupção:
 Interrupção externa através do pino RB0/INT
 Interrupção provocada pelo overflow do TMR0
 Interrupção provocada pela mudança de estado do PORTB (RB7:RB4)
 Interrupção provocada pelo fim da operação de escrita na E2PROM de dados
O registro de controle das interrupções (INTCON) contém as diferentes flags de pedido de
interrupção e os bits que permitem ativar ou desativar individualmente ou globalmente as
diferentes interrupções.
Na situação de reset, todos os bits correspondentes à autorização individual ou global das
interrupções encontram-se desativados (T0IE = INTE = RBIE = EEIE = GIE = 0).
Quando o µC responde a um pedido de interrupção, o bit GIE é colocado em 0 para não
permitir mais nenhuma interrupção, o endereço de retorno é colocado na stack e o PC é
carregado com o valor 0004h que é o vetor de interrupção para este µC.
A rotina de serviço de qualquer interrupção deve terminar sempre com a instrução RETFIE
(RETurn From Interrupt Enable) que, além de fazer o sistema retornar ao programa no local
onde se verificou a interrupção, coloca também GIE = 1 permitindo de novo o acesso dos
periféricos às interrupções.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Gerador de relógio – oscilador
O circuito do oscilador é usado para fornecer um relógio (clock), ao microcontrolador. O clock é
necessário para que o microcontrolador possa executar um programa ou as instruções de um
programa.
 Tipos de osciladores
O PIC16F84 pode trabalhar com quatro configurações de oscilador. Uma vez que as
configurações com um oscilador de cristal e circuito RC são as mais freqüentemente usadas, elas
são as únicas que vamos mencionar aqui.
Quando o oscilador é de cristal, a designação da configuração é de XT, se o oscilador for
constituído apenas por uma associação em série de um resistor e um capacitor, tem a designação
RC. Isto é importante, porque há necessidade de se optar entre os diversos tipos de oscilador,
quando se escolhe um microcontrolador, e no caso do PIC essa opção é configurada via software.
 Oscilador XT
O oscilador de cristal está contido num envólucro de metal com dois pinos onde foi escrita a
frequência a que o cristal oscila. Dois capacitores cerâmicos devem ligar cada um dos pinos do
cristal à massa. Quando o cristal e os capacitores estão contidos no mesmo encapsulamento, é
chamado de ressonador cerâmico. Este elemento tem três pinos com o pino central ligado à
massa e os outros dois pinos ligados aos pinos OSC1 e OSC2 do microcontrolador.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Reset
O reset é usado para pôr o microcontrolador num estado conhecido. Na prática isto significa
que às vezes o microcontrolador pode comportar-se de um modo inadequado em determinadas
condições indesejáveis. A fim de que o seu funcionamento normal seja reestabelecido, é preciso
fazer o reset do microcontrolador, isto significa que todos os seus registos vão conter valores
iniciais pré-definidos, correspondentes a uma posição inicial. O reset não é usado somente
quando o microcontrolador não se comporta da maneira que nós queremos, mas, também pode
ser usado, quando ocorre uma interrupção por parte de outro dispositivo, ou quando se quer que o
microcontrolador esteja pronto para executar um programa .
O microcontrolador PIC16F84, admite várias formas de reset:
a) Reset quando se liga a alimentação, POR (Power-On Reset)
b) Reset durante o regime de SLEEP (dormir).
c) Reset durante o funcionamento normal, quando se põe a nível lógico baixo o pino MCLR .
d) Reset quando o temporizador do watchdog (WDT) transborda (passa para 0 depois de atingir o
valor máximo).
e) Reset quando o temporizador do watchdog (WDT) transborda estando no regime de SLEEP.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Oscilador RC
Em aplicações em que a precisão da temporização não é um fator crítico, o oscilador RC torna-se
mais econômico. A frequência de ressonância do oscilador RC depende da tensão de
alimentação, dos valores de RC e da temperatura de funcionamento.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Set de instruções Completo
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Sintaxe Descrição Microchip Operação equivalente
ADDLW k Add Literal and W W = W + k
ADDWF f,d Add W and f d = W + f (onde d pode ser W ou f)
ANDLW k AND Literal with W W = W AND k
ANDWF f,d AND W with f d = W AND f (onde d pode ser W ou f)
BCF f,b Bit Clear f f(b) = 0
BSF f,b Bit Set f f(b) = 1
BTFSC f,b Bit Test f, Skip if Clear f(b) = 0 ? Se é, salta uma instrução
BTFSS f,b Bit Test f, skip if Set f(b) = 1 ? Se é, salta uma instrução
CALL k Subroutine Call Chamada a uma subrotina no endereço k
CLRF f Clear f f = 0
CLRW Clear W Register W = 0
CLRWDT Clear Watchdog Timer Watchdog timer = 0
COMF f,d Complement f d = not f (onde d pode ser W ou f)
DECF f,d Decrement f d = f -1 (onde d pode ser W ou f)
DECFSZ f,d Decrement f, Skip if 0 d = f -1 (onde d pode ser W ou f) se d = 0 salta
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Sintaxe Descrição Microchip Operação equivalente
GOTO k Go to address salta para o endereço k
INCF f,d Increment f d = f +1 (onde d pode ser W ou f)
INCFSZ f,d Increment f, Skip if 0 d = f +1 (onde d pode ser W ou f) se d = 0 salta
IORLW k Inclusive OR Literal with W W = W OR k
IORWF f,d Inclusive OR W with f d = f OR W (onde d pode ser W ou f)
MOVLW k Move literal to W W = k
MOVF f,d Move f d = f (onde d pode ser W ou f)
MOVWF f Move W to f f = W
NOP No Operation Nenhuma operação
OPTION Load Option Register OPTION = W
RETFIE Return from Interrupt Retorna de uma interrupt handler
RETLW k Return Literal to W Retorna de uma subrotina com W = k
RETURN Return from Subroutine Retorna de uma subrotina
RLF f,d Rotale Left f through Carry d = f << 1 (onde d pode ser W ou f)
RRF f,d Rotale Right f through Carry d = f >> 1 (onde d pode ser W o f)
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Sintaxe Descrição Microchip Operação equivalente
SLEEP Go into Standby Mode Coloca o PIC em standby
SUBLW k Subtract W from Literal W = k - W
SUBWF f,d Subtract W from f d = f - W (onde d pode ser W ou f)
SWAPF f Swap f f = Swap do bit 0123 com 4567 de f
TRIS f Load TRIS Register TRIS di f = W
XORLW k Exclusive OR Literal with W W = W XOR k
XORWF f,d Exclusive OR W with f d = f XOR W (onde d pode ser W ou f)
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - ADDLWInstruções - ADDLW
ADDLW Soma um literal a W
Sintaxe: [label] ADDLW k
Operandos: 0 k 255
Operação: : (W) + (k)==> (W)
Flags afectadas: C, DC, Z
Código OP: 11 111x kkkk kkkk
Descrição: Soma o conteúdo do registo W e k, guardando o resultado em
W.
Exemplo: ADDLW 0xC2
Antes: W = 0x17
Depois: W = 0xD9
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - ADDWFInstruções - ADDWF
ADDWF W + F
Sintaxe: [label] ADDWF f,d
Operandos: d [0,1], 0 f 127
Operação: (W) + (f) ==> (dest)
Flags afectadas: C, DC, Z
Código OP: 00 0111 dfff ffff
Descrição: Soma o conteúdo do registo W com o registo f. Se d é 0, o
resultado armazena-se em W, Se d é 1 armazena-se em f.
Exemplo: ADDWF REG,0
Antes: W = 0x17, REG = 0xC2
Depois: W = 0xD9, REG = 0xC2
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - ANDLWInstruções - ANDLW
ANDLW W AND literal
Sintaxe: [label] ANDLW k
Operandos: 0 k 255
Operação: : (W) AND (k)==> (W)
Flags afectadas: Z
Código OP: 11 1001 kkkk kkkk
Descrição: Realiza a operação lógica AND entre o conteúdo do registo W
e k, guardando o resultado em W.
Exemplo: ADDLW 0xC2
Antes: W = 0x17
Depois: W = 0xD9
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - BCFInstruções - BCF
BCF Apaga um bit
Sintaxe: [label] BCF f,b
Operandos: 0 f 127, 0 b 7
Operação: : 0 ==> (f<b>)
Flags afectadas: nenhum
Código OP: 01 00bb bfff ffff
Descrição: Apaga o bit b do registo f
Exemplo: : BCF REG,7
Antes: REG = 0xC7
Depois: REG = 0x47
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - BSFInstruções - BSF
BSF Activa um bit
Sintaxe: [label] BSF f,b
Operandos: 0 f 127, , 0 b 7
Operação: 1 ==> (f<b>)
Flags afectadas: nenhum
Código OP: 01 01bb bfff ffff
Descrição: Activa o bit b do registo f
Exemplo: BSF REG,7
Antes: REG = 0x0A
Depois: REG = 0x8A
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - BTFSCInstruções - BTFSC
BTFSC Testa o bit e salta se for 0
Sintaxe: [label] BTFSC f,d
Operandos: d [0,1], 0 f 127
Operação: Salto Se (f<b>) = 0
Flags afectadas: nenhum
Código OP: 01 10bb bfff ffff
Descrição: Se o bit b do registo f é 0, salta uma instrução e continua
com a execução. Em caso de salto, ocupará dois ciclos de relógio.
Exemplo: BTFSC REG,6
GOTO NO_ES_0
SI_ES_0 instrução
NO_ES_0 instrução
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - BTFSSInstruções - BTFSS
BTFSS Testa o bit e salta se for 1
Sintaxe: [label] BTFSS f,d
Operandos: d [0,1], 0 f 127
Operação: Salto Se (f<b>) = 1
Flags afectadas: nenhum
Código OP: 01 11bb bfff ffff
Descrição: Se o bit b do registo f é 1, salta uma instrução e continua
com a execução. Em caso de salto, ocupará dois ciclos de relógio.
Exemplo: BTFSS REG,6
GOTO NO_ES_0
SI_ES_0 instrução
NO_ES_0 instrução
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - CALLInstruções - CALL
CALL Salta para subrotina
Sintaxe: [label] CALL k
Operandos: 0 k 2047
Operação: PC ==> pilha; k ==> PC
Flags afectadas: nenhum
Código OP: 10 0kkk kkkk kkkk
Descrição: Salta para uma subrotina. A parte baixa de k é carregada em
PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relógio.
Exemplo: ORIGEM CALL DESTINO
Antes: PC = ORIGEM
Depois: PC = DESTINO
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - CLRFInstruções - CLRF
CLRF Apaga um registo
Sintaxe: [label] CLRF f
Operandos: 0 f 127
Operação: : 0x00 ==> (f), 1 ==> Z
Flags afectadas: Z
Código OP: 00 0001 1fff ffff
Descrição: O registo f é carregado com 0x00. A flag Z é activada.
Exemplo: : CLRF REG
Antes: REG = 0x5A
Depois: REG = 0x00, Z = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - CLRWInstruções - CLRW
CLRW Apaga o registo W
Sintaxe: [label] CLRW
Operandos: nenhum
Operação: : 0x00 ==> W, 1 ==> Z
Flags afectadas: Z
Código OP: 00 0001 0xxx xxxx
Descrição: O registo de trabalho W é carregado com 0x00. A flag Z é
activada.
Exemplo: : CLRW
Antes: W = 0x5A
Depois: W = 0x00, Z = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - CLRWDTInstruções - CLRWDT
CLRWDT Apaga o WDT
Sintaxe: [label] CLRWDT
Operandos: nenhum
Operação: 0x00 ==> WDT, 1 ==> /TO
1 ==> /PD
Flags afectadas: /TO, /PD
Código OP: 00 0000 0110 0100
Descrição: Esta instrução apaga tanto o WDT como o seu preescaler. Os
bits /TO e /PD do registo de estado são colocados a 1.
Exemplo: : CLRWDT
Depois: Contador WDT = 0,
Preescales WDT = 0,
/TO = 1, /PD = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - COMFInstruções - COMF
COMF Complemento de f
Sintaxe: [label] COMF f,d
Operandos: d [0,1], 0 f 127
Operação: : (/ f), 1 ==> (dest)
Flags afectadas: Z
Código OP: 00 1001 dfff ffff
Descrição: O registo f é complementado. A flag Z é activada se o
resultado é 0. Se d é 0 o resultado é armazenado em W. Se d é 1 é
armazenado em f.
Exemplo: : COMF REG,0
Antes: REG = 0x13
Depois: REG = 0x13, W = 0XEC
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - DECFInstruções - DECF
DECF Decremento de f
Sintaxe: [label] DECF f,d
Operandos: d [0,1], 0 f 127
Operação: : (f ) - 1 ==> (dest)
Flags afectadas: Z
Código OP: 00 0011 dfff ffff
Descrição: Decrementa conteúdo de f. Se d é 0, o resultado é
armazenado em W, Se d é 1 é armazenado em f.
Exemplo: : DECF CONT,1
Antes: CONT = 0x01, Z = 0
Depois: CONT = 0x00, Z = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - DECFSZInstruções - DECFSZ
DECFSZ Decremento e salta se 0
Sintaxe: [label] DECFSZ f,d
Operandos: d [0,1], 0 f 127
Operação: (f) -1 ==> d; Salto Se R=0
Flags afectadas: nenhum
Código OP: 00 1011 dfff ffff
Descrição: Decrementa o conteúdo do registo f. Se d é 0, o resultado é
armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0
salta uma instrução e ocuparia 2 ciclos.
Exemplo: DECFSZ REG,0
GOTO NO_ES_0
SI_ES_0 instrução
NO_ES_0 Salta instrução anterior
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - GOTOInstruções - GOTO
GOTO Salto incondicional
Sintaxe: [label] GOTO k
Operandos: 0 k 2047
Operação: k ==> PC <8:0>
Flags afectadas: nenhum
Código OP: 10 1kkk kkkk kkkk
Descrição: Trata-se de um salto incondicional. A parte baixa de k é
carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relógio.
Exemplo: ORIGEM GOTO DESTINO
Antes: PC = ORIGEM
Depois: PC = DESTINO
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - INCFInstruções - INCF
INCF Incremento de f
Sintaxe: [label] INCF f,d
Operandos: d [0,1], 0 f 127
Operação: : (f ) + 1 ==> (dest)
Flags afectadas: Z
Código OP: 00 1010 dfff ffff
Descrição: Incrementa o conteúdo de f. Se d é 0, o resultado é
armazenado em W. Se d é 1 é armazenado em f.
Exemplo: : INCF CONT,1
Antes: CONT = 0xFF, Z = 0
Depois: CONT = 0x00, Z = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - INCFSZInstruções - INCFSZ
INCFSZ Incremento e salta se 0
Sintaxe: [label] INCFSZ f,d
Operandos: d [0,1], 0 f 127
Operação: (f) -1 ==> d; Salto Se R=0
Flags afectadas: nenhum
Código OP: 00 1111 dfff ffff
Descrição: Incrementa o conteúdo do registo f. Se d é 0, o resultado é
armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0
salta a instrução seguinte, em cujo caso demoraria 2 ciclos.
Exemplo: INCFSC REG,0
GOTO NO_ES_0
SI_ES_0 instrução
NO_ES_0 Salta instrução anterior
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - IORLWInstruções - IORLW
IORLW W OR literal
Sintaxe: [label] IORLW k
Operandos: 0 k 255
Operação: : (W) OR (k)==> (W)
Flags afectadas: Z
Código OP: 11 1000 kkkk kkkk
Descrição: Realiza a operação lógica OR entre o conteúdo do registo W
e k, guardando o resultado em W.
Exemplo: IORLW 0x35
Antes: W = 0x9A
Depois: W = 0xBF
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - IORLWFInstruções - IORLWF
IORWF W OR F
Sintaxe: [label] IORWF f,d
Operandos: d [0,1], 0 f 127
Operação: (W) OR (f) ==> (dest)
Flags afectadas: Z
Código OP: 00 0100 dfff ffff
Descrição: Realiza a operação lógica OR entre os registos W e f. Se d
é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f.
Exemplo: : IORWF REG,0
Antes: W = 0x91, REG = 0x13
Depois: W = 0x93, REG = 0x13
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - MOVLWInstruções - MOVLW
MOVLW Carregar literal em W
Sintaxe: [label] MOVLW f
Operandos: 0 f 255
Operação: (k) ==> (W)
Flags afectadas: nenhum
Código OP: 11 00xx kkkk kkkk
Descrição: O literal k passa ao registo W.
Exemplo: MOVLW 0x5A
Depois: REG = 0x4F, W = 0x5A
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - MOVFInstruções - MOVF
MOVF Mover f para W
Sintaxe: [label] MOVF f,d
Operandos: d [0,1], 0 f 127
Operação: (f) ==> (dest)
Flags afectadas: Z
Código OP: 00 1000 dfff ffff
Descrição: O conteúdo do registo f é movido para o destino dependendo
de d. Se d é 0, o resultado é armazenado em W. Se d é 1 é
armazenado em f. Quando d é 1 permite verificar o registo, já que
afecta a Z.
Exemplo: MOVF REG,0
Depois: W = REG
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - MOVWFInstruções - MOVWF
MOVWF Mover W para f
Sintaxe: [label] MOVWF f
Operandos: 0 f 127
Operação: W ==> (f)
Flags afectadas: nenhum
Código OP: 00 0000 1fff ffff
Descrição: O conteúdo do registo W passa para o registo f.
Exemplo: MOVWF REG,0
Antes: REG = 0xFF, W = 0x4F
Depois: REG = 0x4F, W = 0x4F
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - NOPInstruções - NOP
NOP Não operação
Sintaxe: [label] NOP
Operandos: nenhum
Operação: No operar
Flags afectadas: nenhum
Código OP: 00 0000 0xx0 0000
Descrição: Não realiza nenhuma operação. Na realidade consome um ciclo
de instrução sem fazer nada.
Exemplo: NOP
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - RETFIEInstruções - RETFIE
RETFIE regresso de interrupção
Sintaxe: [label] RETFIE
Operandos: nenhum
Operação: : 1 ==> GIE; TOS==>PC
Flags afectadas: nenhum
Código OP: 00 0000 0000 1001
Descrição: o PC é carregado com o conteúdo de cima da pilha (TOS):
direcção de regresso. Consome 2 ciclos. As interrupções voltam a
ser habilitadas.
Exemplo: : RETFIE
Depois: PC = direcção de regresso
GIE = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - RETLWInstruções - RETLW
RETLW regresso de uma subrotina, com o valor em W
Sintaxe: [label] RETLW k
Operandos: 0 k 255
Operação: : (k)==> (W); TOS==>PC
Flags afectadas: nenhum
Código OP: 11 01xx kkkk kkkk
Descrição: O registo W é carregado com a constante k. O PC é carregado
com o conteúdo de cima da pilha (TOS): direcção de regresso.
Consome 2 ciclos.
Exemplo: : RETLW 0x37
Depois: PC = direcção de regresso
W = 0x37
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - RETURNInstruções - RETURN
RETURN regresso de rotina
Sintaxe: [label] RETURN
Operandos: nenhum
Operação: : TOS ==> PC
Flags afectadas: nenhum
Código OP: 00 0000 0000 1000
Descrição: O PC é carregado com o conteúdo de cima da pilha (TOS):
direcção de regresso. Consome 2 ciclos.
Exemplo: : RETURN
Depois: PC = direcção de regresso
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - RLFInstruções - RLF
RLF roda f para a esquerda
Sintaxe: [label] RLF f,d
Operandos: d [0,1], 0 f 127
Operação: Rotação a a esquerda
Flags afectadas: C
Código OP: 00 1101 dfff ffff
Descrição: O conteúdo de f é rodado para a esquerda. O bit de menor
peso de f passa para o carry (C), e o carry é colocado no de maior
peso. Se d é 0, o resultado é armazenado em W. Se d é 1 é
armazenado em f.
Exemplo: RLF REG,0
Antes: REG = 1110 0110, C = 0
Depois: REG = 1110 0110,
W = 1100 1100, C = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - RRFInstruções - RRF
RRF roda f para a direita
Sintaxe: [label] RRF f,d
Operandos: d [0,1], 0 f 127
Operação: Rotação a a direita
Flags afectadas: C
Código OP: 00 1100 dfff ffff
Descrição: O conteúdo de f é rodado para a direita. O bit de menos
peso de f passa para o carry (C), e o carry é colocado no de maior
peso. Se d é 0, o resultado é armazenado em W. Se d é 1 é
armazenado em f.
Exemplo: RRF REG,0
Antes: REG = 1110 0110, C = 1
Depois: REG = 1110 0110,
W = 1111 0011, C = 0
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - SLEEPInstruções - SLEEP
SLEEP Modo baixo consumo
Sintaxe: [label] SLEEP
Operandos: nenhum
Operação: 0x00==>WDT, 1 ==> / TO
0 ==> WDT Preescaler, 0 ==> / PD
Flags afectadas: / PD, / TO
Código OP: 00 0000 0110 0011
Descrição: O bit de energia é colocado a 0, e a 1 o de descanso. O WDT
e o seu preescaler são apagados. o micro pára o oscilador, ficando
adormecido.
Exemplo: : SLEEP
Preescales WDT = 0,
/TO = 1, /PD = 1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - SUBLWInstruções - SUBLW
SUBLW Subtrai W ao literal
Sintaxe: [label] SUBLW k
Operandos: 0 k 255
Operação: ( k ) - (W) ==> (W)
Flags afectadas: Z, C, DC
Código OP: 11 110x kkkk kkkk
Descrição: Mediante o método do complemento para dois o conteúdo de W
é subtraído ao literal. O resultado é armazenado em W.
Exemplos: SUBLW 0x02
Antes:W=1,C=?. Depois: W=1, C=1
Antes:W=2,C=?. Depois: W=0, C=1
Antes:W=3,C=?.Depois:W=FF,C=0
(o resultado é negativo)
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - SUBLWFInstruções - SUBLWF
SUBWF Subtrai W ao f
Sintaxe: [label] SUBWF f,d
Operandos: d [0,1], 0 f 127
Operação: ( f ) - (W )==> (dest)
Flags afectadas: C, DC, Z
Código OP: 00 0010 dfff ffff
Descrição: Mediante o método do complemento para dois o conteúdo de W
é subtraído ao de f. Se d é 0, o resultado é armazenado em W. Se d
é 1 é armazenado em f.
Exemplos: SUBWF REG,1
Antes: REG = 0x03, W = 0x02, C = ?
Depois:REG=0x01, W = 0x4F, C=1
Antes: REG = 0x02, W = 0x02, C = ?
Depois:REG=0x00, W =0x02, C= 1
Antes: REG= 0x01, W= 0x02, C= ?
Depois:REG=0xFF, W=0x02, C= 0
(Resultado negativo)
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - SWAPFInstruções - SWAPF
SWAPF Troca de f
Sintaxe: [label] SWAPF f,d
Operandos: d [0,1], 0 f 127
Operação: : (f <3: 0>) (f <7:4>)
Flags afectadas: nenhum
Código OP: 00 1110 dfff ffff
Descrição: Os 4 bits de maior peso e os 4 de menor são trocados. Se d
é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f.
Exemplo: SWAPF REG,0
Antes: REG = 0xA5
Depois: REG = 0xA5, W = 0x5A
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - XORLWInstruções - XORLW
XORLW W XOR literal
Sintaxe: [label] XORLW k
Operandos: 0 k 255
Operação: : (W) XOR (k)==> (W)
Flags afectadas: Z
Código OP: 11 1010 kkkk kkkk
Descrição: Realiza a operação lógica XOR entre o conteúdo do registo W
e k, guardando o resultado em W.
Exemplo: : XORLW 0xAF
Antes: W = 0xB5
Depois: W = 0x1A
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
Instruções - XORLWInstruções - XORLW
XORWF W XOR F
Sintaxe: [label] XORWF f,d
Operandos: d [0,1], 0 f 127
Operação: (W) XOR (f) ==> (dest)
Flags afectadas: Z
Código OP: 00 0110 dfff ffff
Descrição: Realiza a operação lógica XOR entre os registos W e f. Se d
é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f.
Exemplo: : XORWF REG,0
Antes: W = 0xB5, REG = 0xAF
Depois: W = 0xB5, REG = 0x1A
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Esquema Eletrônico da Placa Experimental PICLAB1
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Bits de configuração
Os bits de configuração podem ser programados de maneira a selecionar diferentes tipos de
configuração do microcontrolador.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Diretivas de controle
#DEFINE Troca de uma porção de texto por outra
Sintaxe:
#define<nome> [< texto atribuído a nome > ]
Descrição:
De cada vez que a palavra <nome> aparece no programa, vai ser substituída por <texto atribuído
a nome>.
Exemplo1:
#DEFINE banck0 bcf STATUS,RP0 ;Seta BANCK0 de memória
#DEFINE banck1 bsf STATUS,RP0 ;Seta BANCK1 de memória
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
#INCLUDE Incluir um ficheiro adicional num programa
Sintaxe:
#include <<nome_do_ficheiro>>
#include “<nome_do_ficheiro>”
Descrição:
A aplicação desta diretiva faz com que um ficheiro completo seja copiado para o local em que a
diretiva “include” se encontra. Se o nome do ficheiro estiver entre aspas, estamos lidando com
um ficheiro do sistema, se não estiver entre aspas, mas sim entre os sinais < >, trata-se de um
ficheiro do utilizador. A diretiva “include”, contribui para uma melhor apresentação do programa
principal.
Exemplo:
#INCLUDE <P16F84A.INC> ;Arquivo Padrão Microchip para PIC16F84A
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
ORG Define o endereço a partir do qual o programa é armazenado na memória do
microcontrolador
Sintaxe:
<rótulo> org <valor>
Descrição:
Esta é a diretiva mais frequentemente usada. Com esta diretiva nós definimos em que parte na
memória de programa o programa vai começar.
Exemplo:
Inicio org 0x00
movlw 0xFF
movwf PORTB
Estas duas instruções a seguir à directiva 'org', são guardadas a partir do endereço 00.
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
END Fim do programa
Sintaxe:
end
Descrição:
No fim do programa, é necessário colocar a diretiva 'end', para que o tradutor do assembly
(assembler), saiba que não existem mais instruções no programa.
Exemplo:
.
.
movlw 0xFF
movwf PORTB
end
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
 Directivas de Dados
4.16 CBLOCK Definir um bloco para as constantes nomeadas
Sintaxe:
Cblock [< termo >]
<rótulo> [:<incremente>], <rótulo> [:<incremente>]......
endc
Descrição:
Esta directiva é usada para atribuir valores às constantes a seguir nomeadas. A cada termo
seguinte, é atribuído um valor superior em uma unidade ao anterior. No caso de <incremente>
estar preenchido, então é o valor de <incremente> que é adicionado à constante anterior.
O valor do parâmetro <termo>, é o valor inicial. Se não for dado, então, por defeito, é
considerado igual a zero.
Exemplo:
cblock 0x02
primeiro, segundo ; primeiro = 0x02, segundo = 0x03
terceiro ;terceiro = 0x04
endc
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica
Introdução aos MicrocontralodoresIntrodução aos Microcontralodores
PICPIC
__CONFIG Estabelecer os bits de configuração
Sintaxe:
__config<termo> ou __config <endereço>, <termo>
Descrição:
São definidos o tipo de oscilador, e a utilização do watchdog e do circuito de reset interno. Antes
de usar esta diretiva, tem que declarar o processador através da directiva PROCESSOR.
Exemplo:
__CONFIG _CP_OFF & _WDT_OFF & PWRTE_ON & _XT_OSC
PROCESSOR Definindo o modelo de microcontrolador
Sintaxe:
processor <tipo_de_microcontrolador>
Descrição:
Esta diretiva, estabelece o tipo de microcontrolador em que o programa vai correr.
Exemplo:
processor 16f84

Weitere ähnliche Inhalte

Was ist angesagt?

Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8RogerMasters
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timerMayara Mônica
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisFabio Souza
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelosdetectfelix
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladder15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladderelkbongg
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Thiago Oliveira
 
Material Auxiliar Para Curso BáSico Msp430 1 A 54
Material Auxiliar Para Curso BáSico Msp430   1 A 54Material Auxiliar Para Curso BáSico Msp430   1 A 54
Material Auxiliar Para Curso BáSico Msp430 1 A 54Texas Instruments
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadoresmiroslayer
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduinoRui Alves
 
Curso basico automatos programaveis dia 1
Curso basico   automatos programaveis dia 1Curso basico   automatos programaveis dia 1
Curso basico automatos programaveis dia 1Alcides Santos
 

Was ist angesagt? (20)

G20 arm
G20 armG20 arm
G20 arm
 
Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8Curso microcontroladores pic no mp lab 8
Curso microcontroladores pic no mp lab 8
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Microcontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas DigitaisMicrocontroladores PIC - Entradas e saídas Digitais
Microcontroladores PIC - Entradas e saídas Digitais
 
HC11
HC11HC11
HC11
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelos
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladder15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladder
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051
 
ARM
ARMARM
ARM
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemens
 
2 gravação
2 gravação2 gravação
2 gravação
 
Material Auxiliar Para Curso BáSico Msp430 1 A 54
Material Auxiliar Para Curso BáSico Msp430   1 A 54Material Auxiliar Para Curso BáSico Msp430   1 A 54
Material Auxiliar Para Curso BáSico Msp430 1 A 54
 
Energia - MSP430
Energia - MSP430Energia - MSP430
Energia - MSP430
 
Microcontroladores x microprocessadores
Microcontroladores x microprocessadoresMicrocontroladores x microprocessadores
Microcontroladores x microprocessadores
 
38698469 slides-arduino
38698469 slides-arduino38698469 slides-arduino
38698469 slides-arduino
 
Curso basico automatos programaveis dia 1
Curso basico   automatos programaveis dia 1Curso basico   automatos programaveis dia 1
Curso basico automatos programaveis dia 1
 

Andere mochten auch

Sptsnt apres bagé 2016
Sptsnt  apres bagé 2016Sptsnt  apres bagé 2016
Sptsnt apres bagé 2016SPIRITO SANTO
 
Desperdício de tecido na confecção: saiba como evitar
Desperdício de tecido na confecção: saiba como evitarDesperdício de tecido na confecção: saiba como evitar
Desperdício de tecido na confecção: saiba como evitaraudacesbrasil
 
Carolina fontoura da motta moda e comportamento atividade 1 1
Carolina fontoura da motta moda e comportamento atividade   1 1Carolina fontoura da motta moda e comportamento atividade   1 1
Carolina fontoura da motta moda e comportamento atividade 1 1carolina motta
 
A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...
A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...
A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...Pietro Santiago
 
Confecção de roupas esportivas
Confecção de roupas esportivasConfecção de roupas esportivas
Confecção de roupas esportivasHytalo Rafael
 
Mercado Classe A - IBMEC
Mercado Classe A - IBMECMercado Classe A - IBMEC
Mercado Classe A - IBMECErica Bamberg
 
Profissões de ontem e de hoje
Profissões de ontem e de hojeProfissões de ontem e de hoje
Profissões de ontem e de hojeSílvia Alves
 
Plano de negócios restaurante sabor cearense
Plano de negócios restaurante sabor cearensePlano de negócios restaurante sabor cearense
Plano de negócios restaurante sabor cearenseMarcioveras
 
Apresentação restaurante Cultivar
Apresentação restaurante CultivarApresentação restaurante Cultivar
Apresentação restaurante CultivarAlfredo Dutra
 
Treinamento de atendimento telefonico
Treinamento de atendimento telefonicoTreinamento de atendimento telefonico
Treinamento de atendimento telefonicoBull Marketing
 
Qualidade No Atendimento Ao Cliente
Qualidade No Atendimento Ao ClienteQualidade No Atendimento Ao Cliente
Qualidade No Atendimento Ao ClienteMarco Antonio
 
Treinamento Atendimento à Clientes
Treinamento Atendimento à ClientesTreinamento Atendimento à Clientes
Treinamento Atendimento à Clientesaavbatista
 

Andere mochten auch (18)

IEA - I Workshop em pressão intracraniana - Parte 2
IEA - I Workshop em pressão intracraniana - Parte 2IEA - I Workshop em pressão intracraniana - Parte 2
IEA - I Workshop em pressão intracraniana - Parte 2
 
Icsp11 moda
Icsp11 modaIcsp11 moda
Icsp11 moda
 
Sptsnt apres bagé 2016
Sptsnt  apres bagé 2016Sptsnt  apres bagé 2016
Sptsnt apres bagé 2016
 
Marles - Verão 2016 - parte 2: Artigos
Marles - Verão 2016 - parte 2: ArtigosMarles - Verão 2016 - parte 2: Artigos
Marles - Verão 2016 - parte 2: Artigos
 
Desperdício de tecido na confecção: saiba como evitar
Desperdício de tecido na confecção: saiba como evitarDesperdício de tecido na confecção: saiba como evitar
Desperdício de tecido na confecção: saiba como evitar
 
Carolina fontoura da motta moda e comportamento atividade 1 1
Carolina fontoura da motta moda e comportamento atividade   1 1Carolina fontoura da motta moda e comportamento atividade   1 1
Carolina fontoura da motta moda e comportamento atividade 1 1
 
A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...
A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...
A Gestão da Informação nas Micro e Pequenas Empresas do Arranjo Produtivo Loc...
 
Plano de negocios
Plano de negociosPlano de negocios
Plano de negocios
 
Confecção de roupas esportivas
Confecção de roupas esportivasConfecção de roupas esportivas
Confecção de roupas esportivas
 
Mercado Classe A - IBMEC
Mercado Classe A - IBMECMercado Classe A - IBMEC
Mercado Classe A - IBMEC
 
Profissões de ontem e de hoje
Profissões de ontem e de hojeProfissões de ontem e de hoje
Profissões de ontem e de hoje
 
Monitorização neurologica
Monitorização neurologicaMonitorização neurologica
Monitorização neurologica
 
Plano de negócios restaurante sabor cearense
Plano de negócios restaurante sabor cearensePlano de negócios restaurante sabor cearense
Plano de negócios restaurante sabor cearense
 
Apresentação restaurante Cultivar
Apresentação restaurante CultivarApresentação restaurante Cultivar
Apresentação restaurante Cultivar
 
Hipertensão intracraniana
Hipertensão intracranianaHipertensão intracraniana
Hipertensão intracraniana
 
Treinamento de atendimento telefonico
Treinamento de atendimento telefonicoTreinamento de atendimento telefonico
Treinamento de atendimento telefonico
 
Qualidade No Atendimento Ao Cliente
Qualidade No Atendimento Ao ClienteQualidade No Atendimento Ao Cliente
Qualidade No Atendimento Ao Cliente
 
Treinamento Atendimento à Clientes
Treinamento Atendimento à ClientesTreinamento Atendimento à Clientes
Treinamento Atendimento à Clientes
 

Ähnlich wie Introdução ao Microcontrolador PIC16F84

Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores picAnderson Inácio Morais
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadoresTiago
 
201728 22259 manual_picgenios
201728 22259 manual_picgenios201728 22259 manual_picgenios
201728 22259 manual_picgeniosBárbara Gama
 
Protocolo de memória I2C e SPI
Protocolo de memória I2C e SPIProtocolo de memória I2C e SPI
Protocolo de memória I2C e SPIPedro Raphael
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformRenato Mintz
 
Arquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoArquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoAlex Camargo
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfssuser56423c1
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemensSENAI SP
 
Clp completa
Clp completaClp completa
Clp completapanelada
 
Intro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcanteIntro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcantepaulocoob
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscBruno Dias
 

Ähnlich wie Introdução ao Microcontrolador PIC16F84 (20)

Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic
 
ApresPP.pptx
ApresPP.pptxApresPP.pptx
ApresPP.pptx
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadores
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
Corpo relatorio
Corpo relatorioCorpo relatorio
Corpo relatorio
 
201728 22259 manual_picgenios
201728 22259 manual_picgenios201728 22259 manual_picgenios
201728 22259 manual_picgenios
 
Protocolo de memória I2C e SPI
Protocolo de memória I2C e SPIProtocolo de memória I2C e SPI
Protocolo de memória I2C e SPI
 
Basico sobre clp
Basico sobre clpBasico sobre clp
Basico sobre clp
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
PLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platformPLCduino - A PLC using Arduino platform
PLCduino - A PLC using Arduino platform
 
SDAC 12º - M9 TGEI
SDAC 12º - M9 TGEISDAC 12º - M9 TGEI
SDAC 12º - M9 TGEI
 
Arquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamentoArquitetura de Computadores: Unidade central de processamento
Arquitetura de Computadores: Unidade central de processamento
 
EL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdfEL66J_Slides_arduino.pdf
EL66J_Slides_arduino.pdf
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemens
 
Clp completa
Clp completaClp completa
Clp completa
 
AVR
AVRAVR
AVR
 
Intro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcanteIntro Sist Embarcados - Sergio cavalcante
Intro Sist Embarcados - Sergio cavalcante
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_cisc
 

Introdução ao Microcontrolador PIC16F84

  • 1. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Curso de Introdução ao Microcontrolador PIC Microchip Carlos Alberto Cunha
  • 2. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Pré-requisitos: Conhecimentos básicos em Eletrônica Digital e Analógica Abordagem:  Conceitos básicos  A pergunta que não quer calar: PIC ou 8051?  Arquitetura Harvard RISC x CISC  O PIC16F84:  Características, Pinagem  Organização das memórias:  Memória de programa, Memória de dados  Vetores, Pilha (Stack), Registradores  Introdução às Interrupções  Bits de Configuração, Circuitos de Clock e Reset  Introdução ao Assembler do PIC - SET de Instruções  Introdução ao MPLAB
  • 3. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Conceitos:  Microcontrolador: É um computador dentro de um circuito integrado. Devido à evolução tecnológica e à miniaturização é possível integrar num único chip todos os componentes de um computador. Podemos defini-lo como um chip dotado de uma “inteligência programável”, embora seja limitada a quantidade de informações e instruções que pode executar, normalmente as limitações de aplicações são limitações da imaginação, criatividade e experiência do projetista e programador.  Microprocessador x Microcontrolador: Um microprocessador é um circuito muito complexo, em forma de circuito integrado, que pode conter entre alguns milhares (Z80) até 7 milhões de transistores (Pentium II), constituindo os mais diversos circuitos lógicos. O microcontrolador integra num único componente os três elementos principais na arquitetura de um computador: CPU, memória e I/O.  I/O: Pinos físicos de entrada ou saída de dados para ou proveniente do mundo exterior, podem ser digitais ou analógicas.  Memória: Registros físicos onde são armazenados os dados e programas, os microcontroladores normalmente possuem duas: Memória de dados e Memória de programa, alguns microcontroladores possuem ainda EEPROM.
  • 4. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  A pergunta que não quer calar: PIC ou 8051? Todo iniciante na programação de microcontroladores enfrenta um dilema na escolha de uma linha para adoção e dedicação, há defensores ferrenhos de todos os lados: 8051, PIC, AVR, COP, Hitachi e muitos outros. É necessário admitir que a linha base da Microchip PIC (Linhas 12, 16 e 17) apresentam algumas limitações em relação ao 8051 devido ao número reduzido de instruções, por exemplo, operações aritméticas de multiplicação e divisão não estão contempladas no SET de instruções do PIC, caso se necessite dessas operações, elas deverão ser implementadas através de algoritmos e sub-rotinas. Contudo podemos apontar algumas vantagens da família Microchip:  Utiliza Arquitetura Harvard - Memória e Barramentos separados para dados e programas.  Registradores de propósitos gerais, conectados diretamente a ULA.  Timer/counters flexíveis, com prescaler e modos de comparação.  Interrupções internas e externas.  Watchdog Timer programável com oscilador interno.  Instruções executadas em dois estágios de pipeline, enquanto uma instrução está sendo executada, o pre-fetch da próxima instrução na memória de programas é realizado.  Todas as instruções são single word.  Bastante flexibilidade na configuração das I/Os e pinos com funções multiplexadas.
  • 5. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Arquitetura Harvard RISC x CISC  CISC (Complex Instruction Set Computers)  RISC (Reduced Instruction Set Computers) Um CISC tende a ter um grande número de instruções, cada uma executando uma permutação diferente da mesma operação. Um RISC tem um número mínimo de instruções que permite ao utilizador desenhar as suas próprias instruções, em vez de usar as que o desenhador do processador oferece. Como resultado de um pedido do governo dos EUA, as Universidades de Princeton e de Harvard criaram arquiteturas de computadores para serem usadas no cálculo das tabelas de artilharia naval.  CISC - Arquitetura de Princeton (Von Neumann) Em 1945 Von Neumann estabeleceu as bases para a construção de computadores. Desenhou uma máquina em que existia uma unidade de controle, capaz de decodificar um conjunto de instruções. Um processador que realiza as operações que as instruções implicam. Um bloco de memória para guardar as instruções dos programas e dos dados. Uma unidade de interface de memória que é responsável pela gestão do acesso à memória. Um último bloco permitia a transferência de informação aos periféricos exteriores.
  • 6. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC A vantagem é a simplicidade de acesso à memória. Possui um barramento único para acessar a memória (endereços, dados e controle) O grande inconveniente é o fato de a memória de programa e de dados serem comuns, pois impede que se possa acessar ao programa e aos dados simultaneamente e muitas vezes o tamanho dos dados é diferente do tamanho das instruções. CPU Memory (Program & Data)  RISC - Arquitetura de Harvard Existem duas memórias diferentes e independentes, uma para as instruções e outra para os dados. Isto permite realizar acessos simultâneos a ambas as memórias. Esta arquitetura tende a executar as instruções em menos ciclos de relógio, melhorando a taxa de uso dos barramentos. As duas memórias podem também ter palavras de comprimento diferentes. No caso do PIC16F84 a memória de programa é Flash e possui 1024 posições de 14 bits cada. A memória de dados tem uma capacidade muito menor e um tamanho típico de 8 bits. Memory (Data) CPU Memory (Program)
  • 7. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Princenton x Harvard
  • 8. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Pipeline de instruções em dois estágios:  Fase de busca (fetch) – Procura-se o código binário da instrução na memória do programa.  Fase de execução – Interpreta-se o código, buscam-se os operandos e executa-se a operação. Enquanto executa a fase de execução de uma instrução, executa a fase de busca da instrução seguinte. Cada uma das fases é realizada em 4 ciclos de relógio, porém as instruções de salto demoram 8 ciclos de relógio. Desta forma consegue-se executar cada instrução em quatro ciclos de relógio. Em um PIC16F84 a 4Mhz, o período de um ciclo de clock é (1/4.000.000) = 0.25us, logo, o tempo de execução de uma instrução comum é 4*0.25us = 1us e de uma instrução com salto é 8*0.25us = 2us. Pipeline de instruções sobrepõe no tempo a busca e a execução de instruções, fazendo com que a execução destas seja em “single cicle”.
  • 9. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Relação entre o sinal de clock e o ciclo de instrução: Exemplo de execução de uma instrução:
  • 10. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  O PIC16F84  Fabricado com a tecnologia CMOS  Capaz de trabalhar até 10 Mhz. PIC16F84A Capaz de trabalhar até 20 Mhz  Pequeno, só tem 18 pernas devido à multiplexação de função dos pinos.  Barato. O PIC16F84A custa aproximadamente R$7,00.  Memória de programa de 1K palavras de 14 bits FLASH, em que em cada uma cabe uma instrução. Pode ser regravada cerca de 10.000 vezes com toda a segurança  Memória de dados RAM de 68 Bytes  Memória de dados EEPROM de 64 Bytes, não volátil  8 níveis de stack (pilha)  35 instruções de 14 bits  Tempo de execução das instruções normais: 4xTosc  Tempo de execução das instruções de salto: 8xTosc  4 tipos de interrupções (External RB0/INT pin, TMR0 timer overflow, PORTB<7:4> interrupt-on-change, Data EEPROM write complete)  13 linhas de entradas/saída digitais  1 timer  1 watch-dog  Alimentação de 2V a 6 V  Gravação de 12V a 14V  Encapsulamento DIP de 18 pernas (SOIC)  Proteção de código , SLEEP, PWRT
  • 11. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Pinagem do PIC16F84  RA0-RA4 – PORTA  RB0-RB7 – PORTB  MCLR – Master Clear  OSC1/CLKIN – Conexão do oscilador externo ou entrada de clock  OSC2/CLKOUT – Conexaõ do oscilador externo ou saída de clock  RA4/TOCKI – I/O RA4 ou entrada de clock externo para contador TMR0. RB0/INT – I/O RB0 ou entrada para interrupção externa  VDD – Alimentação +5V (2-6V)  VSS – Terra do CI
  • 12. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Arquitetura do PIC16F84
  • 13. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Organização da memória de programa do PIC 16F84  O PIC16F84 dispõe de um contador de programa com 13 bits capaz de endereçar 8K posições de memória de 14 bits. Neste µC só se encontra implementado 1K com endereços de 0000h a 03FFh.  A estrutura de stack apresenta um máximo de 8 níveis o que impõe uma limitação em termos de chamadas a subrotinas dentro de outras subrotinas. O vetor de reset corresponde à posição de memória 0000h enquanto que o vetor de interrupção se encontra na posição 0004h.
  • 14. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Organização da memória de dados do PIC 16F84  A memória de dados do 16F84 encontra-se dividida em duas áreas. A primeira é a área correspondente aos Registros de Função Especial (SFR) enquanto que a segunda diz respeito aos Registros de Uso Geral. Os SFRs são utilizados para o controle do µC.  Uma das particularidades desta memória é a sua divisão em dois Bancos (Banco 0 e Banco 1) sendo o acesso a cada um destes bancos controlado a partir do bit 5 do registro STATUS (RP0).  No que diz respeito aos registros de uso geral, o banco 1 destes registos encontra-se mapeado no banco 0 o que quer dizer que qualquer acesso ao banco 1 é feito na realidade sobre o banco 0.
  • 15. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Registros de Uso Geral Cada registro de uso geral tem uma largura de 8 bits e pode ser acedido diretamente ou indiretamente através do registro FSR (ver mais à frente).  Registros de Função Especial Os Registros de Função Especial são utilizados pelo CPU e pelos periféricos para o controle do µC. Estes registros são implementados em RAM estática.
  • 16. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC
  • 17. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Registro STATUS O registro STATUS contém as flags ligadas à ALU, os flags de RESET e os bits de seleção do banco da memória de dados.
  • 18. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Registro OPTION_REG Trata-se de um registro que permite escrita e leitura e que contém vários bits de controle para a configuração do divisor de frequência (prescaler) do TMR0 / WDT, da interrupção externa INT, do TMR0 e das polarizações (pull-ups) do PORTB.
  • 19. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Registro INTCON O registro INTCON contém os diferentes bits que permitem configurar o sistema de interrupções (enable /disable) e os flags de pedido de interrupção. Este registro pode ser lido ou escrito.
  • 20. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Registros PCL e PCLATH O contador de programa (PC) especifica o endereço da instrução a ser pesquisada (‘fetch’) da memória de programa para ser executada. No PIC16F84 o PC tem uma largura de 13 bits, estando os 8 bits menos significativos no registro PCL. Este registro pode ser lido ou escrito por software. O byte mais significativo do PC é designado por PCH e contém os bits 12:8 do contador de programa. Este registro não pode ser escrito ou lido diretamente. Todas as operações que seja necessário efetuar sobre ele são feitas indiretamente sobre o registro PCLATH.  STACK A estrutura de Pilha (stack) implementada no PIC16F84 permite a ocorrência de combinações de até 8 chamadas de subrotinas ou interrupções, permitindo armazenar os respectivos endereços de retorno. A utilização desta estrutura é da exclusiva responsabilidade da unidade de controle do µC, não havendo por isso qualquer instrução de software que a permita manipular. Como possui 8 níveis de profundidade (8 deep level Stack), significa que se forem chamadas 8 subrotinas uma dentro da outra, a chamada de uma nona subrotina fará com que o endereço de retorno da primeira seja definitivamente perdida (memória tipo FILO).
  • 21. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Endereçamento indireto: registros INDF e FSR O registro INDF (endereço 00h / 80H) não é um registro físico. O acesso a este registro (leitura ou escrita) conduz realmente ao registro cujo endereço se encontra no registro FSR. Este último registro é o ponteiro para as operações com endereçamento indireto.
  • 22. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Periféricos de Interfaceamento  Timers/Counters;  Watchdog timers (WDT);  On-chip Oscillator Start-up Timer (OST)/ Power-up Timer (PWRT)  Portas paralelas  Coversores A/D  Módulos CCP (Capture/Compare/PWM)  Módulos I2C  Módulos SSP (Synchronous serial port)  Addressable USART  Conversor A/D
  • 23. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Temporizador / Contador TMR0 O periférico TMR0 apresenta as seguintes características principais: • Funções de temporizador ou contador de 8 bits • Possibilidade de leitura e de escrita do registro • Possibilidade de seleção de relógio interno ou externo • Divisor de freqüência de 8 bits programável por software (Prescaler) • Permite gerar uma interrupção quando ocorrer um overflow (passagem de FFh a 00h) O Timer0 pode funcionar como temporizador ou como contador. A seleção do modo de funcionamento é feita através do bit T0CS ( Timer0 Clock Sourse, bit 5 do OPTION_REG). No modo temporizador, T0CS=0, o registro TMR0 incrementa em cada ciclo de instrução desde que não seja utilizado o Prescaler (divisor de freqüência). No modo contador, T0CS=1, o registro TMR0 incrementa em cada borda de subida ou de descida do sinal presente no pino exterior RA4/T0CKI. O bit T0SE (Timer0 Source Edge, bit 4 do OPTION_REG), determina se será na borda de subida ou descida: T0SE=0 TOSE=1
  • 24. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Prescaler O prescaler é um divisor de freqüência programável e é constituído por um contador de 8 bits associado a um multiplexador de 8÷1, como se mostra na figura 16. Este prescaler é partilhado pelo Timer0 e pelo Watchdog Timer, não podendo contudo ser usado simultaneamente pelos dois periféricos. Sendo assim, a atribuição do prescaler ao Timer0 significa que o Watchdog Timer funciona sem prescaler, e vice-versa.
  • 25. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Watchdog Timer (WDT)  WDT permite a recuperação funcional da CPU em caso de perda do fluxo de execução (ex. loops infinitos) Overflow do WDT reseta o chip  O temporizador Watchdog é constituído por um oscilador interno RC, não necessitando de quaisquer outros componentes externos. Este oscilador é totalmente independente do oscilador do µC. Isto quer dizer que, mesmo que o oscilador principal não funcione (por exemplo no caso do µC se encontrar no estado de SLEEP), o WDT continuará em funcionamento.
  • 26. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Portas de I/O Alguns dos pinos das portas de I/O apresentam funções alternativas (Multiplexadas) para a utilização com alguns periféricos do µC. Geralmente, quando essas funções são utilizadas, o respectivo bit não pode ser utilizado como I/O.  PORTA e TRISA O registro PORTA implementa uma porta de I/O bidirecional com 5 bits, estando ligado aos pinos exteriores do µC, RA0:RA4. O registro onde se define, para cada bit, se se trata de entrada ou saída de dados é o TRISA. Colocando um bit do registro TRISA a 1 permite programar o respectivo bit do PORTA como entrada de dados. A escrita de um 0 num bit do registro TRISA programa o respectivo bit do PORTA como saída de dados. Após uma operação de reset, qualquer um dos bits de I/O fica programado como entrada de dados. A leitura do registro PORTA permite fazer a leitura do estado dos pinos exteriores enquanto que uma operação de escrita sobre o mesmo registro coloca os valores de escrita nas ‘Data Latch’ de saída.
  • 27. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC RA0 – RA3 RA4 Exemplo de Configuração da PORTA clrf PORTA ;Zera o ‘Data Latch’ da PORTA bsf STATUS,RP0 ;Muda para o banco 1 movlw b’00011100’ ;Configura pinos RA0 e RA1 como saídas movwf TRISA ;e RA2, RA3 e RA4 como entradas bcf STATUS,RP0 ;Volta para o banco 0
  • 28. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  PORTB e TRISB PORTB é uma porta bidirecional de 8 bits que, como acontece com o PORTA, dispõe também de um registro TRISB para a configuração dos bits como entrada ou saída de dados. Cada um dos bits do PORTB dispõe de um pull-up interno que é controlado pelo bit 7 do registro OPTION (RBPU). Quando este bit é igual a 0, todos os pull-ups estão ativados. A configuração de um bit como saída de dados provoca automaticamente a desativação do respectivo pull-up. Quando é feito o power-on reset, os pull-ups são desativados. Quatro dos bits do PORTB, RB7:RB4, permitem gerar uma interrupção sempre que há uma mudança de estado em qualquer um deles, desde que estejam programados como entrada de dados. Os bits de entrada são permanentemente comparados com o último valor lido. Desde que seja encontrada uma diferença em qualquer um desses bits, é ativado o flag RBIF de pedido de interrupção.
  • 29. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC RB0 – RB3 RB4 – RB7 Exemplo de Configuração da PORTB clrf PORTB ;Zera o ‘Data Latch’ do PORTB bsf STATUS,RP0 ;Muda para o banco 1 movlw b’11110000’ ;Configura pinos RB0 a RB3 como saídas movwf TRISA ;e RA4 a RA7 como entradas bcf STATUS,RP0 ;Volta para o banco 0
  • 30. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Modo SLEEP  Execução da instrução Sleep;  A CPU entra no modo de Power down; Consumo de 60uA (7mA operação normal)  Características:  WDT é resetado, mas continua operando; Bit PD é sinalizado (Status Register); Oscilador interno é desligado; TMR0 desligado  Modos de saída do estado sleep: Reset externo (MCLR); Time-out do WDT; Interrupção externa (RB0/INT); Interrupção de fim de escrita na EEPROM
  • 31. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Interrupções O PIC16F84A dispõe de um único nível de interrupção com 4 fontes de interrupção:  Interrupção externa através do pino RB0/INT  Interrupção provocada pelo overflow do TMR0  Interrupção provocada pela mudança de estado do PORTB (RB7:RB4)  Interrupção provocada pelo fim da operação de escrita na E2PROM de dados O registro de controle das interrupções (INTCON) contém as diferentes flags de pedido de interrupção e os bits que permitem ativar ou desativar individualmente ou globalmente as diferentes interrupções. Na situação de reset, todos os bits correspondentes à autorização individual ou global das interrupções encontram-se desativados (T0IE = INTE = RBIE = EEIE = GIE = 0). Quando o µC responde a um pedido de interrupção, o bit GIE é colocado em 0 para não permitir mais nenhuma interrupção, o endereço de retorno é colocado na stack e o PC é carregado com o valor 0004h que é o vetor de interrupção para este µC. A rotina de serviço de qualquer interrupção deve terminar sempre com a instrução RETFIE (RETurn From Interrupt Enable) que, além de fazer o sistema retornar ao programa no local onde se verificou a interrupção, coloca também GIE = 1 permitindo de novo o acesso dos periféricos às interrupções.
  • 32. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Gerador de relógio – oscilador O circuito do oscilador é usado para fornecer um relógio (clock), ao microcontrolador. O clock é necessário para que o microcontrolador possa executar um programa ou as instruções de um programa.  Tipos de osciladores O PIC16F84 pode trabalhar com quatro configurações de oscilador. Uma vez que as configurações com um oscilador de cristal e circuito RC são as mais freqüentemente usadas, elas são as únicas que vamos mencionar aqui. Quando o oscilador é de cristal, a designação da configuração é de XT, se o oscilador for constituído apenas por uma associação em série de um resistor e um capacitor, tem a designação RC. Isto é importante, porque há necessidade de se optar entre os diversos tipos de oscilador, quando se escolhe um microcontrolador, e no caso do PIC essa opção é configurada via software.  Oscilador XT O oscilador de cristal está contido num envólucro de metal com dois pinos onde foi escrita a frequência a que o cristal oscila. Dois capacitores cerâmicos devem ligar cada um dos pinos do cristal à massa. Quando o cristal e os capacitores estão contidos no mesmo encapsulamento, é chamado de ressonador cerâmico. Este elemento tem três pinos com o pino central ligado à massa e os outros dois pinos ligados aos pinos OSC1 e OSC2 do microcontrolador.
  • 33. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Reset O reset é usado para pôr o microcontrolador num estado conhecido. Na prática isto significa que às vezes o microcontrolador pode comportar-se de um modo inadequado em determinadas condições indesejáveis. A fim de que o seu funcionamento normal seja reestabelecido, é preciso fazer o reset do microcontrolador, isto significa que todos os seus registos vão conter valores iniciais pré-definidos, correspondentes a uma posição inicial. O reset não é usado somente quando o microcontrolador não se comporta da maneira que nós queremos, mas, também pode ser usado, quando ocorre uma interrupção por parte de outro dispositivo, ou quando se quer que o microcontrolador esteja pronto para executar um programa . O microcontrolador PIC16F84, admite várias formas de reset: a) Reset quando se liga a alimentação, POR (Power-On Reset) b) Reset durante o regime de SLEEP (dormir). c) Reset durante o funcionamento normal, quando se põe a nível lógico baixo o pino MCLR . d) Reset quando o temporizador do watchdog (WDT) transborda (passa para 0 depois de atingir o valor máximo). e) Reset quando o temporizador do watchdog (WDT) transborda estando no regime de SLEEP.
  • 34. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Oscilador RC Em aplicações em que a precisão da temporização não é um fator crítico, o oscilador RC torna-se mais econômico. A frequência de ressonância do oscilador RC depende da tensão de alimentação, dos valores de RC e da temperatura de funcionamento.
  • 35. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Set de instruções Completo
  • 36. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Sintaxe Descrição Microchip Operação equivalente ADDLW k Add Literal and W W = W + k ADDWF f,d Add W and f d = W + f (onde d pode ser W ou f) ANDLW k AND Literal with W W = W AND k ANDWF f,d AND W with f d = W AND f (onde d pode ser W ou f) BCF f,b Bit Clear f f(b) = 0 BSF f,b Bit Set f f(b) = 1 BTFSC f,b Bit Test f, Skip if Clear f(b) = 0 ? Se é, salta uma instrução BTFSS f,b Bit Test f, skip if Set f(b) = 1 ? Se é, salta uma instrução CALL k Subroutine Call Chamada a uma subrotina no endereço k CLRF f Clear f f = 0 CLRW Clear W Register W = 0 CLRWDT Clear Watchdog Timer Watchdog timer = 0 COMF f,d Complement f d = not f (onde d pode ser W ou f) DECF f,d Decrement f d = f -1 (onde d pode ser W ou f) DECFSZ f,d Decrement f, Skip if 0 d = f -1 (onde d pode ser W ou f) se d = 0 salta
  • 37. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Sintaxe Descrição Microchip Operação equivalente GOTO k Go to address salta para o endereço k INCF f,d Increment f d = f +1 (onde d pode ser W ou f) INCFSZ f,d Increment f, Skip if 0 d = f +1 (onde d pode ser W ou f) se d = 0 salta IORLW k Inclusive OR Literal with W W = W OR k IORWF f,d Inclusive OR W with f d = f OR W (onde d pode ser W ou f) MOVLW k Move literal to W W = k MOVF f,d Move f d = f (onde d pode ser W ou f) MOVWF f Move W to f f = W NOP No Operation Nenhuma operação OPTION Load Option Register OPTION = W RETFIE Return from Interrupt Retorna de uma interrupt handler RETLW k Return Literal to W Retorna de uma subrotina com W = k RETURN Return from Subroutine Retorna de uma subrotina RLF f,d Rotale Left f through Carry d = f << 1 (onde d pode ser W ou f) RRF f,d Rotale Right f through Carry d = f >> 1 (onde d pode ser W o f)
  • 38. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Sintaxe Descrição Microchip Operação equivalente SLEEP Go into Standby Mode Coloca o PIC em standby SUBLW k Subtract W from Literal W = k - W SUBWF f,d Subtract W from f d = f - W (onde d pode ser W ou f) SWAPF f Swap f f = Swap do bit 0123 com 4567 de f TRIS f Load TRIS Register TRIS di f = W XORLW k Exclusive OR Literal with W W = W XOR k XORWF f,d Exclusive OR W with f d = f XOR W (onde d pode ser W ou f)
  • 39. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - ADDLWInstruções - ADDLW ADDLW Soma um literal a W Sintaxe: [label] ADDLW k Operandos: 0 k 255 Operação: : (W) + (k)==> (W) Flags afectadas: C, DC, Z Código OP: 11 111x kkkk kkkk Descrição: Soma o conteúdo do registo W e k, guardando o resultado em W. Exemplo: ADDLW 0xC2 Antes: W = 0x17 Depois: W = 0xD9
  • 40. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - ADDWFInstruções - ADDWF ADDWF W + F Sintaxe: [label] ADDWF f,d Operandos: d [0,1], 0 f 127 Operação: (W) + (f) ==> (dest) Flags afectadas: C, DC, Z Código OP: 00 0111 dfff ffff Descrição: Soma o conteúdo do registo W com o registo f. Se d é 0, o resultado armazena-se em W, Se d é 1 armazena-se em f. Exemplo: ADDWF REG,0 Antes: W = 0x17, REG = 0xC2 Depois: W = 0xD9, REG = 0xC2
  • 41. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - ANDLWInstruções - ANDLW ANDLW W AND literal Sintaxe: [label] ANDLW k Operandos: 0 k 255 Operação: : (W) AND (k)==> (W) Flags afectadas: Z Código OP: 11 1001 kkkk kkkk Descrição: Realiza a operação lógica AND entre o conteúdo do registo W e k, guardando o resultado em W. Exemplo: ADDLW 0xC2 Antes: W = 0x17 Depois: W = 0xD9
  • 42. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - BCFInstruções - BCF BCF Apaga um bit Sintaxe: [label] BCF f,b Operandos: 0 f 127, 0 b 7 Operação: : 0 ==> (f<b>) Flags afectadas: nenhum Código OP: 01 00bb bfff ffff Descrição: Apaga o bit b do registo f Exemplo: : BCF REG,7 Antes: REG = 0xC7 Depois: REG = 0x47
  • 43. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - BSFInstruções - BSF BSF Activa um bit Sintaxe: [label] BSF f,b Operandos: 0 f 127, , 0 b 7 Operação: 1 ==> (f<b>) Flags afectadas: nenhum Código OP: 01 01bb bfff ffff Descrição: Activa o bit b do registo f Exemplo: BSF REG,7 Antes: REG = 0x0A Depois: REG = 0x8A
  • 44. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - BTFSCInstruções - BTFSC BTFSC Testa o bit e salta se for 0 Sintaxe: [label] BTFSC f,d Operandos: d [0,1], 0 f 127 Operação: Salto Se (f<b>) = 0 Flags afectadas: nenhum Código OP: 01 10bb bfff ffff Descrição: Se o bit b do registo f é 0, salta uma instrução e continua com a execução. Em caso de salto, ocupará dois ciclos de relógio. Exemplo: BTFSC REG,6 GOTO NO_ES_0 SI_ES_0 instrução NO_ES_0 instrução
  • 45. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - BTFSSInstruções - BTFSS BTFSS Testa o bit e salta se for 1 Sintaxe: [label] BTFSS f,d Operandos: d [0,1], 0 f 127 Operação: Salto Se (f<b>) = 1 Flags afectadas: nenhum Código OP: 01 11bb bfff ffff Descrição: Se o bit b do registo f é 1, salta uma instrução e continua com a execução. Em caso de salto, ocupará dois ciclos de relógio. Exemplo: BTFSS REG,6 GOTO NO_ES_0 SI_ES_0 instrução NO_ES_0 instrução
  • 46. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - CALLInstruções - CALL CALL Salta para subrotina Sintaxe: [label] CALL k Operandos: 0 k 2047 Operação: PC ==> pilha; k ==> PC Flags afectadas: nenhum Código OP: 10 0kkk kkkk kkkk Descrição: Salta para uma subrotina. A parte baixa de k é carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relógio. Exemplo: ORIGEM CALL DESTINO Antes: PC = ORIGEM Depois: PC = DESTINO
  • 47. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - CLRFInstruções - CLRF CLRF Apaga um registo Sintaxe: [label] CLRF f Operandos: 0 f 127 Operação: : 0x00 ==> (f), 1 ==> Z Flags afectadas: Z Código OP: 00 0001 1fff ffff Descrição: O registo f é carregado com 0x00. A flag Z é activada. Exemplo: : CLRF REG Antes: REG = 0x5A Depois: REG = 0x00, Z = 1
  • 48. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - CLRWInstruções - CLRW CLRW Apaga o registo W Sintaxe: [label] CLRW Operandos: nenhum Operação: : 0x00 ==> W, 1 ==> Z Flags afectadas: Z Código OP: 00 0001 0xxx xxxx Descrição: O registo de trabalho W é carregado com 0x00. A flag Z é activada. Exemplo: : CLRW Antes: W = 0x5A Depois: W = 0x00, Z = 1
  • 49. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - CLRWDTInstruções - CLRWDT CLRWDT Apaga o WDT Sintaxe: [label] CLRWDT Operandos: nenhum Operação: 0x00 ==> WDT, 1 ==> /TO 1 ==> /PD Flags afectadas: /TO, /PD Código OP: 00 0000 0110 0100 Descrição: Esta instrução apaga tanto o WDT como o seu preescaler. Os bits /TO e /PD do registo de estado são colocados a 1. Exemplo: : CLRWDT Depois: Contador WDT = 0, Preescales WDT = 0, /TO = 1, /PD = 1
  • 50. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - COMFInstruções - COMF COMF Complemento de f Sintaxe: [label] COMF f,d Operandos: d [0,1], 0 f 127 Operação: : (/ f), 1 ==> (dest) Flags afectadas: Z Código OP: 00 1001 dfff ffff Descrição: O registo f é complementado. A flag Z é activada se o resultado é 0. Se d é 0 o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplo: : COMF REG,0 Antes: REG = 0x13 Depois: REG = 0x13, W = 0XEC
  • 51. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - DECFInstruções - DECF DECF Decremento de f Sintaxe: [label] DECF f,d Operandos: d [0,1], 0 f 127 Operação: : (f ) - 1 ==> (dest) Flags afectadas: Z Código OP: 00 0011 dfff ffff Descrição: Decrementa conteúdo de f. Se d é 0, o resultado é armazenado em W, Se d é 1 é armazenado em f. Exemplo: : DECF CONT,1 Antes: CONT = 0x01, Z = 0 Depois: CONT = 0x00, Z = 1
  • 52. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - DECFSZInstruções - DECFSZ DECFSZ Decremento e salta se 0 Sintaxe: [label] DECFSZ f,d Operandos: d [0,1], 0 f 127 Operação: (f) -1 ==> d; Salto Se R=0 Flags afectadas: nenhum Código OP: 00 1011 dfff ffff Descrição: Decrementa o conteúdo do registo f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0 salta uma instrução e ocuparia 2 ciclos. Exemplo: DECFSZ REG,0 GOTO NO_ES_0 SI_ES_0 instrução NO_ES_0 Salta instrução anterior
  • 53. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - GOTOInstruções - GOTO GOTO Salto incondicional Sintaxe: [label] GOTO k Operandos: 0 k 2047 Operação: k ==> PC <8:0> Flags afectadas: nenhum Código OP: 10 1kkk kkkk kkkk Descrição: Trata-se de um salto incondicional. A parte baixa de k é carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relógio. Exemplo: ORIGEM GOTO DESTINO Antes: PC = ORIGEM Depois: PC = DESTINO
  • 54. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - INCFInstruções - INCF INCF Incremento de f Sintaxe: [label] INCF f,d Operandos: d [0,1], 0 f 127 Operação: : (f ) + 1 ==> (dest) Flags afectadas: Z Código OP: 00 1010 dfff ffff Descrição: Incrementa o conteúdo de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplo: : INCF CONT,1 Antes: CONT = 0xFF, Z = 0 Depois: CONT = 0x00, Z = 1
  • 55. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - INCFSZInstruções - INCFSZ INCFSZ Incremento e salta se 0 Sintaxe: [label] INCFSZ f,d Operandos: d [0,1], 0 f 127 Operação: (f) -1 ==> d; Salto Se R=0 Flags afectadas: nenhum Código OP: 00 1111 dfff ffff Descrição: Incrementa o conteúdo do registo f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Se o resultado é 0 salta a instrução seguinte, em cujo caso demoraria 2 ciclos. Exemplo: INCFSC REG,0 GOTO NO_ES_0 SI_ES_0 instrução NO_ES_0 Salta instrução anterior
  • 56. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - IORLWInstruções - IORLW IORLW W OR literal Sintaxe: [label] IORLW k Operandos: 0 k 255 Operação: : (W) OR (k)==> (W) Flags afectadas: Z Código OP: 11 1000 kkkk kkkk Descrição: Realiza a operação lógica OR entre o conteúdo do registo W e k, guardando o resultado em W. Exemplo: IORLW 0x35 Antes: W = 0x9A Depois: W = 0xBF
  • 57. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - IORLWFInstruções - IORLWF IORWF W OR F Sintaxe: [label] IORWF f,d Operandos: d [0,1], 0 f 127 Operação: (W) OR (f) ==> (dest) Flags afectadas: Z Código OP: 00 0100 dfff ffff Descrição: Realiza a operação lógica OR entre os registos W e f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplo: : IORWF REG,0 Antes: W = 0x91, REG = 0x13 Depois: W = 0x93, REG = 0x13
  • 58. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - MOVLWInstruções - MOVLW MOVLW Carregar literal em W Sintaxe: [label] MOVLW f Operandos: 0 f 255 Operação: (k) ==> (W) Flags afectadas: nenhum Código OP: 11 00xx kkkk kkkk Descrição: O literal k passa ao registo W. Exemplo: MOVLW 0x5A Depois: REG = 0x4F, W = 0x5A
  • 59. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - MOVFInstruções - MOVF MOVF Mover f para W Sintaxe: [label] MOVF f,d Operandos: d [0,1], 0 f 127 Operação: (f) ==> (dest) Flags afectadas: Z Código OP: 00 1000 dfff ffff Descrição: O conteúdo do registo f é movido para o destino dependendo de d. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Quando d é 1 permite verificar o registo, já que afecta a Z. Exemplo: MOVF REG,0 Depois: W = REG
  • 60. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - MOVWFInstruções - MOVWF MOVWF Mover W para f Sintaxe: [label] MOVWF f Operandos: 0 f 127 Operação: W ==> (f) Flags afectadas: nenhum Código OP: 00 0000 1fff ffff Descrição: O conteúdo do registo W passa para o registo f. Exemplo: MOVWF REG,0 Antes: REG = 0xFF, W = 0x4F Depois: REG = 0x4F, W = 0x4F
  • 61. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - NOPInstruções - NOP NOP Não operação Sintaxe: [label] NOP Operandos: nenhum Operação: No operar Flags afectadas: nenhum Código OP: 00 0000 0xx0 0000 Descrição: Não realiza nenhuma operação. Na realidade consome um ciclo de instrução sem fazer nada. Exemplo: NOP
  • 62. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - RETFIEInstruções - RETFIE RETFIE regresso de interrupção Sintaxe: [label] RETFIE Operandos: nenhum Operação: : 1 ==> GIE; TOS==>PC Flags afectadas: nenhum Código OP: 00 0000 0000 1001 Descrição: o PC é carregado com o conteúdo de cima da pilha (TOS): direcção de regresso. Consome 2 ciclos. As interrupções voltam a ser habilitadas. Exemplo: : RETFIE Depois: PC = direcção de regresso GIE = 1
  • 63. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - RETLWInstruções - RETLW RETLW regresso de uma subrotina, com o valor em W Sintaxe: [label] RETLW k Operandos: 0 k 255 Operação: : (k)==> (W); TOS==>PC Flags afectadas: nenhum Código OP: 11 01xx kkkk kkkk Descrição: O registo W é carregado com a constante k. O PC é carregado com o conteúdo de cima da pilha (TOS): direcção de regresso. Consome 2 ciclos. Exemplo: : RETLW 0x37 Depois: PC = direcção de regresso W = 0x37
  • 64. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - RETURNInstruções - RETURN RETURN regresso de rotina Sintaxe: [label] RETURN Operandos: nenhum Operação: : TOS ==> PC Flags afectadas: nenhum Código OP: 00 0000 0000 1000 Descrição: O PC é carregado com o conteúdo de cima da pilha (TOS): direcção de regresso. Consome 2 ciclos. Exemplo: : RETURN Depois: PC = direcção de regresso
  • 65. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - RLFInstruções - RLF RLF roda f para a esquerda Sintaxe: [label] RLF f,d Operandos: d [0,1], 0 f 127 Operação: Rotação a a esquerda Flags afectadas: C Código OP: 00 1101 dfff ffff Descrição: O conteúdo de f é rodado para a esquerda. O bit de menor peso de f passa para o carry (C), e o carry é colocado no de maior peso. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplo: RLF REG,0 Antes: REG = 1110 0110, C = 0 Depois: REG = 1110 0110, W = 1100 1100, C = 1
  • 66. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - RRFInstruções - RRF RRF roda f para a direita Sintaxe: [label] RRF f,d Operandos: d [0,1], 0 f 127 Operação: Rotação a a direita Flags afectadas: C Código OP: 00 1100 dfff ffff Descrição: O conteúdo de f é rodado para a direita. O bit de menos peso de f passa para o carry (C), e o carry é colocado no de maior peso. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplo: RRF REG,0 Antes: REG = 1110 0110, C = 1 Depois: REG = 1110 0110, W = 1111 0011, C = 0
  • 67. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - SLEEPInstruções - SLEEP SLEEP Modo baixo consumo Sintaxe: [label] SLEEP Operandos: nenhum Operação: 0x00==>WDT, 1 ==> / TO 0 ==> WDT Preescaler, 0 ==> / PD Flags afectadas: / PD, / TO Código OP: 00 0000 0110 0011 Descrição: O bit de energia é colocado a 0, e a 1 o de descanso. O WDT e o seu preescaler são apagados. o micro pára o oscilador, ficando adormecido. Exemplo: : SLEEP Preescales WDT = 0, /TO = 1, /PD = 1
  • 68. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - SUBLWInstruções - SUBLW SUBLW Subtrai W ao literal Sintaxe: [label] SUBLW k Operandos: 0 k 255 Operação: ( k ) - (W) ==> (W) Flags afectadas: Z, C, DC Código OP: 11 110x kkkk kkkk Descrição: Mediante o método do complemento para dois o conteúdo de W é subtraído ao literal. O resultado é armazenado em W. Exemplos: SUBLW 0x02 Antes:W=1,C=?. Depois: W=1, C=1 Antes:W=2,C=?. Depois: W=0, C=1 Antes:W=3,C=?.Depois:W=FF,C=0 (o resultado é negativo)
  • 69. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - SUBLWFInstruções - SUBLWF SUBWF Subtrai W ao f Sintaxe: [label] SUBWF f,d Operandos: d [0,1], 0 f 127 Operação: ( f ) - (W )==> (dest) Flags afectadas: C, DC, Z Código OP: 00 0010 dfff ffff Descrição: Mediante o método do complemento para dois o conteúdo de W é subtraído ao de f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplos: SUBWF REG,1 Antes: REG = 0x03, W = 0x02, C = ? Depois:REG=0x01, W = 0x4F, C=1 Antes: REG = 0x02, W = 0x02, C = ? Depois:REG=0x00, W =0x02, C= 1 Antes: REG= 0x01, W= 0x02, C= ? Depois:REG=0xFF, W=0x02, C= 0 (Resultado negativo)
  • 70. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - SWAPFInstruções - SWAPF SWAPF Troca de f Sintaxe: [label] SWAPF f,d Operandos: d [0,1], 0 f 127 Operação: : (f <3: 0>) (f <7:4>) Flags afectadas: nenhum Código OP: 00 1110 dfff ffff Descrição: Os 4 bits de maior peso e os 4 de menor são trocados. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplo: SWAPF REG,0 Antes: REG = 0xA5 Depois: REG = 0xA5, W = 0x5A
  • 71. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - XORLWInstruções - XORLW XORLW W XOR literal Sintaxe: [label] XORLW k Operandos: 0 k 255 Operação: : (W) XOR (k)==> (W) Flags afectadas: Z Código OP: 11 1010 kkkk kkkk Descrição: Realiza a operação lógica XOR entre o conteúdo do registo W e k, guardando o resultado em W. Exemplo: : XORLW 0xAF Antes: W = 0xB5 Depois: W = 0x1A
  • 72. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC Instruções - XORLWInstruções - XORLW XORWF W XOR F Sintaxe: [label] XORWF f,d Operandos: d [0,1], 0 f 127 Operação: (W) XOR (f) ==> (dest) Flags afectadas: Z Código OP: 00 0110 dfff ffff Descrição: Realiza a operação lógica XOR entre os registos W e f. Se d é 0, o resultado é armazenado em W. Se d é 1 é armazenado em f. Exemplo: : XORWF REG,0 Antes: W = 0xB5, REG = 0xAF Depois: W = 0xB5, REG = 0x1A
  • 73. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Esquema Eletrônico da Placa Experimental PICLAB1
  • 74. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC
  • 75. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Bits de configuração Os bits de configuração podem ser programados de maneira a selecionar diferentes tipos de configuração do microcontrolador.
  • 76. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Diretivas de controle #DEFINE Troca de uma porção de texto por outra Sintaxe: #define<nome> [< texto atribuído a nome > ] Descrição: De cada vez que a palavra <nome> aparece no programa, vai ser substituída por <texto atribuído a nome>. Exemplo1: #DEFINE banck0 bcf STATUS,RP0 ;Seta BANCK0 de memória #DEFINE banck1 bsf STATUS,RP0 ;Seta BANCK1 de memória
  • 77. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC #INCLUDE Incluir um ficheiro adicional num programa Sintaxe: #include <<nome_do_ficheiro>> #include “<nome_do_ficheiro>” Descrição: A aplicação desta diretiva faz com que um ficheiro completo seja copiado para o local em que a diretiva “include” se encontra. Se o nome do ficheiro estiver entre aspas, estamos lidando com um ficheiro do sistema, se não estiver entre aspas, mas sim entre os sinais < >, trata-se de um ficheiro do utilizador. A diretiva “include”, contribui para uma melhor apresentação do programa principal. Exemplo: #INCLUDE <P16F84A.INC> ;Arquivo Padrão Microchip para PIC16F84A
  • 78. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC ORG Define o endereço a partir do qual o programa é armazenado na memória do microcontrolador Sintaxe: <rótulo> org <valor> Descrição: Esta é a diretiva mais frequentemente usada. Com esta diretiva nós definimos em que parte na memória de programa o programa vai começar. Exemplo: Inicio org 0x00 movlw 0xFF movwf PORTB Estas duas instruções a seguir à directiva 'org', são guardadas a partir do endereço 00.
  • 79. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC END Fim do programa Sintaxe: end Descrição: No fim do programa, é necessário colocar a diretiva 'end', para que o tradutor do assembly (assembler), saiba que não existem mais instruções no programa. Exemplo: . . movlw 0xFF movwf PORTB end
  • 80. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC  Directivas de Dados 4.16 CBLOCK Definir um bloco para as constantes nomeadas Sintaxe: Cblock [< termo >] <rótulo> [:<incremente>], <rótulo> [:<incremente>]...... endc Descrição: Esta directiva é usada para atribuir valores às constantes a seguir nomeadas. A cada termo seguinte, é atribuído um valor superior em uma unidade ao anterior. No caso de <incremente> estar preenchido, então é o valor de <incremente> que é adicionado à constante anterior. O valor do parâmetro <termo>, é o valor inicial. Se não for dado, então, por defeito, é considerado igual a zero. Exemplo: cblock 0x02 primeiro, segundo ; primeiro = 0x02, segundo = 0x03 terceiro ;terceiro = 0x04 endc
  • 81. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC __CONFIG Estabelecer os bits de configuração Sintaxe: __config<termo> ou __config <endereço>, <termo> Descrição: São definidos o tipo de oscilador, e a utilização do watchdog e do circuito de reset interno. Antes de usar esta diretiva, tem que declarar o processador através da directiva PROCESSOR. Exemplo: __CONFIG _CP_OFF & _WDT_OFF & PWRTE_ON & _XT_OSC PROCESSOR Definindo o modelo de microcontrolador Sintaxe: processor <tipo_de_microcontrolador> Descrição: Esta diretiva, estabelece o tipo de microcontrolador em que o programa vai correr. Exemplo: processor 16f84