Sunteți pe pagina 1din 25

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

1 - Introduo a Famlia de Microcontroladores PIC.


Diferentes dos processadores utilizados em aplicaes como computadores pessoais e Workstations (estaes de trabalho, os microcontroladores esto escondidos" dentro de uma aplicao onde o usurio esta concentrado em um nvel mais alto de interao com o produto (como teclados, displays e seus comandos). muito raro um usurio conhecer ou querer conhecer o Microcontrolador utilizado dentro do produto, o que no ocorre nos usurios de PC, que esto intimamente familiarizados no somente com o tipo de processador, mas tambm como seu clock, capacidade de memria etc. Tipicamente os microcontroladores se caracterizam por incorporarem internamente memrias de programa e dados, vrios perifricos como timers, watchdog timers, comunicao serial, conversares Analgico Digital, geradores de PWM, etc Fazendo com que a aplicao final fique eternamente compacta. A Microchip uma precursora no uso da tecnologia RISC em microprocessadores, o nome RISC a abreviao de Reduced Instruction Set Computer em portugus, computador com conjunto reduzido de instrues. Diferente da arquitetura Von Neumann, a estrutura RISC baseada na arquitetura HARWARD que possui um barramento para dados e outro para o programa e tem como caracterstica tamanhos diferenciados ( por exemplo no PIC 16C5X o barramento de dados de 8 bits, enquanto o de programas de 12 Bits) o que significa que a instruo est "empacotada" em uma nica palavra de programa ( no caso do PIC16C5X de 12 Bits ) que alm de conter um opcode (instruo contm operandos (dados para a execuo da instruo) . Com isso conseguimos compactar o cdigo e execut-lo em alta velocidade. A Microchip oferece 3 (trs) famlias de microcontroladores de 8 Bits que se adaptam aos mais variados projetos, Estas famlias so: PIC 16C5X Linha Base da famlia de 8 Bts PIC 16CXX Linha Intermediria da famlia de $ Bits PIC 17CXX Topo de Linha da famlia de 8 Bits 2- Caractersticas da Arquitetura RISC O alto desempenho da famlia de microcontroladores PIC pode ser atribuda as seguintes caractersticas de arquitetura: 2. 1 - Arquitetura Harward A arquitetura Harward utiliza dois barramentos diferentes para acessar instrues e dados. A memria dividida em duas partes uma parte possui os opcodes do programa a ser executado ligado ao microprocessador central por um barramento, e outra parte da memria possui dados utilizados por este programa ligados ao mesmo microprocessador por outro barramento.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

Cabe salientar que o Microprocessador uma parte integrante do Microcontrolador que composto de microprocessador memrias e dispositivos de I/0 e acessrios. Exemplo de Arquitetura Harward.

2. 1. 1 - Arquitetura Von Neumann A arquitetura Von Neumann a tradicional e utiliza a mesma rea de memria para opcodes e dados, um exemplo tpico deste sistema o microprocessador Z80. Examinando a memria Eprom utilizada em conjunto com o microprocessador encontrado o seguinte cdigo 0000 06 O5 06 Opcode carregar B com um nmero 05 nmero a ser carregado no registrador B 0002 OE FF 0E Opcode carregar C com um nmero FF nmero a ser carregado no registrador C Exemplo de arquitetura Von Newman.

2.2- Cicio de instrues A entrada de Clock do PIC (pino OSCI / CLKIN ) internamente dividida por quatro para gerar quatro clocks em quadratura sem sobreposio nomeados Q1, Q2 ,Q3, Q4 Internamente, o contador de programa PC incrementado em Q1, e a instruo retirada da memria de programa e colocada no registrador de instrues em Q4. Ela decodificada e executada durante o cicio seguinte de QI at Q4.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

2.3- Fluxo de Instrues Pipeline. Um ciclo de instruo consiste em 4 ciclos Q ( Q I, Q2, Q3, Q4 A busca e execuo da instruo so feitas em linha, de tal forma que a busca leva um ciclo de instruo e a execuo leva outro cicio. Contudo devido a caracterstica de pipeline, cada instruo executada efetivamente em um ciclo, pois simultaneamente ocorrem a execuo de uma instruo e a busca a instruo seguinte. Se uma instruo causa a alterao do Contador de Programa ento dois cicios so exigidos para completar a instruo. Na maioria dos microcontroladores, a busca a execuo das instrues feita seqencialmente. A arquitetura de pipeline sobrepe busca e execuo, tomando possvel a execuo de instrues em apenas um cicio de mquina. . Qualquer instruo de desvio como GOTO, CALL ou escrever no PC leva dois ciclos de mquina. Exemplo de um trecho de programa com PIC. Carregar o registrador W com o nmero 55 em hexadecimal Escrever o contedo de W no portb. Chamar a subrotina "escreve" Setar o Bit 3 do porta movlw 55h rnovwf portb call escreve bsf porta,3 end (move para w o n.' 5 (move para o portb o contedo de w) (chama subrotina 'escreve) (seta o bit 3 do porta) ( fim de Programa) busca opc.2 busca opc.3 (endereo da subrotina "escreve") busca opc.4 busca opc.5

busca opc 1 moviw 55h executa opc. 1 movwf portb executa opc.2 call escreve executa 'escreve" despreza bsf porta,3 executa opc.4 end

2.4- Palavra de instruo longa A arquitetura com barramentos separados para instrues e dados permitem larguras de barramento diferentes, com isso o barramento de instrues otimizado para uma palavra de comprimento nica. O nmero de bits do barramento de instrues depende de quantas instrues so implementadas e do nmero de registradores disponveis em cada famlia de Microcontrolador.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

PIC 16C5X Instruo de 12 Bits

PIC 16CXX Instruo de 14 Bits

PIC 17CXX Instruo de 14 Bits

2.5- Conceito de Registrador-Arquivo Todas as instrues aritmticas e booleanas so feitas atravs do registrador de trabalho W. O destino da operao pode ser o prprio registrador W ou um dos registradores disponveis no Microcontrolador, dependendo unicamente da instruo executada.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

2.6- Interrupes Vrias fontes de interrupes podem ser utilizadas de forma interna e externa empregando 4 vetores de interrupo, com prioridade entre as interrupes setadas por software, possibilitando ainda a habilitao individual ou global das interrupes. Existe ainda o modo SLEEP ou modo de economia de energia que pode ser despertado atravs de uma das interrupes. O tempo de espera da interrupo de 3 ciclos de instruo. 3- Arquitetura de Hardware da Famlia PIC 16FSX A famlia dos microcontroladores PIC apresenta uma grande variedade de microcontroladores, o Microcontrolador empregado para estudo foi o PIC 16F84 por possuir caractersticas que se adaptam a maioria dos processos industriais, possuir amemria de programa em FLASH EPROM que permite gravar o Microcontrolador via software, alm de ser muito semelhante com microcontroladores mais poderosos os quais diferenciam apenas em nmero de portos, temporizadores e alguns acessrios como conversar AID e PWM. Na figura abaixo est representado de forma simplificada a arquitetura internada famlia PIC 16F8X. Ela baseada em registradores com o barramento de memria de dados separado do barramento de memria de programa (arquitetura RISC). Este conceito permite ter um conjunto de instrues simples mas extremamente poderoso que enfatiza as operaes de Bit, Byte e de registradores

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

3.1 Descrio da pinagem do PIC 16F8X


Nome do Pino OSC1/CLKin OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/TOCK1 Dip 16 15 4 17 18 1 2 3 I/O/P/ Type I O I I/O I/O I/O I/O I/O Buffer St/Cmos(3) ST TTL TTL TTL TTL ST Descrio Entrada do oscilador a cristal ou Entrada de clock externo Sada para o oscilador a cristal. No modo Rc o pino CLKOUT gera da frequencia do OSC1. Entrada Master Clear (Reset) ou entrada da tenso de programao. Este pino ativo em nvel baixo durante o Reset. PORTA Porto Bidirecional de I/O. Caso seja selecionado a entrada de clock em TMRO como Contador ou Timer a sada em configurao Open Drain. PORTB Porto Bidirecional de I/O. O Software pode programar internamente os resisteore de Pull-Up de todas as entradas. RBO/INT seleciona o pino de interrupo externa.

RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 Vss VDD

6 7 8 9 10 11 12 13 5 14

I/O I/O I/O I/O I/O I/O I/O I/O P P

TTL/ST(1) TTL TTL TTL TTL TTL TTL/ST(2) TTL/ST(2) -

Pino de Interrupo Pino de Interrupo Pino de Interrupo / Serial Clock Pino de Interrupo / Serial Data Ground para lgica e pinos de I/O. Positivo para lgica e pinos de I/O

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

Legenda: 1 = lnput - = No Usado O = output TTL = TTL lnput I/O = lnput / Output ST = Shimitt Trigger P = Power

1) Este Buffer com entrada do tipo Shimitt Trigger e configurado em conjunto com as interrupes externas. 2) Este Buffer com entrada do tipo Shimitt Trigger e configurado em conjunto com a programao Serial do Microcontrolador. 3) Este Buffer com entrada do tipo Shimitt Trigger e configurado como o modo de oscilador do tipo RC e entrada de clock externo. 3.2- Caractersticas Gerais do Microcontrolador 1) 35 Instrues de programa 2) CPU RISC de alta performance 3) Memria Flash Eprom de Ikb 4) Memria RAM de 68 Bytes 5) Freqncia mxima de operao de 10MHz 6) Velocidade de instruo de 400ns por ciclo. 7) Instrues de 14 Bits 8) Dados de 8 Bits 9) Pilha com 8 nveis de profundidade 10) Endereamento direto e indireto 11) Quatro fontes de interrupo Pelo pino RBOANT Interrupo Externa Pelo Overflow do TMRO Pelo pino 7 ou pino 4 do PORTB Pela escrita completa da EEPROM 12) 1000 cicios de programar (apagar e escrever) a Flash Eprom 13) 10.000.000 ciclos de apagar e escrever na EEPROM de dados de memria. 14) Reteno de dados na EEPROM superior a 40 anos. 3.3- Caractersticas perifricas 1) 2) a) b) 13 pinos de I/0 com controle individual Alta corrente de fonte e de absoro 25 mA de corrente mxima de absoro 2OmA de corrente mxima de fonte

