Você está na página 1de 81

Introduo aos Microcontralodores PIC

Curso de Introduo ao Microcontrolador PIC Microchip

Carlos Alberto Cunha

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Pr-requisitos: Conhecimentos bsicos em Eletrnica Digital e Analgica Abordagem:  Conceitos bsicos  A pergunta que no quer calar: PIC ou 8051?  Arquitetura Harvard RISC x CISC  O PIC16F84:  Caractersticas, Pinagem  Organizao das memrias:  Memria de programa, Memria de dados  Vetores, Pilha (Stack), Registradores  Introduo s Interrupes  Bits de Configurao, Circuitos de Clock e Reset  Introduo ao Assembler do PIC - SET de Instrues  Introduo ao MPLAB
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Conceitos:
evoluo tecnolgica e miniaturizao possvel integrar num nico chip todos os componentes de um computador. Podemos defini-lo como um chip dotado de uma inteligncia programvel, embora seja limitada a quantidade de informaes e instrues que pode executar, normalmente as limitaes de aplicaes so limitaes da imaginao, criatividade e experincia 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 milhes de transistores (Pentium II), constituindo os mais diversos circuitos lgicos. O microcontrolador integra num nico componente os trs elementos principais na arquitetura de um computador: CPU, memria e I/O.  I/O: Pinos fsicos de entrada ou sada de dados para ou proveniente do mundo exterior, podem ser digitais ou analgicas.  Memria: Registros fsicos onde so armazenados os dados e programas, os microcontroladores normalmente possuem duas: Memria de dados e Memria de programa, alguns microcontroladores possuem ainda EEPROM.
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

 Microcontrolador: um computador dentro de um circuito integrado. Devido

Introduo aos Microcontralodores PIC

 A pergunta que no quer calar: PIC ou 8051?


Todo iniciante na programao de microcontroladores enfrenta um dilema na escolha de uma linha para adoo e dedicao, h defensores ferrenhos de todos os lados: 8051, PIC, AVR, COP, Hitachi e muitos outros. necessrio admitir que a linha base da Microchip PIC (Linhas 12, 16 e 17) apresentam algumas limitaes em relao ao 8051 devido ao nmero reduzido de instrues, por exemplo, operaes aritmticas de multiplicao e diviso no esto contempladas no SET de instrues do PIC, caso se necessite dessas operaes, elas devero ser implementadas atravs de algoritmos e sub-rotinas. Contudo podemos apontar algumas vantagens da famlia Microchip:  Utiliza Arquitetura Harvard - Memria e Barramentos separados para dados e programas.  Registradores de propsitos gerais, conectados diretamente a ULA.  Timer/counters flexveis, com prescaler e modos de comparao.  Interrupes internas e externas.  Watchdog Timer programvel com oscilador interno.  Instrues executadas em dois estgios de pipeline, enquanto uma instruo est sendo executada, o pre-fetch da prxima instruo na memria de programas realizado.  Todas as instrues so single word.  Bastante flexibilidade na configurao das I/Os e pinos com funes multiplexadas.
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Arquitetura Harvard RISC x CISC


 CISC (Complex Instruction Set Computers)  RISC (Reduced Instruction Set Computers) Um CISC tende a ter um grande nmero de instrues, cada uma executando uma permutao diferente da mesma operao. Um RISC tem um nmero mnimo de instrues que permite ao utilizador desenhar as suas prprias instrues, 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 clculo das tabelas de artilharia naval.  CISC - Arquitetura de Princeton (Von Neumann) Em 1945 Von Neumann estabeleceu as bases para a construo de computadores. Desenhou uma mquina em que existia uma unidade de controle, capaz de decodificar um conjunto de instrues. Um processador que realiza as operaes que as instrues implicam. Um bloco de memria para guardar as instrues dos programas e dos dados. Uma unidade de interface de memria que responsvel pela gesto do acesso memria. Um ltimo bloco permitia a transferncia de informao aos perifricos exteriores.
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

A vantagem a simplicidade de acesso memria. Possui um barramento nico para acessar a memria (endereos, dados e controle) O grande inconveniente o fato de a memria 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 instrues.
CPU Memory (Program & Data)

