You are on page 1of 8

Programao Daniel Corteletti Aula 1 Parte I OS MICROCONTROLADORES e MICROPROCESSADORES CIRCUITOS INTEGRADOS

Pgina 1/8

Pense nos equipamentos eletrnicos existentes ao seu redor neste momento. Na calculadora, no celular, aparelho de TV, rdio, diskman, mp3 player, no mdulo de controle da injeo eletrnica do automvel, alarme residencial, vdeo-game, aparellho de DVD, etc, etc, etc... Como so feitos ? Como funcionam ?

Resumindo : Circuitos Integrados so componentes eletrnicos capazes de realizar funes complexas, geralmente obtida pela integrao de componentes elementares da eletrnica. MICROPROCESSADORES J no final dos anos 70 e princpio dos anos 80, alguns Circuitos Integrados surgiram com uma proposta de flexibilidade interessante, permitindo que, atravs de um programa gravado binariamente em uma memria, pudessem ser realizadas operaes de processamento, entrada e sada. Isso viabilizou a construo de pequenos circuitos microprocessados para soluo de problemas mais complexos, tornando obsoleta a utilizao de componentes no programveis em certas aplicaes.

A maioria das crianas passam por uma fase onde querem "desmontar para ver como funciona". Se voc j passou por esta fase, (ou ainda no saiu dela *rs) voc provavelmente j observou que em alguns equipamentos existem componentes eletrnicos cheios de terminais e com inscries (nmeros e letras) que no dizem muita coisa para um leigo. Tudo bem... muitos j sabem que se tratam de circuitos integrados. Mas afinal o que e para que serve um "Circuito Integrado?" Quando queremos aumentar a resistncia em um ponto de um circuito eltrico, usamos resistores. Para filtrar um sinal, podemos usar um capacitor. Para permitir a passagem de corrente eltrica somente em um sentido, usamos diodos. Para realizar acionamentos ou amplificar sinais usamos rels e transistores. Bom.. isso tudo voc deve aprender estudando eletricidade e eletrnica. O fato que quando queremos implementar algo mais complexo, precisamos estudar, ler, calcular e construir um circuito com vrios destes componentes bsicos da eletrnica. No entanto, alguns destes circuitos complexos so to comuns que alguns fabricantes resolveram constru-los de forma miniaturizada, e embut-los em um encapsulamento plstico, metlico ou cermico. Estes so os Circuitos Ingegrados, ou CIs. Hoje so muitos os CIs disponveis no mercado. Nos anos 70 os CIs revolucionaram a manufatura de produtos eletrnicos, viabilizando a construo de sistemas menores, mais rpidos e flexveis.

Sugesto de atividade : Pesquise na Internet sobre a evoluo dos microprocessadores, desde o 4004 at os mais recentes. Por exemplo, nos primeiros elevadores automatizados, era utilizada lgica de rel, onde o sistema de controle era pouco flexvel e relativamente complexo, consumindo muita energia e aumentando o custo de implementao. Com a utilizao de microprocessadores e microcontroladores, os elevadores passaram a ser mais "inteligentes", pois com estes sistemas puderam ser implementados recursos mais complexos j que o esforo de projeto passou para o programa (software), deixando a eletrnica (hardware) muito mais simples e barata.

Programao Daniel Corteletti Aula 1 Parte I


Com os microprocessadores tambm surgiram os primeiros microcomputadores pessoais (PCs).

Pgina 2/8

Programao Daniel Corteletti Aula 1 Parte I


Componentes de um sistema microprocessado Um sistema microprocessado deve possuir : Um microprocessador Memria ROM (onde fica gravado o programa principal) Memria RAM (utilizada como memria de rascunho pelo programa executado) Perifricos - Entrada e Sada (so os dispositivos conectados ao sistema, geralmente sensores e atuadores.) Barramento (fios ou trilhas condutoras dos pulsos eltricos que permitem a interconexo dos componentes acima.) Circuito gerador de CLOCK (como o nome sugere, um circuito que gera um sinal cclico em uma determinada freqncia de tempo. )