3) TMRO Timer de 8 Bits ou Contador de 8 Bits programado com prescaler.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

3.4- Caractersticas especiais do Microcontrolador. Circuito de programao da Flash Eprom via 2 pinos. POR Power On Reset PWRT Power up Timer OST Oscilador Start-up Timer'WDT Watchdog Timer Proteo de Cdigo Modo SLEEP de operao Vrios tipos de oscilador de operao 3.5- Caractersticas da Flash EEPROM Baixo consumo e alta velocidade Tenso de trabalho de 2V a 6V 2V 32 KHz 15uA 5V 4MHz < 2mA Em modo SLEEP < 1 uA com 2V 3.6- Aspecto Externo

3.7- Interface de FO Um circuito equivalente de um pino de I/O mostrado na figura abaixo. Todos os pinos de I/0 podem ser usados tanto como entrada quanto sada. A sua direo definida plos registradores de direo TRISA TRISB. Cada bit desses registradores correspondem a um pino de I/0 que quando setado correspondem a entrada e quando resetados correspondem a sada. Por exemplo se quisermos setar a PORTA com o nibble menos significativo como entrada e o mais significativo como sada, ento ovalor a ser escrito em TRISA ser 0000 1 1 1 1 em binrio, ou OF em hexa. Nota-se que, os dados de sada se mantm armazenados em um flip-flop independente do pino de I/O, que pode estar configurado como entrada ou sada. Esse dado se mantm nessa condio at que um novo dado seja escrito. Para o processo de leitura o dado tem que estar estabilizado e o pino configurado para entrada pois a entrada no armazenada em flip-flops.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