Existem duas memrias diferentes e independentes, uma para as instrues e outra para os dados. Isto permite realizar acessos simultneos a ambas as memrias. Esta arquitetura tende a executar as instrues em menos ciclos de relgio, melhorando a taxa de uso dos barramentos. As duas memrias podem tambm ter palavras de comprimento diferentes. No caso do PIC16F84 a memria de programa Flash e possui 1024 posies de 14 bits cada. A memria de dados tem uma capacidade muito menor e um tamanho tpico de 8 bits.
Memory (Data) CPU Memory (Program)

 RISC - Arquitetura de Harvard

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Princenton x Harvard

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Pipeline de instrues em dois estgios:  Fase de busca (fetch) Procura-se o cdigo binrio da instruo na memria do programa.  Fase de execuo Interpreta-se o cdigo, buscam-se os operandos e executa-se a operao. Enquanto executa a fase de execuo de uma instruo, executa a fase de busca da instruo seguinte. Cada uma das fases realizada em 4 ciclos de relgio, porm as instrues de salto demoram 8 ciclos de relgio. Desta forma consegue-se executar cada instruo em quatro ciclos de relgio. Em um PIC16F84 a 4Mhz, o perodo de um ciclo de clock (1/4.000.000) = 0.25us, logo, o tempo de execuo de uma instruo comum 4*0.25us = 1us e de uma instruo com salto 8*0.25us = 2us. Pipeline de instrues sobrepe no tempo a busca e a execuo de instrues, fazendo com que a execuo destas seja em single cicle.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Relao entre o sinal de clock e o ciclo de instruo:

Exemplo de execuo de uma instruo:

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 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 multiplexao de funo dos pinos.  Barato. O PIC16F84A custa aproximadamente R$7,00.  Memria de programa de 1K palavras de 14 bits FLASH, em que em cada uma cabe uma instruo. Pode ser regravada cerca de 10.000 vezes com toda a segurana  Memria de dados RAM de 68 Bytes  Memria de dados EEPROM de 64 Bytes, no voltil  8 nveis de stack (pilha)  35 instrues de 14 bits  Tempo de execuo das instrues normais: 4xTosc  Tempo de execuo das instrues de salto: 8xTosc  4 tipos de interrupes (External RB0/INT pin, TMR0 timer overflow, PORTB<7:4> interrupton-change, Data EEPROM write complete)  13 linhas de entradas/sada digitais  1 timer  1 watch-dog  Alimentao de 2V a 6 V  Gravao de 12V a 14V  Encapsulamento DIP de 18 pernas (SOIC)  Proteo de cdigo , SLEEP, PWRT
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Pinagem do PIC16F84  RA0-RA4 PORTA  RB0-RB7 PORTB  MCLR Master Clear  OSC1/CLKIN Conexo do oscilador externo ou entrada de clock  OSC2/CLKOUT Conexa do oscilador externo ou sada de clock  RA4/TOCKI I/O RA4 ou entrada de clock externo para contador TMR0. RB0/INT I/O RB0 ou entrada para interrupo externa  VDD Alimentao +5V (2-6V)  VSS Terra do CI
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Arquitetura do PIC16F84

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Organizao da memria de programa do PIC 16F84  O PIC16F84 dispe de um contador de programa com 13 bits capaz de enderear 8K posies de memria de 14 bits. Neste C s se encontra implementado 1K com endereos de 0000h a 03FFh.  A estrutura de stack apresenta um mximo de 8 nveis o que impe uma limitao em termos de chamadas a subrotinas dentro de outras subrotinas. O vetor de reset corresponde posio de memria 0000h enquanto que o vetor de interrupo se encontra na posio 0004h.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Organizao da memria de dados do PIC 16F84  A memria de dados do 16F84 encontra-se dividida em duas reas. A primeira a rea correspondente aos Registros de Funo Especial (SFR) enquanto que a segunda diz respeito aos Registros de Uso Geral. Os SFRs so utilizados para o controle do C.  Uma das particularidades desta memria a sua diviso 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Registros de Uso Geral Cada registro de uso geral tem uma largura de 8 bits e pode ser acedido diretamente ou indiretamente atravs do registro FSR (ver mais frente).  Registros de Funo Especial Os Registros de Funo Especial so utilizados pelo CPU e pelos perifricos para o controle do C. Estes registros so implementados em RAM esttica.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Registro STATUS O registro STATUS contm as flags ligadas ALU, os flags de RESET e os bits de seleo do banco da memria de dados.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Registro OPTION_REG Trata-se de um registro que permite escrita e leitura e que contm vrios bits de controle para a configurao do divisor de frequncia (prescaler) do TMR0 / WDT, da interrupo externa INT, do TMR0 e das polarizaes (pull-ups) do PORTB.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Registro INTCON O registro INTCON contm os diferentes bits que permitem configurar o sistema de interrupes (enable /disable) e os flags de pedido de interrupo. Este registro pode ser lido ou escrito.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Registros PCL e PCLATH O contador de programa (PC) especifica o endereo da instruo a ser pesquisada ( fetch) da memria 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 contm os bits 12:8 do contador de programa. Este registro no pode ser escrito ou lido diretamente. Todas as operaes que seja necessrio efetuar sobre ele so feitas indiretamente sobre o registro PCLATH.  STACK A estrutura de Pilha (stack) implementada no PIC16F84 permite a ocorrncia de combinaes de at 8 chamadas de subrotinas ou interrupes, permitindo armazenar os respectivos endereos de retorno. A utilizao desta estrutura da exclusiva responsabilidade da unidade de controle do C, no havendo por isso qualquer instruo de software que a permita manipular. Como possui 8 nveis 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 endereo de retorno da primeira seja definitivamente perdida (memria tipo FILO).

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Endereamento indireto: registros INDF e FSR O registro INDF (endereo 00h / 80H) no um registro fsico. O acesso a este registro (leitura ou escrita) conduz realmente ao registro cujo endereo se encontra no registro FSR. Este ltimo registro o ponteiro para as operaes com endereamento indireto.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Perifricos de Interfaceamento  Timers/Counters;  Watchdog timers (WDT);  On-chip Oscillator Start-up Timer (OST)/ Power-up Timer (PWRT)  Portas paralelas  Coversores A/D  Mdulos CCP (Capture/Compare/PWM)  Mdulos I2C  Mdulos SSP (Synchronous serial port)  Addressable USART  Conversor A/D

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Temporizador / Contador TMR0 O perifrico TMR0 apresenta as seguintes caractersticas principais: Funes de temporizador ou contador de 8 bits Possibilidade de leitura e de escrita do registro Possibilidade de seleo de relgio interno ou externo Divisor de freqncia de 8 bits programvel por software (Prescaler) Permite gerar uma interrupo quando ocorrer um overflow (passagem de FFh a 00h) O Timer0 pode funcionar como temporizador ou como contador. A seleo do modo de funcionamento feita atravs do bit T0CS ( Timer0 Clock Sourse, bit 5 do OPTION_REG). No modo temporizador, T0CS=0, o registro TMR0 incrementa em cada ciclo de instruo desde que no seja utilizado o Prescaler (divisor de freqncia). 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Prescaler O prescaler um divisor de freqncia programvel e constitudo por um contador de 8 bits associado a um multiplexador de 81, como se mostra na figura 16. Este prescaler partilhado pelo Timer0 e pelo Watchdog Timer, no podendo contudo ser usado simultaneamente pelos dois perifricos. Sendo assim, a atribuio do prescaler ao Timer0 significa que o Watchdog Timer funciona sem prescaler, e vice-versa.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Watchdog Timer (WDT)  WDT permite a recuperao funcional da CPU em caso de perda do fluxo de execuo (ex. loops infinitos) Overflow do WDT reseta o chip  O temporizador Watchdog constitudo por um oscilador interno RC, no necessitando de quaisquer outros componentes externos. Este oscilador totalmente independente do oscilador do C. Isto quer dizer que, mesmo que o oscilador principal no funcione (por exemplo no caso do C se encontrar no estado de SLEEP), o WDT continuar em funcionamento.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Portas de I/O Alguns dos pinos das portas de I/O apresentam funes alternativas (Multiplexadas) para a utilizao com alguns perifricos do C. Geralmente, quando essas funes so utilizadas, o respectivo bit no 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 sada 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 sada de dados. Aps uma operao 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 operao de escrita sobre o mesmo registro coloca os valores de escrita nas Data Latch de sada.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

