Vous êtes sur la page 1sur 10

Programao Daniel Corteletti Aula 2 Conhecendo o PIC16F877 Microcontrolador de 8 bits da Microchip Co.

Pgina 1/10

O microcontrolador PIC16F877 pode ser encontrado em diversos encapsulamentos:

PDIP,

QFP,

PLCC

Este modelo (16F877) possui 40 pinos (veja imagem ao lado para o encapsulamento PDIP), sendo que destes 40 pinos, 7 pinos so usados para alimentao e controle do mesmo. PINO 1: Suporta 3 nveis de tenso. Quando este pino estiver recebendo 5V, o microcontrolador estar em condies de executar o programa. Quando este pino receber 0V (GND), o PIC ser resetado. Quando este pino receber tenso de 13,4V, o PIC ir entrar em modo gravao. PINOS 11 e 32: Alimentao (mximo 5V) PINOS 12 e 31: Referncia (GND) PINOS 13 e 14 : Onde estar ligado o resonador externo (cristal de clock). Os demais pinos so conhecidos por I/Os (l-se Aius, e vem do ingls Inputs/Outputs, que significa entradas/sadas). Estas I/Os so agrupadas em PORTs (portos), de no mximo 8 pinos cada (limitao pois o componente possui um ncleo de 8 bits). H um total de 33 I/Os disponveis, que podem ser configuradas como entradas ou sadas em tempo de execuo.

Programao Daniel Corteletti Aula 2

Pgina 2/10

Quando um pino configurado como ENTRADA, ele pode ser conectado a algum sensor para detectar sinais digitais atravs de variao da tenso de 0 e 5V. Quando um pino configurado como sada, o programa poder acion-lo, e com isso gerar uma corrente baixa (max. 20 mA) com os nveis de tenso de 0V ou 5V. Alguns pinos, porm, possuem outras funes alm de serem entradas ou sadas digitais. Por exemplo, no diagrama ao lado podemos observar que os pinos 2 a 10 (exceto o pino 6) so entradas analgicas, e podem ser usados para detectar uma variao de tenso entre 0V e 5V, transformando esta variao em uma informao binria de 10 bits. Os pinos 39 e 40 tambm so pinos usados na gravao do microcontrolador, e os pinos 25 e 26 so usados para comunicao SERIAL padro RS232. Os pinos 16 e 17 so pinos geradores de pulso (PWM), que similar a uma sada analgica. Muito til para controle de velocidade de motores, por exemplo. O pino 6 um pino usado para contagem rpida.

Programao Daniel Corteletti Aula 2

Pgina 3/10

Tradicionalmente conhecemos os pinos do microcontrolador NO PELO SEU NMERO, mas sim pela sua IDENTIFICAO DE I/0. Os pinos so agrupados em PORTs, sendo: PORTa (com 6 I/Os disponveis) PORTc (com 8 I/Os disponveis) PORTe (com 3 I/Os disponveis) PORTb (com 8 I/Os disponveis) PORTd (com 8 I/Os disponveis)

EXERCITANDO: Identifique os seguintes recursos no microcontrolador PIC16f877a (qual o nmero do pino no encapsulamento PDIP correspondente) PINO A3: _________________ PINO E0: _________________ PINO B7: _________________ PINO D6: _________________ PINO C2: _________________ PINO D2: _________________

Observaes importantes: A letra F (PIC16F877) identifica que o microcontrolador em questo utiliza a tecnologia FLASH, ou seja, pode ser regravado. Alguns modelos (que utilizam a letra C no nome, como o PIC16C877) s podem ser gravados uma nica vez e so mais baratos. Outros modelos da famlia 16 (como o PIC16F870, PIC16F628, PIC16F84, ....) possuem variaes em termos de recursos (com mais ou com menos pinos de I/Os, entradas analgicas, memria ROM, memria RAM, etc...), mas todos podem ser programados com a mesma linguagem. Modelos da famlia 18 so mais rpidos e um pouco mais caros, continuando a ser de 8 bits. Modelos da famlia 24 so de 16 bits, e indicados para aplicaes que exijam mais poder de processamento. Os microcontroladores PIC so indicados para aplicaes mais simples, que no necessitem de grande volume de dados manipulados, e que no necessitem processamento em tempo real de alta performance. Quando transferimos um programa para o microcontrolador, este deve estar em linguagem de mquina (ARQUIVO HEX), e ser armazenado na memria ROM do microcontrolador. Esta memria no ser apagada at que outro programa seja enviado, mesmo que a alimentao de energia eltrica seja desativada. Exercitando (Responda) 1) 2) 3) 4) 5) Quem fabrica o microcontrolador PIC ? Quantos pinos de I/O o modelo PIC16F877 possui ? O modelo PIC16F877 s oferecido na verso PDIP ? Posso gravar e regravar um PIC quantas vezes eu quiser ? Para onde um programa enviado quando programamos microcontrolador PIC ?