Devido a estas caractersticas o programador deve ter alguns cuidados quando usar instrues do tipo READ and WRITE Por exemplo uma instruo BSF seta o bit de um porto, digamos que desejo setar o bit 5 do portb ao executar a instruo ser primeiro lido os oito pinos do porto depois setado o bit desejado no caso o bit 5 e o resultado ser escrito no portob, se outro pino de I/O usado como bidirecional, e nesse instante estiver configurado para entrada o sinal presente na entrada ser lido e novamente escrito sobre o dado que estivesse previamente escrito no latch de sada do pino de I/O. Se o pino for configurado como entrada no haver nenhum problema mas se ele for configurado para sada o dado no latch de sada pode ser desconhecido. O que o programador deve sempre ter em mente no provocar um curto circuito na sada do pino de I/O, se o pino estiver conectado a GND e no latch de sada estiver setado para 1 se o pino de I/O for configurado como sada ir circular uma alta corrente superior ao que o porto pode fornecer e inevitavelmente danificar ocomponente.

4- Organizao da Memria de Programa A memria de programa varia em tamanho e organizao. Nos membros dafamlia PIC 16CX a memria de programa dividida em pginas. Isso se deve a limitao de endereamento direto dado pelo contador de programa (PC) que tem 9bits, e acessa apenas 512 Bytes por vez. Para enderear as pginas superiores temos que setar alguns bits no registrador STATUS .

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

Esse controle de paginao de responsabilidade do programador que deve ter a ateno e o cuidado no seu uso para evitar problemas de programao. Outra caracterstica importante a ser salientada a impossibilidade de se ler diretamente a memria de programa, fato muito comum em outras arquiteturas quando se utilizam tabelas. Amaneira com que isso feito na arquitetura do PIC utilizando a instruo "RETLW" que ser visto mais adiante. O PIC 16FXX possui 13 bits de PC capaz de enderear at 8K de memria de programa no necessitando que o programador cuide da pgina atual do programa isso feito automaticamente pelo Microcontrolador.

5- Organizao da memria de dados. A memria de dados composta de registradores, ou bytes de RAM. Os registradores so divididos em dois grupos funcionais. Registradores especiais e Registradores de uso geral. Entre os registradores de funes especiais esto o TMRO, o contador de programa PC, o registrador de STATUS, os registradores de I/O dos ports PORTA e PORTB , e o registrador de seleo FSR. Alm disso, os registradores de funes especiais so usados para controlar a configurao dos ports de I/O e as opes de pr escala. Os registradores de uso geral so usados para dados e controle de informao sob o comando das instrues. Para o PIC 16F84 o arquivo de registradores compostode 12 registradores de funes especiais e de 68 registradores de uso geral apartir do endereo C0 hexa. No endereo 07 h o espao para a implementao do PORTC implementado no PIC 16C55

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

10

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

6- Registradores de Funes Especiais. 6.1- INDEF Indirect Data Addressing Register. Registrador de endereamento indireto utilizado em conjunto com o registrador FSR para realizar endereamento indireto. Qualquer instruo usando o registrador INDEF acessa um dado cujo endereo esta contido no registrador FSR. Cabe salientar que o registrador INDF no um registrador fisicamente alocado. 6.2- TMRO Real Time Clock Counter. Relgio de tempo real e contador, o seu contedo sucessivamente incrementado utilizando um "clock" que tanto pode ser interno (derivado do sistema de"clock" do Microcontrolador ) ou externo ( aplicado ao pino TOCK1 ). Pode-se utilizar uma pr diviso interna que permite ampliar a contagem.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

