Você está na página 1de 5

Prof.

Pedro Cardozo Júnior


Displays de 7 segmentos e entradas digitais
Linguagem C
Estrutura
Control Structures

if (conditional) and = =, ! =, <, > (comparison operators)

if / else

Exemplo:

if (unidade < 500)
{
// do Thing A
}
else if (unidade > = 1000)
{
// do Thing B
}
else
{
// do Thing C
}

for statements

Sintax:
for (initialization; condition; increment)
{
//statement(s);
}
Exemplo:

for (vezes = 0; vezes < 4; vezes + + )


{
PORTD = B11111100; //Uno
delay (250);
PORTD = 0;
delay (250);
}

Boolean Operators
&& (AND): Operação lógica E.
|| (OR): Operação lógica OU.
! (NOT): Operação lógica inversora.

Exemplo:
...
if ( (digitalRead (buttonPin0) = = HIGH) & & (digitalRead (buttonPin1) = = LOW ) )
{
...
}
...

Compound Operators

+ + (incremento)
– – (decremento)
+ = (compound addition) → Exemplo: x + = y; // equivalente à expressão x = x + y;
– = (compound subtraction)
* = (compound multiplication)
/ = (compound division)
& = (compound bitwise and) → Exemplo: x & = y; // equivalente à x = x & y;
| = (compound bitwise or)
Variables
Data Types

boolean:
Uma variável booleana retém um de dois valores, true or false. (cada variável booleana ocupa um byte na
memória)

Exemplo:
boolean buttonState = false; // variable for reading the pushbutton status

array:
Um vetor é uma coleção de variáveis que podem ser acessadas com um ponteiro.

Exemplo:
unsigned char myDisp [ 4 ] = { 0b11111100, 0b01100000, 0b11011010, 0b11110010 };
Exercício 1: Fazer um programa para deslocar apenas um bit “1” em torno do display de 7 segmentos no
sentido horário, com intervalos de 500ms . Não permitir que os segmentos “g” e “dp” acendam.
Obs: fazer fluxograma!

Figura 1: montagem para os exercícios 1 e 2 (Uno).


Exercício 2: (Arduino Mega 2560) Fazer um programa para verificar um botão ligado ao pino 53 (PORTB 0).
Quando o botão for pressionado deslocar apenas um bit “1” em torno do display de 7 segmentos no sentido
horário. Quando o botão for solto nada deve acontecer. Não permitir que os segmentos “g” e “dp” acendam.
Deve-se prever um debounce de 40ms para acionamento do botão e de 30 ms para soltar o botão.
Obs: fazer fluxograma! Fazer a simulação passo a passo antes de programar o Microcontrolador.
Para o Arduino Uno: botão ligado ao pino 8 (PORTB 0) e o display deve ser ligado ao PORTD.

5V

Arduino
Uno

9 (PB1)

8 (PB0)

10K 10K

Figura 2: Montagem para os exercícios 2 (Uno)