Apresentação pic

81
2006 UPE – POLI – Escola Politécnica de Pernambuco – Carlos Alberto Cunha – Engenharia Eletrônica Introdução aos Microcontralodores Introdução aos Microcontralodores PIC PIC Curso de Introdução ao Microcontrolador PIC Microchip Carlos Alberto Cunha

Transcript of Apresentação pic

  • 1. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Curso de Introduo ao Microcontrolador PIC Microchip Carlos Alberto Cunha

2. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 3. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Conceitos: Microcontrolador: um computador dentro de um circuito integrado. Devido 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. 4. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 5. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo 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 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. 6. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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) RISC - Arquitetura de Harvard 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) 7. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Princenton x Harvard 8. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 9. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Relao entre o sinal de clock e o ciclo de instruo: Exemplo de execuo de uma instruo: 10. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo 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 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 interrupt-on-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 11. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 12. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Arquitetura do PIC16F84 13. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 14. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 15. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo 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 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. 16. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 17. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 18. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 19. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 20. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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). 21. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 22. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 23. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 24. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 25. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 26. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 27. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 28. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 29. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 30. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 31. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 32. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 33. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 34. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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. 35. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Set de instrues Completo 36. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Sintaxe Descrio Microchip Operao 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 instruo BTFSS f,b Bit Test f, skip if Set f(b) = 1 ? Se , salta uma instruo CALL k Subroutine Call Chamada a uma subrotina no endereo k CLRF f Clear f f = 0 CLRW Clear W Register W = 0 CLRWDT Clear Watchdog Timer Watchdog timer = 0 COMF f,d Complement f d = not f (onde d pode ser W ou f) DECF f,d Decrement f d = f -1 (onde d pode ser W ou f) DECFSZ f,d Decrement f, Skip if 0 d = f -1 (onde d pode ser W ou f) se d = 0 salta 37. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Sintaxe Descrio Microchip Operao equivalente GOTO k Go to address salta para o endereo 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 operao 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 o f) 38. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Sintaxe Descrio Microchip Operao equivalente SLEEP Go into Standby Mode Coloca o PIC em standby SUBLW k Subtract W from Literal W = k - W SUBWF f,d Subtract W from f d = f - W (onde d pode ser W ou f) SWAPF f Swap f f = Swap do bit 0123 com 4567 de f TRIS f Load TRIS Register TRIS di f = W XORLW k Exclusive OR Literal with W W = W XOR k XORWF f,d Exclusive OR W with f d = f XOR W (onde d pode ser W ou f) 39. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - ADDLWInstrues - 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 40. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - ADDWFInstrues - 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 41. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - ANDLWInstrues - 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 42. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - BCFInstrues - BCF BCF Apaga um bit Sintaxe: [label] BCF f,b Operandos: 0 f 127, 0 b 7 Operao: : 0 ==> (f) Flags afectadas: nenhum Cdigo OP: 01 00bb bfff ffff Descrio: Apaga o bit b do registo f Exemplo: : BCF REG,7 Antes: REG = 0xC7 Depois: REG = 0x47 43. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - BSFInstrues - BSF BSF Activa um bit Sintaxe: [label] BSF f,b Operandos: 0 f 127, , 0 b 7 Operao: 1 ==> (f) 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 44. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - BTFSCInstrues - 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) = 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 45. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - BTFSSInstrues - 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) = 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 46. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - CALLInstrues - 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 47. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - CLRFInstrues - 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 48. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - CLRWInstrues - 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 49. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - CLRWDTInstrues - 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 50. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - COMFInstrues - 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 51. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - DECFInstrues - 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 52. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - DECFSZInstrues - 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 53. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - GOTOInstrues - GOTO GOTO Salto incondicional Sintaxe: [label] GOTO k Operandos: 0 k 2047 Operao: k ==> PC 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 54. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - INCFInstrues - 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 55. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - INCFSZInstrues - 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 56. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - IORLWInstrues - 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 57. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - IORLWFInstrues - 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 58. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - MOVLWInstrues - 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 59. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - MOVFInstrues - 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: MOVF REG,0 Depois: W = REG 60. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - MOVWFInstrues - 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 61. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - NOPInstrues - 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 62. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - RETFIEInstrues - 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 63. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - RETLWInstrues - 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 64. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - RETURNInstrues - 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 65. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - RLFInstrues - 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 66. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - RRFInstrues - 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 67. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - SLEEPInstrues - 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 68. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - SUBLWInstrues - 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) 69. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - SUBLWFInstrues - 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) 70. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - SWAPFInstrues - SWAPF SWAPF Troca de f Sintaxe: [label] SWAPF f,d Operandos: d [0,1], 0 f 127 Operao: : (f ) (f ) 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 71. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - XORLWInstrues - 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: : XORLW 0xAF Antes: W = 0xB5 Depois: W = 0x1A 72. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Instrues - XORLWInstrues - 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 73. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Esquema Eletrnico da Placa Experimental PICLAB1 74. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 75. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Bits de configurao Os bits de configurao podem ser programados de maneira a selecionar diferentes tipos de configurao do microcontrolador. 76. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Diretivas de controle #DEFINE Troca de uma poro de texto por outra Sintaxe: #define [< texto atribudo a nome > ] Descrio: De cada vez que a palavra aparece no programa, vai ser substituda por . Exemplo1: #DEFINE banck0 bcf STATUS,RP0 ;Seta BANCK0 de memria #DEFINE banck1 bsf STATUS,RP0 ;Seta BANCK1 de memria 77. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC #INCLUDE Incluir um ficheiro adicional num programa Sintaxe: #include #include 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 ;Arquivo Padro Microchip para PIC16F84A 78. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC ORG Define o endereo a partir do qual o programa armazenado na memria do microcontrolador Sintaxe: org 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. 79. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC 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 80. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC Directivas de Dados 4.16 CBLOCK Definir um bloco para as constantes nomeadas Sintaxe: Cblock [< termo >] [:], [:]...... 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 estar preenchido, ento o valor de que adicionado constante anterior. O valor do parmetro , 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 81. 2006 UPE POLI Escola Politcnica de Pernambuco Carlos Alberto Cunha Engenharia Eletrnica Introduo aos MicrocontralodoresIntroduo aos Microcontralodores PICPIC __CONFIG Estabelecer os bits de configurao Sintaxe: __config ou __config , 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 Descrio: Esta diretiva, estabelece o tipo de microcontrolador em que o programa vai correr. Exemplo: processor 16f84