11

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

6.3- PC Program Counter Contador de programa o registrador que gera o endereo da memria de programa. Normalmente incrementado de uma unidade aps a execuo de uma instruo, com exceo das instrues que utilizam desvios tais como GOTO, CALL. Dependendo do tipo de dispositivo utilizado o contador de programa e seus nveis depilha tero de 9 a 14 bits de largura no caso do PIC 16F84 a largura do byte de instruo de 14 bits. O PC tem todos os bits setados durante o Reset. Durante a execuo do programa ele automaticamente incrementado juntamente com a execuo da instruo a menos que o resultado da instruo altere-o. A instruo GOTO permite a alterao dos 9 bits mais significativos do PC no caso do PIC 16F84 os 2 bits mais significativos do PC so carregados com os bits de seleo da pgina PA1 , e PA2 do registrador STATUS. Portanto a instruo GOTO permite saltos para qualquer posio de memria em qualquer pgina. A instruo CALL carrega os 8 bits do PC diretamente (PC <7:0>), enquanto que o 9o bit colocado em "0" o valor do PC incrementa de um e ser colocado na pilha. Nos casos onde a memria de programa for maior do que 512 bytes os 2 bits mais significativos (PC < 10:9>), so carregados com os bits de seleo da pgina PA1 e PA2 do registrador STATUS respectivamente. A instruo RETLW carrega o PC com o contedo do topo da pilha (TOS). Se o PC for registrador de destino de qualquer instruo ( MOVCWF PC, ADDWF PC, etc. )ento o resultado computado em 8 bits ser carregado nos 8 bits menos significativos do PC o 9 o bit ser colocado em "0", Nos Casos onde a memria de programa for maiorque 512 bytes os 2 bits mais significativos (PC < 10:9>), so carregados com os bits de seleo da pgina PA1 e PA2 do registrador STATUS respectivamente. Deve-se notar que por causa do 9 o bit do PC ser igual a "0" nas instrues CALL ou qualquer instruo que se escreve no PC, todas as subrotinas ou saltos computados esto limitados aos primeiros 256 bytes de qualquer pgina de memria. O incremento do PC quando estiver posicionado no ltimo endereo de uma pgina selecionada de memria possvel e ir causar ao programa continuar na prxima pgina. Contudo os bits de seleo da pgina do registrador STATUS no iro mudar, e a prxima instruo GOTO CALL ADDWF ou MOVWF PC ir retornar para a pgina anterior, a menos que os bits tenham sido atualizados. 6.4- STACK Registrador de topo de pilha no PIC 16F84 a pilha implementada em 8 nveis de profundidade. O empilhamento feito quando chamada uma subrotina utilizando a instruo CALL. O desempilhamento feito utilizando a instruo RETLW. Deve-se ter sempre em mente na hora de programar que temos somente 8 nveis de empilhamento disponveis. Portanto podemos chamar at 8 subrotinas em cascata simultaneamente caso contrrio o programa se perder.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

12

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

O maior inconveniente de pilha reduzido est na famlia PIC 16C5X que possui STACK de apenas dois nveis de profundidade o que significa dizer que permitido chamar at 2 subrotinas em cascata no mximo. Outra caracterstica que deve ser lembrada que no possvel empilhar dados,prtica comumente utilizada nos outros microprocessadores e microcontroladores. 6.5- STATUS o registrador que possui as FLAGS que indicam os resultados de operaes da unidade lgica e aritmtica. (ALU) , e os bits de pr seleo da pgina da memria de programa para memrias maiores do que 512 palavras. Os bits 0,1 e 2) indicam o estado de uma operao aritmtica executada na ALU. Os bits PD# ( bit 3) e TO# (bit4) indicam o estado do Reset. OS Bits RP0 e RP1 (bit 5 e bit 6) so utilizados como bits auxiliares (A9 e AIO) para certas operaes do PC como por exemplo CALL e GOTO para a famlia PIC 16C5X. Os bits TO# e PD# so somente para leitura, no so possveis de serem escritos. Registrador STATUS PIC 16F8X

Bit 7 "IRP" Registrador de seleo de banco no endereamento indireto (INDEF). O = Bank 0 , 1 ( 00h - FFh) 1 = Bank 2 , 3 (100h - 1FFh) Bit 6-5 "RP1; RP0" Registrador para seleo do bank usado no endereamento direto. 00 = Bank 0 ( 00h - 7Fh) 01 = Bank 1 ( 80h - FFh) 10 = Bank 2 (100h - 17Fh) 11 = Bank 3( 1 80h - 1FFh) Estes bancos so de 128 bytes somente o bit RP0 usado para o PIC 16F8X, RP1 permanece em nvel baixo, pois a memria RAM do PIC 16F84 vai at 7Fh. Bit 4 "TO" Time Out bit 1 = Aps o Power Up, ou instruo CLRWDT ou instruo SLEEP 0 = WDT ocorreu

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

13

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

