Aula Publicidade e propaganda
Por: srlucas300 • 20/4/2015 • Artigo • 1.386 Palavras (6 Páginas) • 179 Visualizações
[pic 1][pic 2]
[pic 3]
Contador de 0 a 9 com display 7-segmentos
Esta atividade contempla a utilização do display de 7-segmentos para o desenvolvimento de um contador de 0 a 9 com as seguintes funcionalidades:
- Contagem de 0 a 9;
- Contagem crescente a cada 2 segundos (por tempo);
- Observe o circuito abaixo:
[pic 4][pic 5]
[pic 6]
Figura 4.1 – Acionamento do display 7-segmentos
Sendo os segmentos do display do circuito da figura 4.1. acionados com nível lógico 1, examine a tabela 7.1 do referencial teórico (página 61) e responda:
Qual comando fará com que o display exiba o número 0?
Resposta: P0=63;
[pic 7]
Observação: Utilizar apenas os comandos de manipulação do Port inteiro (acesso ao Byte), e não o comando de acionamento de pino individual.
4.1. Qual comando fará com que o display exiba o número 1?
4.2. Qual comando fará com que o display exiba o número 2?
4.3. Qual comando fará com que o display exiba o número 3?
4.4. Qual comando fará com que o display exiba o número 4?
4.5. Qual comando fará com que o display exiba o número 5?
4.6. Qual comando fará com que o display exiba o número 6?
4.7. Qual comando fará com que o display exiba o número 7?
4.8. Qual comando fará com que o display exiba o número 8?
4.9. Qual comando fará com que o display exiba o número 9?
4.10. Note que além de ativar os segmentos do display, é necessário acionar o pino comum do display, o qual está conectado à um transistor PNP. Qual comando fará saturar o transistor PNP (ativa em nível lógico baixo) e acionar o display de 7-segmentos?
[pic 8]
Observação: Utilizar os comandos de acionamento de pino individual. Exemplo: P2_0=0;
- Observe o trecho de programa abaixo.
[pic 9]
#include
#include
void main(){
char unidade=0;
P2_0=...; //ativa display da unidade
P0=63; //exibe 0 no display
delay_ms(2000); //aguarda 2 segundos
}
O programa anterior consiste numa dica para a próxima atividade. Observe que o comando “P2_0=...;” está incompleto, pois os pontinhos devem ser substituídos pelo comando que corresponda ao comentário, o qual foi respondido na questão 4.10.
Digite e compile o programa no JFE Editor. Em seguida grave-o no microcontrolador para observar o seu funcionamento.
Cole aqui o código fonte do seu programa.
- Elabore um programa para o circuito da fig. 4.1 que funcione como contador de 0 a 9, com incremento da contagem a cada 2 segundos.
5. Empregue a estrutura de repetição citada no referencial teórico (8051 Teoria - pág. 54) para que o programa execute eternamente.
Cole aqui o código fonte do seu programa.
- Note que o programa anterior está limitado a uma única funcionalidade. Por exemplo, para criar um contador decrescente seria necessário recriar o mesmo programa, invertendo-se a ordem numérica. No entanto, o programa ainda é limitado a exibição de números estáticos. Para torna-lo realmente útil, o programa deve ser capaz de exibir informações dinâmicas, como por exemplo, o valor de uma variável, independentemente do seu valor. A proposta a seguir é exibir no display de 7-segmentos o conteúdo da variável contagem empregando a estrutura if ilustrada a seguir:
[pic 10]
#include
#include
int contagem=0;
void main(){[pic 11]
ativa pino comum do display;
while(1){[pic 12]
if(contagem==0) P0=63; //exibe 0 no display;
if(contagem==1) ... //exibe 1 no display;
if(contagem==2) ... //exibe 3 no display;
if(contagem==3) ... //exibe 4 no display;
... demais condições;
... //aguarda por 2 segundos;
... //incrementa a variável contagem;
}
}
- Note que no programa anterior, o contador aparentemente, conta até 9. Na verdade, a variável contagem continua incrementando, embora não seja possível visualiza no display. Isto ocorre por que após a variável contagem atingir o valor 10, nenhuma condição if é satisfeita e, portanto, o display não é mais atualizado. Empregue a estrutura de controle if-else para que o contador execute a transição de 9 para zero e reinicie a contagem. Ou seja, se a contagem for menor que 9 incrementa a contagem, senão, retorna a zero.
[pic 13]
- De acordo com o livro 8051 Teoria (página 32), a linguagem C oferece diversos tipos de dados para que o programador faça o melhor uso da memória quanto lhe for possível.
No trecho de programa do capítulo 3 desta atividade foi declarada uma variável do tipo:
char unidade=0;
...