um

Programao Daniel Corteletti Aula 2 Pgina 4/10 6) Um pino do microcontrolador pode acionar diretamente um motor eltrico que consome 100mA ? Por que ?

Programao Daniel Corteletti Aula 2 Descrio detalhada do PIC16F877

Pgina 5/10

Desenvolvido pela MICROCHIP (www.microchip.com) CPU RISC de alta performance, baseado em uma arquitetura Haward modificada. Suas caractersticas mais significativas so: Opera com somente 35 instrues (ASSEMBLY) Operaes com durao de um nico ciclo, exceto pelas instrues de desvio que consomem dois ciclos de mquina. Cada ciclo equivale a 4 pulsos do circuito oscilador (clock) Operao em at 20 MHz (20 milhes de pulsos de clock por segundo = 5 milhes de ciclos de mquina por segundo = 200 ns por ciclo) 8 KWords de FlashROM (Word com 14 bits), suportando mais de 8 mil instrues em um programa. 368 Bytes de memria RAM 256 Bytes de memria EEPROM (regravvel via software e no voltil) Capacitado para interrupes com 14 fontes diferentes (timer, contagem, pulso externo, serial, etc...) Pilha fsica com 8 nveis de profundidade Endereamento direto, indireto e relativo Power-on Reset, power-on tiimer, oscillator start-up timer Watch-dog Timer baseado em oscilador RC interno para tratar um possvel travamento de software

Opo para proteo de cdigo executvel (Ativando-a, no mais possvel se ler a memria, evitando a duplicao do cdigo em outro microcontrolador) Modo SLEEP para poupar energia Opes diferentes para circuito oscilador Tecnologia CMOS FLASH/EEPROM de baixo consumo e alta velocidade, permitindo armazenamento no voltil na memria EEPROM interna em tempo de execuo. Programao ICSP (recurso embutido de gravao) atravs de dois pinos, facilitando a gravao do microcontrolador. Capacidade opcional de gravao com tenso de 5V (LVP)

Programao Daniel Corteletti Aula 2


Opo de depurao in-circuit atravs de dois pinos Tenso de trabalho de 2 a 5.5V Baixo consumo de energia (abaixo de 1mA) 3 timers (2 de 8 bits e 1 de 16 bits) 2 pinos para captura, comparao e mdulos PWM 8 canais analgicos para um AD de 10 bits Porta serial sincrona com SPI (master) e I2C(mater/slave) Porta serial universal (RS232 ou RS485) com buffer via hardware (2 bytes) Porta paralela escrava de 8 bits Detector Brown-out 33 pinos de entrada/sada configurveis

Pgina 6/10

Programao Daniel Corteletti Aula 2

Pgina 7/10

Descrio dos pinos (muitos pinos possuem vrias funes, no significando que as funes possam ser exercidas ao mesmo tempo):

1.

MCLR : Master Clear Quando em nvel baixo (0V), define situao de RESET. Quando em nvel alto (5V), determina programa em execuo. VPP : Tenso de programao Quando este pino estiver em 13.4V, o microcontrolador entra em modo gravao, permitindo a transferncia de um programa via ICSP

18. RC3 Entrada / sada digital. SCK/SCL Entrada


ou sada de sinal de clock serial sncrono para SPI e I2C.

19. RD0 Entrada / sada digital. PSP0 Pino 0 da


porta paralela escrava.

20. RD1 Entrada / sada digital. PSP1 Pino 1 da


porta paralela escrava.

2. 3. 4. 5. 6. 7. 8. 9.

