Você está na página 1de 7

bit é uma unidade binária - ou seja, pode ter apenas dois valores, zero ou um - que serve de base
para o armazenamento e processamento de informações em um computador. Tudo o que existe no
seu computador ou na internet é formado por um número determinado de bits.
 
A partir do bit, surgiu o byte, que nada mais é do que um conjunto de 8 bits. Existem diversos
múltiplos dos bytes: um kilobyte (KB), equivalente a 1.024 bytes; um megabyte (MB), equivalente a
1.024 KB; e um gigabyte, equivalente a 1.024 MB.

1 história e características dos microcontroladores pic - Document Transcript

1. História e características dos Microcontroladores PIC Microcontroladores E tudo começou com os


microprocessadores. Primeiro eram de 4 bits, depois de 8 bits e assim por diante. Mas o que é um microprocessador?
É um chip, com alta integração de componentes, que precisa de memória RAM externa, memória EEPROM externa,
HD para armazenamento de programas e outros diversos periféricos. Ou seja, você usa um microprocessador dentro
de um microcomputador e ele, em conjunto com um monte de outros CIs, trabalham direitinho. Porém, visando
desenvolver um dispositivo simples, que tivesse características de computadores integrados em um único chip, os
fabricantes de processadores desenvolveram os primeiros MCUs [Micro Controle Unit ou Unidade Microcontoladora
- Microcontroladores] e passaram a distribuí-los efetivamente na década de 80. Tais características tornaram mais
simples o projeto de dispositivos inteligentes, pois os MCUs raramente necessitam de componentes externos para
funcionar, diminuindo o custo e o seu tamanho. Um sistema computacional é composto por uma unidade de
processamento, memória e portas de entrada/saída [I/O]. A maioria das pessoas limita o conceito de sistema
computacional ao computador que temos em casa [Personal Computer; MAC]. No entanto todo sistema que a partir
de dados de entrada, executa algum processamento mediante um programa armazenado em uma memória gerando
uma saída é chamado de sistema computacional. Podemos definir microcontrolador como sendo um sistema
computacional integrado, pois ele possui unidade de processamento, integrado memória e entradas e saídas
integrados em um único chip. Sendo esta a diferença de microcontrolador e microprocessador [este último é apenas a
unidade de processamento em si; Claro que os microprocessadores comercializados atualmente possuem capacidades
de processamento muito maiores do que as dos microcontroladores].

2. Mas, tudo isto começou com a lógica digital baseada na condução ou não de transistores, fets ou diodos entre outros.
Mas para não entrar neste detalhe, vamos simplificar resumindo esta lógica em dois números ou como falamos muito,
em dois dígitos: O 0 [zero] e o 1 [um]. Quando falamos em 0 [zero], estamos nos referindo a Zero Volt DC e quando
falamos em 1 [um] estamos falando em + Vcc No Vcc. caso dos PICs, geralmente, estaremos falando que: PICs 0 =
GND e 1 = 5Vcc [padrão/lógica TTL]. Tenha em mente, então, que a lógica digital se baseia em níveis de tensão
contínua. E que os microcontroladores usam a lógica digital, e que um programa de computador ou para um
microcontrolador, por mais complexo que seja, se resume em uma enorme quantidade de 0s [zeros] e 1s [uns]
ordenados corretamente. Os primeiros microcontroladores implementavam a tecnologia do microprocessador 8080,
como, por exemplo, o 8048 e posteriormente o 8051 [todos da Intel]. Existem no mercado diversos tipos de
microcontroladores, como o 8051. A ATMEL possui uma enorme família de componentes com as mesmas
características do 8051, alguns até com as mesmas pinagens dos registradores; outros com pinagens diferentes, mas
com o mesmo conjunto de instruções, com clock de 4MHZ até aproximadamente 10MHZ. A DALLAS
Semicondutors tem um microcontrolador de alta performance, de até 90MHZ, compatível com 8051. Por fim, vem a
Microchip com os microcontroladores PIC ou PICmicro MCUs, como ela mesmo MCU denomina, que se tornaram
muito populares [há um grande número de materiais didáticos e acadêmicos relacionados ao PIC]. A Microchip é
uma empresa norte americana, fundada em 1989, com sede na cidade de Chandler, Arizona [oeste dos EUA]. A
família PIC possui extensa variedade de modelos e periféricos internos, com arquitetura Harvard e conjunto de
instruções RISC [Reduced Instruction Set Computer ou Conjunto de Instruções Reduzidas], com recursos de
programação por Memória Flash,