RA0 RA3

RA4

Exemplo de Configurao da PORTA clrf PORTA ;Zera o Data Latch da PORTA bsf STATUS,RP0 ;Muda para o banco 1 movlw b00011100 ;Configura pinos RA0 e RA1 como sadas movwf TRISA ;e RA2, RA3 e RA4 como entradas bcf STATUS,RP0 ;Volta para o banco 0
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 PORTB e TRISB PORTB uma porta bidirecional de 8 bits que, como acontece com o PORTA, dispe tambm de um registro TRISB para a configurao dos bits como entrada ou sada de dados. Cada um dos bits do PORTB dispe de um pull-up interno que controlado pelo bit 7 do registro OPTION (RBPU). Quando este bit igual a 0, todos os pull-ups esto ativados. A configurao de um bit como sada de dados provoca automaticamente a desativao do respectivo pull-up. Quando feito o power-on reset, os pull-ups so desativados. Quatro dos bits do PORTB, RB7:RB4, permitem gerar uma interrupo sempre que h uma mudana de estado em qualquer um deles, desde que estejam programados como entrada de dados. Os bits de entrada so permanentemente comparados com o ltimo valor lido. Desde que seja encontrada uma diferena em qualquer um desses bits, ativado o flag RBIF de pedido de interrupo.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

RB0 RB3

RB4 RB7

