Sei sulla pagina 1di 9

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN CAMPUS PONTA GROSSA CURSO DE ENGENHARIA ELETRNICA

JOO HENRIQUE ZANDER NEME

MICRORONTROLADOR - PIC16F877

PONTA GROSSA 2013

1. Introduo Os microcontroladores da srie PIC16F877 so dispositivos computacionais extremamente adequados para experimentao e pequenos projetos. Devido ao seu baixo custo e facilidade de programao, podem ser empregados em aplicaes onde at recentemente se utilizavam componentes discretos, como por exemplo, os temporizadores e controladores de temperatura, adicionando novas funes at ento no implementadas devido a complexidade do circuito necessrio. Os microcontroladores da srie PIC16F87X so mquinas RISC. Isto significa que so mquinas com um reduzido conjunto de instrues. Para ser exato, so apenas 35 instrues para serem compreendidas, cada uma ocupando uma palavra (14 bits ).

2. Caractersticas bsicas: Instrues de 14 bits; Dados em 8 bits; Pilha (stack) com oito nveis; Endereamento nos modos direto, indireto e relativo. Quatorze tipos de interrupts, sendo: 1. Sinal externo no terminal 6 (RB0/INT) 2. Estouro do temporizador externo TMR0 3. Mudana no nvel dos terminais 13 a 10 (RB7:RB4) 4. Fim de gravao na EEPROM 5. Interrupt ligado a porta paralela 6. Interrupt do conversor AD 7. Interrupt do PWM 8. Interrupt leitura interface serial 9. Interrupt escrita interface serial 10. Interrupt timer 11. Interrupt timer 2 Programa gravado em EEPROM, com at 1000000 de ciclos de apagamento e escrita, com reteno garantida por mais de 40 anos. Trinta e trs terminais de Entrada e Sada, com controle individual por terminal. Capacidade de manipulao de corrente de 25 mA atuando como dreno e 20mA atuando como fonte. Dois temporizadores de oito bits programveis, com pr-divisor tambm programvel de oito bits.

Um temporizador de 16 bits http://www.solbet.com.br Consideraes bsicas sobre o PIC16F877A 1 Sistema de proteo de cdigo na EEPROM. Impossibilita que outras pessoas leiam o seu cdigo. Operao em tenses desde 2 a 6 Volts, com consumo de corrente tpico em torno de 2 mA. Memria RAM interna de 368 bytes, juntamente com uma rea de EEPROM para dados de 256 bytes.

Apesar da pequena capacidade de memria (quando comparada com os megabytes a que estamos acostumados nos computadores pessoais) estes pequenos computadores possuem alta velocidade de processamento, O tipo das tarefas tipicamente encontradas nos sistemas dedicados fazem destes circuitos integradas uma soluo extremamente adequada para uma grande quantidade de sistemas. A melhor forma de compreender o funcionamento do PIC16F877A e suas variantes comear pela sua estrutura de dados interna. Todo o funcionamento do microcontrolador controlado ou monitorado atravs dos registradores internos da CPU. Um registrador uma rea de memria onde so escritos e lidos parmetros que atuam sobre o comportamento do microcontrolador. Uma perfeita compreenso da organizao da memria e da estrutura interna indispensvel para o desenvolvimento de aplicaes em cdigo assembler.

3. A estrutura interna do PIC16F877A O PIC16F877 encapsulado de diferentes formas, mas o formato PDIP, de 40 pinos o mais indicado para o experimentador. Cada terminal do integrado tem uma ou mais funes bem definidas, e a cada um associado um nome que nos lembra a funo correspondente. Para manter o nmero de terminais pequeno e ao mesmo permitir ao PIC16F877 comportar um nmero maior o possvel de perifricos, vrios pinos tiveram que ser multiplexados, ou seja, estes pinos possuem mais de uma funo. A seleo da funo depende o modo de operao do PIC. A definio dos terminais do PIC16F877A apresentada na figura 3.1:

Figura 3.1 Os terminais so a interface do circuito interno do PIC com o mundo exterior. O circuito interno, em forma de diagrama de blocos, pode ser visto na figura 3.2:

Figura 3.2 4. Descrio dos terminais Vamos inicialmente olhar para o PIC como uma caixa preta, aprendendo qual a funo de cada terminal do circuito integrado. Na tabela 3.1 temos o nome e a funo de cada um dos terminais: Funcionalmente, podemos agrupar os terminais nos seguintes grupos: Alimentao; Entrada/Sada; Clock; Controle.

A alimentao deve estar entre 2 e 6 volts, preferencialmente 5 volts para facilitar o interfaceamento com integrados da famlia lgica TTL. Os terminais 32 e 11 devem receber a tenso de alimentao e os terminais 31 e 12 devemos ser ligados terra do circuito. sempre interessante, com qualquer tipo de circuito que gere ou receba pulso, desacoplar a alimentao com um

pequeno capacitor de 0.01 microfarads, ligada o mais prximo possvel do pino de alimentao.

OSC1/CLKIN OSC2/CLKOU MCLR/VPP RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3/AN3/VREF+ RA4/T0CKI RA5/SS/AN4 RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD C0/T1OSO/

13 14 1 2 3 4 5 6 7 33 34 35 36 37 38 39 40 15

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

RC1/T1OSI/ RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX//CK

16 17 18 23 24 25

I/O I/O I/O I/O I/O I/O

