Sei sulla pagina 1di 7

www.u8051.com.

br

Prtica 6
Contador com 2 displays 7-segmentos multiplexado

Esta atividade contempla a utilizao do display de 7-segmentos para o desenvolvimento de um contador de 0 a 99 com as seguintes funcionalidades:

Contagem de 0 a 99; Contagem crescente e decrescente atravs das teclas P3.0 e P3.1 (por pulso); Funo de zerar a contagem atravs de P3.2. Observe o circuito abaixo:

P0.0 (seg.a) P0.1 (seg.b) P0.2 (seg.c) P0.3 (seg.d) P0.4 (seg.e) P0.5 (seg.f) P0.6 (seg.g)

www.u8051.com.br

Figura 1.1 Acionamento do display 7-segmentos multiplexado

No circuito da figura 1.1 note que os displays esto com os pinos dos segmentos interligados (A, B, C, D, E, F e G). Aparentemente, este tipo de ligao far com que ambos displays exibam a mesma informao, e numa primeira impresso seria impossvel exibir valores diferentes em cada display. Entretanto, observe que o pino COMUM de cada display conectado nos pinos P2.0 e P2.1, permitindo ao 8051 controlar o acionamento de cada display individualmente. A tcnica da multiplexao, empregada neste circuito consiste em ativar apenas um display de cada vez, numa alternncia to rpida entre o acionamento do display da unidade e o display da dezena, dando a impresso de esto acionados ao mesmo tempo.
Dica: Algumas das respostas da atividade a seguir j foram desenvolvidas na Aula 09 (Prtica 3 - Contador de 0 a 9).

Sobre o circuito 1.1 responda: Os transistores PNP controladores de cada display so acionados em nvel lgico 0, ou seja, quando a entrada do transistor (base) receber 0 atravs do pino do microcontrolador, o respectivo display ser acionado. 1. Portanto, o comando que acionar o display da unidade : 2. O comando que acionar o display da dezena :
3. Para desativar o display da unidade, Qual comando dever ser executado pelo 8051?

www.u8051.com.br 4. Para desativar o display da dezena, O comando a ser executado pelo 8051 : 5. Conforme o livro 8051 Teoria (pgina 61) o comando de acesso ao Byte que far o display exibir o nmero 1 : 6. Para exibir o nmero 5, o microcontrolador dever executar o seguinte comando:

A seguir temos o esboo de um programa que exibe o nmero 51 nos displays:


#include <at89x52.h> #include <delay.h> void main(){

while(1){ envia o comando para exibir o digito 1 no display da unidade; liga display da unidade; delay_ms(3); desliga display da unidade; envia o comando para exibir o digito 5 no display da dezena; liga display da dezena; delay_ms(3); desliga display da dezena; } }

7. Com base no circuito da figura 1.1, reescreva o programa acima totalmente na linguagem C.

8. O que faz o programa que voc acabou de escrever?

www.u8051.com.br 9. Digite o programa no JFE Editor e salve-o como MULTIPLEX.C e em seguida, grave-o no microcontrolador para verificar o seu funcionamento.

10. Experimente modificar o programa para exibir nmeros diferentes. Observe que a multiplexao produz a rpida alternncia entre os displays, permitindo que sejam exibidos nmeros diferentes, mesmo quando os segmentos estiverem em interligados (em paralelo).
11. Supondo que o programa tenha uma varivel int contagem=12; determine a equao para extrair quantidade de dezenas da varivel contagem:

int dezena=

Importante: Lembre-se de salvar o desenvolvimento das suas atividades 12. Agora determine a equao para extrair a quantidade de periodicamente e evite a perda do seu trabalho! unidades da varivel contagem.

Dica: Para exibir o nmero 12 necessrio extrair o nmero 1 e exibi-lo no display da dezena e extrair o nmero 2 para exibi-lo no display da unidade. A quantidade de unidades de um nmero entre 0 e 99 e dada pelo seu valor total subtrado da sua quantidade de dezenas vezes 10. Para extrair o nmero 2 temos que subtrair a quantidade de dezenas no valor total. Exemplo: unidade: 12 10 = 2; unidade=contagem-(...*...);

13. Determine uma equao para obter o nmero de unidades a partir de um nmero qualquer compreendido entre 0 e 99.

unidade= Observe o programa a seguir:

#include <at89x52.h> int contagem=0; int dezena=0; int unidade=0; void main(){ while(1){ contagem=45; dezena= unidade=

www.u8051.com.br

//equao 2.1.1; //equao 2.1.2;

if(dezena==0) envia 0 para os segmentos; ... demais condies; liga display da unidade; delay_ms(3); desliga display da unidade; if(unidade==0) envia 0 para os segmentos; ... demais condies; liga display da dezena; delay_ms(3); desliga display da dezena; } }

14. Se o programa anterior estivesse completo, qual nmero seria exibido nos displays de 7-segmentos quando o 8051 executar este programa? 15. Com base no circuito 1.1, reescreva o programa acima totalmente na linguagem C e complete todas as possibilidades para os testes da varivel unidade e varivel dezena. 16. Digite o programa no JFE Editor e salve-o como MULTIPLEX2.C e em seguida, grave-o no microcontrolador para verificar o seu funcionamento.

Observe que o programa que voc acabou de criar apresenta uma grande vantagem com relao ao primeiro programa: Agora possvel exibir qualquer valor no display, bastando apenas modificar a varivel contagem.
17. Tendo em vista que os comandos do seu programa destinamse ao acionamento dos displays, transforme-os numa funo chamada exibe() para melhorar a organizao do seu programa conforme o modelo a seguir:

www.u8051.com.br
#include <at89x52.h> #include<delay.h> int contagem=45; void exibe(int valor){ int dezena=valor/10; int unidade=;

//equao 2.1.1; //equao 2.1.2;

if(dezena==0) envia 0 para os segmentos; ... demais condies; liga display da unidade; delay_ms(3); desliga display da unidade; if(unidade==0) envia 0 para os segmentos; ... demais condies; liga display da dezena; delay_ms(3); desliga display da dezena; } void main(){ while(1){ exibe(contagem); } }

Digite o programa no JFE Editor e salve-o como MULTIPLEX3.C e em seguida, grave-o no microcontrolador para verificar o seu funcionamento.
18. Agora, invs de exibe um nmero fixo, modifique o programa para incrementar a contagem quando voc pressionar e soltar a tecla P3.0. Note que essa funo de incrementar a contagem realizada pela tecla CONTAGEM++ do circuito da figura 4.2. 19. Acrescente o recurso que permita decrementar a contagem ao pressionar e soltar a tecla P3.1. Note que essa funo de decrementar a contagem realizada pela tecla CONTAGEM-- do mesmo circuito (figura 4.2).

www.u8051.com.br 20. Insira o recurso de zerar a contagem, caso P3.2 seja pressionada. 21. Se o programador no empregasse a tcnica da multiplexao para implementar o contador de 0 a 99, quantos pinos do 8051 deveriam ser dedicados esta finalidade?

22. Sabendo que apenas um display est ativado por vez, seria correto afirmar que a tcnica da multiplexao reduz o consumo de energia do circuito?
23. Que concluso voc obteve sobre a tcnica da multiplexao?

Potrebbero piacerti anche