Exemplo de Configurao da PORTB clrf PORTB ;Zera o Data Latch do PORTB bsf STATUS,RP0 ;Muda para o banco 1 movlw b11110000 ;Configura pinos RB0 a RB3 como sadas movwf TRISA ;e RA4 a RA7 como entradas bcf STATUS,RP0 ;Volta para o banco 0
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Modo SLEEP  Execuo da instruo Sleep;  A CPU entra no modo de Power down; Consumo de 60uA (7mA operao normal)  Caractersticas:  WDT resetado, mas continua operando; Bit PD sinalizado (Status Register); Oscilador interno desligado; TMR0 desligado  Modos de sada do estado sleep: Reset externo (MCLR); Time-out do WDT; Interrupo externa (RB0/INT); Interrupo de fim de escrita na EEPROM

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Interrupes O PIC16F84A dispe de um nico nvel de interrupo com 4 fontes de interrupo:  Interrupo externa atravs do pino RB0/INT  Interrupo provocada pelo overflow do TMR0  Interrupo provocada pela mudana de estado do PORTB (RB7:RB4)  Interrupo provocada pelo fim da operao de escrita na E2PROM de dados O registro de controle das interrupes (INTCON) contm as diferentes flags de pedido de interrupo e os bits que permitem ativar ou desativar individualmente ou globalmente as diferentes interrupes. Na situao de reset, todos os bits correspondentes autorizao individual ou global das interrupes encontram-se desativados (T0IE = INTE = RBIE = EEIE = GIE = 0). Quando o C responde a um pedido de interrupo, o bit GIE colocado em 0 para no permitir mais nenhuma interrupo, o endereo de retorno colocado na stack e o PC carregado com o valor 0004h que o vetor de interrupo para este C. A rotina de servio de qualquer interrupo deve terminar sempre com a instruo RETFIE (RETurn From Interrupt Enable) que, alm de fazer o sistema retornar ao programa no local onde se verificou a interrupo, coloca tambm GIE = 1 permitindo de novo o acesso dos perifricos s interrupes.
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Gerador de relgio oscilador O circuito do oscilador usado para fornecer um relgio (clock), ao microcontrolador. O clock necessrio para que o microcontrolador possa executar um programa ou as instrues de um programa.  Tipos de osciladores O PIC16F84 pode trabalhar com quatro configuraes de oscilador. Uma vez que as configuraes com um oscilador de cristal e circuito RC so as mais freqentemente usadas, elas so as nicas que vamos mencionar aqui. Quando o oscilador de cristal, a designao da configurao de XT, se o oscilador for constitudo apenas por uma associao em srie de um resistor e um capacitor, tem a designao 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 opo configurada via software.  Oscilador XT O oscilador de cristal est contido num envlucro de metal com dois pinos onde foi escrita a frequncia a que o cristal oscila. Dois capacitores cermicos devem ligar cada um dos pinos do cristal massa. Quando o cristal e os capacitores esto contidos no mesmo encapsulamento, chamado de ressonador cermico. Este elemento tem trs pinos com o pino central ligado massa e os outros dois pinos ligados aos pinos OSC1 e OSC2 do microcontrolador.
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Reset O reset usado para pr o microcontrolador num estado conhecido. Na prtica isto significa que s vezes o microcontrolador pode comportar-se de um modo inadequado em determinadas condies indesejveis. A fim de que o seu funcionamento normal seja reestabelecido, preciso fazer o reset do microcontrolador, isto significa que todos os seus registos vo conter valores iniciais pr-definidos, correspondentes a uma posio inicial. O reset no usado somente quando o microcontrolador no se comporta da maneira que ns queremos, mas, tambm pode ser usado, quando ocorre uma interrupo por parte de outro dispositivo, ou quando se quer que o microcontrolador esteja pronto para executar um programa . O microcontrolador PIC16F84, admite vrias formas de reset: a) Reset quando se liga a alimentao, POR (Power-On Reset) b) Reset durante o regime de SLEEP (dormir). c) Reset durante o funcionamento normal, quando se pe a nvel lgico baixo o pino MCLR . d) Reset quando o temporizador do watchdog (WDT) transborda (passa para 0 depois de atingir o valor mximo). e) Reset quando o temporizador do watchdog (WDT) transborda estando no regime de SLEEP.
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Oscilador RC Em aplicaes em que a preciso da temporizao no um fator crtico, o oscilador RC torna-se mais econmico. A frequncia de ressonncia do oscilador RC depende da tenso de alimentao, dos valores de RC e da temperatura de funcionamento.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Set de instrues Completo

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Sintaxe ADDLW k ADDWF f,d ANDLW k ANDWF f,d BCF f,b BSF f,b BTFSC f,b BTFSS f,b CALL k CLRF f CLRW CLRWDT COMF f,d DECF f,d DECFSZ f,d