Bit 3 "PD" Power Down bit 1 = Aps o Power up ou aps a execuo da instruo CLRWDT 0 = Execuo da instruo SLEEP Bit 2 "Z" Zero bit 1 = resultado da operao aritmtica ou lgica foi zero 0 = resultado da operao aritmtica ou lgica foi um Bit 1 "DC" Digito Carry 1 Borrow para instrues do tipo ADDWF ou ADDLW (Para BOROW a polaridade inversa) 1 = Ocorreu carry no 4o bit menos significativo 0 = No ocorreu carry no 4o bit menos significativo Bit 0 "C" Carry / Borrow para instrues do tipo ADDWF ou ADDLW 1 = Ocorreu carry no bit mais significativo 0 = No ocorreu carry no bit mais significativo 6.6- Registrador FSR e WF O registrador INDF no um registrador fisicamente alocado, pode ser acessado diretamente ou indiretamente atravs do registrador FSR. O endereamento de INDEF enderea realmente o registrador cujo endereo est contido no registrador de seleo FSR. Este processo chamado de endereamento indireto. Como exemplo: O registrador 05 contm o valor 10h O registrador 06 contm o valor OAh Carregando o valor de FSR com o valor de 05 Carregando o valor de INDEF, ser retornado o valor do contedo do registrador no caso 10h. Incrementando o valor de FSR e lendo INDEF o contedo de retorno 0Ah Resumindo FSR indica o registrador e INDEF indica o contedo do registrador, a diferena do PIC para outros processadores que os registradores no possuem nomes especiais e sim ocupam na realidade posies de memria previamente definidas. 6.7- Registrador OPTION O Registrador OPTION possui 8 bits de largura e contem vrios bits de controle e configurao do TMRO WDT prescaler interrupes atravs do TMRO e resistores Pull-up do portb.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

14

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

RBPU Bit 7

INTEDG TOCS Bit 6 BIT5

TOSE BIT4

PSA BIT3

PS2 BIT2

PS1 BIT1

PS0 BIT0

Bit 7 RBPU Habilita resistores Puli-up do portb 1 = Resistores Pull-up desabilitados 0 = Resistores Pull-up habilitados Bit 8 INTEDG Seleo da borda de interrupo 1 = Interrupo ligada na subida da borda do clock do pino RBO/INT 0 = Interrupo ligada na descida da borda do clock do pino RBOINT Bit 5 TOCS Seleo da fonte do clock do TMR0 1 = Transio do pino RA4/TOCKI 0 = Clock do ciclo interno de instrues ( CLKOUT ) Bit 4 TOSE Seleo da borda de transio do TMRO 1 = Incremento na transio de nvel alto para baixo do pino RA4/TOCK1 0 = Incremento na transio de nvel baixo para alto do pino RA4/TOCK1 Bit 3 PSA Direo do Prescaler 1 = Prescaler conectado com WDT 0 = PresUer conectado com TMR0 Bit 2 1 e 0 Seleo da escala do Prescaler Valor do Bit 000 001 010 011 100 101 110 111 TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128

6.8- Registradores de I/0 Os registradores de I/0 podem ser escritos ou lidos sobre o controle do programa como qualquer outro registrador. Na condio de Reset todos os I/0s so definidos como entrada assim como todos os registradores de I/0 ( TRISA, TRISB e TRISC) so configurados com 1.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

15

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

6.8. 1- PORTA Este registrador corresponde ao PORTA do Microcontrolador, ele possui somente 5 bits ( RA0 a RA4 ) onde os demais bits no so implementados e so lidos como zero. Cada bit desse port pode ser individualmente configurado como entrada ou sada. 6.8.2- PORTB Este registrador corresponde ao PORTB do Microcontrolador, ele possui 8 bits (RBO a RB7 ). Cada bit desse port pode ser individualmente configurado como entrada ou sada. 6.8.3- PORTC Esse registrador est implementado no PIC 16C55/57 e corresponde ao PORT C do Microcontrolador ( RCO a RC7) 6.8.4- TRISA, TRISB E TRISC So os registradores referentes a configurao dos pinos de I/0 so somente de escrita e no podemos ler os dados neles armazenados. A escrita executada utilizando os dados armazenados no registrador W e utilizando a instuo "TRISf' (entenda-se"f" como o nome do porto A, B ou C ). Exemplo de programa utilizando PIC 16f84 Declarar o endereo do PORTA (05h) Declarar o endereo do PORTB (06h) Configurar o portb como sada Configurar os 2 primeiros bits do porta como entrada e o resto como sada

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

16

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

6.9- Temporizador contador TMRO O mdulo temporizador contador(TMRO) tem as seguintes caractersticas: Temporizador contador de 8 Bits Pode ser utilizado para leitura e escrita Pr escala de 8 bits programvel por software Seleo de clock interno ou externo Seleo do tipo de borda para clock externo O modo temporizador selecionado fazendo o bit TOCS = 0 (Timer O ChipSelect do registrador OPTION Bit 5 ). No modo temporizador, o modulo TMRO ser incrementado a cada ciclo de mquina sem pr escala. Se um ciclo de escrita ocorrer em TMRO, o incremento ser inibido pelos dois cicios de mquina seguintes. O usurio pode trabalhar com isso para ajustar o valor a ser temporizado. O modo contador selecionado fazendo o bit TOCS = 1 (Timer O Chip Select do registrador OPTION Bit 5 ).Nesse modo TMRO ser incrementado a cada borda de subida ou descida do pino TOCKI. A borda responsvel pelo incremento determinada pelo bit TOSE. (Timer O Select Edge do registrador OFITION Bit 4 ). O bit TOSE =0 seleciona a borda de subida.

