Escolar Documentos
Profissional Documentos
Cultura Documentos
µprocessados Vs µcontrolados
MICROPROCESSADOR MICROCONTROLADOR
• Maior poder de • Menor poder de
processamento; processamento;
• Possui apenas a CPU (ULA e • Possui memória e periféricos
UC) em seu chip; em um único chip
• Flexibilidade de programas; (encapsulamento);
• Pinos com funcionalidade • Programas desenvolvidos
específica; para uma aplicação
• Opção de consumo de energia específica;
controla em algumas placas- • Pinos que compartilham
mãe (Ex: Notebook) funções;
• Opções de consumo de
energia para atender
diferentes aplicações;
Principais Fabricantes de µC
Evolução da Programação
Anos 50 e 60
Poucas instruções disponíveis
Programação binária
Sem telas, discos rígidos, etc...
Anos 60 e 70
Programação alto nível
Fortran, Basic, C
Arquitetura CISC
RISC CISC
Ênfase Software Hardware
Número de instruções Menor Maior
LOAD e STORE Instruções independentes Incorporado na instrução
Tamanho de código Maior Menor
Equação de desempenho
= 𝑥 𝑥 RISC CISC
Tensão de operação: 5V
Tensão de entrada: 7-12V
Pinos digitais de I/O: 14 (6 com PWM)
Pinos analógicos de I/O: 6 (6 com PWM)
Corrente DC pinos digitais: 40 mA
Corrente DC pino 3.3V: 50 mA
Microprocessador ATMEGA 328
Arquitetura RISC
131 instruções
32 registradores de propósito geral
Até 20 MIPS – 20 MHz
Memória
Programa: 32k Flash
EEPROM: 1k
Retenção de dados: 20 anos em 85ºC e 85 anos em 25ºC
Temperatura de Operação
-40 a 85ºC
Pinagem do microcontrolador
Funções de cada pino no Arduino
16
Firmware x Software
Quala diferença entre um firmware e um
software?
17
Firmware x Software
Firmware Software
Desenvolvido especificamente para Desenvolvido para rodar em qualquer
um determinado dispositivo computador com o mesmo sistema
eletrônico (Microcontrolador + operacional (Windows, Linux, OS e
circuito específico com os outros) independente da
componentes ligados ao µC). configuração do hardware.
Depende da estrutura externa ligada Não depende de todos os dispositivos
ao µC, uma vez mudada a estrutura (placa de vídeo, som, modem)
deve mudar o firmware. Por ligados no computador. Funciona
exemplo: um programa desenvolvido apenas com a configuração mínima.
para executar numa TV Toshiba não
funciona numa TV LG.
Exemplos de equipamentos que usam Exemplos de equipamentos que usam
firmware: microondas, DVD player, software: computadores pessoais,
TV, controle remoto, celular, vídeo- celulares modernos com sistema
game, relógio digital e etc. operacional embarcado (Windows
Mobile, OS, Linux).
Linguagens Alto Nível x Baixo Nível
Linguagem C Linguagem ASM Linguagem de
Máquina
C = (A + B)*2;
LOAD A
01001100 00000001
LOAD B 01001100 00000010
ADD 01001110 00000000
DUP 00001100 00000000
ADD 01001110 00000000
STRORE C 01110010 00000011
18
Linguagens disponíveis
Assembly;
C e C++;
Pascal;
Basic;
Ladder;
Assembly vs. Linguagem C
20
Vantagens Desvantagens
Linguagem mais amigável Pode ocupar um espaço de
Rápido desenvolvimento de memória desnecessário,
aplicações dependendo da otimização
Fácil manutenção do código do compilador
Fácil acesso aos recursos de
Linguagem C Hardware
Linguagem bastante difundida Uma determinada tarefa
Compiladores atuais tem bom pode não ser realizada da
desempenho maneira mais eficiente
Vários Exemplos implementados na
Web
Aumenta o tempo de
Possibilidade de otimização do
desenvolvimento de novos
processamento
projetos;
Linguagem Controle total do hardware Dificulta a manutenção de
programado projetos antigos
Assembly
Exige projetistas experientes
Economia de espaço e velocidade de
e bem treinados;
memória
Depuração complexa
Arduino
Arduino Board
IDE de Programação Arduino IDE
Baseado em C/C++
Funções próprias
Comunidade Arduino Community
Design de circuitos compatíveis com Arduinos (Shields)
Colaboração em Software e hardware
Aba Tutoriais/C18
Compilador DVD PICMinas18
v2.0
Compilador
Homem Computador
27
Trabalho do Compilador
Case sensitive
Programação em C
Terminar com ‘;’
Comentários com // ou /* */
Loop e Setup
Terminologia
Terminology
Digital I/0
www.mikroe.com/chapters/view/1
pinMode(pin, mode)
Sets pin to either INPUT or OUTPUT
digitalRead(pin)
Reads HIGH or LOW from a pin
digitalWrite(pin, value)
Writes HIGH or LOW to a pin
Electronic stuff
Output pins can provide 40 mA of current
Writing HIGH to an input pin installs a 20KΩ pullup