Pgina 3/8
como converso A/D (analgica/digital), temporizadores, contadores, memrias EEPROM, geradores de PWM, etc... OS MAIS CONHECIDOS Podemos apontar como os microcontroladores de baixo custo mais conhecidos no mundo da automao : 1. O Intel 8051 e suas variaes como o 8031 (ROM-LESS). Possui um assembly relativamente simples, e baixo custo. Bastante conhecido e muito utilizado com fins didticos, sendo ainda bastante utilizado comercialmente. Inspirou a construo de diversos outros modelos similares, com mesmas instrues e capacidades, no entanto fabricado por outros fabricantes, como Atmel, Zilog, etc. 2. O PIC16F84 (Microchip) surgiu como um dos mais utilizados microcontroladores pelos "hobistas" pela sua versatilidade, facilidade de programao e baixo custo. Hoje, a famlia de microcontroladores PIC muito utilizada em projetos de automao. 3. Microcontroladores ATMEL, de excelente custo. 4.Microcontroladores COP 5. Os microcotroladores HC05, HC08 e HC11 da FREESCALE (MOTOROLA) tambm so bastante utilizados, apresentando como vantagem o seu baixo custo. Por ser muito utilizado, boa literatura e fcil de ser programado, utilizaremos no curso o PIC16f877, que equipa a estao PLCPic e pode ser utilizado na estao CUSCOPIC. Este microcontrolador apresenta diversos recursos j embutidos, dos quais podemos citar 8 entradas analgicas, sadas PWM, 8KBytes de memria ROM e 33 I-Os. CARACTERSTICAS DE UM MICROCONTROLADOR Quando optamos por um microcontrolador, devemos observar algumas caractersticas importantes : Quantidade de I-Os (entradas e sadas) : Refere-se a quantidade de pinos de entrada e sada existentes no microcontrolador. Estes pinos geralmente so conhecidos por agrupamentos (portos). No mircocontrolador que utilizaremos (PIC 16F877), existem 33 I-Os (l-se 33 ais). As IOs esto agrupadas em "Ports", sendo que cada PORT em microcontroladores de 8 bits possui 8 I-Os. Desta forma, no PIC 16F877 temos o Port A (com 6 I-Os), o Port B, Port C e Pord D (cada um com 8 I-Os), e o Port E (com

Como podemos observar, mesmo um sistema microprocessado possui uma srie de componentes necessrios, dispostos em vrios CIs e interligados por condutores paralelos que constituem o barramento. MICROCONTROLADORES

Com o agrupamento dos componentes de um sistema microprocessado em um nico componente, a implementao ficou ainda mais fcil e rpida. O microcontrolador , na verdade, um microprocessador com RAM, ROM e circuito de clock embutidos. Alguns microcontroladores possuem tambm outros recursos embutidos,

Programao Daniel Corteletti Aula 1 Parte I


3 I-Os). Cada I-O pode funcionar como entrada e como sada ao mesmo tempo. Os sinais so digitais em nveis de tenso 0 e 5 V. Quando um pino acionado, ele envia um sinal de 5 V, e quando desligado, este nvel de tenso baixa para 0 V. Importante lembrar que existem limitaes de corrente que devem ser observadas. Se for submetida uma corrente maior do que o limite do microcontrolador, o mesmo poder queimar. Veja estes dados no datasheet do microcontrolador 16F877 (pgina 151). Entradas analgicas : Alguns microcontroladores so providos de conversores A/D (analgico/digital) permitindo que uma determinada variao de tenso sobre um pino (0 a 5V) seja transformado em um valor digital (geralmente de 8 a 16 bits). No caso do PIC16F877, so 8 entradas conectadas a um conversor AD de 10 bits. Sadas pulsantes (PWM) : Alguns microcontroladores permitem que determinados pinos "simulem" uma sada analgica, por intermdio de "modulao por largura de pulso", ou PWM. Temporizador / Contador : Permite a contagem de tempo (atravs do Clock) ou de eventos externos (pulsos em um pino especfico). No caso de necessitar uma contagem de tempo precisa, esta uma boa soluo. OTP : Microcontroladores verso OTP (One Time Programable) geralmente so mais baratos, mas somente podem ser gravados uma nica vez. Este tipo de microcontrolador mais utilizado no produto final, onde no sero mais necessrias modificaes no programa. RAM : Os "registradores" so reas da memria RAM do microcontrolador utilizadas diretamente no processamento, assim como a rea para memria de dados. Esta rea de memria RAM interna necessria, e em um projeto devemos levar em considerao a capacidade do MC utilizado (geralmente so alguns bytes) ROM : O programa desenvolvido gravado na memria ROM. Quanto mais complexo o problema, maior deve ficar o programa. Esta memria somente de leitura, e pode ser gravada uma ou mais vezes, dependendo do modelo do MC usado (ver OTP). A capacidade desma memria relativamente pequena, e em alguns casos o programa desenvolvido precisa ser otimizado (entenda-se como diminuido) para poder caber nesta memria.

Pgina 4/8
Memria ROM tipo FLASH : Permite a gravao rpida, utilizando-se um circuito especial geralmente ligado ao microcomputador. Cabe salientar que este sistema tem um custo um pouco maior, mas permite vrias gravaes em um nico microcontrolador. Bom para ser utilizado em prottipos ou para fins didticos. CLOCK : Quem dita a velocidade como as instrues sero executadas um circuito pulsante conhecido por "circuito oscilador". No entanto, grande parte deste circuito j est embutido no MC, restando somente para o desenvolvedor a adio de um cristal externo, de freqncia varivel, dependendo do MC utilizado. Por exemplo, um PIC 16f877 pode usar um cristal de at 20 MHz sem problemas, mas tradicionalmente empregado um de 4 Mhz. REGISTRADORES ESPECIAIS : Algumas reas da memria RAM do microcontrolador so utilizadas para configurao de perifricos e informaes de controle dos circuitos embutidos. Estas reas de memria esto reservadas para estas funes. Para uso com variveis e armazenamento temporrio de valores, so utilizados os REGISTRADORES DE USO GERAL. INTERRUPO : um recurso que permite que uma determinada tarefa seja disparada por um determinado evento (interno ou externo). Por exemplo, uma rotina de emergncia pode ser configurada como um evento externo, associada a um pino especifico do sistema. INSTRUO : Um programa composto de vrias instrues, executadas seqencialmente. Uma instruo uma unidade de programa que realiza uma determinada tarefa, como por exemplo adicionar um valor, ativar uma sada, desativar um recurso, etc. RISC / CISC : Microcontroladores do tipo CISC (Complex Instruction Set Computing) possuem muitas instrues, j os do tipo RISC (Reduced Instruction Set Computing) possuem um nmero reduzido de instrues. Possundo mais instrues, os microcontroladores padro CISC so mais fceis de programar, uma vez que o programador sempre pode utilizar instrues mais elaboradas para realizar uma determinada tarefa, reduzindo o nmero de linhas do programa. J os microcontroladores RISC so mais difceis de serem programados, pois uma tarefa mais complexa deve ser

