Você está na página 1de 8

Programação – Daniel Corteletti – Aula 1 – Parte I Página 1/8

OS MICROCONTROLADORES e MICROPROCESSADORES
CIRCUITOS INTEGRADOS

Quando queremos aumentar a


Pense nos equipamentos eletrônicos resistência em um ponto de um circuito
existentes ao seu redor neste momento. Na elétrico, usamos resistores. Para filtrar um
calculadora, no celular, aparelho de TV, rádio, sinal, podemos usar um capacitor. Para
diskman, mp3 player, no módulo de controle da permitir a passagem de corrente elétrica
injeção eletrônica do automóvel, alarme somente em um sentido, usamos diodos.
residencial, vídeo-game, aparellho de DVD, etc, Para realizar acionamentos ou amplificar
etc, etc... sinais usamos relês e transistores. Bom..
Como são feitos ? Como funcionam ? isso tudo você deve aprender estudando
eletricidade e eletrônica. O fato é que
quando queremos implementar algo mais
complexo, precisamos estudar, ler, calcular e
construir um circuito com vários destes
componentes básicos da eletrônica. No
entanto, alguns destes circuitos complexos
são tão comuns que alguns fabricantes
resolveram construí-los de forma
miniaturizada, e embutí-los em um
encapsulamento plástico, metálico ou
cerâmico. Estes são os Circuitos Ingegrados,
ou CIs.
Hoje são muitos os CIs disponíveis no
mercado. Nos anos 70 os CIs
revolucionaram a manufatura de produtos
eletrônicos, viabilizando a construção de
sistemas menores, mais rápidos e flexíveis.
Resumindo : Circuitos Integrados são
componentes eletrônicos capazes de realizar
funções complexas, geralmente obtida pela
integração de componentes elementares da
eletrônica.

MICROPROCESSADORES

Já no final dos anos 70 e princípio dos


anos 80, alguns Circuitos Integrados
surgiram com uma proposta de flexibilidade
interessante, permitindo que, através de um
programa gravado binariamente em uma
memória, pudessem ser realizadas
operações de processamento, entrada e
saída. Isso viabilizou a construção de
pequenos circuitos microprocessados para
solução de problemas mais complexos,
tornando obsoleta a utilização de
A maioria das crianças passam por uma componentes não programáveis em certas
fase onde querem "desmontar para ver como aplicações.
funciona". Se você já passou por esta fase, (ou
ainda não saiu dela *rs) você provavelmente já
Sugestão de atividade : Pesquise na
observou que em alguns equipamentos existem
Internet sobre a evolução dos
componentes eletrônicos cheios de terminais e
microprocessadores, desde o 4004 até os
com inscrições (números e letras) que não
mais recentes.
dizem muita coisa para um leigo. Tudo bem...
muitos já sabem que se tratam de circuitos Por exemplo, nos primeiros elevadores
integrados. Mas afinal o que é e para que serve automatizados, era utilizada lógica de relê,
um "Circuito Integrado?" onde o sistema de controle era pouco flexível
e relativamente complexo, consumindo muita
Programação – Daniel Corteletti – Aula 1 – Parte I Página 2/8
energia e aumentando o custo de
implementação.
Com a utilização de microprocessadores
e microcontroladores, os elevadores passaram
a ser mais "inteligentes", pois com estes
sistemas puderam ser implementados recursos
mais complexos já que o esforço de projeto
passou para o programa (software), deixando a
eletrônica (hardware) muito mais simples e
barata.
Com os microprocessadores também
surgiram os primeiros microcomputadores
pessoais (PCs).
Programação – Daniel Corteletti – Aula 1 – Parte I Página 3/8
Componentes de um sistema OS MAIS CONHECIDOS
microprocessado
Podemos apontar como os
Um sistema microprocessado deve possuir : microcontroladores de baixo custo mais
• Um microprocessador conhecidos no mundo da automação :
• Memória ROM (onde fica gravado o 1. O Intel 8051 e suas
programa principal) variações como o 8031 (ROM-LESS). Possui
• Memória RAM (utilizada como memória de um assembly relativamente simples, e baixo
rascunho pelo programa executado) custo. Bastante conhecido e muito utilizado
• Periféricos - Entrada e Saída (são os com fins didáticos, sendo ainda bastante
dispositivos conectados ao sistema, utilizado comercialmente. Inspirou a
geralmente sensores e atuadores.) construção de diversos outros modelos
• Barramento (fios ou trilhas condutoras dos similares, com mesmas instruções e
pulsos elétricos que permitem a capacidades, no entanto fabricado por outros
interconexão dos componentes acima.) fabricantes, como Atmel, Zilog, etc.
• Circuito gerador de CLOCK (como o nome 2. O PIC16F84 (Microchip)
sugere, é um circuito que gera um sinal surgiu como um dos mais utilizados
cíclico em uma determinada freqüência de microcontroladores pelos "hobistas" pela sua
tempo. ) versatilidade, facilidade de programação e
baixo custo. Hoje, a família de
microcontroladores PIC é muito utilizada em
projetos de automação.
3. Microcontroladores
ATMEL, de excelente custo.
4. Microcontroladores COP
5. Os microcotroladores HC05,
HC08 e HC11 da FREESCALE
(MOTOROLA) também são bastante
utilizados, apresentando como vantagem o
seu baixo custo.
Por ser muito utilizado, boa literatura e
Como podemos observar, mesmo um fácil de ser programado, utilizaremos no
sistema microprocessado possui uma série de curso o PIC16f877, que equipa a estação
componentes necessários, dispostos em vários PLCPic e pode ser utilizado na estação
CIs e interligados por condutores paralelos que CUSCOPIC. Este microcontrolador
constituem o barramento. apresenta diversos recursos já embutidos,
dos quais podemos citar 8 entradas
MICROCONTROLADORES analógicas, saídas PWM, 8KBytes de
memória ROM e 33 I-Os.

