Você está na página 1de 63

Servio Nacional de Aprendizagem

Industrial

Microcontroladores
PIC & Linguagem C
de Programao
Docente: Larcio Lima

O Microcontrolador
Ummicrocontrolador umcomputador num
chip, contendo um processador,memriae
perifricos
deentrada/sada.
Pode
ser
programado
para
executar
funes
especficas. Eles so embarcados no interior
de algum outro dispositivo (geralmente um
produto comercializado) para que possam
controlar as funes ou aes do produto.

O Microcontrolador
Os
microcontroladores
se
diferenciam
dos
processadores, pois alm dos componentes lgicos e
aritmticos usuais de um microprocessador de uso
geral, o microcontrolador integra elementos adicionais
em sua estrutura interna, como memria de leitura e
escrita para armazenamento de dados, memria
somente de leitura para armazenamento de
programas,
EEPROM
para
armazenamento
permanente de dados, dispositivos perifricos como
conversores analgico/digitais (ADC), conversores
digitais/analgicos (DAC) em alguns casos; e,
interfaces de entrada e sada de dados.

O Microcontrolador
Com freqncias declockde poucos MHz
(Megahertz)
ou
talvez
menos,
os
microcontroladores operam a uma freqncia
muito baixa se comparados com os
microprocessadores atuais, no entanto so
adequados para a maioria das aplicaes
usuais como por exemplo controlar uma
mquina de lavar roupas ou uma esteira de
cho de fbrica.

O Microcontrolador -

Aplicaes

Microcontroladores so geralmente utilizados em


automaoe controle de produtos e perifricos, como
sistemas de controle de motoresautomotivos,
controles remotos, mquinas de escritrio e
residenciais, brinquedos, sistemas de superviso, etc.
Os microcontroladores podem ser encontrados em
praticamente todos os dispositivos eletrnicos digitais
que nos cercam: teclado do computador, dentro do
monitor, disco rgido, relgio de pulso, rdio
relgio,mquinas
de
lavar,forno
de
microondas,telefone, etc.

O Microcontrolador -

Aplicaes

Eles permitiram a evoluo de equipamentos


que h anos no evoluam, como os motores a
combusto, que agora com o novo controle
eletrnico podem funcionar com sistema bicombustvel e poluindo menos e as mquinas
fotogrficas, que migraram de processos
qumico/mecnicoa
circuitos
com
microcontroladores+Sensores
Digitais+Memria.

Microcontroladores Comuns
AMCC
Atmel
Cypress MicroSystems
Freescale Semiconductor
Fujitsu
Holtek
Intel
Microchip Technology
National Semiconductor
NEC
Parallax, Inc.
Renesas Tech. Corp.
STMicroelectronics
Silicon Laboratories
Texas Instruments
Western Design Center
ZiLOG

Viso Geral de um Microcontrolador

Viso Geral de um Microcontrolador

Viso Geral de um Microcontrolador


Para fazer uso do Microcontrolador
necessrio desenvolver, alm do programa
que controla determinado processo, um
hardware responsvel pela interface entre o
mundo externo e o Microcontrolador,
adaptando os nveis de tenso e corrente.
Porm, para aplicaes mais simples e de
valores de tenso e corrente prximos aos
valores nominais do Microcontrolador podese utilizar seus pinos de I/O diretamente
interligados ao sistema.

Viso Geral de um Microcontrolador


Alimentando o microcontrolador

Viso Geral de um Microcontrolador

Viso Geral de um Microcontrolador

Viso Geral de um Microcontrolador

Viso Geral de um Microcontrolador


Ciclo da Mquina

Servio Nacional de Aprendizagem


Industrial

Linguagem C
de Programao
Docente: Larcio Lima

Objetivos
Introduzir

o
aluno

sintaxe
de
desenvolvimento da linguagem C;
Apresentar a estrutura bsica de um
programa em C;
Apresentar regras fundamentais de boa
prtica de programao;
Tornar o aluno apto a compreender e criar
seus prprios cdigos em C;

Tpicos Abordados
Linguagem C
Definio
Sintaxe
Operadores
Funes
Estrutura de Controle de Fluxo
Compiladores

Linguagem de Programao
Umalinguagem de programao um mtodo
padronizado
para
comunicarinstruespara
umcomputador. um conjunto deregras
sintticase semnticas usadas para definir
umprograma de computador. Permite que um
programador especifique precisamente sobre
quais dados um computador vai atuar, como
estes dados sero armazenados ou transmitidos
e quais aes devem ser tomadas sob vrias
circunstncias.

Definio da Linguagem
C
A linguagem C foi criada por Dennis Ritchie, em 1972, no

centro de Pesquisas da Bell Laboratories. Sua primeira


utilizao importante foi a reescrita do Sistema Operacional
UNIX, que at ento era escrito em assembly.
O C uma linguagem de propsito geral, sendo adequada

programao estruturada. No entanto mais utilizada


