Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A evolução da tecnologia
A partir de então essas ferramentas foram sendo aperfeiçoadas continuamente durante séculos,
originando diversos dispositivos e ferramentas que auxiliavam em tarefas complexas, principalmente
nos cáculos matemáticos.
Os primeiros computadores:
Observando todos esses equipamentos, embora eles sejam muito diferentes é possível notar um ponto
em comum, todos eles foram projetados com uma finalidade específica e única, caso se quisesse que
eles realizassem outra tarefa, todo o projeto teria que ser refeito. Essa era uma característica muito
ruim, pois tornava extremamente difícil qualquer alteração ou atualização que fosse necessária.
Os microcontroladores que são o foco de nosso estudo são frutos de toda essa evolução e hoje com o
barateamento dessa tecnologia e as facilidades de projeto e utilização, eles são empregados em
praticamente todas as áreas com as mais diferentes aplicações e funcionalidades.
· Telefonia
· Atomóveis
· Aviação
· Diversão
· Eletrodomésticos
· Calculadoras
· Máquinas
· Informática
· Sistemas bancários
· Segurança
· Celulares
· Sist. Hospitalares
etc..
Microprocessadores e Microcontroladores:
Vimos até agora que microprocessadores e microcontroladores são o fruto de muitos anos de avanço
técnico, são utilizados para controlar diversos tipos de sistemas e máquinas, e que a grande vantagem
de seu uso é a possibilidade de alteração e atualização rápida e simples, bastando para isso a criação de
um novo programa.
Mas quais as diferenças entre microprocessadores e microcontroladores, em que casos eles são
utilizados?
Embora muitos confundam as duas nomenclaturas e as utilizem até como sinônimos, eles são
dispositivos com conceitos e funções distintas, pelos seguintes aspéctos:
Microprocessador:
Dispositivo eletrônico destinado a controle de processamento de sistemas grandes e complexos, ele tem
como função processar os dados vindos de dispositivos externos (memórias, sistema de I/O, etc) e a
partir deles executar tarefas pré-programadas.
Dentro do encapsulamento do microprocessador existe apenas uma estrutura a CPU, a qual é composta
basicamente pela ULA, pela UC e alguns registradores.
• UC: Unidade de controle (responsável pelo controle de fluxo dos dados, pelo gerenciamento e
execução dos comandos e atividades)
Microcontrolador:
Os microcontroladores por sua vez têm como alvo o controle autônomo de sistemas, dessa forma
geralmente procura-se que eles sejam baratos e pequenos, para atingir esse objetivo, é inserido no
mesmo encapsulamento, além da CPU, diversos Periféricos Internos, isso reduz muito o espaço físico na
PCI (placa de circuito impresso), barateando o projeto e tornando atualizações e modificações um
processo muito mais simples e rápido; hoje dependendo da aplicação é possível se escolher o
microcontrolador mais adequado observando a lista de periféricos internos que ele possui.
Periféricos Internos: São sub-circuitos presentes na mesma pastilha de silício da CPU, hoje podemos
encontrar incorporado aos microcontroladores uma grande lista de periféricos internos:
Por outro lado eles são componentes extremamente rápidos e precisos, então quando ordenarmos que
um microcontrolador faça algo, poderemos ter certeza que ele executará exatamente como pedimos e
num intevalo de tempo curtíssimo.
Outro apecto importantíssimo e que deve ficar bem claro de agora em diante é que os
microcontroladores são máquinas “seqüênciais”, ou seja executam as funções uma a uma, de forma
seguida e contínua, assim a metodologia para trabalhar e programar microcontroladores deve ser a
seguinte:
Vamos pensar em uma tarefa bem simples e apresentar cada um dos passos que devem ser executadas
para a realização da mesma.
Materiais necessários:
• três laranjas
• faca
• espremedor
• coador
• copo
• colher
• açúcar
Sequência de procedimentos:
Com esse simples exemplo foi possível verificar que mesmo as atividades mais simples passam por
várias etapas até sua conclusão, e quando estivermos criando nossos programas para os
microcontroladores deveremos pensar em todas as etapas da tarefa. Um bom modo para essa análise é
a criação de um fluxograma, mas isso discutiremos um pouco mais para frente.
Porém existe um detalhe importantíssimo que não levamos em consideração até agora: que idioma ou
linguagem usaremos para transmitir as informações da tarefa ao microcontrolador?
Mas existe um outro detalhe técnico, a linguagem Assembly na verdade é apenas uma representação
gráfica, constituída por pequenas palavras chamadas MNEMÔNICOS, que são como “apelidos” para
os códigos binários ou hexadecimais, os quais são a única informação que os microcontroladores ou
qualquer dispositivo eletrônico realmente entende, aí é que entra um novo personagem o compilador.
• Mnemônicos: Pequenas palavras, geralmente baseadas no idioma inglês, que representam cada
uma da instruções ou códigos da linguagem Assembly
• Compilador: É um software que pode ser considerado como um tradutor, ele pega os
mnemônicos da linguagem e os transforma nos respectivos códigos de máquina (hexadecimal
ou binário)
Após a compilação de nosso programa, o arquivo gerado (binário ou hexadecimal) é gravado dentro do
microcontrolador, e sendo assim o mesmo já pode começar a executar os comandos do programa
passoa a passo.
Curiosidade:
Um pouco de História
A liguagem C foi criada por Dennis Ritchie e Ken Thompson no Laboratório Bell em 1972. C é uma
linguagem profissional e é aceita e utilizada na criação de sistemas operacionais, tais como Unix,
Windows e Linux.
programação genérica desenvolvida para ser tão eficiente e rápido quanto o assembly e tão estruturada
e lógica quanto as linguagens de alto nível (PASCAL, JAVA, etc).
C foi desenhada para que usuários possa planejar programas mais estruturados e modulares. O
resultado é um programa mais legível e documentado. Os programas em C tendem a ser bastante
compactos e de execução rápida.
Devido a sua qualidade, portabilidade, eficiência e controle , o C, podemos dizer, é a linguagem mais
utilizada por programadores de microcontroladores. Atualmente, a maioria dos microcontroladores
existentes no mercado contam com compiladores de linguagem C para o desenvolvimento de
programas.
Quanto estamos tratando de programas para microcontroladores, devemos tomar certos cuidados com
relação a escolha da linguagem de programação e do compilador a ser utilizada , pois a capacidade de
memória de armazenamento do programa é extremamente reduzida, comparando com PC.
Sabemos que hoje temos computadores portáteis com capacidades de centenas de gigabytes de
memória, nesses aspectos o "tamanho" do código não é tão importante para o programador. Agora,
quando estamos falando de microcontroladores devemos tomar certas preocausões, pois
microcontroladores como: PIC12C508 e PIC16C54 possuem apenas 512byte de memória de programa e
25 byte de RAM, fato que exige do programador otimização do código e eficiência na elaboração lógico
do programa.
O papel do Compilador
Em nosso curso iremos utilizar a IDE MikroC desenvolvido pela empresa Mikroelektronika
(www.mikroe.com), que permite editar, compilar e simular programas em C para microcontroladores
PIC da família 12, 16 e 18 Microchip.
Encontramos também versões mikroC para família PIC24, dsPIC30 e dsPIC33, mas não iremos abordar
em nosso curso.
O mikroC:
Figura 3.1 - IDE mikroC - Editor, compilador, simulador e debugador para PIC em BASIC
Iremos utilizar o mikroC devido a sua eficiência e flexibilidade. Além disso, este compilador possui
uma extensa biblioteca de funções prontas para controle de diversas periféricos conectados ao nosso
microcontrolador PIC.
Aos escrevermos e compilarmos um programa em nosso compilador, caso o programa não tenha erros
de sintaxe, ou algum outro erro cometido pelo programador, teremos como resultado a criação do
arquivo de máquina hexadecimal (extensão .hex). Este arquivo .hex é conhecido como código de
máquina, e será este o arquivo a ser gravado na memória do microcontrolador.
Descreveremos abaixo as etapas passo a passo para editar, compilar, simular e gravar um programa no
microcontrolador PIC.
Estude as tarefas e funções que o microcontrolador PIC deverá executar. Para melhor entendimento das
funções lógicas a ser executadas faça um fluxograma.
A partir das informações e funções elaborada no fluxograma, escreva seu programa em linguagem C
na IDE mikroC, compile e simule seu programa (estudaremos mais adiante detalhes das função e
ferramenta do mikroC).
Estudaremos com mais detalhes nas unidades seguintes do nosso curso os processos de edição,
compilação e gravação de programas.
Descreveremos agora algumas dos exemplos de programas e aplicações práticas que serão estudados
em nosso curso:
Através deste Kit podemos desenvolver os mais variados tipos de programas, tais como:
• Controle de displays LCD alfanumérico 16X2 (16 colunas por 2 linhas ) no modo 4 e 8 bits. Os
displays LCD são utilizados nas grandes maioria dos projetos eletrônicos hoje em dia.
• 4 displays de 7 segmentos acionados por varredura.
• Matriz de teclado com 12 teclas.
• 7 teclas de acesso direto ao pino, sendo que 3 teclas dessas simulam a interrupções externa INT0,
INT1 e INT2 do PIC.
• 16 leds para controle lógico visual.
• 2 relés NA/NF para acionamento de cargas externas de 10A / 220V.
• RTC - relógio de tempo real com bateria. Através desse relógio o programador poderá programar
temporizadores, acionamentos programados, calendários, entre outras aplicações.
• Canal Serial RS232: canal para comunicação serial com PC ou outras máquinas
• Canal Serial RS232 Emulada: o programador pode emular uma serial via software e então trabalhar
com duas seriais RS232 no seu projeto.
• Canal USB 2.0 para implementações em projetos que necessitem comunicação USB (necessário usar
PIC18F4550)
• Canal PS/2: permite ligar ao microcontrolador teclado de PC ou mouse para otimizar o projeto
eletrônico.
• Aquecedor via PWM. O aluno poderá controlar o canal PWM do PIC simulando na placa.
• Sensor de temperatura LM35: o aluno poderá realizar ensaios práticos com este sensor de
temperatura.
• Acionamento de Buzzer. Em alguns projetos é indispensável a utilização de um alarme sonoro.
• Acesso a todas as portas de expansão do microcontrolador PIC, que nos permite ligar outros
dispositivos externos ao Kit.
• Ventoinha acionada por PWM. É importante pois o aluno poderá controlar por PWM a velocidade de
giro da ventoinha.
• Contadores de Pulsos. Através desse circuito poderemos saber a velocidade de giro da ventoinha.
(contador RPM).
• Memória serial E2PROM via I2C. Este tipo de memória são muito utilizada em diversos equipamento
e máquinas.
• 2 trimpots para simulação e programação do canal A/D do PIC (Analógico 1 , e Analógico
•
• Canal de comunicação RS485: Protocolo muito utilizado em redes industriais.
• Chave Load/Run para gravação ISP (gravação no próprio circuito).
• Microcontrolador PI18F4520 DIP
• Suporta outro microcontrolador PIC16F876/873 de 28 pinos
• Suporta LCD gráfico 128 x 64 com controlador KS108.
• Canal de gravação ICSP: Conector para modo debuger e ICD2.
• Regulador de tensão.
• Chaves Dip seletora de funções.
Sei que você deve estar pensando, nossa quanto dispositivo conectado ao microcontrolador. É verdade,
mas esses microcontroladores podem realizar muitas outras funções... em outras palavras, esse PIC é
10!
Durante nosso treinamento iremos realizar diversas experiências práticas utilizando os recursos da
linguagem C junto com as funções da IDE mikroC.
Iremos no decorer das unidades programar o PIC para controlar e escrever mensagens publicitária nos
display LCD 16X2 alfanumérico:
Os displays LCD são amplamente utilizados em diversos equipamentos e aparelhos. No decorrer dos
estudos iremos explorar as funções do mikroC em linguagem C para controle de displays LCD.
Estudaremos passo a passo como escrever mensagens de textos nos modos 4 e 8 bits.
Equipamentos
Equipamentos domésticos Equipamentos de CLPs e Equipamentos
industriais Informática controladores portáteis
industriais
Para acionar os displays de 7 segmentos, iremos utilizar o sistema de varredura, que permite através de
um barramento de dados de 8 bits e mais 4 pinos de acionamento, "escrever" o valor correspondente ao
dado que deve ser mostrado no visor.
O sistema de varredura de teclado matricial permite que o microcontrolador leia muitas teclas ligada
ao seus pinos. O teclado matricial é muito utilizado para economizar pinos físicos do microcontrolador.
Equipamentos de diversos tipos usam o teclado matricial para inserir dados ao microcontrolador.
Acionamento de Leds
Os leds são utilizados praticamente em quase todas as aplicações eletrônicas. Através dos leds
podemos visualizar o status de uma máquina, "desenhar" mensagens de textos, iluminar objetos, criar
animações visuais, entre outras aplicações.
Iremos estudar os recursos de programação em C para controle das portas de saída disponíveis no
microcontroladores PIC utilizando os leds como barramento de dados visual.
Os leds são utilizados em diversos equipamento no mercado para as mais variadas aplicações. Muitas
das aplicações é o microcontrolador responsável pelo controle desses leds.
• Supervisórios Industriais
• Comunicação com computadores PC
• Comunicação com outras máquinas
A aplicação básica do microcontrolador PIC trabalhando com o conversor A/D abaixo é simples, mas
possui um grande conteúdo educativo para nós neste momento. No exemplo abaixo utilizamos dois
simples trimpots para variarmos o valor de tensão no pino A/D do PIC. Este exemplo na verdade
representa inumeras aplicações práticas de equipamentos do mercado, tais como: aparelhos de
medição, leitores de sensores de temperatura, atuadores, entre outros. Criaremos programas para
controle e leitores de tensão nas unidades seguintes.
Veremos também como ler e interpretar valores analógicos vindo de sensores de temperatua (LM35)
utilizando os recurso da linguagem BASIC.
Iremos simular programas de controle de largura de pulsos. Através do canal PWM disponível no PIC,
podemos controlar diversos equipamentos, tais como: inversores de frequência, estabilizadores, fonte
chaveada, controle de velocidade de motores DC, entre outras.
Nem nossos laboratório, iremos controlar a velocidade de giro de uma ventoinha e controlar o
aquecimento de uma carga resistiva via PWM.
inversores de frequência
Fontes chaveadas Drive de Motores