CARACTERÍSTICAS DE UM
MICROCONTROLADOR

Quando optamos por um


microcontrolador, devemos observar
algumas características importantes :

Quantidade de I-Os (entradas e


saídas) : Refere-se a quantidade de pinos
de entrada e saída existentes no
microcontrolador. Estes pinos geralmente
são conhecidos por agrupamentos (portos).
No mircocontrolador que utilizaremos (PIC
Com o agrupamento dos componentes de 16F877), existem 33 I-Os (lê-se 33 aiôs). As
um sistema microprocessado em um único I-Os estão agrupadas em "Ports", sendo que
componente, a implementação ficou ainda mais cada PORT em microcontroladores de 8 bits
fácil e rápida. O microcontrolador é, na verdade, possui 8 I-Os. Desta forma, no PIC 16F877
um microprocessador com RAM, ROM e circuito temos o Port A (com 6 I-Os), o Port B, Port C
de clock embutidos. Alguns microcontroladores e Pord D (cada um com 8 I-Os), e o Port E
possuem também outros recursos embutidos, (com 3 I-Os). Cada I-O pode funcionar como
como conversão A/D (analógica/digital), entrada e como saída ao mesmo tempo. Os
temporizadores, contadores, memórias sinais são digitais em níveis de tensão 0 e 5
EEPROM, geradores de PWM, etc... V. Quando um pino é acionado, ele envia um
sinal de 5 V, e quando é desligado, este nível
Programação – Daniel Corteletti – Aula 1 – Parte I Página 4/8
de tensão baixa para 0 V. Importante lembrar microcontrolador. Bom para ser utilizado em
que existem limitações de corrente que devem protótipos ou para fins didáticos.
ser observadas. Se for submetida uma corrente
maior do que o limite do microcontrolador, o CLOCK : Quem dita a velocidade
mesmo poderá queimar. Veja estes dados no como as instruções serão executadas é um
datasheet do microcontrolador 16F877 (página circuito pulsante conhecido por "circuito
151). oscilador". No entanto, grande parte deste
circuito já está embutido no MC, restando
Entradas analógicas : Alguns somente para o desenvolvedor a adição de
microcontroladores são providos de um cristal externo, de freqüência variável,
conversores A/D (analógico/digital) permitindo dependendo do MC utilizado. Por exemplo,
que uma determinada variação de tensão sobre um PIC 16f877 pode usar um cristal de até
um pino (0 a 5V) seja transformado em um valor 20 MHz sem problemas, mas
digital (geralmente de 8 a 16 bits). No caso do tradicionalmente é empregado um de 4 Mhz.
PIC16F877, são 8 entradas conectadas a um
conversor AD de 10 bits. REGISTRADORES ESPECIAIS :
Algumas áreas da memória RAM do
Saídas pulsantes (PWM) : Alguns microcontrolador são utilizadas para
microcontroladores permitem que determinados configuração de periféricos e informações de
pinos "simulem" uma saída analógica, por controle dos circuitos embutidos. Estas áreas
intermédio de "modulação por largura de pulso", de memória estão reservadas para estas
ou PWM. funções. Para uso com variáveis e
armazenamento temporário de valores, são
Temporizador / Contador : Permite a utilizados os REGISTRADORES DE USO
contagem de tempo (através do Clock) ou de GERAL.
eventos externos (pulsos em um pino
específico). No caso de necessitar uma INTERRUPÇÃO : É um recurso que
contagem de tempo precisa, esta é uma boa permite que uma determinada tarefa seja
solução. disparada por um determinado evento
(interno ou externo). Por exemplo, uma rotina
OTP : Microcontroladores versão OTP de emergência pode ser configurada como
(One Time Programable) geralmente são mais um evento externo, associada a um pino
baratos, mas somente podem ser gravados uma especifico do sistema.
única vez. Este tipo de microcontrolador é mais
utilizado no produto final, onde não serão mais INSTRUÇÃO : Um programa é
necessárias modificações no programa. composto de várias instruções, executadas
seqüencialmente. Uma instrução é uma
RAM : Os "registradores" são áreas da unidade de programa que realiza uma
memória RAM do microcontrolador utilizadas determinada tarefa, como por exemplo
diretamente no processamento, assim como a adicionar um valor, ativar uma saída,
área para memória de dados. Esta área de desativar um recurso, etc.
memória RAM interna é necessária, e em um
projeto devemos levar em consideração a RISC / CISC : Microcontroladores do
capacidade do MC utilizado (geralmente são tipo CISC (Complex Instruction Set
alguns bytes) Computing) possuem muitas instruções, já
os do tipo RISC (Reduced Instruction Set
ROM : O programa desenvolvido é Computing) possuem um número reduzido
gravado na memória ROM. Quanto mais de instruções. Possuíndo mais instruções, os
complexo o problema, maior deve ficar o microcontroladores padrão CISC são mais
programa. Esta memória é somente de leitura, e fáceis de programar, uma vez que o
pode ser gravada uma ou mais vezes, programador sempre pode utilizar instruções
dependendo do modelo do MC usado (ver mais elaboradas para realizar uma
OTP). A capacidade desma memória é determinada tarefa, reduzindo o número de
relativamente pequena, e em alguns casos o linhas do programa. Já os
programa desenvolvido precisa ser otimizado microcontroladores RISC são mais difíceis
(entenda-se como diminuido) para poder caber de serem programados, pois uma tarefa mais
nesta memória. complexa deve ser realizada por seqüências
de instruções mais simples. Os
Memória ROM tipo FLASH : Permite a microcontroladores RISC, no entanto,
gravação rápida, utilizando-se um circuito apresentam-se como menor custo e mais
especial geralmente ligado ao rápidos em aplicações gerais.
microcomputador. Cabe salientar que este
sistema tem um custo um pouco maior, mas COMUNICAÇÃO SERIAL : Através de
permite várias gravações em um único pinos específicos, pode-se realizar a
Programação – Daniel Corteletti – Aula 1 – Parte I Página 5/8
transferência bi-direcional de dados com outro
periférico também serial. Alguns
microcontroladores possuem portas seriais
físicas, padrão RS232, pronto para realizar
comunicação com um PC ou outro
microcontrolador. Em modelos mais recentes,
podemos também encontrar pinos para
comunicação via USB.