RA0 Entrada / sada digital. AN0 Entrada analgica canal 0 para o ADC interno. RA1 Entrada / sada digital. AN1 Entrada analgica canal 1 para o ADC interno. RA2 Entrada / sada digital. AN2 Entrada analgica canal 2 para o ADC interno. Vref- - Uso do pino para definir a referncia negativa para o conversor AD. RA3 Entrada / sada digital. AN3 Entrada analgica canal 3 para o ADC interno. Vref+ - Uso do pino para definir a referncia positiva para o conversor AD. RA4 Entrada / sada digital. TOCKI Contador rpido RA5 Entrada / sada digital. AN4 Entrada analgica canal 4. SS Slave Select para porta serial sncrona RE0 Entrada / sada digital. RD Entrada de controle de leitura para porta paralela escrava. AN5 Entrada analgica canal 5. RE1 Entrada / sada digital. WR Entrada de controle de gravao para porta paralela escrava. AN6 - Entrada analgica canal 6.

21. RD2 Entrada / sada digital. PSP2 Pino 2 da


porta paralela escrava.

22. RD3 Entrada / sada digital. PSP3 Pino 3 da


porta paralela escrava.

23. RC4 24. RC5 25. RC6 26. RC7

Entrada / sada digital. SDI Entrada de dados em SPI. DAS Entrada/sada de dados em modo I2C. Entrada / sada digital. SD0 Sada de dados SPI. Entrada / sada digital. TX Pino para transmisso serial assncrona. CK Clock para transmisso sncrona. Entrada / sada digital. RX Pino para recepo serial assncrona. DT Dados da serial sncrona.

27. RD4 Entrada / sada digital. PSP4 Pino 4 da


porta paralela escrava.

28. RD5 Entrada / sada digital. PSP5 Pino 5 da


porta paralela escrava.

29. RD6 Entrada / sada digital. PSP6 Pino 6 da


porta paralela escrava.

10. RE2

Entrada / sada digital. CS Chip Select para porta paralela escrava. AN7 Entrada analgica canal 7.

30. RD7 Entrada / sada digital. PSP7 Pino 7 da


porta paralela escrava.

11. VDD Alimentao (preferncia 3V a 5V) 12. VSS Referncia (0V / GND) 13. OSC1/CLKIN Pino para ligao do circuito
oscilador externo (entrada). Usado em conjunto com o pino OSC/CLKOUT. Recomendado usar cristal de 4 a 20 MHz

31. VSS - Referncia (0V / GND) 32. VDD Tenso de alimentao (mesma que pino
11)

33. RB0

Entrada / sada digital. INT Entrada de sinal de interrupo via hardware.

14. OSC2/CLKOUT Pino para ligao do circuito


oscilador externo (sada).

34. RB1 Entrada / sada digital. 35. RB2 - Entrada / sada digital. 36. RB3 Entrada / sada digital. PGM Entrada de
sinal para gravao em baixa tenso (5V)

15. RC0 Entrada / sada digital. T1OSO Sada


do oscilador do TIMER1. T1CKI Entrada de clock para TIMER1.

16. RC1 Entrada / sada digital. T1OSI Entrada


do oscilador do TIMER1. CCP2 Entrada de captura 2, sada de comparador 2 ou PWM 2.

37. RB4 Entrada / sada digital. 38. RB5 Entrada / sada digital. 39. RB6 Entrada / sada digital. PGC Clock para
programao ICSP ou pino para depurao.

17. RC2 Entrada / sada digital. CCP1 Entrada


de captura 1, sada de comparador 1 ou PWM 1.

40. RB7 Entrada / sada digital. PGD Dados para


programao ICSP ou pino para depurao.

Glossrio de termos relacionados ao microcontrolador PIC16F877


PORT : Agrupamento de pinos. Ex : PORT A : Pinos RA0 a RA5. PORT B : Pinos RB0 a RB7. PWM : Modulao por largura de pulso. Permite simular uma sada analgica atravs de pulsos digitais rpidos e de tamanho regulvel. ADC : Conversor digital / analgico. ICSP : Recurso de programao serial embutida, permitindo que um gravador seja construdo com custo relativamente baixo. RAM : Memria de acesso aleatrio, voltil e de alta velocidade de acesso. ROM : Memria de programa, gravada quando se transfere o programa para o microcontrolador. EEPROM : Memria fixa que pode ser gravada e apagada em tempo de execuo. SERIAL : Dispositivo de comunicao onde um bit enviado de cada vez. I2C : Padro de comunicao serial desenvolvido pela PHILIPS. SPI : Serial Peripheral Interface Interface perifrica serial : Padro de comunicao serial que usa 4 fios.

