Você está na página 1de 12

Micro-controladores Famlia PIC Tutorial

Curso de Mecatrnica UNICAMP

Joo Maurcio Rosrio maio de 2002

Micro-controladores Famlia PIC Tutorial


SUMRIO
1 2 OBJETIVO
2.1 2.2 2.3

...................................................................................................................................... 3

MICRO-CONTROLADORES ............................................................................................................. 3
MICRO-CONTROLADOR PIC16F84.............................................................................................................. 3 PRINCIPAIS CARACTERSTICAS ................................................................................................................... 4 MICROCHIP............................................................................................................................................... 5

ARQUITETURAS DE MICRO-CONTROLADORES ......................................................................... 6


3.1 3.2 3.3 3.4 3.5 3.6 MEMRIA DE PROGRAMAO..................................................................................................................... 6 MEMRIA DE DADOS ................................................................................................................................. 6 TIMER ...................................................................................................................................................... 7 PRE-SCALE ............................................................................................................................................... 7 WHATDOG................................................................................................................................................ 7 INTERRUPO ........................................................................................................................................... 8

4 5 6 7 8

PROGRAMAO ASSEMBLER ....................................................................................................... 9 O AMBIENTE DE PROGRAMAO MPLAB ................................................................................. 9 O KIT DIDTICO MOSAICO ......................................................................................................... 10 O SISTEMA DE GRAVAO MICRO-FLASH E SOQUETE MICRO-SOC ................................... 11 FAMLIA DE COMPONENTES ....................................................................................................... 12

Micro-controladores Famlia PIC Tutorial


1 OBJETIVO

Este tutorial sobre PIC tem o objetivo dar uma viso geral sobre os micro-controladores da famlia PIC. Um dos aspectos mais interessantes do PIC que, mesmo sendo a maior famlia de micro-controladores do mercado em termos de variedade de modelo, todos os modelos foram desenvolvidos a partir da mesma filosofia de produto. Esta caracterstica da famlia PIC permite a compatibilidade de cdigos (linguagem assembler) e a estruturao das aplicaes, pois um cdigo escrito para um modelo de PIC poder ser migrado para outro modelo equivalente em termos de recursos necessrios sem que sejam necessrias grandes mudanas no cdigo fonte. Isto facilita o trabalho de quem desenvolve e preserva o investimento de quem produz. Para que nosso estudo seja mais objetivo, escolhemos como foco deste tutorial o PIC 16F84.

1.1

MICRO-CONTROLADORES

Um sistema computacional composto por uma unidade de processamento, memria e portas de entrada/sada (I/O). A maioria das pessoas limitam o conceitos de sistema computacional ao computador que temos em casa, vulgo PC (Personal Computer). No entanto todo sistema que a partir de dados de entrada, executa algum processamento mediante um programa armazenado em uma memria gerando uma sada chamado de sistema computacional. Podemos definir micro-controlador como sendo um sistema computacional integrado, pois ele possui unidade de processamento, memria e entradas e sadas integrados em um nico chip.

1.2

MICRO-CONTROLADOR PIC 16F84

Este componente de 18 pinos pode ser classificado na faixa intermediria em termos de recursos disponveis pois ele possui interrupes mas, no entanto, no dispe de perifricos como PWM, conversores A/D ou portas de comunicao serial.

FIGURA 1 - Pinagem e principais caractersticas do PIC 16F84.

1.3

PRINCIPAIS CARACTERSTICAS
Memria de Programa Flash (1024 words de 14bits) Memria de dados 68 bytes Memria EEPROM 64 bytes 13 Entradas / Sadas PORT A: RA0 ... RA4 (5 PINOS) PORT B: RB0 ... RB7 (8 PINOS) Cap. de corrente: 25mA (por pino) 4 tipos diferentes de Interrupo

1.4

MICROCHIP

A Microchip uma empresa norte americana, fundada em 1989, com sede na cidade de Chandler, Arizona (oeste dos E.U.A.) Esta empresa desenvolve, fabrica e comercializa microcontroladores (PIC), memrias seriais (I2C e SPI), produtos para segurana (Keeloq), identificadores por RF (RFID), conversores A/D, circuitos integrados de superviso (Bronw out) e amplificadores operacionais.

Principais Endereos:
Estados Unidos: Corporate Headquarters Microchip Technology Inc 2355 West Chandler Blvd. Chandler, Arizona, USA 85224-6199 T.: (480) 786-7200 (480) FAX: 899-9210 Brasil: A Microchip representada no Brasil pela empresa Artimar. Os micro-controladores PIC. podem ser comprados junto aos distribuidores autorizados: Aut-Comp, Future e Hitech.

ARQUITETURAS DE MICRO-CONTROLADORES

A arquitetura de um sistema digital define quem so e como as partes que compe o sistema esto interligadas. As duas arquiteturas mais comuns para sistemas computacionais digitais so as seguintes: Arquitetura de Von Neuman : A Unidade Central de Processamento interligada memria por um nico barramento. O sistema composto por uma nica memria onde so armazenados dados e instrues. Arquitetura de Harvard: A Unidade Central de Processamento interligada a memria de dados e a memria de programa por barramento especfico. O PIC possui arquitetura Harvard. A memria de dados do tipo RAM (voltil) e , no caso do 16F84, a memria de programa do tipo Flash (letra F no cdigo).

2.1

MEMRIA DE PROGRAMAO

A memria de programao onde as instrues do programa so armazenadas. No caso do 16F84 esta memria de 1024 palavras (words) de 14 bits cada uma. Parte destes 14 bits informam o OPCODE (cdigo da instruo) e o restante traz consigo o argumento da instruo correspondente. Na familia PIC existem trs tipos de memria de programa: EPROM (O.T.P. - One Time Programable), EEPROM (janelado) e FLASH. Existem duas posies da memria do programa que recebem nomes especiais: vetor de reset e vetor de interrupo. O vetor de reset para onde o programa vai quando ele inicializado, enquanto que o vetor de interrupo a posio da memria de programa para onde o processamento desviado quando ocorre uma interrupo.

2.2

MEMRIA DE DADOS

A memria de dados uma memria voltil do tipo R.A.M. (random access memory). O mapa de memria divido em duas partes: registadores especiais (special function register S.F.R.) e registradores de uso geral (general purpose register - G.P.R.). Como o ponteiro da memria de programa tem capacidade de enderear somente 128 posies de memria de cada vez (7 bits), a memria de programa dividida em bancos (banco 0 e banco 1 no 16F84). Esta diviso implica em termos posies de memria que somente podero ser acessadas caso o banco a que ela pertena seja previamente selecionado atravs de um bit especfico do S.F.R. STATUS.

2.3

UNIDADE LGICA ARITMTICA

A unidade lgica aritmtica onde todas as operaes lgicas (funes lgicas booleanas: e ou, exclusivo e complemento) e aritmticas (soma e subtrao) so efetuadas. O registrador W sempre estar envolvido de alguma forma em toda operao lgica ou aritmtica. Existem dois destinos possveis para estas operaes: o W (work) ou um registrador (posio da memria de dados) definido no argumento da instruo.

3
3.1

PRINCIPAIS CARACTERSTICAS
CICLO DE MQUINA

Um micro-controlador pode ser entendido como sendo uma mquina que executa operaes em ciclos. Todos os sinais necessrios para a busca ou execuo de uma determinada instruo devem ser gerados dentro de um perodo de tempo denominado Ciclo de Mquina. Nos PIC com memria de programa de 12 e 14 bits um Ciclo de Mquina corresponde a quatro perodos de clock (1:4) denominados Q1,Q2,Q3 e Q4, conforme pode ser verificado na figura abaixo.

FIGURA 3 - Ciclo de Mquina.

3.2

PIPELINE

Se para efeito de anlise dividirmos o processamento interno do PIC em ciclos de busca e execuo, podemos afirmar que para cada instruo executada foi necessria a execuo prvia de um ciclo de busca. Imagine um sistema que implemente um ciclo de busca e ao mesmo tempo processe um ciclo de execuo. Desta forma, no incio de cada Ciclo de Mquina haver uma instruo pronta para ser executada. No entanto algumas instrues fazem com que este sistema seja desarticulado: so as chamadas instrues de desvio. As instrues de desvio so aquela que alteram o valor do Program Counter (contador/ponteiro de programa). Quando ocorre um desvio a instruo que j foi previamente buscada pelo sistema de Pipeline no vlida, pois estava na posio de memria de programa apontada pelo PC antes dele ter seu valor alterado para o destino especificado. Conseqentemente torna-se necessrio a execuo de um novo ciclo de busca, que obviamente demandar mais um ciclo de mquina, resultando em um tempo de total de processamento igual a dois ciclos de mquinas.

Label
BT_1

Instruo
MOVLW .100 ADDWF COUNT,W MOVWF RESULT GOTO MOSTRA

Pipeline
ADDWF COUNT,F MOVWF COUNT,W GOTO MOSTRA MOVLW .50 (DESCARTADO) MOVF MOSTRA,W (NOVA BUSCA)

BT_2

MOVLW .50 (...) (...) (...)

MOSTRA

MOVF MOSTRA,W MOVWF PORTB

MOVWF PORTB (...)

Tabela 1 - atuao do Pipeline.


Regra: toda instruo do PIC demanda um Ciclo de Mquina para ser executada, exceto aqueles que provocam desvio no progama que as quais demanda dois Ciclos de Mquina.

3.3

TIMER

O PIC possu internamente um recurso de hardware denominado Timer0. Trata-se de um contador de 8bits incrementado internamente pelo ciclo de mquina ou por um sinal externo (borda de subida ou descida), sendo esta opo feita por software durante a programao (SFR). Como o contador possui 8 bits ele pode assumir 256 valores distintos (0 at 255). Caso o ciclo de mquina seja de 1us, cada incremento do Timer corresponder a um intervalo de 1us. Caso sejam necessrio intervalos de tempos maiores para o mesmo Ciclo de Mquina, utilizamos o recurso de PRE-SCALE.

3.4

PRE-SCALE

O Pre Scale um divisor de frequncia programvel do sinal que incrementa o Timer0. Quando temos um pre scale de 1:1, cada ciclo de mquina corresponde a um incremento do Timer0 (unidade de Timer0). Ao alterarmos o pre scale para, por exemplo 1:4 (os valores possveis so as potencias de dois at 256), o Timer0 ser incrementado uma vez a cada quatro ciclos de mquina.

3.5

WATCHDOG

O watchdog um recurso disponvel no PIC que parte do princpio que todo sistema passvel de falha. Se todo sistema pode falhar, cabe ao mesmo ter recursos para que, em ocorrendo uma falha, algo seja feito de modo a tornar o sistema novamente operacional. Dentro do PIC existe um contador incrementado por um sinal de relgio (clock) independente. Toda vez que este contador extrapola o seu valor mximo retornando a zero, provocado a reinicializao do sistema (reset).

Clear Watchdog: Se o sistema estiver funcionado da maneira correta, de tempos em tempos uma instruo denominada clear watchdog timer (CLRWDT) zera o valor deste contador, impedindo que o mesmo chegue ao valor mximo. Desta maneira o Watchdog somente ir "estourar" quando algo de errado ocorrer. Pre Scale: O perodo normal de estouro do Watchdog Timer de aproximadamente 18 ms. No entanto, algumas vezes este tempo insuficiente para que o programa seja normalmente executado. A sada neste caso alocar o recurso de Pre Scale de modo a aumentar este perodo. Se sem o pre scale o perodo de 18ms, quando atribumos ao Watchdog Timer um PRE SCALE de 1:2 (um para dois) nos dobramos este perodo de modo que o processamento possa ser executado sem que seja feita uma reinicializao.

3.6

INTERRUPO

As Interrupes so causadas atravs de eventos assncronos (podem ocorrer a qualquer momento) que causam um desvio no processamento. Este desvio tem como destino o vetor de interrupo. Uma boa analogia para melhor entendermos o conceito de interrupo a seguinte: voc est trabalhando digitando uma carta no computador quando o seu ramal toca. Neste momento voc, interrompe o que est fazendo, para atender ao telefone e verificar o que a pessoa do outro lado da linha est precisando. Terminada a conversa, voc coloca o telefone no gancho novamente e retoma o seu trabalho do ponto onde havia parado. Observe que no precisamos verificar a todo instante, se existe ou no algum na linha, pois quando o ramal chamado, o telefone toca avisando que existe algum querendo falar com voc. O PIC 16F84 possui quatro interrupes: Interrupo externa (RB0) Interrupo por mudana de estado (RB4..RB7) Interrupo por tempo (TMR0) Interrupo de final de escrita na EEPROM