A pr escala compartilhada entre o modulo TMRO e o Watch-dog Timer. A pr-escala controlada no software pelo bit de controle PSA (Prescaler Assignament registrador OPTION Bit 3 ). Quando o bit PSA = 0 a pr escala fica sob o controle do TMRO. A prescala setada por software atravs dos bits PS2 PS0 (registrador OPTION Bit 2 ) com valores de seleo que variam de 1:2, 1.4 ... 1:256. O uso da pr-escala pode ser para o WDT (Watch-Dog Timer ) ou para o TMRO(Timer / Counter), mas nunca simultneo. Nada impede que na primeira fase do programa se utilize a pr escala para o WDT e na segunda fase para o TMRO. Por exemplo o WDT tem 18 ms de perodo sem pr escala, com pr escala de 128 o tempo sobe para 2,5 segundos.
Microprocessadores e Microcontroladores Prof. Antonio Cesar Branco 17

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

7 - Caractersticas Especiais da CPU 7. 1 - Bits Especiais de Configurao Consistem de 4 a 12 bits dependendo do tipo de PIC utilizado e que no fazem parte da memria normal de armazenamento do programa. Eles so lidos e gravados utilizando-se um programador. Aps serem habilitados no podem mais ser desabilitados pois funcionam como fusveis internos. Habilita WDT (Watch-Dog Timer ) Habilita proteo do cdigo do programa ( impede que seja lido a programao interna do PIC) Definio da verso do oscilador ( 2 Bits ) Bit 13 : 4 Cp Cdigo de proteo da memria de programa 1 = Proteo de cdigo desligada 0 = Proteo de cdigo ligada para toda a memria Bit 3 PWRTE Habilitao do Timer aps o Power-up 1 = Timer desabilitado no Power-up 0 = Timer habilitado no Power-up Bit 2 V;DTE Habilitao do Watch-Dog Timer 1 = WDT habilitado 0 = WDT desabilitado Bit 1 e Bit 0 FOSC1 e FOSC0 Seletor do tipo de oscilador 11 = RC Oscilador 10 = XS Oscilador 01 = XT Oscilador 00 = LP Oscilador 7.2- Configuraes do Oscilador O PIC 16F84 preparado para operar com 4 tipos diferentes de oscilador, atravs do programa de gravao do Microcontrolador possvel alterar os bits FOSC1 e FOSC2 para um dos 4 tipos de oscilador LP Cristal de baixa potncia XT Cristal Ressonador HS Cristal Ressonador de Alta Velocidade RC Resistor Capacitor

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

18

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

7-3- Cristal cermico Ressonador operando no modo XT, LP ou HS.

Cabe salientar que valores elevados de capacitor podem levar o circuito a no oscilar pois aumentam o tempo de estabilizao do oscilador.

7.4- Modo RC Neste modo de operao usamos um circuito RC para gerar a oscilao . Nestemodo no temos preciso dos valores de CLOCK, sendo mais usado nas aplicaesonde no requerido rotinas de tempo baseadas no clock interno.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

19

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

Utilizando Co = 33 pF e um trimpot de I0M a frequncia de oscilao pode ser facilmente ajustada para 4 MHz, esta Freqncia ajustada medindo no pino Fosc/4 a freqncia de 1 MHz. 8 - Reset O PIC pode ser resetado de varias formas diferentes. 1) POR Power On Reset Ao ligar o Nficrocontrolador gerado um Reset atravs do pino MCLR, isto conseguido facilmente ligando o pino MCLR ao Vdd + SV. 2) MCLR durante operao normal 3) MCLR durante o SLEEP 4) WDT Reset pelo Watch-Dog Timer durante o modo normal de operao 5) WDT Reset pelo Watch-Dog Timer durante o modo SLEEP Circuito de Reset.

8. 1 - POWER-UP TIMER (PWRT) Ao Final do POR Power-on Reset o PIC aciona um sistema interno que gera um delay de 72ms fixo para evitar que o Reset no seja corretamente executado principalmente por problemas de rudo ou demora na estabilizao da fonte. 8.2- Timer de partida do oscilador. Quando utilizamos o modo ST, LP ou HS este timer automaticamente acionado aps o POR gerando alm dos 72ms de atraso mais 1024 cicios de clock de espera para estabilizao do clock.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

20

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

9- Interrupes As interrupes no PIC so habilitadas e sinalizadas pelo registro INTCON. Com exeo da interrupo de fim de escrita na EEPROM cujo bit sinalizador esta no registro EECOM1 todos os demais bits de controle de habilitao e sinalizao esto no registro INTCOM. GIE BIT 7 EEIE TOIE INTE RBIE TOIF INTF RB1F BIT 0