Descrio Microchip Add Literal and W Add W and f AND Literal with W AND W with f Bit Clear f Bit Set f Bit Test f, Skip if Clear Bit Test f, skip if Set Subroutine Call Clear f Clear W Register Clear Watchdog Timer Complement f Decrement f Decrement f, Skip if 0

Operao equivalente W=W+k d = W + f (onde d pode ser W ou f) W = W AND k d = W AND f (onde d pode ser W ou f) f(b) = 0 f(b) = 1 f(b) = 0 ? Se , salta uma instruo f(b) = 1 ? Se , salta uma instruo Chamada a uma subrotina no endereo k f=0 W=0 Watchdog timer = 0 d = not f (onde d pode ser W ou f) d = f -1 (onde d pode ser W ou f) d = f -1 (onde d pode ser W ou f) se d = 0 salta

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Sintaxe GOTO k INCF f,d INCFSZ f,d IORLW k IORWF f,d MOVLW k MOVF f,d MOVWF f NOP OPTION RETFIE RETLW k RETURN RLF f,d RRF f,d

Descrio Microchip Go to address Increment f Increment f, Skip if 0 Inclusive OR Literal with W Inclusive OR W with f Move literal to W Move f Move W to f No Operation Load Option Register Return from Interrupt Return Literal to W Return from Subroutine Rotale Left f through Carry Rotale Right f through Carry

Operao equivalente salta para o endereo k d = f +1 (onde d pode ser W ou f) d = f +1 (onde d pode ser W ou f) se d = 0 salta W = W OR k d = f OR W (onde d pode ser W ou f) W=k d = f (onde d pode ser W ou f) f=W Nenhuma operao OPTION = W Retorna de uma interrupt handler Retorna de uma subrotina com W = k Retorna de uma subrotina d = f << 1 (onde d pode ser W ou f) d = f >> 1 (onde d pode ser W o f)

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Sintaxe SLEEP SUBLW k SUBWF f,d SWAPF f TRIS f XORLW k XORWF f,d

Descrio Microchip Go into Standby Mode Subtract W from Literal Subtract W from f Swap f Load TRIS Register Exclusive OR Literal with W Exclusive OR W with f

Operao equivalente Coloca o PIC em standby W=k-W d = f - W (onde d pode ser W ou f) f = Swap do bit 0123 com 4567 de f TRIS di f = W W = W XOR k d = f XOR W (onde d pode ser W ou f)

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - ADDLW
ADDLW Soma um literal a W

Sintaxe: [label] ADDLW k Operandos: 0 k 255 Operao: : (W) + (k)==> (W) Flags afectadas: C, DC, Z Cdigo OP: 11 111x kkkk kkkk Descrio: Soma o contedo do registo W e k, guardando o resultado em W.

Exemplo:

ADDLW 0xC2

Antes: W = 0x17 Depois: W = 0xD9

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - ADDWF
ADDWF W + F

Sintaxe: [label] ADDWF f,d Operandos: d [0,1], 0 f 127 Operao: (W) + (f) ==> (dest) Flags afectadas: C, DC, Z Cdigo OP: 00 0111 dfff ffff Descrio: Soma o contedo 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - ANDLW
ANDLW W AND literal

Sintaxe: [label] ANDLW k Operandos: 0 k 255 Operao: : (W) AND (k)==> (W) Flags afectadas: Z Cdigo OP: 11 1001 kkkk kkkk Descrio: Realiza a operao lgica AND entre o contedo do registo W e k, guardando o resultado em W. Exemplo: ADDLW 0xC2

Antes: W = 0x17 Depois: W = 0xD9

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - BCF
BCF Apaga um bit

Sintaxe: [label] BCF f,b Operandos: 0 f 127, 0 b 7 Operao: : 0 ==> (f<b>) Flags afectadas: nenhum Cdigo OP: 01 00bb bfff ffff Descrio: Apaga o bit b do registo f

Exemplo: : Antes: REG = 0xC7 Depois: REG = 0x47

BCF REG,7

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - BSF
BSF Activa um bit

Sintaxe: [label] BSF f,b Operandos: 0 f 127, , 0 Operao: 1 ==> (f<b>) Flags afectadas: nenhum Cdigo OP: 01 01bb bfff

ffff

Descrio: Activa o bit b do registo f

Exemplo:

BSF REG,7

Antes: REG = 0x0A Depois: REG = 0x8A

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - BTFSC
BTFSC Testa o bit e salta se for 0

Sintaxe: [label] BTFSC f,d Operandos: d [0,1], 0 f 127 Operao: Salto Se (f<b>) = 0 Flags afectadas: nenhum Cdigo OP: 01 10bb bfff ffff Descrio: Se o bit b do registo f 0, salta uma instruo e continua com a execuo. Em caso de salto, ocupar dois ciclos de relgio. Exemplo: BTFSC REG,6 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 instruo

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - BTFSS
BTFSS Testa o bit e salta se for 1