escrever compiladores, analisadores lxicos, bancos de
dados, editores de texto, etc.. A linguagem C pertence a uma
famlia de linguagens cujas caractersticas so: portabilidade,
modularidade, compilao separada, recursos de baixo nvel,
gerao de cdigo eficiente, confiabilidade, regularidade,
simplicidade e facilidade de uso.

Linguagem Assembly

Sintaxe
A sintaxe so regras detalhadas para cada construo vlida na

linguagem C.
Estas regras esto relacionadas com os tipos, as declaraes,
as funes e as expresses.
Os tipos definem as propriedades dos dados manipulados em um

programa.
As declaraes expressam as partes do programa, podendo dar

significado a um identificador, alocar memria, definir contedo


inicial, definir funes.
As funes especificam as aes que um programa executa

quando roda.
A determinao e alterao de valores, e a chamada de funes de

Sintaxe
As funes so as entidades operacionais bsicas dos

programas em C, que por sua vez so a unio de uma ou mais


funes executando cada qual o seu trabalho.
H funes bsicas que esto definidas na biblioteca C. As

funes
printf()
e
scanf()
por
exemplo,
permitem
respectivamente escrever na tela e ler os dados a partir do
teclado. O programador tambm pode definir novas funes em
seus programas, como rotinas para clculos, impresso, etc.

Sintaxe
Todo programa C inicia sua execuo chamando a funo main(),

sendo obrigatria a sua declarao no programa principal.


Comentrios no programa so colocados entre /* e */ no sendo
considerados na compilao.
Cada instruo encerra com ; (ponto e vrgula) que faz parte
do comando.
Ex:
main() /* funo obrigatria */
{
printf("oi");
}

O C case sensitive!
Isso quer dizer que a linguagem C, diferencia letras

maisculas e minsculas, tanto para nome de funes,


variveis e comandos da linguagem; ou seja, ao
declararmos as seguintes variveis:
int Soma, SOMA, SoMa, soma;
Todas as variveis acima sero diferentes para o C.
Isto tambm se aplica aos comandos de sintaxe do C, como,

por exemplo, o for e if que se forem escritos em


maisculas o compilador no poder interpret-las
corretamente.

Estrutura do Cdigo
Devido

ao fato do C ser uma linguagem


estruturada, ou seja, o compilador segue um fluxo
linear de compilao, devemos respeitar uma
estrutura de cdigo. Vejamos abaixo:

1.

Declarao das bibliotecas (cabealhos,


headers).
2. Declarao das variveis globais.
3. Declarao das funes extras.
4. Funo principal do programa.

Palavras Reservadas
Toda linguagem de programao possu palavras

reservadas.
Palavras reservadas no podem ser utilizadas a
no ser por seus propsitos originais.

Antes de Programar
Boas prticas.
Aprender a pensar.
Saber trabalhar em equipe.
Ser curioso.
Ser persistente.

Comentrios
Como j falamos de boas prticas, seria impossvel

no falar de comentrios em C. Comentrios so


blocos de texto que so ignorados pelos
compiladores.
No C teremos duas formas de comentrios, so elas:
// Comentrio de uma linha
/*
Bloco de comentrio
*/

Identao
Observe o bloco de cdigo abaixo:

O cdigo acima no est identado. Note como

est complicado de ler, apesar de ser um


cdigo extremamente simples.
Identar um cdigo nada mais que separar
os cdigos em blocos atravs de tabulao.

Identao

Tipos de Dados
A linguagem C possu 5 (cinco) tipos bsicos de dados:

char, int, float, void e double.


Para cada tipo de dado existem modificadores de tipo,estes

so 4 (quatro): signed, unsigned, long e short.


Lembre-se, para o float nenhum modificador pode ser
aplicado; assim como para o double podemos aplicar
apenas o long.

Tipos de Dados

Tipos de Dados
Declarao de varivel:

tipo_da_variavel nome_da_variavel =
valor_inicial_da_variavel;

Declarao de variveis de um mesmo tipo:

tipo_da_variavel nome_var1 = valor1, nome_var2 =


valor2;

Constantes de Barra Invertida \

Operadores
Realizam funes aritmticas e lgicas.
Possuem, como na matemtica, regras de

precedncia.
Podem ser classificados em 3 (trs) categorias.

Operadores
Aritmticos e de Atribuio

Principio de Programao
A lgebra de Boole e seus operadores so

muito utilizados em sistemas digitais e


tambm na programao em Linguagens
como o Assembly e tambm a Linguagem C.
Temos ento as operaes E ou AND, OU ou
OR e No ou NOT e tambm NAND, NOR ou
XOR ( OR EXCLUSIVO).

Principio de Programao

Introduo a Linguagem
C

Observaes:
Toda funo deve iniciar abrindo chave e finalizar fechando-se a chave.
Toda instruo deve ser finalizada com ponto e vrgula (obrigatoriamente)
Logo aps /* so inseridos os comentrios para mltiplas linhas e deve-se
Colocar */ para fechar o bloco de comentrios.
Utilizamos // para comentrios em apenas uma linha.