Programao Daniel Corteletti Aula 1 Parte I


realizada por seqncias de instrues mais simples. Os microcontroladores RISC, no entanto, apresentam-se como menor custo e mais rpidos em aplicaes gerais. COMUNICAO SERIAL : Atravs de pinos especficos, pode-se realizar a transferncia bi-direcional de dados com outro perifrico tambm serial. Alguns microcontroladores possuem portas seriais fsicas, padro RS232, pronto para realizar comunicao com um PC ou outro microcontrolador. Em modelos mais recentes, podemos tambm encontrar pinos para comunicao via USB. Nas prximas pginas, relacionaremos o material tcnico do microcontrolador PIC16F877, da microchip. Procure estabelecer relaes entre o diagrama de pinos do microcontrolador apresentado e as caractersticas a pouco citadas.

Pgina 5/8

Programao Daniel Corteletti Aula 1 Parte I

Pgina 6/8

Curso prtico de programao 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 caractersticas mais significativas so: Opera com somente 35 instrues (ASSEMBLY)

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

Opo para proteo de cdigo executvel (Ativando-a, no mais possvel se ler a memria, evitando a duplicao do cdigo em outro microcontrolador) Modo SLEEP para poupar energia Opes diferentes para circuito oscilador

Programao Daniel Corteletti Aula 1 Parte I Pgina 7/8 Tecnologia CMOS FLASH/EEPROM de baixo consumo e alta velocidade, permitindo armazenamento no voltil
na memria EEPROM interna em tempo de execuo.

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

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

1.

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

17. RC2 Entrada / sada digital. CCP1 Entrada de


captura 1, sada de comparador 1 ou PWM 1.

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


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

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


porta paralela escrava.

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

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

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


porta paralela escrava.

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


porta paralela escrava.

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


porta paralela escrava.

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

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

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


porta paralela escrava.

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


porta paralela escrava.

10. RE2

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

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


porta paralela escrava.

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


porta paralela escrava.

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

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

33. RB0

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

14. OSC2/CLKOUT Pino para ligao do circuito


oscilador externo (sada).

15. RC0 Entrada / sada digital. T1OSO Sada


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

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

16. RC1 Entrada / sada digital. T1OSI Entrada


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

37. RB4 Entrada / sada digital. 38. RB5 Entrada / sada digital.

Programao Daniel Corteletti Aula 1 Parte I Pgina 8/8 39. RB6 Entrada / sada digital. PGC Clock 40. RB7 Entrada / sada digital. PGD Dados para
para programao ICSP ou pino para depurao. programao ICSP ou pino para depurao.

Glossrio de termos relacionados ao microcontrolador PIC16F877


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

Diagrama de programao:
Passo 1 : Extrao de requisitos Levantar as necessidades da automao junto ao cliente, aos usurios do equipamento e as demais pessoas envolvidas no processo de automao. Passo 2 : Modelo de software a planta baixa do programa. Define quais sero as estratgias de programao que sero utilizadas. Para programas mais simples, recomenda-se a construo de um fluxograma ou de um modelo grfico do programa. Para situaes mais complexas, o modelo deve prever a quebra do problema em situaes ou camadas mais simples, que podem ser implementadas separadamente. Passo 3 : Implementao a escrita do programa na linguagem de programao desejada (no caso, linguagem C). Deve ser observado o compilador a ser utilizado, bem como as variaes na sintaxe da linguagem de programao para a ferramenta escolhida. Passo 4 : Compilao Ocorre a traduo da linguagem de programao para a linguagem nativa do microcontrolador. Nesta etapa, parte dos erros (principalmente os erros de sintaxe) so detectados. Os erros de sintaxe so os erros causados por erros de digitao ou uso incorreto de comandos. Passo 5 : Transferncia Atravs de um programa especfico, os dados contidos no arquivo HEX gerado pelo compilador so transferidos para a memria ROM do microcontrolador. Passo 6 : Testes Aqui so descobertos os erros de lgica que podem ser gerados por um erro de digitao (pontuao incorreta, comando inadequado, esquecimento de linhas, etc...). Esta etapa realimenta o processo, at que os testes efetuados garantam a qualidade do programa criado.

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

You might also like