Sintaxe: [label] BTFSS f,d Operandos: d [0,1], 0 f 127 Operao: Salto Se (f<b>) = 1 Flags afectadas: nenhum Cdigo OP: 01 11bb bfff ffff Descrio: Se o bit b do registo f 1, salta uma instruo e continua com a execuo. Em caso de salto, ocupar dois ciclos de relgio. Exemplo: BTFSS REG,6 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 instruo

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - CALL
CALL Salta para subrotina

Sintaxe: [label] CALL k Operandos: 0 k 2047 Operao: PC ==> pilha; k ==> PC Flags afectadas: nenhum Cdigo OP: 10 0kkk kkkk kkkk Descrio: Salta para uma subrotina. A parte baixa de k carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relgio. Exemplo: ORIGEM CALL DESTINO Antes: PC = ORIGEM Depois: PC = DESTINO

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - CLRF
CLRF Apaga um registo

Sintaxe: [label] CLRF f Operandos: 0 f 127 Operao: : 0x00 ==> (f), 1 ==> Z Flags afectadas: Z Cdigo OP: 00 0001 1fff ffff Descrio: 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - CLRW
CLRW Apaga o registo W Sintaxe: [label] CLRW Operandos: nenhum Operao: : 0x00 ==> W, 1 ==> Z Flags afectadas: Z Cdigo OP: 00 0001 0xxx xxxx Descrio: 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - CLRWDT
CLRWDT Apaga o WDT

Sintaxe: [label] CLRWDT Operandos: nenhum Operao: 0x00 ==> WDT, 1 ==> /TO 1 ==> /PD Flags afectadas: /TO, /PD Cdigo OP: 00 0000 0110 0100 Descrio: Esta instruo apaga tanto o WDT como o seu preescaler. Os bits /TO e /PD do registo de estado so colocados a 1. Exemplo: : CLRWDT Depois: Contador WDT = 0, Preescales WDT = 0, /TO = 1, /PD = 1

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - COMF
COMF Complemento de f

Sintaxe: [label] COMF f,d Operandos: d [0,1], 0 f 127 Operao: : (/ f), 1 ==> (dest) Flags afectadas: Z Cdigo OP: 00 1001 dfff ffff Descrio: 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - DECF
DECF Decremento de f

Sintaxe: [label] DECF f,d Operandos: d [0,1], 0 f 127 Operao: : (f ) - 1 ==> (dest) Flags afectadas: Z Cdigo OP: 00 0011 dfff ffff Descrio: Decrementa contedo 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - DECFSZ
DECFSZ Decremento e salta se 0 Sintaxe: [label] DECFSZ f,d Operandos: d [0,1], 0 f 127 Operao: (f) -1 ==> d; Salto Se R=0 Flags afectadas: nenhum Cdigo OP: 00 1011 dfff ffff Descrio: Decrementa o contedo do registo f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Se o resultado 0 salta uma instruo e ocuparia 2 ciclos. Exemplo: DECFSZ REG,0 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 Salta instruo anterior

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - GOTO
GOTO Salto incondicional

Sintaxe: [label] GOTO k Operandos: 0 k 2047 Operao: k ==> PC <8:0> Flags afectadas: nenhum Cdigo OP: 10 1kkk kkkk kkkk Descrio: Trata-se de um salto incondicional. A parte baixa de k carregada em PCL, e a alta em PCLATCH. Ocupa 2 ciclos de relgio. Exemplo: ORIGEM GOTO DESTINO Antes: PC = ORIGEM Depois: PC = DESTINO

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - INCF
INCF Incremento de f

Sintaxe: [label] INCF f,d Operandos: d [0,1], 0 f 127 Operao: : (f ) + 1 ==> (dest) Flags afectadas: Z Cdigo OP: 00 1010 dfff ffff Descrio: Incrementa o contedo 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - INCFSZ
INCFSZ Incremento e salta se 0 Sintaxe: [label] INCFSZ f,d Operandos: d [0,1], 0 f 127 Operao: (f) -1 ==> d; Salto Se R=0 Flags afectadas: nenhum Cdigo OP: 00 1111 dfff ffff Descrio: Incrementa o contedo do registo f. Se d 0, o resultado armazenado em W. Se d 1 armazenado em f. Se o resultado 0 salta a instruo seguinte, em cujo caso demoraria 2 ciclos. Exemplo: INCFSC REG,0 GOTO NO_ES_0 SI_ES_0 instruo NO_ES_0 Salta instruo anterior

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - IORLW
IORLW W OR literal