Nas próximas páginas, relacionaremos o


material técnico do microcontrolador
PIC16F877, da microchip.
Procure estabelecer relações entre o
diagrama de pinos do microcontrolador
apresentado e as características a pouco
citadas.
Programação – Daniel Corteletti – Aula 1 – Parte I Página 6/8

Curso prático de programação de Microcontroladores Microchip PIC – Daniel Corteletti


O MICROCONTROLADOR PIC16F877 (encapsulamento PDIP)

Desenvolvido pela MICROCHIP (www.microchip.com)


CPU RISC de alta performance, baseado em uma arquitetura Haward modificada. Suas características mais significativas
são:
• Opera com somente 35 instruções (ASSEMBLY)
• Operações com duração de um único ciclo, exceto pelas instruções de desvio que consomem dois ciclos de máquina.
Cada ciclo equivale a 4 pulsos do circuito oscilador (clock)
• Operação em até 20 MHz (20 milhões de pulsos de clock por segundo = 5 milhões de ciclos de máquina por segundo =
200 ns por ciclo)
• 8 KWords de FlashROM (Word com 14 bits), suportando mais de 8 mil instruções em um programa.
• 368 Bytes de memória RAM
• 256 Bytes de memória EEPROM (regravável via software e não volátil)
• Capacitado para interrupções com 14 fontes diferentes (timer, contagem, pulso externo, serial, etc...)
• Pilha física com 8 níveis de profundidade
• Endereçamento 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 possível travamento de software
• Opção para proteção de código executável (Ativando-a, não é mais possível se ler a memória, evitando a duplicação do
código em outro microcontrolador)
• Modo SLEEP para poupar energia
• Opções diferentes para circuito oscilador
• Tecnologia CMOS FLASH/EEPROM de baixo consumo e alta velocidade, permitindo armazenamento não volátil na
memória EEPROM interna em tempo de execução.
• Programação ICSP (recurso embutido de gravação) através de dois pinos, facilitando a gravação do microcontrolador.
Programação – Daniel Corteletti – Aula 1 – Parte I Página 7/8
• Capacidade opcional de gravação com tensão de 5V (LVP)
• Opção de depuração in-circuit através de dois pinos
• Tensão 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, comparação e módulos PWM
• 8 canais analógicos 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/saída configuráveis