Introduo a Linguagem C
Operadores Matemticos
Aritmticos

Introduo a Linguagem C
Operadores Matemticos
Relacionais

Introduo a Linguagem C
Operadores Matemticos
Lgicos

Introduo a Linguagem C
Operadores Matemticos
Viso Geral

Estruturas de Controle de Fluxo


Os comandos de controle de fluxo so a essncia

de qualquer linguagem, porque governam o fluxo


da execuo do programa. So poderosos e
ajudam a explicar a popularidade da linguagem.
Podemos dividir em trs categorias. A primeira
consiste em instrues condicionais if e switch. A
segunda so os comandos de controle de loop o
while, for e o do-while. A terceira contm
instrues de desvio incondicional goto.

Introduo a Linguagem C
Controle de Fluxo
Loop While While()

Introduo a Linguagem C
Controle de Fluxo
Deciso IF - IF()

Introduo a Linguagem C
Controle de Fluxo
Deciso IF-ELSE- IF() / ELSE()

Introduo a Linguagem C
Controle de Fluxo
Exemplo: if (contador == 12)
{
duzia++;
X++;
}
else if (contador < 12)
{
duzia = 0;
Y--;
}
Else if (contador > 12)
{
duzia = 0;
Z++;
}

Introduo a Linguagem C
Controle de Fluxo
O condicional SWITCH

Chamadas a Funes / Sub-Rotinas


Sub-rotinas, ou funes (como so chamadas

na linguagem C), so trechos de cdigo


relativamente independentes, e que podem
ser disparados a partir de um chamado
realizado pelo prprio programa.

Chamadas a Funes / Sub-Rotinas


Objetivos
1) Fragmentao dos problemas: A melhor forma de

resolver um problema grande dividi-lo em problemas


menores, resolvendo parte por parte, at solucionar
tudo.
2) Reaproveitamento de Cdigo: Ao fragmentar um
problema, talvez seja possvel observar que, em muitos
casos, uma mesma sequencia de comandos deve ser
executada em pontos diferentes do programa.
3) Otimizao de memria: Variaveis locais so
variveis que possuem escopo limitado funo onde
so declaradas, porm seu tempo de vida se limita ao
tempo de execuo da funo.

Chamadas a Funes / Sub-Rotinas


Passagem de Parmetros
Vimos que sub-rotinas podem facilitar o processo

de programao, uma vez que fragmentamos o


problema em partes menores, reaproveitando
trechos de programa em varias partes dele.
Porm, em muitos casos vamos precisar enviar
informaes as funes, ou buscar respostas
que podem ser enviadas por elas. A troca de
mensagens existente em funes dos programas
muito til e importante para garantir a melhor
organizao e eficincia do software produzido.

Comunicao Serial
O uso de portas de comunicao seriais

comum em Microcontroladores, existindo


diversos perifricos que utilizam este tipo de
interface, como tranceivers wireless (WIFI,
Bluetooth etc.), terminais seriais, IHMs
(interfaces homem-mquina) e conversores
RS485 (padro de rede muito usado na
indstria, dentre outros.

Comunicao Serial
Ao

realizar a troca de doados entre


dispositivos,
devemos
observar
vrias
questes: formato das mensagens e que
dados sero trocados, velocidade em que isso
ocorre, meio fsico utilizado, uso de um
sistema de deteco de falhas, uso de
correo de erros e forma de organizar o
envio de dados ao destinatrio em caso de
mltiplos destinos possveis.

Comunicao Serial
BAUD RATE (velocidade, em bits
por segundo: 19200bps
Data bits (BITS de dados (quantos
bits so enviados para um dado)):
8
PARITY (paridade, uma forma de
controle de erros no muito
eficiente) Nenhum (NONE)
STOP BITS ( BITS de Parada,
tamanho da pausa entre cada
dado) : 1
Flow Control (Controle de Fluxo:
controle sobre os dados enviados
e recebidos): Nenhum (NONE)

Comunicao Serial

Compiladores
Umcompilador

umprograma de computador(ou um
grupo de programas) que, a partir de umcdigo fonteescrito
em uma linguagem compilada, cria um programa
semanticamente equivalente, porm escrito em outra
linguagem,cdigo objeto. Ele chamadocompiladorpor
razes histricas; nos primeiros anos da programao
automtica, existiam programas que percorriam bibliotecas
de sub-rotinas e as reunia juntas, ou compilava, as subrotinas
necessrias para executar uma determinada tarefa.
O nome "compilador" usado principalmente para os
programas quetraduzemo cdigo fonte de umalinguagem
de programao de alto nvelpara umalinguagem de
programao de baixo nvel.

Compiladores

Servio Nacional de Aprendizagem


Industrial

Microcontroladores
PIC & Linguagem C
de Programao
Docente: Larcio Lima

Você também pode gostar