Sintaxe: [label] IORLW k Operandos: 0 k 255 Operao: : (W) OR (k)==> (W) Flags afectadas: Z Cdigo OP: 11 1000 kkkk kkkk Descrio: Realiza a operao lgica OR entre o contedo do registo W e k, guardando o resultado em W. Exemplo: IORLW 0x35

Antes: W = 0x9A Depois: W = 0xBF

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - IORLWF
IORWF W OR F

Sintaxe: [label] IORWF f,d Operandos: d [0,1], 0 f 127 Operao: (W) OR (f) ==> (dest) Flags afectadas: Z Cdigo OP: 00 0100 dfff ffff Descrio: Realiza a operao lgica 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - MOVLW
MOVLW Carregar literal em W

Sintaxe: [label] MOVLW f Operandos: 0 f 255 Operao: (k) ==> (W) Flags afectadas: nenhum Cdigo OP: 11 00xx kkkk kkkk Descrio: O literal k passa ao registo W.

Exemplo:

MOVLW 0x5A

Depois: REG = 0x4F, W = 0x5A

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - MOVF
MOVF Mover f para W

Sintaxe: [label] MOVF f,d Operandos: d [0,1], 0 f 127 Operao: (f) ==> (dest) Flags afectadas: Z Cdigo OP: 00 1000 dfff ffff Descrio: O contedo 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: Depois: W = REG MOVF REG,0

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - MOVWF
MOVWF Mover W para f

Sintaxe: [label] MOVWF f Operandos: 0 f 127 Operao: W ==> (f) Flags afectadas: nenhum Cdigo OP: 00 0000 1fff ffff Descrio: O contedo 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - NOP
NOP No operao

Sintaxe: [label] NOP Operandos: nenhum Operao: No operar Flags afectadas: nenhum Cdigo OP: 00 0000 0xx0

0000

Descrio: No realiza nenhuma operao. Na realidade consome um ciclo de instruo sem fazer nada.

Exemplo:

NOP

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - RETFIE
RETFIE regresso de interrupo

Sintaxe: [label] RETFIE Operandos: nenhum Operao: : 1 ==> GIE; TOS==>PC Flags afectadas: nenhum Cdigo OP: 00 0000 0000 1001 Descrio: o PC carregado com o contedo de cima da pilha (TOS): direco de regresso. Consome 2 ciclos. As interrupes voltam a ser habilitadas. Exemplo: : RETFIE Depois: PC = direco de regresso GIE = 1

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - RETLW
RETLW regresso de uma subrotina, com o valor em W

Sintaxe: [label] RETLW k Operandos: 0 k 255 Operao: : (k)==> (W); TOS==>PC Flags afectadas: nenhum Cdigo OP: 11 01xx kkkk kkkk Descrio: O registo W carregado com a constante k. O PC carregado com o contedo de cima da pilha (TOS): direco de regresso. Consome 2 ciclos. Exemplo: : RETLW 0x37 Depois: PC = direco de regresso W = 0x37

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - RETURN
RETURN regresso de rotina Sintaxe: [label] RETURN Operandos: nenhum Operao: : TOS ==> PC Flags afectadas: nenhum Cdigo OP: 00 0000 0000

1000

Descrio: O PC carregado com o contedo de cima da pilha (TOS): direco de regresso. Consome 2 ciclos. Exemplo: : RETURN

Depois: PC = direco de regresso

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - RLF
RLF roda f para a esquerda

Sintaxe: [label] RLF f,d Operandos: d [0,1], 0 f 127 Operao: Rotao a a esquerda Flags afectadas: C Cdigo OP: 00 1101 dfff ffff Descrio: O contedo 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - RRF
RRF roda f para a direita

Sintaxe: [label] RRF f,d Operandos: d [0,1], 0 f 127 Operao: Rotao a a direita Flags afectadas: C Cdigo OP: 00 1100 dfff ffff Descrio: O contedo 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - SLEEP
SLEEP Modo baixo consumo Sintaxe: [label] SLEEP Operandos: nenhum Operao: 0x00==>WDT, 1 ==> / TO 0 ==> WDT Preescaler, 0 ==> / PD Flags afectadas: / PD, / TO Cdigo OP: 00 0000 0110 0011 Descrio: O bit de energia colocado a 0, e a 1 o de descanso. O WDT e o seu preescaler so apagados. o micro pra o oscilador, ficando adormecido. Exemplo: : SLEEP Preescales WDT = 0, /TO = 1, /PD = 1

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - SUBLW
SUBLW Subtrai W ao literal

Sintaxe: [label] SUBLW k Operandos: 0 k 255 Operao: ( k ) - (W) ==> (W) Flags afectadas: Z, C, DC Cdigo OP: 11 110x kkkk kkkk Descrio: Mediante o mtodo do complemento para dois o contedo de W subtrado 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - SUBLWF
SUBWF Subtrai W ao f

