0% acharam este documento útil (0 voto)
3 visualizações83 páginas

Lógica de Programação em Dispositivos Eletrônicos

Enviado por

aurelio1395
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
3 visualizações83 páginas

Lógica de Programação em Dispositivos Eletrônicos

Enviado por

aurelio1395
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Lógica de Programação

Programação de Dispositivos Eletrônicos

LINGUAGEM DE PROGRAMAÇÃO
Os componentes eletrônicos estão inseridos em máquinas, equipamentos, computadores e
veículos. Em alguns deles, encontram-se os firmwares que são desenvolvidos utilizando-se a
linguagem de programação.

Você sabe o que é linguagem de programação?

Qual a diferença entre as linguagens de programação?


Programação de Dispositivos Eletrônicos

LINGUAGEM DE PROGRAMAÇÃO
A linguagem de programação é a forma em que se desenvolve uma determinada lógica, que
será realizada por um microcontrolador com o intuito de executar determinada ação ou
operação.

Por exemplo, no caso de um micro-ondas, o sistema eletrônico é responsável pelo


processamento das informações configuradas pelo usuário através de uma interface homem-
máquina (IHM).

Com base nestas informações, você pode comandar todos os dispositivos internos deste
aparelho, para que ele possa executar sua função, que é a de aquecer determinado alimento.

E, quando estas funções foram realizadas, o sistema eletrônico avisa, através de um bip,
informado que o alimento está pronto.
Programação de Dispositivos Eletrônicos

LINGUAGEM DE PROGRAMAÇÃO
Toda operação do micro-ondas precisa ser projetada e programada em um chip, sendo a
linguagem de programação a forma como este programa é feito.

Existem também certas similaridades entre as diversas linguagens de programação.

Como toda esta programação do micro-ondas pode ser feita em vários tipos de linguagem, o
que os diferencia são seus comandos e sintaxes1, que podem propiciar uma linguagem de
programação de baixo ou alto nível.

1 é o conjunto de normas que regulam e coordenam as diferentes variáveis e sua associação. Na linguagem, a sintaxe é o conjunto de normas e
leis combinatórias que estruturam a construção de orações e textos.
Programação de Dispositivos Eletrônicos

LINGUAGEM DE PROGRAMAÇÃO
Uma linguagem de baixo nível tem seus comandos se aproximando da linguagem de máquina,
que são códigos hexadecimais ou binários.

Já uma linguagem de alto nível se aproxima mais da linguagem humana, sendo utilizados
comandos em que a compreensão do programa e da lógica fica mais evidente.
Programação de Dispositivos Eletrônicos

LINGUAGEM DE PROGRAMAÇÃO
Assim, de forma resumida vamos:

Compreender o que é linguagem de programação;

Conhecer os tipos de variáveis da linguagem C;

Conhecer os principais comandos da linguagem C; e

Compreender a estrutura de um programa em linguagem C.

Para aprimorar nosso conhecimento é recomendado que se estude também livros citados nas
referências bibliográficas.
Programação de Dispositivos Eletrônicos

Características:
Para iniciar os estudos, acompanhe, como exemplo, o trabalho de um lenhador.

Ele continua a dar machadadas enquanto a árvore estiver em pé.

Inconscientemente, o lenhador executa um algoritmo.

Este algoritmo realiza um teste com uma pergunta:

a árvore está de pé?

Caso a resposta seja sim, faz uma ação: machadar a árvore.

E, caso a resposta à pergunta seja não, o lenhador para de executar a ação.


Programação de Dispositivos Eletrônicos

Características:
Então, mentalmente o lenhador executa um algoritmo,
que realiza um teste de repetição através de um sensor
para saber se a árvore está em pé.

Neste caso, o sensor é a visão e o atuador será o


machado comandado por seus braços e mãos.

Se esta operação fosse feita por uma máquina ou por um


sistema eletrônico, como poderia ser o algoritmo para
realizar tal operação?

Para responder esta pergunta, analise o fluxograma a


seguir.
Programação de Dispositivos Eletrônicos

Características:
Você observou, na figura, que o algoritmo usado pelo
lenhador consiste em um sistema de repetição, isto é,
enquanto a árvore estiver em pé, o lenhador continua a
machadá-la.
A linguagem de programação é a forma como é
descrito um programa.

É caracterizada pelo compilador, que, por sua vez,


testa todo o programa e mostra possíveis erros de
digitação e de sintaxe de comandos.
Além disso, o compilador pode ter determinada
linguagem, como Assembly, C, C++, Basic, Flowcode,
entre outros.
Programação de Dispositivos Eletrônicos

Características:
Segundo Oliveira e Andrade (2006, p. 71), “O software de um sistema embarcado é semelhante
ao de um computador pessoal, podendo ser escrito em diversas linguagens de programação,
mas a forma de escrever essa lógica é denominada algoritmo”.

Os autores deixam claro que o algoritmo pode ser escrito de diversas formas, isto é, como
sendo as linguagens de programação.