bit 7 GIE Habilitao global de interrupes 1 = Habilita as interrupes que estejam individualmente selecionadas 0 = Desabilita todas as interrupes bit 6 EEIE Interrupo de fim de escrita na EEPROM 1 = Habilita 0 = Desabilita bit 5 TOIE Interrupo Gerada pelo Overflow do TURO 1 = Habilita 0 = Desabilita bit 4 INTE Interrupo externa pelo pino RBO/INT 1 = Habilita 0 = Desabilita bit 3 RBIE Interrupo por mudanas no PORTB 1 = Habilita 0 = Desabilita bit 2 TOIF Sinaliza interrupo pelo Overflow do TMRO (1) 1 = Ocorreu Overflow no TN1R0 0 = Ainda no ocorreu Overflow no TURO bit1 INTF Sinaliza Interrupo externa no pino RBO/INT (1) 1 = Ocorreu um pedido de interrupo em RBO/INT 0 = No Ocorreu pedido de interrupo em RBO/INT bit0 RBIF Sinaliza interrupo de mudanas no PORTB (1) 1 = Um ou mais bits de RB7 RB4 mudou de estado. 0 = Nenhum dos bits de RB7 RB4 mudou de estado. (1) Devem ser zerados pelo software

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

21

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

9. 1 - Princpio de atendimento a Interrupes Ao aceitar interrupo a CPU faz GIE = O para inibir que outras interrupes possam interromper a que j est sendo executada, salva no STACK o endereo de retomo ( a prxima aps PC atual no caso PC + 1 ) e depois desvia para o endereo 004 da memria de programa. Ao encontrar a instruo RETFIE (Return From Interrupt ) a CPU finaliza a interrupo em andamento, recupera o PC do STACK e faz novamente GIE = 1. 9.2- Fonte de Interrupo Como a interrupo sempre desvia o PC para o endereo 004 h o software deve verificar nos bits de requisio de interrupes qual est setado, determinando a fonte da interrupo. Esses Bits so: RBIF, TOIF, EEIF OBS: Mesmo com GIE = O os bits de sinalizao de interrupo so setados no programa pela respectiva fonte de interrupo, conveniente observar se j no esta sendo requisitada alguma interrupo antes de habilitar GIE. 9.3 Desabilitando Interrupes Em certas aplicaes necessrio desabiltar temporariamente as interrupes como na escrita na EEPROM. Se um pedido de interrupo for aceito no mesmo momento possvel que a interrupo seja atendida e ao voltar desta a instruo RETFIE ira mudar o valor tornando GIE = 1 novamente. Assim pensamos que as interrupes esto desabilitadas mas na verdade foram reabilitadas pelo fim da interrupo que foi atendida. Para assegurar que GIE = 0 deve-se fazer o teste do bit aps o pedido de desabilitar interrupes. EX: trecho de programa que testa se GIE = O ezero bcf INTCOM,GIE ;zera o bit GIE do registro INTCOM btfsc INTCOM,GIE ;Testa se realmente zero goto ezero ;continua o programa

...

9.4- Interrupo da EEPROM Sempre que uma operao de escrita na EEPROM for finalizada o bit EEIF(EECON1 Bit 4 ) ser setado gerando o pedido de interrupo da EEPROM que ser atendido se os bits EEIE E GIE = 1.

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

22

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

9.5- Interrupo do TMR0 Ao ocorrer um Overflow, no registro do TMR0 o bit TOIF ser setado e a interrupo do timer ser requisitado se TOIE = 1 e GIE = 1 Cabe lembrar que o TMRO ter seu registro TMRO incrementado sempre independente dos bits de controle quando usar um clock interno (fosc/4) no h controle para para o TMRO nesta forma de operao. 9.6- Interrupo de mudanas no PORTB Uma mudana de estado nos bits de RB4 RB7, ajustados como entrada, vo pedir a CPU uma interrupo setando o Bit RBIF esta interrupo ser atendida se RBIE = 1 e GIE = 1. 9. 7- Interrupo externa RBO/INT O pino RBO/INT ao invs de I/O digital pode ser usado como entrada de sinal externo para interrupo. Sempre que INTE = 1 e GIE = 1 a variao de 1 para 0 (INTEDG = 1 ) ou de 0 para 1 ( INTEDG = O ) neste pino far INTF = 1 sinalizando o pedido de interrupo externa. OBS O Hardware no reseta os bts de pedido de interrupo INTF, RBIF, EEIF eTOIF cabe ao usurio zerar os mesmos bits antes da instruo RETFIE. Antes de atender a uma interrupo necessrio salvar os registros que por ventura possam ser alterados pela rotina de interrupo principalmente o W e o STATUS. 1 O- WDT Watch-Dog Timer O Watch-Dog Timer um Timer especial que roda livremente sem qualquerl igao com o clock ou na dependncia de sinais externos. O WDT funciona mesmo que o clock seja retirado do sistema. Se ocorrer um time out do WDT a CPU ser resetada e se isto ocorrer durante o modo SLEEP a CPU retomar a operao normal, no endereo logo aps a instruo SLEEP. O WDT pode estar permanentemente ligado ou desligado, sendo esta opo ajustada com o fusvel de programao WDTE. A finalidade do WDT esta em recuperar a CPU de eventuais travamentos no programa, que podem ocorrer por interferncias externas ou at mesmo de erros no software. Se o WDT estiver habilitado devemos de tempos em tempo reseta-lo para que no ocorra um Reset indesejvel na CPU, isto possvel com a instruo CLRWDT. O perodo mdio do WDT de 18ms sem o uso de prescaler que pode chegar at aproximadamente 2 segundos ( usando prescaler de 1: 128 o tempo de WDT 18 ms x 128 = 2,304s).As instrues que zeram o registro do WDT so o SLEEP e o CLRWDT.
Microprocessadores e Microcontroladores Prof. Antonio Cesar Branco 23

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