Programao Daniel Corteletti Aula 2

Pgina 8/10

Programao Daniel Corteletti Aula 2


Diagrama de programao:
Passo 1 : Extrao de requisitos Levantar as necessidades da automao junto ao cliente, aos usurios do equipamento e as demais pessoas envolvidas no processo de automao. Passo 2 : Modelo de software a planta baixa do programa. Define quais sero as estratgias de programao que sero utilizadas. Para programas mais simples, recomenda-se a construo de um fluxograma ou de um modelo grfico do programa. Para situaes mais complexas, o modelo deve prever a quebra do problema em situaes ou camadas mais simples, que podem ser implementadas separadamente. Passo 3 : Implementao a escrita do programa na linguagem de programao desejada (no caso, linguagem C). Deve ser observado o compilador a ser utilizado, bem como as variaes na sintaxe da linguagem de programao para a ferramenta escolhida.

Pgina 9/10

Passo 4 : Compilao Ocorre a traduo da linguagem de programao para a linguagem nativa do microcontrolador. Nesta etapa, parte dos erros (principalmente os erros de sintaxe) so detectados. Os erros de sintaxe so os erros causados por erros de digitao ou uso incorreto de comandos. Passo 5 : Transferncia Atravs de um programa especfico, os dados contidos no arquivo HEX gerado pelo compilador so transferidos para a memria ROM do microcontrolador. Passo 6 : Testes Aqui so descobertos os erros de lgica que podem ser gerados por um erro de digitao (pontuao incorreta, comando inadequado, esquecimento de linhas, etc...). Esta etapa realimenta o processo, at que os testes efetuados garantam a qualidade do programa criado.

Programas recomendados : AMBIENTE ASSEMBLY : MPLAB / COMPILADOR C: CCS (PCW.EXE) / PROGRAMADOR : EPIC (EPICWIN.EXE)

Programao Daniel Corteletti Aula 2


PARTES MAIS IMPORTANTES DO MICROCONTROLADOR PIC famlia 16 1) ACUMULADOR Tambm conhecido por WORK REGISTER. uma rea de 8 bits onde as informaes so afetadas por um conjunto de instrues. onde o processamento ocorre na maioria dos casos.

Pgina 10/10

2)

REGISTRADORES (FILE REGISTERS) So reas de memria RAM que esto ligadas ao funcionamento dos recursos e perifricos do microcontrolador No PIC16F877 a memria ROM dividida em 4 bancos de memria com 128 posies cada, conforme tabela ao lado (extrada do datasheet do microcontrolador em questo).

As reas de memria marcadas como GENERAL PURPOSE REGISTER so reas de uso geral (memria RAM livre). Cada uma das demais posies possuem uma funo especfica. Por exemplo, se gravarmos informaes na posio de memria 07h, na tabela identificada como PORTC, estaremos acionando ou desligando bits ligados aos pinos do PORTC. Os registradores PORTA, PORTB, PORTC, PORTD, PORTE (presentes no bank0) so usados para acionar ou ler estados dos pinos. Os registradores TRISA, TRISB, TRISC, TRISD e TRISE (bank1) so usados para definir se os pinos so de entrada ou sada digital de dados. O registrador ADCON1 utilizado para configurar quantos e quais pinos sero entradas analgicas. O registrador STATUS possue alguns bits que permitem modificar o BANK que pode ser acessado pelas prximas instrues.

RESUMINDO O processador do PIC bastante simples em termos de instrues, e cabe ao software agregar complexidade usando estas instrues existentes. O ncleo do microcontrolador pode mover dados entre os registradores (F) e o registrador principal (W), entre a ROM e o registrador principal. Pode tambm acionar e desativar bits em quaisquer uma das posies de memria. Devido a sua simplicidade, somente uma operao pode ser executada por vez (ciclo de mquina). Em condies normais de operao, cada ciclo de mquina equivale a 4 ciclos de clock. possvel tambm, atravs de registradores especiais, se configurar, disparar, parar e controlar os recursos perifricos do PIC, como PWM, Conversor AD, contadores, timers, comunicao serial, etc... Para conhecer mais sobre os procedimentos de configurao e uso dos recursos do microcontrolador em questo, utilize o DATASHEET do mesmo, ou ainda algum livro sugerido na bibliografia bsica da disciplina.

Vous aimerez peut-être aussi