Além disso, acrescentam: “De nada adianta ter um hardware perfeitamente montado, sem ter
um software adequado para controlá-lo.

A essência de um sistema embarcado é conter um firmware que controlará a sua execução. O


firmware não passa de um conjunto de regras que rege o funcionamento do sistema.”
(OLIVEIRA; ANDRADE, 2006, p. 71).
Programação de Dispositivos Eletrônicos

Características:
Você também pôde observar no fluxograma exemplo do
lenhador que o símbolo de inicialização e de finalização
da lógica têm a forma de uma elipse.

Percebeu também que a decisão simples é formada por


um losango, no qual se tem uma entrada e duas saídas,
de acordo com a resposta sobre a condição, que pode ser
sim ou não.

E, por fim, tem-se o bloco da ação, representado por um


retângulo, em que a ação, neste caso, é a de machadar a
árvore.
Programação de Dispositivos Eletrônicos

Características:

Para ampliar seus conhecimentos, consulte o datasheet do microcontrolador


PIC18F2550, utilizado no capítulo Aplicações de microcontrolador. Com as informações
contidas na folha de dados, você verificará todas as características elétricas e mecânicas,
além das informações sobre os periféricos deste microcontrolador, acessando:
[Link]

Portanto, a linguagem de programação apresenta as regras e a sintaxe para que o programador


possa distinguir e programar o microcontrolador para processar estas regras e executá-las em
forma de funções, comandando atuadores e lendo sensores.
Programação de Dispositivos Eletrônicos

Características:

As lógicas de programação podem ser desenvolvidas através de fluxogramas, que são


dispostos de maneira gráfica para facilitar a compreensão do software. Estes programas
são destinados à interatividade entre a área de programação e a área na qual se
encontra o problema a ser resolvido, programando a solução de forma visual a partir do
fluxograma. Trata-se de uma forma didática de desenvolvimento de lógica e de
programação.

Depois de conhecer como são as características da linguagem de programação, estude os tipos


primitivos de variáveis. Você sabe quais são eles? Você sabe quais são as características destes
tipos? Siga em frente.
Programação de Dispositivos Eletrônicos

Tipos Primitivos de Variáveis:


Existem diversos tipos de variáveis inseridas na programação de
microcontroladores.

Cada variável possui características que devem ser utilizadas em conjunto


com a lógica de programação.

Por exemplo, tem-se as variáveis de ponto fixo, que não possuem casas
decimais após a vírgula.

No entanto, podem ser com ou sem sinal, dependendo da declaração desta


variável.
Além disso, há também as variáveis com ponto flutuante, que podem ser
utilizadas para trabalhar com casas após a vírgula. Fonte: O Autor (2024)
Programação de Dispositivos Eletrônicos

Tipos Primitivos de Variáveis:


As variáveis são classificadas também por seu tamanho (bits), como de 8
bits, 16 bits, 32 bits e outras mais.

Toda variável precisa ser declarada no início do programa e é importante


ressaltar que existem as variáveis locais e as globais.

As locais são declaradas e utilizadas em uma determinada função e não


possuem valor fora destas funções.

Fonte: O Autor (2024)


Programação de Dispositivos Eletrônicos

Tipos Primitivos de Variáveis:


Já as globais são variáveis que são visíveis em toda a lógica de programação,
salvo as que são vistas em determinado arquivo.

Para serem vistas de um arquivo ao outro, precisam ser declaradas em dois


arquivos.

No arquivo principal, devem ser declaradas normalmente e, no arquivo em


que serão entendidas, devem ser expostas como extern (externo).

Além disso, existem diversas representações dos dados inseridos em uma


variável, que podem ser representados de forma binária, octal, hexadecimal e
decimal.
Programação de Dispositivos Eletrônicos

Tipos Primitivos de Variáveis:


Exemplo de variável tipo: global e local
#include <stdio.h>
int numquad; /*Variável Global */
int Quadrado(int num) /*num é Parâmetro formal */
{
return (num *num); /*Retorno da função */
} /*fim da função*/
int main () {
int num; /*Variável Local */
printf (“Entre com um numero: ");
scanf("%d", &num);
numquad=Quadrado(num); /*Chamada da função */
printf ("\nO seu quadrado vale: %d\n",numquad);
return0;
} /*fim da função*/
Programação de Dispositivos Eletrônicos

Ponto flutuante:
As variáveis com ponto flutuante são de grande importância na programação de
microcontroladores.

Geralmente, todos os processadores possuem a função de cálculo com ponto flutuante.

Contudo, os microcontroladores descritos como ponto flutuante possuem uma máquina de


ponto flutuante, ou seja, fazem cálculos com ponto flutuante, consumindo poucos ciclos do
oscilador.

Este processo garante rapidez e eficiência no resultado do cálculo.


Programação de Dispositivos Eletrônicos

Ponto flutuante:
Já os microcontroladores que não possuem esta máquina de ponto flutuante também podem
fazer cálculos com casas após a vírgula.

No entanto, dependem unicamente de funções em C e consomem muitos ciclos para fazerem


um único cálculo.

Consequentemente, esse processo pode gerar um grande consumo de tempo em uma lógica de
programação, que acaba ficando lenta e ineficaz em alguns casos.

Este processo garante rapidez e Existem dois tipos básicos de variáveis com ponto flutuante,
conforme listados a seguir.
Programação de Dispositivos Eletrônicos

Ponto flutuante:

Veja, a seguir, o trecho de um programa referente à declaração de uma variável com ponto
flutuante.
Programação de Dispositivos Eletrônicos

Ponto flutuante:

Como você pode observar no exemplo a declaração de uma


variável de ponto flutuante do tipo float chamada Módulo e a
declaração de uma variável de ponto flutuante do tipo double
com o nome de Quociente.

Além disso, a variável Quociente foi inicializada com o valor de


2,35, que também é chamado de condição inicial atribuída a uma
variável.

Quando a condição inicial não for atribuída a variável ela assume valor zero.
Programação de Dispositivos Eletrônicos

Ponto flutuante:

Um dado de 32 bits expresso em ponto flutuante é dividido em três partes: um bit de sinal, oito
bits de expoente e 23 bits de mantissa1.
Já um dado de 64 bits expresso em ponto flutuante é dividido em um bit de sinal, onze bits de
expoente e 52 bits de mantissa.
Veja, a seguir, como são alocadas as partes de um dado de 32 bits expresso em ponto flutuante,
que é composto por sinal (S), expoente (E) e mantissa (M).

1 É a parte decimal dos números


Programação de Dispositivos Eletrônicos

Inteiros:
As variáveis do tipo inteiro não possuem
casa após a vírgula, e como o próprio nome
sugere, operam com números inteiros.

Estas variáveis podem ser com sinal, sem


sinal, e sua declaração classifica seu
tamanho (8 bits, 16 bits e outras). Leia, o
quadro tipos de variáveis inteiras.
Programação de Dispositivos Eletrônicos

Inteiros:

Acompanhe, a seguir, alguns exemplos de como declarar as variáveis do tipo inteiro.

Observe que, entre as declarações de variáveis, a primeira declaração, unsigned char (caractere
sem sinal) é uma variável de 8 bits sem sinal. A segunda, signed char (caractere com sinal),
mostra uma variável de 8 bits com sinal, chamada de quantidade.
Programação de Dispositivos Eletrônicos

Inteiros:

Acompanhe, a seguir, alguns exemplos de como declarar as variáveis do tipo inteiro.

Já a terceira é uma variável do tipo int (inteiro com sinal). E, a última declaração é de uma
variável long (longa com sinal), chamada de numero, que possui um tamanho de 32 bits.
Programação de Dispositivos Eletrônicos

Inteiros:

Acompanhe, a seguir, alguns exemplos de como declarar as variáveis do tipo inteiro.

É importante ressaltar que é possível que seja feita a declaração de mais variáveis em uma
única linha, adicionando uma vírgula entre a variável declarada e a nova variável a ser
adicionada, mas mantendo o ponto e a vírgula no final da declaração.
Programação de Dispositivos Eletrônicos

Inteiros:

Perceba que, quando a declaração de uma variável não apresentar em sua sintaxe o
signed ou o unsigned, a variável assume que será com sinal signed.
Programação de Dispositivos Eletrônicos

Tipo array:
A tradução de array é ordem, mas, em programação C, o array é utilizado para criar matrizes,
que são amplamente utilizadas quando se deseja trabalhar com tabelas unidimensionais ou
bidimensionais, dentre outras. Para compreender este assunto, leia o quadro a seguir.

Perceba que a matriz unidimensional apresentada é composta por um nome, o índice entre
colchetes (um número de 0 a 2) e o valor atribuído para cada índice (25, 10 e 32, neste caso).
Programação de Dispositivos Eletrônicos

Tipo array:
Para compreender esse princípio de funcionamento, serão apresentados, a seguir, a declaração e
o exemplo de uso desta matriz unidimensional, ou deste vetor.
Programação de Dispositivos Eletrônicos

Tipo array:

Você observou, no exemplo anterior, que a declaração de uma matriz unidimensional é dividida
em várias partes.

A primeira é o tipo de dado que será armazenado na tabela, que, neste caso, é o tipo de variável
de 8 bits e sem sinal (unsigned char).

A segunda parte é o nome da matriz, que, no caso, é Tabela.

A terceira é a quantidade de dados a serem armazenados. Este valor fica entre colchetes, que é,
neste caso, 3.

Na quarta parte, são atribuídos os valores desta matriz como sendo uma condição inicial, que
são os valores 25, 10 e 32.
Programação de Dispositivos Eletrônicos

Tipo array:

Na sequência, você verá um exemplo de utilização desta matriz. É importante ressaltar que a
declaração da tabela não precisa ter atribuição dos valores de cada posição, sendo que podem
ser atribuídos os valores durante o desenvolvimento da lógica principal.
Programação de Dispositivos Eletrônicos

Tipo array:

Perceba que à variável Resultado é atribuído um valor da posição 1 da matriz Tabela, que neste
caso é 10. O segundo exemplo apresenta que, para a Tabela, também pode ser atribuído um
valor além do inicializado em sua declaração. Neste exemplo, à posição 2 da Tabela, que está
armazenado o número 32, será atribuído um novo valor, o número 57 .
Programação de Dispositivos Eletrônicos

Tipo array:

Segundo Miyadaira (2009, p. 50), “Matriz é um agrupamento de variáveis do mesmo tipo,


associadas a um nome. Ela pode ser unidimensional (uma única dimensão) ou
multidimensional (mais de uma dimensão) e cada posição da matriz corresponde a uma
variável do tipo especificado, sendo acessada por um índice.”
Programação de Dispositivos Eletrônicos

Tipo array:
Em Resumo:
Foram apresentados os tipos primitivos de variáveis.

Com essas varáveis, é possível realizar a manipulação de dados


em um programa, além da criação de funções com entrada e
saída de dados.
Programação de Dispositivos Eletrônicos

Operadores:
Você sabe quais são os tipos de operadores, para que servem e como são usados? Siga adiante e
aprenda mais este assunto.

Os operadores são de grande importância para a lógica de programação.

Por meio deles, o microcontrolador é capaz de realizar cálculos e fazer lógicas de comparação e
atribuição. Os operadores são expressos por sinais, que serão abordados a partir de agora

Os operadores são expressos por sinais, que serão abordados a partir de agora
Programação de Dispositivos Eletrônicos

Operadores: de incremento e decremento


Os operadores de incremento e decremento são caracterizados por
incrementar ou decrementar uma variável. Conheça, a seguir, a
sintaxe destes dois comandos.

Você leu que o comando de incremento é representado por dois sinais


de mais (++), localizados após a variável a ser incrementada.

Já o comando de decremento é representado por dois sinais de menos


(--), também localizados após a variável a ser decrementada.
Programação de Dispositivos Eletrônicos

Operadores: de incremento e decremento


É importante ressaltar que, em determinadas estruturas condicionais,
é possível fazer o incremento ou o decremento antes do nome da
variável
Com isto, primeiro incrementa-se ou decrementa-se a variável, para
depois realizar o teste condicional.
E, caso seja incrementado ou decrementado após o nome da variável,
primeiro se realiza o teste da condição e depois o incremento ou o
decremento da variável.
As estruturas condicionais serão abordadas em seções posteriores
com mais detalhes.
Programação de Dispositivos Eletrônicos

Operadores: aritmético de atribuição


O operador aritmético de atribuição é um dos operadores mais utilizados. Ele é representado
por um símbolo de igual (=). Veja, a seguir, um exemplo de sintaxe deste operador.

Como é lido, o valor em decimal dez (10) é atribuído e salvo na variável “variavel8Bits”.

É importante ressaltar que pode ser atribuído a uma variável o valor de outra variável, por
exemplo, substituindo o número dez, por outra variável, como a apresentada a seguir.

Considerando o exemplo anterior, em que foi atribuído o valor decimal dez para a
“variavel8Bits”, tem-se este mesmo valor na “variavel8Bits_1” também.
Programação de Dispositivos Eletrônicos

Operadores: aritméticos
Os operadores aritméticos são utilizados para diversos cálculos.

Eles são os operadores de soma, subtração, multiplicação, divisão e resto de


uma divisão.

Na sequência, você verá exemplos de utilização destes operadores.


Programação de Dispositivos Eletrônicos

Operadores: aritméticos
Nesse exemplo, você conheceu diversas operações aritméticas.
A primeira delas é a soma entre as variáveis A e B, cujo resultado é salvo na
variável Resultado.

A segunda operação aritmética é uma subtração entre C e B, tendo o restante


salvo na variável Resultado.

A terceira é uma divisão entre A e uma constante de valor 12, cujo resultado é salvo na variável
Resultado.

A quarta operação trata de uma multiplicação entre a variável C e a constante de número 3.


Programação de Dispositivos Eletrônicos

Operadores: aritméticos
O produto desta operação é salvo na variável Resultado

Por fim, a quinta operação matemática é entre a variável B e o número 2,


sendo o resto desta divisão salva na variável Resultado.

Além disso, é possível que seja inserido mais de um operador aritmético ao


mesmo tempo entre três variáveis, como Resultado igual a A mais B menos
C (Resultado = A + B – C;).
Programação de Dispositivos Eletrônicos

Operadores: racionais
Os operadores relacionais são importantes para a lógica de programação. É por meio deles que
são feitos os testes condicionais.
A lista completa dos operadores relacionais está apresentada no quadro que segue.
Programação de Dispositivos Eletrônicos

Operadores: operadores lógicos


Os operadores lógicos executam operações lógicas entre variáveis e/ou constantes. Estas
operações são conhecidas como:
a) lógica and, que significa lógica e;

b) lógica or, que significa lógica ou;

c) lógica not, cuja tradução significa lógica não;

d) lógica xor, que significa lógica ou exclusivo.


Programação de Dispositivos Eletrônicos

Operadores: operadores lógicos


O quadro, a seguir, mostra a lista completa dos operadores lógicos. Acompanhe. .
Programação de Dispositivos Eletrônicos

Operadores: operadores lógicos


Conheça, ao lado, as sintaxes mais usuais destes operadores.

Você viu que o primeiro exemplo mostra uma lógica and entre a
variável A e o valor binário (0b00000011), com o resultado desta
operação salvo na variável Resultado.

O segundo exemplo faz a operação de inverter todos os bits da variável B.

Por exemplo, se o valor armazenado na variável B for 0b11000011, após a operação de


inversão, este novo valor será 0b00111100, e este dado será salvo na variável Resultado.
Programação de Dispositivos Eletrônicos

Operadores: operadores lógicos


E, o último exemplo de operação lógica é a rotação de bits para a
direita.

Com o comando apresentado, a variável C tem seus bits rotacionados


duas vezes para a direita, ou seja, se o conteúdo da variável C for 0b00110000, após o
comando, este conteúdo passa a ser 0b00001100 e tem este resultado salvo na variável
Resultado.

Assim, os operadores lógicos, relacionais, de atribuição e aritméticos apresentados são


utilizados quando se deseja realizar testes condicionais que necessitem de raciocínio lógico e
tomadas de decisão digitais. Por isso, são comandos importantes da linguagem C.
Programação de Dispositivos Eletrônicos

Estrutura Condicional:
As máquinas e os equipamentos, principalmente o computador, desempenham funções de
software e hardware.

Para isso, existe a necessidade de o software realizar perguntas e obter as respostas necessárias
para o processo.

Consequentemente, existem as estruturas condicionais, que são responsáveis por tomar


decisões em função das entradas, sensores, cálculo e processamento.

Na linguagem C, elas são denominadas estruturas condicionais.


Programação de Dispositivos Eletrônicos

Estrutura Condicional:

A estrutura condicional pode estar presente em diversas situações, em que uma


simples tomada de decisão pode provocar grandes acionamentos em um sistema ou
equipamento.
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Tomada de decisão simples


Grande parte da lógica de programação utiliza as estruturas condicionais para que sejam
atendidas todas as necessidades e funções de um programa. Existem diversos tipos de tomadas
de decisões. Conheça-os a seguir.

A tomada de decisão simples é formada por uma pergunta e apenas duas opções de respostas
esperadas: sim ou não.

A estrutura para tomada de decisão simples é o comando if, que significa se, ou seja, se a
condição for atendida, o programa realiza determinada ação.

Veja, a seguir, a sintaxe do comando if.


Programação de Dispositivos Eletrônicos

Estrutura Condicional: Tomada de decisão simples

if (ArvoreDePe)
{
MachadarArvore;
}

Perceba que, se a condição for verdadeira, no caso, se a árvore estiver em pé, a ação será
machadar a árvore e, se for falsa, não fará nada.
É importante ressaltar que o comando if não é uma estrutura de repetição.

Portanto, ao passar apenas uma vez pelo comando if, será realizado o teste, e a ação executada
também apenas uma vez.
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Tomada de decisão composta


Esta estrutura é semelhante à tomada de decisão simples, sendo que na estrutura anterior
também pode haver uma resposta sim ou não.

A diferença é que a estrutura composta permite uma segunda ação quando houver uma resposta
negativa, por ter o comando else.

Na sequência, se a resposta for sim, terá uma ação; se a resposta for não, terá outra ação.
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Tomada de decisão composta

if (ArvoreDePe)
{
MachadarArvore;
}
else
{
Descansar;
}

Perceba que foi adicionado o comando else, que significa se não. Então, se a árvore estiver em
pé, o lenhador deverá machadar a árvore e, se não, o lenhador deverá descansar.
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Encadeada


A estrutura condicional encadeada é a sequência de várias tomadas de decisão simples ou
compostas.

Esta estrutura pode ser encadeada somente nas respostas afirmativas, somente nas respostas
negativas, ou um misto entre as respostas afirmativas e negativas.

Na sequência, conheça um encadeamento de três níveis e a sintaxe desta condição.


Programação de Dispositivos Eletrônicos

Estrutura Condicional: Encadeada


Na sintaxe, você viu uma condição encadeada, que representa
a seguinte lógica: se a árvore estiver de pé e pronta para o if (ArvoreDePe)
corte, e se esta árvore estiver sem frutos, o lenhador irá {
machadá-la. if(ProntaParaCorte)
{
Caso alguma das condições não seja atendida, o lenhador não if(ArvoreSemFruto)
irá cortá-la. {
MachadarArvore;
Também podem ser utilizados os operadores lógicos, }
conforme apresentado neste exemplo, através da utilização do }
operador “&&”. }