3. EEPROM e OTP. Há o reconhecimento de interrupções tanto externas como de periféricos internos. Funcionam com
tensões de alimentação de 2 a 6V e os modelos possuem encapsulamento de 6 a 100 pinos em diversos formatos
[SOT23, DIP, SOIC, TQFP,etc]. Quantas vezes os PICs Flash podem ser regravados? Se as gravações forem feitas
dentro dos parâmetros sugeridos pelo fabricante, ele garante que pelo menos 1000 ciclos de gravação podem ser
feitos [alguns tem o mínimo de 100000 vezes]. A memória EEPROM de dados pode ter um ciclo de 1000000 vezes.
A partir dai, a memória começa a se degradar e perde a confiabilidade. Quantas vezes podemos reprogramar os PICs
OTP? Os PICs OTP são os que possuem a letra C no meio do código [exceto o 16C84 que é EEPROM]. Os PICs
OTP [One Time Programmable], como o próprio nome indica, somente podem ser programados uma vez. Entretanto,
as posições de memória de programa que não forem usadas poderão ser gravadas posteriormente. O que é a
EEPROM? Alguns modelos de PIC possuem uma área de memória EEPROM [Electrically Erasable Programmable
Read Only Memory] que serve como memória não volátil [que não se perde ao desligarmos a alimentação] útil para
guardarmos dados de calibração, senhas, etc. Essas memórias podem suportar um ciclo de 1000000 de gravações. Em
modelos sem EEPROM, podemos usar memórias EEPROM seriais externas. O acesso a essas memórias [gravação e
leitura] pode ser feito no momento da gravação de um programa no PIC ou pelo próprio PIC executando o programa
gravado nele, pelos registradores específicos [EEDATA, EEADR, EECON].

4. [Configuração física do interior de um microcontrolador] Arquitetura de Construção A arquitetura de um sistema


digital define quem são e como as partes que compõe o sistema estão interligadas. Os primeiros microcontroladores
usavam uma estrutura interna que tinha apenas um caminho para trafegar os dados e endereços. Lembre-se, dados são
informações e endereços são os locais onde serão armazenados os dados [memória de programa]. O nome mais
correto para este “caminho” é Bus [barramento]. Com apenas um bus tínhamos que trafegar hora endereços, hora
dados [arquitetura von-Neuman]. As duas arquiteturas mais comuns para sistemas computacionais digitais são as
seguintes: • Von-Neuman; • Harvard. A principal característica da arquitetura Harvard utilizada na construção dos
MCUs PIC é ter a memória de programa separada da memória de dados e acessada por um barramento independente
[a Unidade Central de Processamento é interligada a memória de dados e a memória de programa por barramento
específico]. Existe também a arquitetura von-Neumann, onde tanto as memórias de dados quanto a de programa, são
acessadas usando-se um mesmo barramento de dados [a Unidade Central de Processamento é

5. interligada à memória por um único barramento. O sistema é composto por uma única memória onde são
armazenados dados e instruções]. Nesta arquitetura não há limitações à complexidade das instruções, os sistemas
geralmente têm conjuntos de instruções complexos, o que equivale a dizer que possuem um grande número de
instruções [o que dificulta a memorização do programador] e cada instrução realiza uma grande seqüência de ações
[instruções complexas], gastando tempos [quantidade de ciclos de execução] diferentes para serem executadas.
Processadores deste tipo são chamados CISC [Complex Instruction Set CPU ou CPU com Conjunto de Instruções
Complexo]. Os PICs usam um Set ou conjunto de instruções reduzidas, devido a sua arquitetura Harvard, chamados
de RISC [Reduced Instruction Set Computer]. Este set tem entre 33 a 35 instruções dependendo do PIC. Isto ajuda na
memorização, mas, exige mais do programador. É como falar fluentemente um outro idioma, conhecendo poucas
palavras. Clock O clock é um sinal de sincronismo que coordena as ações do MCU e é obtido a partir de um
componente oscilador externo [ressonador, cristal e capacitores, circuito RC, etc] ou interno [Circuito RC interno]. Se
fizermos uma analogia de um microcontrolador com um relógio de sala, o nosso clock corresponde ao pêndulo
deslocando sempre com uma certa precisão e coordenando a contagem da passagem das horas. Um microcontrolador
pode ser entendido como sendo uma máquina que executa operações em ciclos. O clock do oscilador é ligado ao

6. PIC através do pino OSC1, onde, o circuito interno do microcontrolador divide o sinal de clock em quatro fases, Q1,
Q2, Q3 e Q4 [PICs com memória de programa de 12 e 14 bits] que não se sobrepõem. Estas quatro pulsações
perfazem um ciclo de instrução [também chamado Ciclo de Máquina e durante o qual uma Máquina] instrução é
executada [Todos os sinais necessários para a busca ou execução de uma determinada instrução devem ser gerados
dentro deste período de tempo]. [Nos PICs com memória de programa de 12 e 14 bits um Ciclo de Máquina
corresponde a quatro períodos de clock [1:4] denominados Q1,Q2,Q3 e Q4] Como pode ser o clock do PIC? Em
aplicações onde a precisão do clock [sinal de sincronismo para coordenar as ações do MCU] é necessária, costuma-se
usar um cristal de quartzo e dois capacitores [ver figura abaixo] ou um ressonador cerâmico [menos preciso] ligado a
dois pinos do PIC. Em aplicações onde precisão não é necessária, podemos usar um circuito RC [resistor – capacitor]
para gerar as oscilações. Muitos modelos de PIC possuem o recurso de oscilador interno, onde não precisamos ligar
componentes externos, porém, a precisão fica entre 1% a 7%. Também podemos simplesmente injetar um sinal de
clock de um oscilador independente do PIC. Exemplo de Circuito Oscilador:

7. CRYSTAL OPERATION [OR CERAMIC RESONATOR] [HS, XT OR LP OSC CONFIGURATION] Abaixo


segue uma lista identificando os vários modos de clock dos PICs [as nomenclaturas podem variar dependendo da
fonte de consulta ou dos programas utilizados], só que nem todos os modelos possuem todos estes [a aplicação e
configuração do clock no PIC será melhor detalhada em Aplicação e Programando]: • LP [Low Power Crystal] – uso
de um cristal de alguns kHz e capacitores para que o consumo seja baixo. • XT [Crystal/Resonator] – cristal de até
4MHz. Pode ser usado um ressonador cerâmico. • HS [High Speed Crystal/Resonator] – para cristais com até 20MHz
ou ressonadores com frequências próximas a isto. • HSPLL [High Speed Phase Locked Loop] – multiplica a
frequência do cristal por quatro. • ER [External Resistor] – este modo usa apenas um resistor externo ao PIC,
utilizando a capacitância intrínseca do PIC como capacitor. • RC [External Resistor/Capacitor] – esse modo precisa
de apenas um resistor e um capacitor externo ao PIC [Circuito RC], entretanto a precisão e a estabilidade não são
muito grandes. • INTOSC [Internal Oscillator] – oscilador RC interno que permite que economizemos em
componentes e libera os pinos para usar como portas [frequência próxima de 4MHz frequência frequ 4MHz]. • EC
[External Clock In] – apenas injetamos um sinal de clock externo no PIC.

8. Os PICs mais modernos possuem o recurso de PLL para multiplicar a frequência de clock obtida a partir de um
cristal, permitindo assim se obter uma maior velocidade com cristais de menor frequência, sem gerar EMI. Como
funcionam os osciladores internos dos PICs? Alguns modelos de PICs possuem um oscilador de clock interno, o que
permite que economizemos em componentes e libera-se mais dois pinos para serem usados como portas de I/O. Esse
oscilador é baseado num circuito RC e não tem muita precisão. Entretanto em alguns PICs podemos calibrar a
frequência de oscilação para que fique bem perto da frequência desejada. Isso se faz através dos bits do registrador
OSCCAL. Nesse caso, os PICs vêm com um valor gravado de fábrica no último endereço de memória de programa,
que deve ser carregado no OSCCAL. Exemplo de programa com calibração do oscilador interno [assembly em C -
mikroC for PIC - para PIC16F676 PIC16F676]: void main () { asm { bsf STATUS, RP0 ;Bank 1 call 0x3FF ;Get the
cal value movwf OSCCAL ;Calibrate bcf STATUS, RP0 ;Bank 0 } // restante do programa em C [mikroC for PIC]…
} Neste exemplo, o valor 3FFh aparece na Datasheet [Especificação fornecida pelo fabricante] para a programação
em assembly, porém, nos compiladores de linguagem C este valor deve ser escrito como 0xNNN [onde “N” é o valor
em hexadecimal aceito pelo compilador]. Para outros microcontroladores PIC basta consultar sua Datasheet no item
CALIBRATING THE INTERNAL OSCILLATOR.

9. Todas as datasheets de todos os MCU PIC, bem como todos os manuais dos programas e os programas de
desenvolvimento da Microchip [por exemplo: MPLAB IDE], podem ser baixados do próprio site da Microchip
[www.microchip.com]. Também existem dezenas de Application Notes sobre os PICs, bem como de outros
componentes. [Datasheet PIC16F630/676] O que acontece se eu fizer o PIC funcionar a uma frequência maior do que
a especificada pelo fabricante? Em tese isso pode funcionar sem problemas [entretanto, a dissipação de potência será
maior = calor], pois alguns modelos possuem versões de 4MHz e 20MHz, a diferença entre eles é o teste de fábrica,
que garante até qual frequência o PIC

10. pode funcionar sem erros. Entretanto um chip de 4MHz pode não ter passado no teste para 20MHz, mas pode
perfeitamente funcionar a 6MHz sem dar problemas. Pipeline Se para efeito de análise dividirmos o processamento
interno do PIC em ciclos de busca e execução, podemos afirmar que para cada instrução executada foi necessária a
execução prévia de um ciclo de busca. Imagine um sistema que implemente um ciclo de busca e ao mesmo tempo
processe um ciclo de execução [Na arquitetura Harvard a leitura de instruções e de alguns tipos de operandos podem
ser feitas ao mesmo tempo em que as instruções são executadas]. Isso significa que o sistema fica o tempo todo
executando instruções, o que acarreta um significativo ganho de velocidade. Enquanto uma instrução é executada, a
seguinte esta sendo lida [Desta forma, no início de cada Ciclo de Máquina haverá uma instrução pronta para ser
executada]. Esse processo é conhecido como pipeline [canalização]. No entanto algumas instruções fazem com que
este sistema seja desarticulado: são as chamadas instruções de desvio. As instruções de desvio são aquelas que
alteram o valor do Program Counter [contador/ponteiro de programa]. Quando ocorre um desvio a instrução que já
foi previamente buscada pelo sistema de Pipeline não é válida, pois estava na posição de memória de programa
apontada pelo PC antes dele ter seu valor alterado para o destino especificado. Conseqüentemente torna-se necessário
a execução de um novo ciclo de busca, que obviamente demandará mais um ciclo de máquina, resultando em um
tempo total de processamento igual a dois ciclos de máquinas.

11. TCY0 é lido da memória o código da instrução MOVLW 55h (não nos interessa a instrução que foi executada, por
isso não está representada por retângulo). TCY1 TCY1 é executada a instrução MOVLW 55h e é lida da memória a
instrução MOVWF PORTB. TCY2 é executada a instrução MOVWF PORTB e lida a instrução CALL SUB_1.
TCY3 é executada a chamada [call] de um subprograma CALL SUB_1 e é lida a instrução BSF PORTA, BIT3.
Como esta instrução não é a que nos interessa, ou seja, não é a primeira instrução do subprograma SUB_1, cuja
execução é o que vem a seguir, a leitura de uma instrução tem que ser feita de novo. Este é um bom exemplo de uma
instrução que precisa de mais de um ciclo. TCY4 este ciclo de instrução é totalmente usado para ler a primeira
instrução do subprograma no endereço SUB_1. TCY5 é executada a primeira instrução do subprograma SUB_1 e lida
a instrução seguinte.

12. [Toda instrução do PIC demanda um Ciclo de Máquina para ser executada, exceto instruções de desvio e salto que
demandam dois Ciclos de Máquina] Qual a velocidade de processamento dos PICs? Um PIC pode executar uma
instrução simples em 4 ciclos de clock [1 ciclo de máquina] graças à sua estrutura de pipeline. Assim, um PIC
rodando a 4MHz de clock [sinal de sincronismo para coordenar as ações do MCU], consegue trabalhar a 1MIPS [Um
Milhão de Instruções por Segundo]. Algumas instruções de desvio e salto, precisam de 2 ciclos de máquina. PICs
mais rápidos rodam a 48MHz de clock. Famílias PIC Como os microcontroladores podem ter diferentes
configurações de montagem, a divisão dos mesmos em Famílias ou Linhas ou Séries foi realizada para agrupar os
MCUs que têm vários componentes, com tamanhos e recursos iguais. Sendo que o código desenvolvido para um
componente de uma determinada família é compatível com os demais componentes da mesma família, exceto por
algumas pequenas alterações, que se referem principalmente aos periféricos. Cada família tem o seu próprio conjunto
de instruções. Assim, para

13. um mesmo fabricante, as famílias guardam uma semelhança entre si, apesar de não serem exatamente iguais. Tanto a
linha PIC18 quanto a linha PIC16 são compostas por microcontroladores de oito bits para o endereçamento e
barramento de dados. Já o endereçamento e barramento de programa da linha PIC18 contam com dois bits a mais,
que a linha PIC16. Fazendo uma comparação, a linha PIC12 e PIC16 tem instruções de 14bits e um conjunto de 35
instruções, com o aumento para 16bits na linha PIC18 o conjunto passa a executar de 75 a 83 instruções [incluídas as
8 instruções de tabela, não disponíveis em todos os modelos], dependendo do modelo do MCU. A família PIC24F /
PIC24H é composta por componentes de 16bits [com mais de 140 instruções]. Já a linha dsPIC30F/dsPIC33F traz
controladores híbridos de 16bits. A família PIC32MX [com núcleo MIPS] é composta por componentes de 32bits.
Existem ainda outras famílias de microcontroladores PIC. Sub-Famílias Devido a grande variedade de opções de
dispositivos dentro de uma mesma família, foram criadas as sub-famílias. Os seus componentes se diferenciam em
quantidade de memória RAM, quantidade de memória EEPROM de dados [alguns modelos nem possuem],
quantidade de memória Flash de programa, número de pinos [18, 28, 40,...], freqüência de clock e periféricos. Dentre
os principais periféricos podemos citar os timers, conversores A/D, comparadores analógicos, módulos USART
[Porta de Comunicação Serial Assíncrona de RX e TX], módulos MSSP [I2C e SPI master], módulos CCP [Captura –
Comparação – PWM], etc. O que significam as letras nos códigos dos PICs? A letra que vai logo após o prefixo de
dois dígitos significa a tecnologia da memória utilizada pelo microcontrolador. Assim as mais comuns são: C que
quer dizer memória OTP [One Time Programmable], F quer dizer Flash [programável

14. diversas vezes], LF quer dizer Flash de baixa tensão, FJ de Flash de baixa tensão de operação [até 3,6V]. As letras ao
final do código, definem o tipo de encapsulamento [por ex. P = DIP, SP = skinny DIP, SO = small outline, SS =
SSOP] e a faixa de temperaturas de trabalho [por ex. I = industrial]. Maiores informações a este respeito podem ser
obtidas na Datasheet do microcontrolador. Qual é a capacidade máxima de memória dos PICs? A capacidade máxima
de memória da série 16 é de 8kword [8Kbytes ou 8192 posições de memória]. No entanto, devido a limitações
impostas pela estrutura das instruções RISC dos PICs, a memória de programa é dividida em blocos ou páginas, cada
uma com 2kword ou 2048 posições de memória [PEREIRA, 2004]. A memória de programa é mapeada de forma que
cada endereço tenha 8bits ou 1byte. Porém, as instruções armazenadas na memória de programa têm 16 ou 32bits.
Assim cada instrução ocupa dois endereços de memória e o PC [Program Counter ou Contador de Programa] ao ser
executado incrementa de dois em dois endereços e como o barramento de instrução contem 16bits a leitura dos dois
endereços é simultânea, formando assim uma instrução de 16bits para um único acesso [instruções curtas] e 32bits
para dois acessos [instruções longas]. Ports Para que o funcionamento dos pinos I/O coincida com a organização a 8
bits, todos eles estão agrupados em PORTs [portas; portos] PORT denominadas A,B,C,etc [cada PIC, dependendo da
quantidade de pinos que possui, tem uma certa quantidade de PORTs; a PortA e a PortC são as mais comuns]. O
agrupamento é semelhante para os registradores de configuração da Port. Este assunto será melhor visualizado em
Programando.

15. Por razões práticas, a maioria dos pinos I/O tem várias funções. Se um pino é usado para uma função qualquer, não
pode ser usado para outra. sabendo-se quais são os registradores que configuram as diversas funções de um
determinado pino é possível e necessário pino desabilitar aquelas que não serão úteis em um projeto. projeto O que eu
posso acionar ou controlar com um PIC? Todo acionamento de dispositivos deve ser feito direta ou indiretamente
através das portas de I/O do PIC. Cada porta tem capacidade de drenar ou suprir uma corrente de aproximadamente
25mA, o que é suficiente para acionar leds e pequenas cargas. Para cargas maiores se faz necessário o uso de
transistores, tiristores ou relés. Também é comum usarmos as portas do PIC para controlar LCDs, displays de leds,
interfaces seriais, optoacopladores, buzzers, portas lógicas TTL e CMOS, etc Como podemos fazer comunicação de
dados entre componentes e um PIC? Alguns modelos de PIC possuem periféricos especializados em comunicação
[serial], como USARTs, SPI, I2C, USB, etc. com controle realizado pelos respectivos registradores internos. Para os
que não os possuem, é possível realizar essas tarefas por software. Para comunicação em RS232, é necessário o uso
de conversores de nível de sinal [por exemplo: MAX232]. Como o PIC pode receber informações de fora? Através
das portas de I/O e configurando-as como portas de entrada. Essas portas dão acesso aos conversores A/D,
comparadores, USARTs, timers, etc. É comum ligarmos as portas de entrada: teclados, sensores, links seriais e
paralelos, portas lógicas, etc. Interrupções

16. Interrupções são eventos que ocorrem no hardware interno e externo ao PIC [são eventos assíncronos – que podem
ocorrer a qualquer momento] que fazem com que a execução do programa seja interrompida [devido ao desvio no
processamento] e desviada para uma rotina especial [o destino é o vetor de interrupção] e depois de atendida, retorna
ao ponto de parada do programa principal. Uma boa analogia para melhor entendermos o conceito de interrupção é a
seguinte: você está trabalhando digitando algo 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 não precisamos verificar a todo instante, se existe ou não alguém na linha, pois
quando o ramal é chamado, o telefone toca avisando que existe alguém querendo falar com você. Exemplos de
interrupções: • Interrupção externa [Ex.: recebimento de dados na serial]; • Interrupção por mudança de estado [Ex.:
mudança de nível em porta – tecla]; • Interrupção por tempo [Ex.: estouro de timers internos]; • Interrupção de final
de escrita na EEPROM. A habilitação das interrupções nos PIC segue a seguinte filosofia. Existe uma chave geral
[general interrupt enable] e chaves específicas para cada uma das interrupções. Deste modo, se eu quiser habilitar a
interrupção de tempo [TMR0] eu devo “setar” o bit da chave geral e também o bit da chave específica [T0IE], ambos
presentes no registrador especial INTCON [veja este registrador e suas características na Datasheet do componente
MCU que você pretende ter no circuito aplicação].

17. [Analogia gráfica para o registrador INTCON] O que são vetores de reset e de interrupção? São endereços na área de
memória para onde é desviada a execução do programa, caso ocorra um evento de reset ou de interrupção. Timer Não
se preocupe muito com a informação sobre Timer e Prescaler [ou ainda Bank0, Bank1, relação destes com posições
na EEPROM, e similares], pois, é um conteúdo mais específico e dirigido para uns poucos loucos como eu que se
interessam por maiores detalhes e que nem precisam ser levados em consideração quando se usa o mikroC for PIC
que se encarrega destes sem que você perceba [problema_01: é na busca por maiores detalhes que muitos de meus
projetos se emperram]. Em outras palavras: saber ou não os próximos dois parágrafos não fará muita diferença! O
PIC possui internamente um recurso de hardware denominado Timer0. Trata-se de um contador de 8bits
incrementado internamente pelo ciclo de máquina ou por um sinal externo [borda de subida ou descida], sendo esta
opção feita por software durante a programação. Como o contador possui 8 bits ele pode assumir 256 valores
distintos [0 até 255]. Caso o ciclo de máquina seja de 1us, cada incremento do Timer corresponderá a um intervalo de
1us. Caso sejam necessário intervalos de tempos maiores para o mesmo Ciclo de Máquina, utilizamos o recurso de
Pre-scale.

18. Prescaler O prescaler é um divisor de frequência programável do sinal que incrementa o Timer0. Quando temos um
prescaler de 1:1, cada ciclo de máquina corresponde a um incremento do Timer0 [unidade de Timer0]. Ao alterarmos
o prescaler para, por exemplo, 1:4 [os valores possíveis são as potencias de dois até 256], o Timer0 será incrementado
uma vez a cada quatro ciclos de máquina. Sleep O modo de operação Sleep foi incluído na família PIC para atender
um mercado cada vez maior de produtos que devem funcionar com pilhas ou baterias. Estes equipamentos devem ter
um consumo mínimo para que a autonomia seja a máxima. Quando o PIC é colocado em modo Sleep [dormir],
através da instrução SLEEP, o consumo passa da ordem de grandeza de mA [mili àmperes] para uA [micro àmperes].
Existem três maneiras de "acordar o PIC": por interrupção externa/estado, estouro de Watchdog ou reinicialização
[/MCRL]. Linguagem de programação usual para PICs Os PICs podem ser programados em linguagem assembly ou
em linguagem de alto nível como C. Para tanto, é necessário um programa compilador para gerar o código
hexadecimal a ser gravado no microcontrolador. A linguagem C é uma linguagem de alto nível e estruturada. Sua
sintaxe é simples e portátil, isto é, pode-se usar o mesmo programa em várias plataformas com poucas modificações.
C é muito utilizada para a programação de microcontroladores e também tem o poder de interagir com a plataforma
em baixo nível podendo incluir códigos em assembly em sua implementação implementação. Estou com um PIC
protegido. Como posso ler o programa?

19. Não pode. Este recurso implementado nos PICs é feito justamente para prevenir que o código do programa seja lido e
replicado em outros chips, dessa forma protegendo o direito autoral do programador. Isto é conseguido por fusível de
configuração. configuração O que é a palavra ou fusíveis de configuração [Bits de configuração]? configuração] No
momento da gravação de um programa em um PIC podemos fazer a escolha de alguns recursos de que o PIC dispõe,
setando ou zerando os bits de um determinado endereço da memória. Esses recursos se referem a: tipo de usado,
programa, oscilador usado proteção de leitura do programa ativação do WDT, proteção de leitura da EEPROM
ativação do Brownout, proteção EEPROM, ativação do Master Clear, ativação do Power up timer, seleção do
Bandgap, habilitação de gravação por baixa tensão entre tensão, outros. Essa configuração de fusíveis pode ser
inserida também no programa fonte e vai aparecer automaticamente no software de gravação Este assunto será
detalhado em gravação. Programando. Como gravar o PIC? De posse de um arquivo .hex que contenha os códigos
hexadecimais das instruções do programa [Opcode – Código Operacional], você precisa de um software de controle
no PC e um hardware de gravação de PICs. Existem diversos programas e circuitos de gravação disponíveis na
Internet [muitos gratuitos]. Também é possível comprar um gravador pronto. FAQ Analógico Como funcionam os
conversores Analógico-Digitais dos PICs?

20. A maioria dos modelos de PICs possui conversor A/D de 10 bits [alguns têm de 8 bits e de 12 bits]. Sempre é só um
conversor com vários canais de entrada [selecionados por multiplexação]. Os conversores são do tipo SAR
[Registradores por Aproximação Sucessiva], portanto não são muito velozes [em média gastam uns 40us para cada
conversão]. Além disso, sofrem de algumas limitações, como a faixa de entrada de tensão dos sinais [de 0V a Vdd],
impedância da fonte do sinal, etc. O processo de conversão é o seguinte: o sinal a ser amostrado carrega um capacitor
de hold. Ao final de um certo período, esse capacitor interno do PIC é desligado da fonte de sinal e o conversor
começa a fazer as aproximações sucessivas para descobrir o equivalente digital. O valor fica armazenado em dois
registradores de 8 bits [nem todos usados] do PIC para serem processados posteriormente. O que é um módulo CCP?
Alguns modelos de PIC possuem um ou mais módulo de Capture Compare PWM. O recurso de capture serve para se
medir a largura [tempo] de um pulso injetado numa porta do PIC através da leitura do valor do contador TMR1
quando ocorrer a descida ou subida do pulso medido. O recurso de Compare serve para comparar o valor que está em
alguns registradores com o valor que está sendo contado no TMR1, e quando ocorrer a coincidência, executa uma
ação. O recurso de PWM – modulação por largura de pulso, permite gerar um sinal pulsado de freqüência constante e
largura de pulso variável. O que é bootloader? bootloader

21. Alguns modelos de PIC podem receber dados externos [ou mesmo internos] e reprogramarem-se [a memória de
programa] automaticamente sem o uso de um gravador de PICs. Esses PICs precisam ter uma rotina especial gravada
na memória e perdem alguns registradores e portas de I/O para isso. Normalmente os PICs que usam o recurso de
bootloader, recebem os dados a serem gravados através de uma porta serial. Os PICs podem executar operações de
ponto flutuante? Sim, desde que sejam criadas sub-rotinas especiais para essas operações. No Application Note 575
da Microchip, se encontram diversas rotinas de ponto flutuante. Operações de ponto flutuante exigem muito
processamento e usam muitos bytes de memória [Os compiladores também possuem rotinas de exponenciação,
trigonométricas, logarítmicas, etc além de multiplicação e divisão]. Como a estrutura interna dos PICs usa filosofia
RISC, não podemos esperar que ele execute operações aritméticas ou matemáticas complexas diretamente.
Basicamente ele executa instruções simples de soma e de subtração de 8 bits [inteiros], além das de deslocamento de
bits para esquerda ou direita. By AIM

Você também pode gostar