Descrição dos pinos (muitos pinos possuem várias funções, não significando que as funções possam ser exercidas ao
mesmo tempo):

1.
2. MCLR : Master Clear – Quando em nível baixo (0V), define situação de RESET. Quando em nível alto (5V),
determina programa em execução. VPP : Tensão de programação – Quando este pino estiver em 13.4V, o
microcontrolador entra em modo gravação, permitindo a transferência de um programa via ICSP
3. RA0 – Entrada / saída digital. AN0 – Entrada analógica canal 0 para o ADC interno.
4. RA1 – Entrada / saída digital. AN1 – Entrada analógica canal 1 para o ADC interno.
5. RA2 – Entrada / saída digital. AN2 – Entrada analógica canal 2 para o ADC interno. Vref- - Uso do pino para definir
a referência negativa para o conversor AD.
6. RA3 – Entrada / saída digital. AN3 – Entrada analógica canal 3 para o ADC interno. Vref+ - Uso do pino para
definir a referência positiva para o conversor AD.
7. RA4 – Entrada / saída digital. TOCKI – Contador rápido
8. RA5 – Entrada / saída digital. AN4 – Entrada analógica canal 4. SS – Slave Select para porta serial síncrona
9. RE0 – Entrada / saída digital. RD – Entrada de controle de leitura para porta paralela escrava. AN5 – Entrada
analógica canal 5.
10. RE1 – Entrada / saída digital. WR – Entrada de controle de gravação para porta paralela escrava. AN6 - Entrada
analógica canal 6.
11. RE2 – Entrada / saída digital. CS – “Chip Select” para porta paralela escrava. AN7 – Entrada analógica canal 7.
12. VDD – Alimentação (preferência 3V a 5V)
13. VSS – Referência (0V / GND)
14. OSC1/CLKIN – Pino para ligação do circuito oscilador externo (entrada). Usado em conjunto com o pino
OSC/CLKOUT. Recomendado usar cristal de 4 a 20 MHz
15. OSC2/CLKOUT – Pino para ligação do circuito oscilador externo (saída).
16. RC0 – Entrada / saída digital. T1OSO – Saída do oscilador do TIMER1. T1CKI – Entrada de clock para TIMER1.
17. RC1 – Entrada / saída digital. T1OSI – Entrada do oscilador do TIMER1. CCP2 – Entrada de captura 2, saída de
comparador 2 ou PWM 2.
18. RC2 – Entrada / saída digital. CCP1 – Entrada de captura 1, saída de comparador 1 ou PWM 1.
19. RC3 – Entrada / saída digital. SCK/SCL – Entrada ou saída de sinal de clock serial síncrono para SPI e I2C.
20. RD0 – Entrada / saída digital. PSP0 – Pino 0 da porta paralela escrava.
21. RD1 – Entrada / saída digital. PSP1 – Pino 1 da porta paralela escrava.
22. RD2 – Entrada / saída digital. PSP2 – Pino 2 da porta paralela escrava.
23. RD3 – Entrada / saída digital. PSP3 – Pino 3 da porta paralela escrava.
24. RC4 – Entrada / saída digital. SDI – Entrada de dados em SPI. DAS – Entrada/saída de dados em modo I2C.
25. RC5 – Entrada / saída digital. SD0 – Saída de dados SPI.
26. RC6 – Entrada / saída digital. TX – Pino para transmissão serial assíncrona. CK – Clock para transmissão
síncrona.
27. RC7 – Entrada / saída digital. RX – Pino para recepção serial assíncrona. DT – Dados da serial síncrona.
28. RD4 – Entrada / saída digital. PSP4 – Pino 4 da porta paralela escrava.
29. RD5 – Entrada / saída digital. PSP5 – Pino 5 da porta paralela escrava.
30. RD6 – Entrada / saída digital. PSP6 – Pino 6 da porta paralela escrava.
31. RD7 – Entrada / saída digital. PSP7 – Pino 7 da porta paralela escrava.
32. VSS - Referência (0V / GND)
33. VDD – Tensão de alimentação (mesma que pino 11)
34. RB0 – Entrada / saída digital. INT – Entrada de sinal de interrupção via hardware.
35. RB1 – Entrada / saída digital.
36. RB2 - Entrada / saída digital.
37. RB3 – Entrada / saída digital. PGM – Entrada de sinal para gravação em baixa tensão (5V)
Programação – Daniel Corteletti – Aula 1 – Parte I Página 8/8
38. RB4 – Entrada / saída digital.
39. RB5 – Entrada / saída digital.
40. RB6 – Entrada / saída digital. PGC – Clock para programação ICSP ou pino para depuração.
41. RB7 – Entrada / saída digital. PGD – Dados para programação ICSP ou pino para depuração.