É importante ressaltar que, ao escrever o nome de uma variável corretamente, este nome ficará
dependendo do compilador, com uma cor especial, que, neste caso, é azul fraco.
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Encadeada


E o comando if terá em sua sintaxe, quando escrito
corretamente, a cor azul forte. if (ArvoreDePe)
{
Já se o desenvolvimento de uma lógica for muito grande, em if(ProntaParaCorte)
que se utilizam muitos comandos if, há, portanto, mais chaves. {
if(ArvoreSemFruto)
Assim, ao posicionar o cursor antes ou depois de uma {
determinada chave, é possível saber onde está o par de cada MachadarArvore;
uma delas, pois esta acenderá. }
}
O mesmo se aplica aos parênteses. }
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Switch


switch (variavel8Bits)
O comando switch é uma estrutura condicional muito utilizada {
quando se deseja tratar as diversas condições possíveis de uma case 0 :
MachadarArvore;
variável. break;
case 1 :
Descansar;
O comando switch (que significa selecionar) permite programar uma break;
ação para determinado valor que esta variável possa ter. Leia, a case 2 :
Descansar;
seguir, a sintaxe do comando deste comando. break;
case 168 :
MachadarArvore;
break;
case 245 :
MachadarArvore;
break;
default :
break;
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Switch


switch (variavel8Bits)
Conforme você leu, o comando switch testa a variável {
(variavel8Bits). case 0 :
MachadarArvore;
break;
Caso esta variável seja 0, 168 ou 245, o lenhador machadará a case 1 :
árvore. E, se esta variável for 1 ou 2, o lenhador descansará. Descansar;
break;
case 2 :
E, por fim, caso esta variável tenha um valor diferente dos descritos Descansar;
break;
anteriormente, a opção default é selecionada. case 168 :
MachadarArvore;
break;
Com o uso do comando break, a lógica de saída do laço é realizada case 245 :
e o lenhador não fará nenhuma ação. MachadarArvore;
break;
default :
break;
Programação de Dispositivos Eletrônicos

Estrutura Condicional: Switch


switch (variavel8Bits)
Esta estrutura está apresentada com 3 condições sequenciais, {
podendo ser expressa em uma única linha, com a aplicação do case 0 :
MachadarArvore;
comando and entre operações, e, com isto, simplificando esta break;
estrutura de decisão. case 1 :
Descansar;
break;
case 2 :
Descansar;
break;
case 168 :
MachadarArvore;
break;
case 245 :
MachadarArvore;
break;
default :
break;
Programação de Dispositivos Eletrônicos

Estrutura de Repetição

A estrutura condicional pode estar presente em diversas situações, em que uma


simples tomada de decisão pode provocar grandes acionamentos em um sistema ou
equipamento.
Programação de Dispositivos Eletrônicos

Estrutura de Repetição
Uma estrutura de repetição consiste em manter determinada ação condicionada a um teste.

Este teste pode ser feito antes da ação ou depois dela, depende do comando utilizado.

A linguagem C tem seus comandos de repetição muito bem definidos.

Com o estudo da estrutura de repetição, é possível implementar funções de temporização, de


processamento contínuo e predeterminado de ações e laços de repetição.
Programação de Dispositivos Eletrônicos

Estrutura de Repetição: While


O comando while (enquanto) faz um teste condicional antes da ação e permanece a execução da
mesma enquanto a condição for verdadeira. Segue a sintaxe do comando while utilizado pela
linguagem C.
while (ArvoreDePe)
{
MachadarArvore;
}

Você verificou na mensagem de comando anterior que a condição antecede a ação, isto é, ao ser
executada esta estrutura de repetição, primeiramente será feito o teste.

Se este for verdadeiro, será realizada a ação.

Sequencialmente, será feito o teste novamente e, caso a condição não seja aceita, a ação
também não será realizada.
Programação de Dispositivos Eletrônicos

Estrutura de Repetição: Do...While


O do ... while é outra estrutura de repetição que pode ser utilizada na linguagem de produção C.
Este comando
do
significa faça ... enquanto, ou seja, primeiro faz a ação e depois testa {
a condição que, ao permanecer verdadeira, continua refazendo a ação. MachadarArvore;
Veja, ao lado, a sintaxe do comando do ... while. }while (ArvoreDePe)
Perceba que o comando do antecede o comando while e, por isto, primeiramente será feita a
ação que, no caso, é a de machadar a árvore.

Na sequência, será feito o teste que, se for verdadeiro, fará novamente a ação. Caso seja falso,
sairá deste laço de repetição.
Programação de Dispositivos Eletrônicos

Estrutura de Repetição: For


O comando for (para) é composto de três partes. A primeira é a condição inicial, que é realizada
quando o programa executa este comando.

A segunda é a condição que, se for verdadeira, continuará dentro do comando for.

E a terceira parte geralmente realiza o incremento ou decremento da variável a ser inicializada


pela primeira parte e testada pela segunda condição.

Veja, na sequência, uma apresentação da sintaxe do comando for..

for (variavel8Bits=0;variavel8Bits<3;variavel8Bits++)
{
MachadarArvore;
}
Programação de Dispositivos Eletrônicos

Estrutura de Repetição: For


Na mensagem anterior, você leu que no for (variavel8Bits=0;variavel8Bits<3;variavel8Bits++)
comando for está sendo inicializada a {
variável chamada de variavel8Bits com MachadarArvore;
valor zero. }
Na segunda parte, dentro dos parênteses, está sendo utilizada a condição de que, se a
variável8Bits for menor que três, atenderá esta condição e fará a ação que está disposta dentro
das chaves.

Na terceira parte do comando for está sendo incrementada a variavel8Bits a cada ciclo do laço
de repetição for.

E, quando a condição não for mais aceita, a lógica de programação sairá deste laço.
Programação de Dispositivos Eletrônicos

Estrutura de Repetição: For


O comando for. Entenda!
Certo dia, João estava fazendo os exercícios de linguagem de programação que seu professor
passou durante as aulas de microcontroladores. No entanto, ele não estava entendendo como
utilizar o comando for e pediu ao seu amigo Pedro se poderia auxiliá-lo.
Pedro, muito paciente, resolveu explicar para João como funcionava este comando, ou seja, que
o comando for é dividido em três partes. A primeira é a condição inicial da variável que será
utilizada para iniciar a contagem do comando for.
segunda é a condição em que será realizada a contagem, ou seja, até quando o comando for vai
executar seus comandos e ações.

E, a terceira é o incremento ou decremento da variável, que, quando a condição não for


atingida, continuará a fazer a ação dos comandos que estão dentro das chaves do comando for.
Programação de Dispositivos Eletrônicos

Estrutura de Repetição: For


O comando for. Entenda!
Depois desta explicação, João compreendeu que o comando for é um tipo de programação.
Após entender a lógica de funcionamento do comando for, fez alguns exercícios para validar o
seu aprendizado e acabou por utilizar esta estrutura de repetição em seus programas.
Portanto, as estruturas de repetição servem para a elaboração de lógica e são utilizadas pelos
programadores para que, de formas diferentes, conforme apresentadas (while, for, do...while),
possam atender a necessidade da lógica de programação que será utilizada na solução de
problemas.
As aplicações e utilidades das estruturas de repetição são insubstituíveis dentro das lógicas de
programação em C.
Programação de Dispositivos Eletrônicos

Funções:
Quando o programa necessita fazer a mesma ação diversas vezes, podem ser utilizadas as
funções, ou sub-rotinas.

As funções podem realizar as ações necessárias que o programa pode necessitar, por exemplo,
uma operação de soma e retornar o resultado desta operação.

Além disso, uma função é dividida em variável de retorno, nome da função, variáveis de
entrada de dados para a função e processamento da função.

A mensagem, a seguir, mostra uma função de soma com retorno de resultado e dados a serem
somados.
Programação de Dispositivos Eletrônicos

Funções:
Na mensagem anterior, pode ser observado signed int Somar (signed int A, signed int B)
que existe uma declaração no início da {
função (signed int), que é referente à return A+B;
variável de retorno da função. }
A segunda parte mostra o nome da função (Somar) e, entre parênteses, estão descritas e
declaradas as variáveis de entrada da função (A e B).

Dentro das chaves, existe o processamento da função, que, no caso, é a soma entre A e B.

Você pôde perceber ainda que junto à soma existe um comando de return.
Programação de Dispositivos Eletrônicos

Funções:
Este comando é responsável por retornar o signed int Somar (signed int A, signed int B)
resultado da soma quando esta função é {
chamada. return A+B;
}

Leia, a seguir, um exemplo de utilização desta função.

Resultado=Somar (variavel1, variavel2);

Conforme mostra a mensagem anterior, o resultado entre a soma da variável 1 e a variável 2 é


armazenado na variável resultado.
Programação de Dispositivos Eletrônicos

Funções:
Uma função é um segmento de programa independente, que executa uma tarefa específica

permite separar um programa em blocose/ou evitar a repetição de um mesmo código;

Algumas já conhecidas funções de bibliotecas


Ex.: printf, sqrt, scanf, strcmp

Quando uma função é chamada (evocada) o controle do programa é desviado para a função e
depois volta à instrução seguinte à sua chamada.
Programação de Dispositivos Eletrônicos

Funções:
Uma função recebe parâmetros/argumentos e retorna valores de um tipo determinado.
Sintaxe:
<tipo_retorno><nome_função>(declaração_parâmetros)
{
corpo_da_funçãoe seus comandos;
returnvalor_de_retorno;
}
Exemplo:
float Calcula_volume (float x, float y, float z)
{
floatvolume;
volume=x* y * z;
return volume;
}
Programação de Dispositivos Eletrônicos

Funções de usuário:
As funções ou sub-rotinas personalizadas são chamadas de funções de usuário.

Estas funções são elaboradas de acordo com a necessidade de determinada lógica de


programação, como uma função de espera que aguarde 1 segundo, por exemplo, ou ainda, uma
função que controla um LCD.
Portanto, existem diversos tipos de funções definidas para comandar periféricos ou realizar
processamentos de acordo com a lógica necessária.

No exemplo, ao lado, é apresentado uma função que serve para Void LigarLed (void)
ligar um LED que está conectado à porta A4 do microcontrolador. {
LATAbits.LA4=1;
}
Programação de Dispositivos Eletrônicos

Vetores:
Os vetores de interrupção são destinados a direcionar o software para determinada função, de
acordo com o evento de interrupção.

Por exemplo, o software pode ser direcionado para o vetor de reset (reinício) do programa do
microcontrolador.

O programa pode ser direcionado para o vetor de reinício, caso tenha sido apertado o botão de
reset, ou caso seja realizado um comando de reset via software, por exemplo.

Existe um vetor de interrupção para cada periférico do microcontrolador, como interrupção de


timer, interrupção do conversor analógico/digital e outros.
Programação de Dispositivos Eletrônicos

Vetores:

Para você ampliar seus conhecimentos sobre as funções utilizadas por um software de
programação de microcontroladores, consulte o manual de programação do fabricante
do compilador XC8 no seguinte endereço: [Link]
Programação de Dispositivos Eletrônicos

Vetores:
De acordo com a necessidade do programa, podem ser desenvolvidas as funções que auxiliam
na solução do problema como um todo.

As funções armazenam uma estrutura de códigos que funciona como uma inteligência para
tratar dos problemas relacionados à aplicação à qual estão submetidas.

Programadas por técnicos e programadores que conhecem a lógica da programação e a


aplicação em que o sistema está inserido, é possível chamar as funções especiais de interrupção
para atuar no programa com prioridade, ou seja, interrompendo o fluxo normal do programa e
direcionando o código para ações mais imprescindíveis.
Programação de Dispositivos Eletrônicos

Ponteiro:
A utilização de ponteiros em linguagem C é uma das características que tornam a linguagem tão
flexível e poderosa.

É um tipo de variável que armazena o endereço de memória de uma outra variável. Ele são
muito usados dentro da linguagem C.

Dizemos que um ponteiro “aponta” para uma variável quando contém o endereço da mesma.

Os ponteiros podem apontar para qualquer tipo de variável. Portanto temos ponteiros para int,
float, double, etc.
Programação de Dispositivos Eletrônicos

Ponteiro:
Ponteiros são muito úteis quando uma variável tem que ser acessada em diferentes partes de um
programa.
Neste caso, o código pode ter vários ponteiros espalhados por diversas partes do programa,
“apontando” para a variável que contém o dado desejado.
Caso este dado seja alterado, não há problema algum, pois todas as partes do programa tem um
ponteiro que aponta para o endereço onde reside o dado atualizado.
Existem várias situações onde ponteiros são úteis, por exemplo:

Alocação dinâmica de memória


Manipulação de arrays.
Para retornar mais de um valor em uma função.
Referência para listas, pilhas, árvores e grafos.
Programação de Dispositivos Eletrônicos

Ponteiro:
tipo *nome_ponteiro

Onde temos:

tipo : é o tipo de dado da variável cujo endereço o ponteiro armazena.

*nome_ponteiro : O nome da variável ponteiro.

O asterisco * neste tipo de declaração determina que a variável será um ponteiro.

Exemplo de declaração de ponteiro:

int *ptr;
Programação de Dispositivos Eletrônicos

Recapitulando:
Até o momento, vimos que a linguagem de programação é fundamental na solução de
problemas computacionais e que podem ser inseridas em componentes inteligentes, como é o
caso dos microcontroladores.

Por isto, foram apresentados os conceitos básicos de programação de uma linguagem de alto
nível, em que tomadas de decisão e estruturas de repetição se fazem necessárias para a
realização de lógicas digitais.
É importante ressaltar que a programação de diversas lógicas utiliza também as variáveis, que
possuem características adequadas para cada tipo de dado a ser processado.
E, dentro destes processamentos, as ações de uma determinada máquina ou equipamento
podem ser organizadas em funções, ou sub-rotinas. Com isso, é possível se obter a cadeia de
funções necessárias para todo o funcionamento do sistema eletrônico.
Programação de Dispositivos Eletrônicos

Recapitulando:
Diante destes conhecimentos, cita-se inúmeros equipamentos que utilizam os
microcontroladores para realizar determinadas funções, como o micro-ondas, a máquina de
lavar roupa, o televisor, o automóvel e outros dispositivos, máquinas e meios de transporte que
necessitam de processamento da eletrônica de controle ou processamento da eletrônica de
potência para realizar sua aplicação.

É importante ressaltar que as diversas funções de uma máquina estabelecem seu funcionamento
e a capacidade em executar os processos de forma rápida e eficaz, consumindo menor matéria-
prima e energia elétrica, além de preservar os recursos aturais.
Obrigado!

Você também pode gostar