Sintaxe: [label] SUBWF f,d Operandos: d [0,1], 0 f 127 Operao: ( f ) - (W )==> (dest) Flags afectadas: C, DC, Z Cdigo OP: 00 0010 dfff ffff Descrio: Mediante o mtodo do complemento para dois o contedo de W subtrado 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - SWAPF
SWAPF Troca de f

Sintaxe: [label] SWAPF f,d Operandos: d [0,1], 0 f 127 Operao: : (f <3: 0>) (f <7:4>) Flags afectadas: nenhum Cdigo OP: 00 1110 dfff ffff Descrio: Os 4 bits de maior peso e os 4 de menor so 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - XORLW
XORLW W XOR literal

Sintaxe: [label] XORLW k Operandos: 0 k 255 Operao: : (W) XOR (k)==> (W) Flags afectadas: Z Cdigo OP: 11 1010 kkkk kkkk Descrio: Realiza a operao lgica XOR entre o contedo do registo W e k, guardando o resultado em W. Exemplo: : Antes: W = 0xB5 Depois: W = 0x1A XORLW 0xAF

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

Instrues - XORLW
XORWF W XOR F

Sintaxe: [label] XORWF f,d Operandos: d [0,1], 0 f 127 Operao: (W) XOR (f) ==> (dest) Flags afectadas: Z Cdigo OP: 00 0110 dfff ffff Descrio: Realiza a operao lgica 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 Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Esquema Eletrnico da Placa Experimental PICLAB1

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Bits de configurao Os bits de configurao podem ser programados de maneira a selecionar diferentes tipos de configurao do microcontrolador.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Diretivas de controle #DEFINE Troca de uma poro de texto por outra Sintaxe: #define<nome> [< texto atribudo a nome > ] Descrio: De cada vez que a palavra <nome> aparece no programa, vai ser substituda por <texto atribudo a nome>. Exemplo1: #DEFINE banck0 bcf #DEFINE banck1 bsf STATUS,RP0 STATUS,RP0 ;Seta BANCK0 de memria ;Seta BANCK1 de memria

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

#INCLUDE Incluir um ficheiro adicional num programa Sintaxe: #include <<nome_do_ficheiro>> #include <nome_do_ficheiro> Descrio: A aplicao 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 no estiver entre aspas, mas sim entre os sinais < >, trata-se de um ficheiro do utilizador. A diretiva include, contribui para uma melhor apresentao do programa principal. Exemplo: #INCLUDE <P16F84A.INC> ;Arquivo Padro Microchip para PIC16F84A

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

ORG Define o endereo a partir do qual o programa armazenado na memria do microcontrolador Sintaxe: <rtulo> org <valor> Descrio: Esta a diretiva mais frequentemente usada. Com esta diretiva ns definimos em que parte na memria de programa o programa vai comear. Exemplo: Inicio org 0x00 movlw 0xFF movwf PORTB Estas duas instrues a seguir directiva 'org', so guardadas a partir do endereo 00.

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

END Fim do programa Sintaxe: end Descrio: No fim do programa, necessrio colocar a diretiva 'end', para que o tradutor do assembly (assembler), saiba que no existem mais instrues no programa. Exemplo: . . movlw 0xFF movwf PORTB end

2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

 Directivas de Dados 4.16 CBLOCK Definir um bloco para as constantes nomeadas Sintaxe: Cblock [< termo >] <rtulo> [:<incremente>], <rtulo> [:<incremente>]...... endc Descrio: Esta directiva usada para atribuir valores s constantes a seguir nomeadas. A cada termo seguinte, atribudo um valor superior em uma unidade ao anterior. No caso de <incremente> estar preenchido, ento o valor de <incremente> que adicionado constante anterior. O valor do parmetro <termo>, o valor inicial. Se no for dado, ento, por defeito, considerado igual a zero. Exemplo: cblock 0x02 primeiro, segundo ; primeiro = 0x02, segundo = 0x03 terceiro ;terceiro = 0x04 endc
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica

Introduo aos Microcontralodores PIC

__CONFIG Estabelecer os bits de configurao Sintaxe: __config<termo> ou __config <endereo>, <termo> Descrio: So definidos o tipo de oscilador, e a utilizao do watchdog e do circuito de reset interno. Antes de usar esta diretiva, tem que declarar o processador atravs da directiva PROCESSOR. Exemplo: __CONFIG _CP_OFF & _WDT_OFF & PWRTE_ON & _XT_OSC PROCESSOR Definindo o modelo de microcontrolador Sintaxe: processor <tipo_de_microcontrolador> Descrio: Esta diretiva, estabelece o tipo de microcontrolador em que o programa vai correr. Exemplo: processor 16f84
2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica