Você está na página 1de 21

MICROCONTROLADORES PIC - Teoria - parte 1 REGISTRADORES E PINOS DE I/O

MICROCONTROLADORES - UMA BREVE HISTRIA

Na dcada de 80, quando a Intel lanou o seu microcontrolador 8051 ela no poderia prever a revolu eletrnica. Muitos fabricantes como Motorola, Hitachi, National, e outros, trataram logo de lanar o se apenas clonar o microcontrolador Intel, outros no.

Um microcontrolador basicamente a integrao de um microprocessador com outros perifricos. Enq microprocessadores possui apenas a CPU (Unidade de processamento central), ALU (Unidade de lgic dados, linhas para endereos e linhas para controle e acesso de memria externa, alguns microcontro mais os perifricos para comunicao serial, timers, Watchdog Timer, Osciladores, I/Os (portas para etc. Podemos ento entender um microcontrolador como um crebro (CPU) com braos (I/Os).

PARTES INTEGRANDES DE UM MICROCONTROLADOR GENRICO

CPU - A CPU ou Unidade de processamento central responsvel por todo o processamento de dado que interpreta os comandos, faz a leitura de dados e ativa as portas de I/Os ou perifricos se nec

ALU - A Unidade de lgica e aritmtica realiza todos os clculos que envolvam registros e ou lgica pa ligada e controlada pela CPU em um microcontrolador.

I/Os - As linhas de I/O de um microcontrolador so responsveis pela entrada e sada do mesmo. microcontrolador. Podemos colher um determinado dado atravs delas, e responder tambm atra

PERIFRICOS

Os perifricos, so circuitos que permitem maior flexibilidade ao microcontrolador. Estes variam de ac Geralmente escolhemos nosso microcontrolador de acordo com nossas necessidades. Os perifricos m microcontroladores so:

- USARTs portas para comunicao serial RS232/RS485 muito utilizadas; - A/D portas para converso Analgico/Digital; - Portas I2C, SPI, ETC portas para comunicao. Permitem interligar perifricos externos e/ para a realizao de tarefas mais complexas; - Timers permitem maior flexibilidade em operaes onde necessitamos de temporizaes; - Watchdog Timer O co de guarda permite vigiar o processamento da CPU. Ele opera sepa perder, o WDT reset a CPU evitando travamentos; - Osciladores Muitos microcontroladores necessitam de poucos componentes internos para r possuem circuitos osciladores internos que facilitam nosso trabalho.

O MICROCONTROLADOR PIC16F84A Escolh este microcontrolador por algumas caractersticas interessantes, as quais destaco:

Baixo custo (na poca - 2002); facilmente encontrado em lojas especializadas; Excelente documentao; Serve como porta de entrada para a maioria dos microcontroladores Microchip, j que estes m set de instrues e outras.

Porm sua maior vantagem a gravao. Ela pode ser feita com um pequeno circuito eletrnico, d da porta paralela ou serial de qualquer PC. Se voc no tem um, veja um dos meus projetos PROG Suas principais caractersticas so: 1024 bytes de memria FLASH, que pode ser gravada vrias vezes; 68 bytes de memria RAM; 64 bytes de memria EEPROM; 13 pinos de I/O configurveis individualmente; Timer de 8 bits com divisor escalar; Interrupes externa e interna; Arquitetura RISC com set de instrues de fcil aprendizado, com apenas 35 instrues; Watchdog Timer; Possibilidade para 4 tipos de osciladores, configurveis via software; Entre outras.

ARQUITETURA

A Microchip foi uma das precursoras do uso da tecnologia RISC (Computador com Set reduzido de Ins microcontroladores. Esta tecnologia baseada na arquitetura HARVARD, que separa a memria de da programa. Assim temos um bus para dados e outro para programa.

O PIC16F84 tem um bus de dados (RAM) com 8 bits (1 byte) e um bus de programa com 14 bits . Ist microcontrolador carregue na CPU o operador+operando em um nico ciclo de mquina. Isso aum permitindo uma melhor performance se comparado a outros microcontroladores que no utilizam esta

Outros microcontroladores, como o 8051, utilizam a tecnologia CISC (Computador com Set de instru arquitetura Van Neuman. Nesta arquitetura a memria de dados e a memria de programa utilizam microcontrolador necessita de mais ciclos para carregar o operador e o operando. Na figura abaixo

entre as duas tecnologias.

PINAGEM (PIN-OUT)

A pinagem da PIC16F84 pode ser vista na figura abaixo. E na tabela seguinte pode-se ver o descritivo uso.

Tabela - Descrio dos pinos do PIC16F84A Nome Pino OSC1/CLKIN OSC2/CLKOUT N 16 15 Tipo Entrada Sada Estrutura Shimitt Trigger/CMOS Descrio Entrada osciladora Sada Osciladora

MCLR

Entrada/Programao

Shimitt Trigger

Reset e Entrada para voltagem de programao

RA0 RA1 RA2 RA3 RA4/T0CKI

17 18 1 2 3

Entrada/Sada Entrada/Sada Entrada/Sada Entrada/Sada Entrada/Sada

TTL TTL TTL TTL Shimitt Trigger

Portas de entrada e sada

Porta de entrada e sada ou entrada do clock externo para timer e contador.

RB0/INT

Entrada/Sada

TTL/ Shimitt Trigger TTL TTL TTL TTL TTL TTL/ Shimitt Trigger TTL/ Shimitt Trigger

Portas de entrada e sada. O port B possui pull-up internos programveis.

RB1 RB2 RB3 RB4 RB5 RB6 RB7 Vss Vdd

7 8 9 10 11 12 13 5 14

Entrada/Sada Entrada/Sada Entrada/Sada Entrada/Sada Entrada/Sada Entrada/Sada Entrada/Sada Alimentao Alimentao

Permite interrupo se alterar nvel

Terra Positivo +5V

MEMRIA

A memria da PIC16F84 para programa no pode ser acessada pelo usurio, a no ser durante a grav meios de acessar a memria de programa em tempo de execuo - modo apenas leitura). Ela tem 1K pode parecer pequena, mas como o PIC utiliza a tecnologia RISC, garante uma excelente otimizao figura abaixo pode-se ver o mapa de memria de programa.

PC Program counter: Neste registro o microcontrolador guarda a posio atual do programa. A ca incrementado em uma posio.

Stack Level 1 ... Stack Level 8: Nestes registradores so guardados os endereos de retorno para o utilizamos a instruo CALL. Note que temos apenas 8 nveis.

Reset Vector: Sempre que nosso microcontrolador for resetado, ele apontar para esta posio de

Interrupt Vector: Quando tivermos uma interrupo (interna ou externa), o microcontrolador aponta User memory space: Memria de programa. rea dedicada ao nosso programa.

REGISTRADORES

Os registradores do PIC16F84 esto divididos em duas partes. A primeira conhecida como SFR (Reg GPR (Registros de Propsito Geral). Estes registros dividem-se em dois bancos.

REGISTRADOR STATUS

Este registrador possui o estado atual da Unidade Lgica Aritmtica, do Reset e do banco de registros

Escrita Leitura IRP bit 7

Escrita Leitura RP1

Escrita Leitura RP0

Leitura

Leitura

Escrita Leitura

Escrita Leitura DC

Escrita Leitura C bit 0

TO

PD

bit 7 - IRP Este registro no utilizado pela PIC16F84, sempre lido sempre como 0 bit 6, 5 - RP1, RP0 Registros de seleo do banco de registros 00 = Banco 0 (00H 7FH) 01 = Bano 1 (80H FFH)

bit 4 - TO Time-out

1 = Aps power-up (ligar), instruo CLRWDT (limpar Co de Guarda) ou instruo SLEEP (dor 0 = Um time-out do WDT ocorreu

bit 3 - PD Power-down 1 = Aps power-up (ligar) ou instruo CLRWDT (limpar Co de Guarda) 0 = execuo da instruo SLEEP (dormir)

bit 2 - Z Zero 1 = O resultado da operao aritmtica ou lgica igual a zero. 0 = O resultado da operao aritmtica ou lgica no zero.

bit 1 - DC Digito Carry/borrow 1 = Ocorreu um transbordamento do 4 bit menos significativo 0 = No ocorreu o transbordamento do 4 bit menos significativo

bit 0 - C Carry 1 = Ocorreu um transbordamento do 7 bit mais significativo 0 = No ocorreu um transbordamento do 7 bit mais significativo

REGISTRADOR OPTION_REG

Com este registrador podemos configurar a interrupo externa atravs de RB0, a interrupo do tim resistores de pull-up da parte mais significativa do PORTB.

Escrita Leitura RBPU bit 7

Escrita Leitura INTEDG

Escrita Leitura T0CS

Escrita Leitura T0SE

Escrita Leitura PSA

Escrita Leitura PS2

Escrita Leitura PS1

Escrita Leitura PS0 bit 0

bit 7 - RBPU Habilita/desabilita pull-ups do PORTB 1 = pull-up desabilitados 0 = pull-up habilitado

bit 6 - INTEDG Seleo de borda para interrupo 1 = Interrupo ativa na subida de borda em RB0/INT 0 = Interrupo ativa na descida de borda em RB0/INT

bit 5 -T0CS Captura do clock do timer 1 = Transio em RA4/T0CKI 0 = Instruo interna, oscilador interno

bit 4 - T0SE Seleo de borda para clock 1 = Incrementa no nvel alto para baixo na transio em RA4/T0CKI 0 = Incrementa no nvel baixo para alto na transio em RA4/T0CKI

bit 3 - PSA Seleo da Diviso Escalar do Timer 1 = Diviso ligada ao WDT 2 = Diviso ligada ao TMR0

bits 2..0 - PS2...PS0 Diviso para contagem do timer e WDT (Co de Guarda) Valor 000 001 010 011 Proporo no TMR0 1:2 1:4 1:8 1 : 16 Proporo no WDT 1:1 1:2 1:4 1:8

100 101 110 111

1 : 32 1 : 64 1 : 128 1 : 256

1 : 16 1 : 32 1 : 64 1 : 128

REGISTRADOR INTCOM

Este registrador controla as vrias interrupes. Tambm podemos, atravs deste registrador, saber e foi solicitada. Escrita Leitura GIE bit 7 bit 7 - GIE Bit de habilitao global das interrupes 1 = Habilita todas as interrupes 0 = Desabilita todas as interrupes Escrita Leitura EEIE Escrita Leitura T0IE Escrita Leitura INTE Escrita Leitura RBIE Escrita Leitura T0IF Escrita Leitura INTF Escrita Leitura RBIF bit 0

bit 6 - EEIE Habilita interrupo de fim de escrita para EEPROM 1 = Habilita interrupo de fim de escrita 0 = Desabilita interrupo de fim de escrita

bit 5 - T0IE Habilita interrupo para over-flow do Timer 1 = Habilita interrupo pelo timer 0 = Desabilita interrupo pelo timer

bit 4 - INTE Habilita interrupo pelo pino RB0/INT 1 = Habilita interrupo pelo pino RB0/INT 0 = Desabilita interrupo pelo pino RB0/INT

bit 3 - RBIE Habilita interrupo na mudana de estado no PORTB 1 = Habilita interrupo na mudana de estado no PORTB 0 = Desabilita interrupo na mudana de estado no PORTB

bit 2 - T0IF Flag para leitura da interrupo over-flow para o timer 1 = Houve interrupo pelo timer

0 = No houve interrupo pelo timer

bit 1 - INTF Flag para leitura da interrupo pelo pino RB0/INT 1 = Houve interrupo pelo pino RB0/INT 0 = No houve interrupo pelo pino RB0/INT

bit 0 - RBIF Flag para leitura da interrupo na mudana de estado no PORTB 1 = Houve interrupo na mudana de estado no PORTB 0 = No houve interrupo na mudana de estado no PORTB

REGISTRADOR PCL

Este registrador contm o endereo da instruo a executar. Ele incrementado automaticamente e c significativos do PC (Progam Couter).

REGISTRADOR STACK

Este registrador contm os endereos de retorno para as sub-rotinas que utilizam a instruo CALL ou de uma interrupo. Note que no PIC16F84 s existem 8 nveis de stack, ou seja, no possvel exec CALL sem executar ao menos uma instruo RETURN. Se isso for ignorado, o PIC ficarr desorientad funcionar corretamente.

REGISTRADORES INDF e FSR

Estes registradores permitem enderear indiretamente o banco de memria RAM. Isso muito til qu escrever ou ler dados seqencialmente na memria. O registrador FSR deve conter o endereo indiret ler ou escrever. No registro INDF ser encontrado o dado do endereo apontado indiretamente por FS

REGISTRADORES PORTA e PORTB

Estes registradores contm o estado atual dos ports de I/O. Pode-se atravs de instrues acessa-l forma inteira. Sem dvida alguma estes registradores so os mais utilizados no PIC. Sempre que fo pino de I/O, estes registradores sero utilizado.

REGISTRADORES TRISA e TRISB

Estes registradores permitem configurar os pinos de I/O como entrada ou sada. Isto feito de acordo TRISA configura o PORTA e TRISB configura o PORTB. Se for preciso configurar um pino de I/O co pino igual a 1 e para sada o bit deve ser igual a zero.

Os outros registradores, que no foram comentados aqui, sero discutidos no decorrer desta pequena

diretamente aos perifricos do microcontrolador.

CONTROLE DE I/Os DO PIC16F84

No PIC16F84 existem 13 pinos de I/O que podem ser configurados individualmente como entrada ou registros TRISA e TRISB. A leitura e/ou escrita tambm pode ser feita individualmente atravs dos re

Os pinos de I/O da PORTA tem caractersticas TTL, exceto o pino RA4 que se comporta como um Schi pino pode receber um sinal de clock externo para incrementar o timer do PIC. Quando isto no nece comportamento dos outros. Temos na PORTA 5 pinos de I/O.

No PORTB os pinos de I/O tambm tm caractersticas TTL, exceto o pino RB0 que pode assumir cara quando configurado para receber uma interrupo externa. Temos no PORTB 8 pinos de I/O.

Todos os pinos de I/O do PIC16F84 conseguem fornece uma corrente de at 25mA para a carga, que ascender um LED. Note que este dreno por pino e no por PORT. Porm, por prudncia, no recom de 20 mA por pino de I/O.

CONCLUSO

O mundo dos microcontroladores realmente fascinante, porm ele exigir dos que se prope a conq dedicao e pacincia. Muitas dvidas iro surgir no decorrer desta leitura, mas todas podero ser san mais atenta, at que tudo fique claro. Nas prximas partes desta srie sero oferecidos alguns exemp auxiliaro na compreenso da teoria apresentada.

Este artigo foi publicado, com minha autorizao, na revista Mecatrnica Fcil nr 6 de setembro/outu

MICROCONTROLADORES PIC - TEORIA - PARTE 2 RESET, CLOCK, ALIMENTAO E SET DE INSTRUES

O OSCILADOR DO PIC O oscilador ou clock do PIC16F84 pode ser configurado de 4 maneiras distintas, dependendo do uso. Esta configurao feita via software e aceita pelo microcontrolador durante sua gravao. O clock determinar a velocidade de operao do microcontrolador. Atualmente o PIC16F84 distribudo com clocks de 4MHz, 10MHz e 20MHz. Devemos escolher a freqncia mxima de operao do microcontrolador de acordo com as tarefas que o mesmo ir executar. Na grande maioria dos projetos a verso de 4MHz mais que suficiente. A figura abaixo mostra os modos possveis de oscilao.

Oscilador RC O microcontrolador PIC pode oscilar com o uso de uma rede RC. Nesta configurao a velocidade de operao do PIC no grande e tambm no muito precisa, mas para executar tarefas que no necessitem de preciso no clock e de grande velocidade de operao, esta opo a mais simples e pode ser utilizada. Oscilador LP Esta opo permite ao PIC utilizar um cristal de baixa potncia. Sua operao e configurao so iguais ao modo XT. Oscilador XT Nesta opo o PIC utiliza um cristal comum para realizar seu clock. Esta configurao a mais utilizada, sendo necessrio apenas um cristal e dois capacitores cermicos ligados ao PIC. Oscilador HS A configurao HS deve ser utilizada com cristais ou ressonadores de alta freqncia. Geralmente clocks maiores que 8MHz utilizam esta configurao. Oscilador externo Tambm podemos utilizar um oscilador externo. Neste caso o sinal de clock inserido no pino OSC1/CLKIN. O pino OSC2/CLKOUT deve ficar aberto (sem conexo).

Na tabela abaixo temos um demonstrativo das freqncias de clock alcanadas para as configuraes LP/XT/HS. Vale salientar que o PIC divide o clock internamente por 4. Por exemplo, com um cristal de 4MHz o PIC ter um tempo de 1 micro segundo para cada ciclo de mquina. Apesar desta diviso, a velocidade ainda boa se comparada a outros microcontroladores como 0 8051 (com diviso

por at 12), j que para a maioria das instrues o consumo de apenas um ciclo de mquina. Tabela Relao modo/freqncia/capacitores Modo LP Freqncia 32KHz 200KHz XT HS 2MHz 4MHz 4MHz 20Mhz Capacitores recomendados 68pF 100pF 15pF 33pF 15pF 33pF 15pF 33pF

O RESET DO PIC O PIC possui internamente circuitos que controlam o que chamamos de Power-on reset. Basicamente isso significa que o microcontrolador necessita de poucos (ou nenhum) componentes externos para realizar o start-up. Sempre que ligamos um circuito com o PIC ele aguardar at que a tenso se estabilize para iniciar qualquer processamento. Isso evita que o microcontrolador trave logo no inicio e tambm economiza espao na PCI (placa de circuito impresso). Voc necessita apenas de um nico componente para realizar o reset do microcontrolador durante o start-up: um resistor, ligado entre o pino de reset e o VCC, com valores entre 560R e 2k2 mais que suficiente. Voc poder ainda inserir uma chave para reset manual no PIC, ligada entre o pino de reset e o terra. Veja a figura abaixo.

Agora voc j pode dizer que conhece o clock e tambm o reset do PIC e poder assim entender melhor os circuitos a serem apresentados a partir daqui. Note a

simplicidade do circuito da figura abaixo. Ele utiliza pouqussimos componentes: um cristal de 4MHz, dois capacitores cermicos de 33pF e um resistor de 1k. Esta configurao ser adotada na maioria dos exerccios que sero propostos.

ALIMENTAO PARA O PIC A alimentao do PIC pode feita, geralmente, com uma tenso de 5 V. Para a tolerncia, devemos adotar o padro TTL com a alimentao variando +/- 10% mximos. Tambm possvel utilizar tenses de 2.7 V a 3.3 V para alimentar um PIC. Porm isto deve estar previsto para a verso e a mesma s utilizada em equipamentos portteis de baixo consumo. Neste caso recomendvel que o clock no ultrapasse 100KHz, para um melhor consumo.

SET DE INSTRUES O set de instrues da famlia PIC16F pequeno, mas muito poderoso. Ele composto por 35 instrues e estas so comuns na famlia 16F, o que permite uma fcil adaptao para outros microcontroladores da mesma famlia. Os opcodes so formados por 14 bits, o que permite ao microcontrolador ler em um nico ciclo de mquina a maioria das instrues de programa, permitindo um aumento significativo na velocidade de processamento e tambm na reduo do espao de memria a ser utilizado pelo programa. Na tabela abaixo temos o set de instrues, devidamente comentado. Para um melhor entendimento da tabela, utilize a seguinte notao: (f) Endereo do registrador (d) 1 para resultado em (f) ou 0 para resultado em (w) (b) bit a ser modificado

(k) valor (1 byte) em binrio, octal, hexadecimal ou ASCII C bit carry no registro Status Z bit zero no registro Status DC bit carry/borrow no registro Status

Tabela Set de instrues do PIC16F84 Instruo Descrio Ciclos Status afetado

Instrues com registradores em nvel de Bytes ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF f,d Soma o contedo do registro W com o contedo de um registrador F qualquer f,d Operao E entre o contedo do registro W e contedo de um registro F qualquer f Limpa o contedo de um registrador F qualquer Limpa o contedo do registrador W 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1 C,DC,Z Z Z Z Z Z Z Z Z C C C,DC,Z Z

f,d Complementa o contedo de um registrador F qualquer f,d Decrementa o contedo de um registrador F qualquer f,d Decrementa o contedo de um registrador F qualquer, pula prxima instruo se zero f,d Incrementa o contedo de um registrador F qualquer f,d Incrementa o contedo de um registrador F qualquer, pula prxima instruo se zero f,d Operao OU entre o contedo do registro W e contedo de um registro F qualquer f,d Move o contedo de um registrador F qualquer f Move o contedo do registro W para um registrador F qualquer Consome um ciclo, sem executar nada

f,d Gira a esquerda o contedo de um registrador F qualquer, considerando o Carry f,d Gira a direita o contedo de um registrador F qualquer, considerando o Carry f,d Subtra o contedo do registro W com o contedo de um registrador F qualquer f,d Troca os nibbles de um registrador qualquer f,d Operao OU Exclusivo entre o contedo do registro W e contedo de um registro F qualquer

Instrues com registradores em nvel de Bit BCF BSF BTFSC BTFSS f,b Zera um bit de um registrador F qualquer f,b Seta um bit de um registrador F qualquer f,b Testa um bit de um registrador F qualquer, pula prxima instruo se igual a zero f,b Testa um bit de um registrador F qualquer, pula prxima instruo se igual a 1 Operaes com Literais e de controle ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW k k k k k k k k k Soma o valor k ao registrador W Operao E entre o valor k e o registrador W Chama uma sub-rotina representada por k Limpa o WatchDog Timer Desvia para o endereco representado por k Operao OU entre o valor k e o registrador W Move o valor k para o registrador W Retorno de uma interrupo Retorno de uma sub-rotina com valor k no registrador W Retorno de uma sub-rotina Entra em modo Standby Subtra o valor k do registrador W Operao OU Exclusivo entre o valor k e o registrador W 1 1 2 1 2 1 1 2 2 2 1 1 1 C,DC,Z Z TO,PD TO,TP C,DC,Z Z 1 1 1(2) 1(2) -

CONCLUSO Estudar preciso! Sem uma boa base terica no se vai longe. Espero que ela ajude tanto aquele que busca conhecimento quanto aquele que se acostumou com o "Control-Chupe" (Control-C, Control-V e olha que lindo... fui eu que fiz!!!! ...cara de madeira!!!).

MICROCONTROLADORES PIC TEORIA - PARTE 3 INTERRUPES - O QUE ISSO?

INTERRUPES

As interrupes so muito utilizadas no mundo dos microcontroladores e dos microprocessadores. Um exemplo tpico so nossos microcomputadores PC. Sempre que pressionamos uma tecla, uma interrupo gerada para o microprocessador, solicitando o tratamento desta. Assim, o PC no obrigado a varrer constantemente o teclado em busca de uma tecla. Porm claro que para que isso seja feito, algum ou alguma coisa deve fazer esta varredura por ele. Isso feito por um microcontrolador dedicado, interno em todos os teclados de PC. Assim temos a gerao de uma interrupo no processamento central por parte de um perifrico. Nos microcontroladores tambm possvel usar interrupes. No caso do microcontrolador PIC16F84A, existem algumas possveis que so: Interrupo externa atravs do pino RB0/INT Overflow do TIMER (TMR0) Mudana de estado nos pinos PB4 a PB7 Escrita completada na EEPROM

Temos ento quatro tipos de interrupes possveis na PIC16F84A. Em outros modelos de microcontroladores Microchip possvel encontrar alm das apresentadas acima, mais algumas, como: Recepo de dado pelo canal serial (RS232) Final de envio de dados pelo canal serial (RS232) Final de converso analgica E muitas outras

Tudo depende do modelo e de seus perifricos. Isso mesmo perifricos. Lembra-se quando falamos do teclado do PC? Ele nada mais que um perifrico do mesmo. Alguns PICs possuem canal de comunicao serial RS232, comunicao I2C, um maior nmero de timers, conversores anlogo/digital, e outros. Estes perifricos internos possuem controle muitas vezes feito de forma totalmente independente da CPU. Assim possvel realizar, por exemplo, um determinado calculo e receber ao mesmo tempo um dado atravs do canal serial. Ao final da recepo o perifrico avisa a CPU atravs de uma interrupo. Esta por sua vez, para o que estava fazendo e atende o perifrico. Aps o tratamento da interrupo (guardar o byte recebido, por exemplo) ela retorna ao ponto em que parou e continua o que estava fazendo.

VANTAGENS NO USO DE INTERRUPES A principal vantagem est na otimizao do cdigo (programa). Com o uso correto das interrupes possvel executar algumas tarefas quase que ao mesmo tempo. possvel, por exemplo, aguardar uma tecla e um dado do canal de comunicao, sem a necessidade de realizar uma varredura em ambos. Se isso no fosse feito, correramos o risco de perder uma das entradas. Ao estar tratando a tecla, o dado poderia estar disponvel no canal de comunicao, mas como nenhuma varredura foi realizada naquele momento, o byte estaria perdido. Porm em muitos casos, quando no temos o problema de analisar vrias entradas ao mesmo tempo, no temos, portanto, a necessidade de usar uma interrupo. Em alguns dos exemplos prticos que passei, os programas basicamente

realizavam apenas uma nica funo por vez, sem a necessidade do uso de interrupes, pois o microcontrolador trabalha dedicado a um nico propsito. Sendo assim, necessrio compreender que o uso das interrupes se faz necessrio quando temos de realizar algumas tarefas importantes, quase que ao mesmo tempo, e no temos o controle de quando elas ocorrero. Tambm podemos usar as interrupes para diminuir o consumo do microcontrolador. Se nada esta acontecendo, podemos coloca-lo para dormir (modo Sleep). Assim o consumo reduzido, e somente quando uma interrupo gerada ele volta ao modo normal, trata a interrupo e volta a dormir. Geralmente aparelhos portteis utilizam este tipo de recurso, pois so alimentados por baterias e o consumo aqui sempre crtico. Obs: Algumas interrupes no tiram um microcontrolador do modo sleep. Existe tambm o tempo ou ciclos de mquina necessrios para se acordar o microcontrolador. Fique atento quando for utilizar uma interrupo! Na parte prtica que trata de displays de sete segmentos voc pode ver como a interrupo externa do PIC16F84A foi utilizada. Eu recomendo o estudo desta parte prtica para uma melhor compreenso do uso das interrupes. Um estudo do datasheet do microcontrolador tambm ir ajudar bastante.

MICROCONTROLADORES PIC TEORIA - PARTE 4 COMPILADORES Obs.: Os dados que sero demonstrados a seguir foram pesquisados h alguns anos. Devido a constante atualizao da internet, voc poder encontrar alguns links "quebrados". Se isso acontecer, peo desculpas e recomendo a busca pelo link utilizando palavras chaves no Google de acordo com o objetivo da sua pesquisa. Atualmente, a Microchip (http://www.microchip.com) tem se destacado no mercado de microcontroladores, pois oferece uma gama muito grande destes. Existem microcontroladores para pequenos, mdios e grandes projetos com aproveitamento tanto pela industria quanto pelo hobista e estudante. Isso atraiu a ateno de desenvolvedores que criaram muitos dispositivos como gravadores e emuladores para o microcontrolador, E como no poderia deixar de ser, muitos compiladores nas mais variadas linguagens tambm foram desenvolvidos para facilitar o trabalho com os microcontroladores Microchip.

COMPILADORES C Os compiladores C sem dvida alguma, detm grande ateno por parte dos desenvolvedores. Isso devido a sua portabilidade, que garante uma maior velocidade no desenvolvimento e um maior aproveitamento de rotinas e subrotinas. Muitos desenvolvedores utilizam bibliotecas prprias, montadas a partir de rotinas e sub-rotinas especficas, para um melhor aproveitamento do cdigo fonte e tambm para uma maior agilidade no desenvolvimento do trabalho (hora/homem). Como voc pode notar os pontos positivos so muitos. Porm existem tambm pontos negativos. A maioria dos compiladores da linguagem C para linha Microchip devem ser registrados, ou seja, no so distribudos gratuitamente.

Exceto claro algumas verses para testes (demo), sempre com algumas limitaes. O outro ponto negativo o tamanho do cdigo HEX final gerado, sempre maior que o gerado pelo compilador Assembler (em mdia de 10% a 30%). A velocidade de execuo do programa tambm inferior. fato comprovado que um cdigo gerado em Assembler mais enxuto e rpido do que o gerado em C. Porm estas desvantagens somem quando falamos em trabalhos profissionais. E nestes casos, a gerao do cdigo fonte em Linguagem C sempre a indicada, pois para uma equipe de trabalho uma linguagem universal sempre melhor que uma proprietria. Abaixo, listo alguns links de compiladores C encontrados na WEB. Nome do fabricante Microchip Link Tipo Observaes

clique aqui

"C"

Compilador Microchip. Existe uma verso demo p/ download para testes com limitaes nos tipos de microcontroladores que podem ser utilizados e tambm no tamanho final do cdigo gerado. O compilador deve ser registrado. Os preos variam de US$125,00 a US$175,00. o mais difundido entre os programadores. No existem verses demo. Existe verso demo p/ download, com limitaes com relao ao tamanho mximo do cdigo gerado 1K mximo. Um bom compilador C, com verso demo para download.

CCS

clique aqui

Hi-Tech Software

clique aqui

mikroElektronika

clique aqui

Obs: Muitos outros compiladores C podem ser encontrados na Internet, e se no falei dos mesmos aqui foi por uma questo de tempo de pesquisa!

COMPILADORES BASIC Os compiladores BASIC formam uma segunda opo para o desenvolvedor, que no se sente muito vontade com compiladores C ou Assembler. A linguagem oferece facilidade no aprendizado e na sua maioria possuem bons recursos para lidar com os microcontroladores da famlia Microchip. Muitos microcontroladores Embedded com PIC utilizam a linguagem BASIC e isto pode ser levado em conta na hora de escolher um compilador, j que a linguagem destes parecida a dos compiladores para PIC. Porm existem alguns pontos negativos. O mais contundente sem dvida alguma a velocidade final proporcionada ao cdigo. Em sua maioria ela baixa, mas nada que afete o desenvolvimento de aplicaes para fins pessoais ou didticos. Um outro ponto que merece ateno o tamanho do cdigo gerado, que tambm grande no permitindo assim muitas linhas de programa, se comparado a Linguagem C e Assembly.

Nome do fabricante Micro Engineering Labs, Inc mikroElektronika

Link

Tipo

Observaes

clique aqui

BASIC

Um excelente compilador BASIC com padro de linguagem prxima ao do Basic Step 1. No existe uma verso demo e o software deve ser registrado para uso. Um bom compilador Basic, com verso demo para download. PO site oferece uma verso full comercial e uma verso free com algumas limitaes (s funciona para as verses 12C508, 12F675, 16F628A e 16F877.

clique aqui

BASIC

CrownHill Associates

clique aqui

BASIC

COMPILADORES PASCAL Muitos desenvolvedores que utilizam a Linguagem Delphi se sentiro vontade com compiladores Pascal, j que o Delphi origina-se da linguagem Pascal. Na Internet existem muitos compiladores para a linguagem PASCAL, dedicados aos microcontroladores, especificamente desenvolvidos para trabalhar com processamentos de oito bits, como o caso do microPascal. A velocidade do cdigo final gerado em sua maioria boa, aproximando-se muito da conseguida com os compiladores C. Uma outra vantagem que a linguagem Pascal de alto nvel favorecendo a interpretao do cdigo e tambm sua portabilidade.

Nome do fabricante PMP

Link

Tipo

Observaes

clique aqui

Pascal

Uma verso full totalmente free est disponvel p/ download. Com verso demo para download.

mikroElektronika

clique aqui

Pascal

Para todos os compiladores apresentados aqui, os fabricantes procuram fornecer exemplos sob a forma de Applications Notes, manuais para download e muitas outras informaes que podem ser obtidas atravs dos endereos passados. claro que existem muitos outros compiladores das linguagens aqui citadas, assim como outros tipos de compiladores para outras linguagens. Uma busca pela WEB sempre recomendvel. Utilize palavras chaves como PIC compiler, Programming PIC e outras (preferencialmente em lngua inglesa).