Entrada para cristal externo (fonte de Clock) Sada para cristal externo Master Clear (reset) externo. Lgica baixa para reset I/O digital bidirecional ou entrada analgica 0 I/O digital bidirecional ou entrada analgica 1 Digital bidirecional ou entrada analgica 2 ou tenso de referncia analgica negativa I/O digital bidirecional ou entrada analgica 3 ou tenso de referncia analgica positiva I/O digital bidirecional ou entrada de clock para contador TMR0 I/O digital bidirecional ou entrada analgica 4 ou slave select para a porta de comunicao serial sncrona I/O digital bidirecional ou entrada para interrupo externa I/O digital bidirecional I/O digital bidirecional I/O digital bidirecional ou entrada para programao em baixa tenso I/O digital bidirecional I/O digital bidirecional I/O digital bidirecional ou clock da programao serial (ICSP) I/O digital bidirecional ou dados da programao serial (ICSP) I/O digital bidirecional ou sada para cristal externo para TMR1 ou entrada de T1CK1 clock para contador TMR1 I/O digital bidirecional ou entrada para cristal externo para TMR1 ou I/O para CCP2 Capture,Compare,PWM 2 I/O digital bidirecional ou I/O para Capture,Compare,PWM 1 I/O digital bidirecional ou entrada de clock serial sncrono ou sada para os modos SPI e I2C I/O digital bidirecional ou entrada de dados SPI ou I/O de dados I2C I/O digital bidirecional ou sada de dados SPI I/O digital bidirecional ou Transmisso para comunicao USART assncrona ou via de clock para para comunicao USART sncrona

RC7/RX/DT

26

I/O

RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/RD/AN5

19 20 21 22 27 28 29 30 8

I/O I/O I/O I/O I/O I/O I/O I/O I/O

RE1/WR/AN6

I/O

RE2/CS/AN7 VSS VDD

10 12 31 11 32

I/O P P

I/O digital bidirecional ou Recepo para comunicao USART assncrona ou via de dados para para comunicao USART sncrona I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Porta paralela escrava I/O digital bidirecional ou Controle de Leitura para a Porta paralela escrava ou entrada analgica 5 I/O digital bidirecional ou Controle de Escrita para a Porta paralela escrava ou entrada analgica 6 I/O digital bidirecional ou Select Control para a Porta paralela escrava ou entrada analgica 7 Referncia TERRA Alimentao Positiva (+5V)

Tabela 1 - Descrio sucinta dos terminais do CI PIC16F877 O clock se utiliza dos terminais 13 e 14. So possveis vrias configuraes de clock, descritas em detalhes mais adiante. O terminal MCLR uma entrada de controle com duas funes. Em primeiro lugar ele atua como reset do microcontrolador. Esta funo ativada quando o nvel lgico deste terminal for feito igual a zero. A outra funo atuar como indicador de gravao da memria de programas. Para isto a tenso neste terminal deve ser feita igual a 13.5 volts. Para a operao normal este terminal deve ser mantido em cinco volts, ou na tenso de alimentao utilizada. A descrio da estrutura interna do PIC16F877A O PIC possui trs reas de memria, a rea de programas, a rea de registros de arquivos e a EEPROM de dados. O bloco com o nome memria de programa, onde ficam residentes as instrues de programa do PIC16F877. Esta memria pode ser programada e alterada com pulsos eltricos, facilitando a experimentao com diversos

programas. No caso das memrias EEPROM utilizadas no PIC16F877 este ciclo foi cortado substancialmente, pois tanto a gravao como a modificao de programas pode ser feitos eletricamente, inclusive podendo-se efetuar estas operaes sem necessidade de se retirar o microcontrolador do circuito. O espao de memria de programas do PIC16F877 de 1024 posies (1Kbyte), sendo que cada instruo possui 14 bits de comprimento. Os endereos de programa vlidos no PIC16F877 variam de 0H a 3FFH. importante salientar que o nico modo de se escrever na memria de programas atravs de um dispositivo especialmente projetado para este fim. No h possibilidade de o prprio PIC escrever na sua rea de memria de programas. O segundo bloco de memria o bloco correspondente aos registros de arquivos, Register File Nesta rea de memria ficam as informaes que definem a forma de funcionamento do microcontrolador e tambm os dados do programa do usurio. O microcontrolador tem total acesso para escrever e ler nesta rea. Existem quatro bancos de memria para armazenar os registros. A tabela 1 apresenta uma descrio bsica do espao de memria de registros do PIC16F877. Pode-se ver que alguns registradores so duplicados em mais de banco de memria. Isto facilita a programao, visto que o acesso aos mesmos independe de conhecermos o banco atual em que estamos operando. Para facilitar a vida do programador, normalmente todos os programas incluem um arquivo de definies, geralmente chamado de PIC16F877.INC , onde esto associados os nomes dos registros e os endereos correspondentes. Voc s precisa se lembrar do nome do registro que deseja ler ou alterar. A seleo de um determinado banco feita atravs do registrador de status. Por exemplo: Digamos que seja necessrio alterar o valor de um bit do registrador TRISA. O endereo deste registrador 05H no banco dois. Para alter-lo ser preciso primeiro selecionar o banco dois, e ento escrever no bit desejado do endereo cinco. O controle dos bancos feito totalmente pelo seu programa, e deve-se sempre tomar cuidado em qual banco est, principalmente no atendimento das rotinas de interrupt. Se a programao for em C esta preocupao normalmente deixada para o compilador. A memria de dados EEPROM uma memria de dados implementada em EEPROM. Os dados gravados neste trecho de memria no so perdidos quando o microcontrolador desligado. Este um espao muito conveniente para se armazenar informaes de configurao ou calibrao de um sistema. A memria de programas organizada da seguinte maneira:

5. Referncias Tutoriais sobre programao de microcontroladores, disponvel em http://www.solbet.com.br , visto em 30/05/2013

Potrebbero piacerti anche