A habilitao das interrupes nos PIC segue a seguinte filosofia. Existe uma chave geral (general interrupt enable) e chaves especficas para cada uma das interrupes. Deste modo, se eu quiser habilitar a interrupo de tempo (TMR0) eu devo setar o bit da chave geral e tambm o bit da chave especfica (T0IE), ambos presentes no registrador especial (S.F.R.) INTCON. POWER ON RESET: um sistema faz com que durante a energizao o pino de Master Clear (/MCLR) permanea durante algum tempo em zero, garantindo a inicializao. POWER UP TIMER: um temporizador que faz com que o PIC, durante a energizao (power up), aguarde alguns ciclos de mquina para garantir que todo o sistema perifrico (display, teclado, memrias, etc) estejam operantes quando o processamento estiver sendo executado. BROWN OUT: O Brown Out monitora a diferena de tenso entre VDD e VSS, provocando a reinicializao do PIC (reset) quando esta cai para um valor inferior ao mnimo definido em manual. SLEEP: O modo de operao Sleep foi includo na famlia PIC para atender um mercado cada vez maior de produtos que devem funcionar com pilhas ou baterias. Estes equipamentos devem ter um consumo mnimo para que a autonomia seja a mxima. Quando o PIC colocado em modo Sleep (dormir), atravs da instruo SLEEP, o consumo passa da ordem de grandeza de mA (mili mperes) para uA (micro mperes). Existem trs maneiras de "acordar o PIC": por interrupo externa/estado, estouro de Watchdog ou reinicializao (/MCRL).

PROGRAMAO ASSEMBLER

A linguagem de programao Assembler do PIC 16F84 composto por 35 instrues. As instrues so expressas na forma de mnemnicos. O mnemnico composto por termos e operaes. As operaes (tabela 3) definem as aes que so completadas e especificadas pelos termos (tabela 2).

As instrues so divididas em quatro grupos:


instrues orientadas a byte (registradores); instrues orientadas a bit; instrues com constantes (literais); instrues de controle.

W F L B T

work file (posio da RAM) literal (constante) bit test

S S C Z

skip (pule) set clear zero

Tabela 2: Termos

ADD AND CLR COM DEC INC IOR

somar lgica "E" limpar complementar decrementar incrementar lgica "OU"

MOV RL RR SUB SWAP XOR

mover rodar para esquerda rodar para direita subtrair comutar lgica "ou exclusivo"

Tabela 3: Operaes

O AMBIENTE DE PROGRAMAO MPLAB

O MpLab um ambiente integrado de desenvolvimento (I.D.E.: Integrated Development Enviroment). No mesmo ambiente o usurio pode executar todos os procedimentos relativos ao desenvolvimento de um software para micro-controlador, tornando o trabalho do projetista mais produtivo.

Edio: O MapLab possui um editor de programa que possui diversas ferramentas de auxilio como localizar, substituio, recortar, copiar e colar.

Compilao: Compilar significa traduzir um programa escrito em Assembler (mnemnicos) para


linguagem de mquina (nmeros). A compilao gera um arquivo com extenso .hex (hexadecimal) a partir dos arquivos de cdigo fonte (.asm) e de projeto (.pjt). o contedo do arquivo hexadecimal que gravado na memria de programa do PIC.

Simulao: O MpLab possui ferramentas para simulao do programa, possibilitando a execuo passo a passo, visualizao e edio do contedo dos registradores, edio de estmulos (entradas), contagem de tempo de execuo, etc. Gravao: Para que o programa seja executado no micro-controlador, o arquivo hexadecimal
deve ser gravado no PIC. O MpLab oferece suporte ao gravador PIC StartPlus, fabricado pela Microchip.

Emulao: A Emulao um recurso de desenvolvimento que possibilita testes em tempo real. O


MpLab oferece suporte ao hardware necessrio para estar emulando um determinado programa.

KIT DIDTICO MOSAICO