Glossário de termos relacionados ao microcontrolador PIC16F877


PORT : Agrupamento de pinos. Ex : PORT A : Pinos RA0 a RA5. PORT B : Pinos RB0 a RB7.
PWM : Modulação por largura de pulso. Permite simular uma saída analógica através de pulsos digitais rápidos e de
tamanho regulável.
ADC : Conversor digital / analógico.
ICSP : Recurso de programação serial embutida, permitindo que um gravador seja construído com custo relativamente
baixo.
RAM : Memória de acesso aleatório, volátil e de alta velocidade de acesso.
ROM : Memória de programa, gravada quando se transfere o programa para o microcontrolador.
EEPROM : Memória fixa que pode ser gravada e apagada em tempo de execução.
SERIAL : Dispositivo de comunicação onde um bit é
enviado de cada vez.
I2C : Padrão de comunicação serial desenvolvido
pela PHILIPS.
SPI : Serial Peripheral Interface – Interface periférica
serial : Padrão de comunicação serial que usa 4 fios.

Diagrama de programação:
Passo 1 : Extração de requisitos – Levantar as
necessidades da automação junto ao cliente, aos
usuários do equipamento e as demais pessoas
envolvidas no processo de automação.

Passo 2 : Modelo de software – É a “planta baixa”


do programa. Define quais serão as estratégias de
programação que serão utilizadas. Para programas
mais simples, recomenda-se a construção de um
fluxograma ou de um modelo gráfico do programa.
Para situações mais complexas, o modelo deve
prever a “quebra” do problema em situações ou
camadas mais simples, que podem ser
implementadas separadamente.

Passo 3 : Implementação – É a escrita do programa na linguagem de programação desejada (no caso, linguagem C). Deve
ser observado o compilador a ser utilizado, bem como as variações na sintaxe da linguagem de programação para a
ferramenta escolhida.

Passo 4 : Compilação – Ocorre a tradução da linguagem de programação para a linguagem nativa do microcontrolador.
Nesta etapa, parte dos erros (principalmente os erros de sintaxe) são detectados. Os erros de sintaxe são os erros causados
por erros de digitação ou uso incorreto de comandos.

Passo 5 : Transferência – Através de um programa específico, os dados contidos no arquivo HEX gerado pelo compilador
são transferidos para a memória ROM do microcontrolador.

Passo 6 : Testes – Aqui são descobertos os erros de lógica que podem ser gerados por um erro de digitação (pontuação
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)

Você também pode gostar