O uso do WDT com a interrupo desaconselhado pois o programa pode estar travado e ainda assim estar atendendo a interrupes normalmente. 11 SLEEP O modo SLEEP ou Power-Down, faz com que o chip entre em estado de economia de energia, este sistema til em sistemas alimentados a bateria. no modo SLEEP o chip consome aproximadamente 60 uA quando o normal de 7mA em operao normal. Esta caracterstica aliada aos resistores Pull-up do PORTB e a interrupo nas mudanas de estado permite o projeto de sistemas para funcionar abateria com longa durao. Para entrar no modo de economia de energia basta executar a instruo SLEEP. Neste modo se o WDT estiver habilitado o mesmo ser zerado e continuar rodando o bit PD que sinaliza o modo de Power-Down ser zerado e o bit TO ( Time Out) ser setado e o oscilador interno desligado, no gerando mais as fases de Ql Q4 parando tanto a CPU como o TMRO. Se uma escrita estiver ocorrendo na EEPROM esta ser finalizada e aps entrar no modo SLEEP. Para sair do estado de SLEEP existem 3 maneiras. 1) Reset pelo pino MCLR iniciando o processamento apartir do endereo 000h. 2) Time Out do Watch-Dog. 3) Interrupo externa do bit RBO/INT, interrupo por mudanas no portb 4) Interrupo de fim de escrita na EEPROM. As interrupes acima citadas, para tirarem a CPU do estado de SLEEP, precisam estar com os bits de requisio individual habilitadas embora GIE (Habilitador Global das Interrupes)no necessita estar habilitado. Se GIE = 1 A instruo imediatamente aps o SLEEP ser executada e ento a interrupo atendida. Se GIE = 0 A CPU volta a funcionar pela execuo da instruo imediatamente aps a instruo SLEEP, neste caso a instruo SLEEP funciona como uma subrotina que parou todo o CHIP. 12- Software do PIC O conjunto de instrues do PIC formado por 36 instrues todas formadas por apenas uma palavra de 14 bits. Nesta palavra est o cdigo da funo a ser executada, alm dos parmetos necessrios, como constantes, registros e bits. O conjunto destas instrues pode ser dividido em 3 tipos diferentes, operaes de byte com registros, operaes de bit com registros, operaes com constantes e de controle. OBS: As seguintes convenes so adotadas plos compiladores assembier. f registro alocado nas posies de 0 a 7F (128 registros) w Registro W b bit utilizado pela operao varia de 0 7 k constante ou label d destino do resultado Se d = 0 o resultado armazenado em W Se d = 1 o resultado armazenado no f (file)
Microprocessadores e Microcontroladores Prof. Antonio Cesar Branco 24

CFP Senai Nilo Peanha

Curso Tcnico de Eletrnica

Conjunto de Instrues
1) Operaes de byte com registros. Instruo ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF Operandos f,d fd f f,d f,d f,d f,d f,d f,d f,d f f,d f,d f,d f,d f,d Descrio Soma W e f AND entre W e f Zera f Zera W Complernenta f Decrementa f Decrementa f e pula se f=0 Incrementa f Incrementa f e pula se f = 0 OR entre W e f Move f Move W para f Nenhuma operao Roda a esquerda pelo Carry Roda pela direita pelo Cany Subtrai W de f Troca nibles em f XOR entre W e f Ciclos 1 1 1 1 1 1 1 (2) 1 (2) 1 1 1 1 1 1 1 1 1 Bits envolvidos CD,Z Z Z z Z Z Z Z Z C C C,CD,Z Z

Operaes de bit com registros. BCF BSF BTFSC BTFSS f,b f,b f,b f,b Zera bit "b" em f Seta bit "b" em f Testa bit "b" em f se zero pula 1 (2) Testa bit "b" em f se um pula 1 (2) -

Operaes com constantes e de controle. ADDLW ANDLW CALL CLRWDT GOTO k IORLW MOVLW RETFIE RETURN SLEEP SUBLW XORILW k k k k k k k k Soma W com k AND de W com k Chamada de subrotina k Zera o Timer Watch-Dog Desvia para o label k Or entre W e k W=k Retorno de interrupo Retorno de subrotina Entra no modo SLEEP Subtrai k de W XOR entre W e K 1 1 2 1 1 1 1 2 2 1 1 1 C,DCZ Z TO/PD Z TO/PD C, DC, Z Z

Microprocessadores e Microcontroladores

Prof. Antonio Cesar Branco

25

S-ar putea să vă placă și