Esta interface foi desenvolvida pela empresa Mosaico Engenharia Ltda. e utiliza o microcontrolador PIC16F877 como objeto central e uma srie de perifricos foram adicionados. O nosso objetivo disponibilizar uma interface de desenvolvimento onde o usurio possa testar seus conhecimentos em software, sem se preocupar com a montagem do hardware. A figura 4 mostra esta interface.
PIC 16F877 LCD EXPANSO RS-232 FLASH RST / INIT

DISPLAYS

TECLAS E LEDs BUZZER

SENSOR TEMPERATURA JUMPERS VENTILADOR

Figura 4: Kit Didtico MOSAICO.

A partir desta interface todo o hardware necessrio para a comunicao serial e interfaceamento com dispositivos mecatrnicos se encontram integrados, bastando o desenvolvimento do software aplicativo. Os principais recursos que esta interface oferece so: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. LCD alfanumrico Displays de leds de 7 segmentos Teclas e Leds Buzzer Memria serial EPROM 24C04 Comunicao serial RS232 Converso A/D Sistema de temperatura Leitura de jumpers Gravao in-circuit compatvel com McFlash Conector de expansao contendo 15 I/O's Jumper de configurao Alimentao e Reset PIC 16F877

SISTEMA DE GRAVAO MICRO-FLASH E SOQUETE MICRO-SOC

O McFlash opera diretamente dentro do MPLAB (Microchip): simula o PIC START PLUS. Aceita toda famlia Flash "16FXXX". Comunicao serial com PC (DB9-RS232). Leds indicadores de "ligado" e de "operando". Soquete padro "MicroSoc" (RJ6) para interligar com outros mdulos da Mosaico. Soquete de gravao para PICs de 18, 28 e 40 pinos. Pode-se acoplar soquete ZIF (da AIRES, no incluso). Opera diretamente com o Kit Didtico, neste caso compartilhando a mesma fonte. Manual completo incluindo dicas do MPLAB (software disponvel no site da Microchip). Inclui: placa do gravador e do MCSOC, cabo RJ6 e fonte de alimentao

Figura 5: Gravador Micro-Flash.

O Sistema McPlus opera diretamente dentro do MPLAB (Microchip) possuindo as

seguintes caractersticas: Simulao do PIC START PLUS, Placa do gravador e do Micro-Soc, cabo RJ6 e fonte de alimentao. Gravao de 76 modelos da linha PIC entre Flash e OTP, Comunicao serial com PC (DB9-RS232), Leds indicadores de "ligado" e de "operando", Soquete padro "MCSOC" (RJ6) para interligar com outros mdulos da Mosaico, Soquete de gravao para PICs de 18, 28 e 40 pinos.

Figura 5: Soquete de gravao PIC Micro-Soc. 8 FAMLIA DE COMPONENTES

Pode-se acoplar ainda um soquete ZIF (da AIRES, no incluso). Opera diretamente com o McLab 1, neste caso compartilhando a mesma fonte. O Manual completo incluindo dicas do software MPLAB esto disponveis no site internet da Microchip. O sistema McPlus grava os seguintes componentes:
PIC12C508A PIC16C505 PIC12C508 PIC16C554 PIC12C509 PIC16C558 PIC12C509A PIC16C61 PIC12C671 PIC16C62 PIC12C672 PIC16C620 PIC12CE518 PIC16C620A PIC12CE519 PIC16C621 PIC12CE673 PIC16C621A PIC12CE674 PIC16C622 PIC16C622A PIC16C62A PIC16C62B PIC16C63 PIC16C63A PIC16C64 PIC16C642 PIC16C64A PIC16C65 PIC16C65A PIC16C65B PIC16C66 PIC16C662 PIC16C67 PIC16C71 PIC16C710 PIC16C711 PIC16C712 PIC16C715 PIC16C716 PIC16C717 PIC16C72 PIC16C72A PIC16C73 PIC16C73A PIC16C73B PIC16C74 PIC16C745 PIC16C74A PIC16C74B PIC16C76 PIC16C765 PIC16C77 PIC16C773 PIC16C774 PIC16C84 PIC16CE623 PIC16CE624 PIC16CE625 PIC16F627 PIC16F628 PIC16F73 PIC16F74 PIC16F76 PIC16F77 PIC16F83 PIC16F83A PIC16F84 PIC16F84A PIC16F870 PIC16F871 PIC16F872 PIC16F873 PIC16F874 PIC16F876 PIC16F877

Você também pode gostar