Apresentação pic

1,324 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,324
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
102
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apresentação pic

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 16. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 74. 2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos MicrocontralodoresIntrodução aos Microcontralodores PICPIC
  75. 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. 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. 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. 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. 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. 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. 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

×