SlideShare uma empresa Scribd logo
1 de 7
www.u8051.com.br
Contador com 2 displays 7-segmentos multiplexado
Esta atividade contempla a utilização 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 através das teclas P3.0 e P3.1 (por
pulso);
 Função de zerar a contagem através de P3.2.
Observe o circuito abaixo:
Prática 6
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)
comum
www.u8051.com.br
Figura 1.1 – Acionamento do display 7-segmentos multiplexado
No circuito da figura 1.1 note que os displays estão com os pinos dos segmentos
interligados (A, B, C, D, E, F e G). Aparentemente, este tipo de ligação fará
com que ambos displays exibam a mesma informação, e numa primeira
impressão seria impossível 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 técnica da multiplexação, empregada neste circuito consiste
em ativar apenas um display de cada vez, numa alternância tão rápida entre o
acionamento do display da unidade e o display da dezena, dando a impressão de
estão acionados ao mesmo tempo.
Sobre o circuito 1.1 responda:
Os transistores PNP controladores de cada display são acionados em nível
lógico 0, ou seja, quando a entrada do transistor (base) receber 0 através 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?
4. Para desativar o display da dezena, O comando a ser executado pelo 8051 é:
Dica: Algumas das respostas da atividade a seguir já foram
desenvolvidas na Aula 09 (Prática 3 - Contador de 0 a 9).
www.u8051.com.br
5. Conforme o livro 8051 – Teoria (página 61) o comando de acesso ao Byte
que fará o display exibir o número 1 é:
6. Para exibir o número 5, o microcontrolador deverá executar o seguinte
comando:
A seguir temos o esboço de um programa que exibe o número 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?
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.
www.u8051.com.br
10. Experimente modificar o programa para exibir números diferentes.
Observe que a multiplexação produz a rápida alternância entre os displays,
permitindo que sejam exibidos números diferentes, mesmo quando os
segmentos estiverem em interligados (em paralelo).
11. Supondo que o programa tenha uma variável int contagem=12; determine a
equação para extrair quantidade de dezenas da variável contagem:
int dezena= / ;
12. Agora determine a equação para extrair a quantidade de unidades da
variável contagem.
Dica: Para exibir o número 12 é necessário extrair o número 1 e exibi-lo no
display da dezena e extrair o número 2 para exibi-lo no display da unidade.
Para extrair o número 2 temos que subtrair a quantidade de dezenas no valor
total.
Exemplo: unidade: 12 – 10 = 2;
unidade=contagem-(...*...);
13. Determine uma equação para obter o número de unidades a partir de um
número 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= //equação 2.1.1;
A quantidade de unidades de um número entre 0 e 99 e dada pelo seu
valor total subtraído da sua quantidade de dezenas vezes 10.
Importante: Lembre-se de salvar o desenvolvimento das suas
atividades periodicamente e evite a perda do seu trabalho!
www.u8051.com.br
unidade= //equação 2.1.2;
if(dezena==0) envia 0 para os segmentos;
... demais condições;
liga display da unidade;
delay_ms(3);
desliga display da unidade;
if(unidade==0) envia 0 para os segmentos;
... demais condições;
liga display da dezena;
delay_ms(3);
desliga display da dezena;
}
}
14. Se o programa anterior estivesse completo, qual número 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 variável
unidade e variável 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 relação ao primeiro programa: Agora é possível exibir qualquer
valor no display, bastando apenas modificar a variável contagem.
17. Tendo em vista que os comandos do seu programa destinam-se ao
acionamento dos displays, transforme-os numa função chamada exibe()
para melhorar a organização do seu programa conforme o modelo a seguir:
#include <at89x52.h>
#include<delay.h>
int contagem=45;
void exibe(int valor){
int dezena=valor/10; //equação 2.1.1;
int unidade=; //equação 2.1.2;
if(dezena==0) envia 0 para os segmentos;
... demais condições;
liga display da unidade;
delay_ms(3);
www.u8051.com.br
desliga display da unidade;
if(unidade==0) envia 0 para os segmentos;
... demais condições;
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, invés de exibe um número fixo, modifique o programa para
incrementar a contagem quando você pressionar e soltar a tecla P3.0.
Note que essa função 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 função de decrementar a contagem é
realizada pela tecla CONTAGEM-- do mesmo circuito (figura 4.2).
20. Insira o recurso de zerar a contagem, caso P3.2 seja pressionada.
21. Se o programador não empregasse a técnica da multiplexação 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 técnica da multiplexação reduz o consumo de energia do circuito?
23. Que conclusão você obteve sobre a técnica da multiplexação?
www.u8051.com.br
desliga display da unidade;
if(unidade==0) envia 0 para os segmentos;
... demais condições;
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, invés de exibe um número fixo, modifique o programa para
incrementar a contagem quando você pressionar e soltar a tecla P3.0.
Note que essa função 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 função de decrementar a contagem é
realizada pela tecla CONTAGEM-- do mesmo circuito (figura 4.2).
20. Insira o recurso de zerar a contagem, caso P3.2 seja pressionada.
21. Se o programador não empregasse a técnica da multiplexação 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 técnica da multiplexação reduz o consumo de energia do circuito?
23. Que conclusão você obteve sobre a técnica da multiplexação?

Mais conteúdo relacionado

Mais procurados (16)

HP-12c -aula1
HP-12c -aula1HP-12c -aula1
HP-12c -aula1
 
Ecasio
EcasioEcasio
Ecasio
 
Capítulo i da calcu hp
Capítulo i da calcu hpCapítulo i da calcu hp
Capítulo i da calcu hp
 
Aprenda a usar a HP-12C
Aprenda a usar a HP-12CAprenda a usar a HP-12C
Aprenda a usar a HP-12C
 
Cálculo numérico
Cálculo numéricoCálculo numérico
Cálculo numérico
 
Calculo numerico
Calculo numerico Calculo numerico
Calculo numerico
 
Winplot2
Winplot2Winplot2
Winplot2
 
Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2Algoritmos resolvidos lista 2
Algoritmos resolvidos lista 2
 
Mathematics para android
Mathematics para androidMathematics para android
Mathematics para android
 
Calculadora82ms
Calculadora82msCalculadora82ms
Calculadora82ms
 
Conhecendo a sua hp 12c
Conhecendo a sua hp 12cConhecendo a sua hp 12c
Conhecendo a sua hp 12c
 
FORTRAN 90 - Calculos numericos
FORTRAN 90 - Calculos numericosFORTRAN 90 - Calculos numericos
FORTRAN 90 - Calculos numericos
 
Tutorial Básico - Arena II
Tutorial Básico - Arena IITutorial Básico - Arena II
Tutorial Básico - Arena II
 
Cassio manual
Cassio manualCassio manual
Cassio manual
 
Hp1
Hp1Hp1
Hp1
 
Microcontroladores PIC - Interface com displays de 7 segmentos
Microcontroladores PIC - Interface com displays de 7 segmentosMicrocontroladores PIC - Interface com displays de 7 segmentos
Microcontroladores PIC - Interface com displays de 7 segmentos
 

Semelhante a Aula 13

Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlabblogmaxima
 
Enunciado Trabalho Preparacao Lcd
Enunciado Trabalho Preparacao LcdEnunciado Trabalho Preparacao Lcd
Enunciado Trabalho Preparacao Lcdguest03f5c12
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introduçãoRicardo Fahham
 
Algoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptAlgoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptRobertoPereiradePaiv
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 
Curso De Algoritmo Aula 8
Curso De Algoritmo   Aula 8Curso De Algoritmo   Aula 8
Curso De Algoritmo Aula 8Felipe Santos
 
Desafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleDesafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleNatã Barbosa
 
Matematica financeira fn1200 c
Matematica financeira fn1200 cMatematica financeira fn1200 c
Matematica financeira fn1200 cMarília Maciel
 
Manual proteus labcenter (portugues)
Manual proteus labcenter (portugues)Manual proteus labcenter (portugues)
Manual proteus labcenter (portugues)Gabriel Martins
 
Introdução ao gpm(soft) clp metaltex
Introdução ao gpm(soft) clp metaltexIntrodução ao gpm(soft) clp metaltex
Introdução ao gpm(soft) clp metaltexIsraelsidepar
 
Funções básicas da hp 12 c
Funções básicas da hp 12 cFunções básicas da hp 12 c
Funções básicas da hp 12 crazonetecontabil
 
Fx 82 sx-220plus pt
Fx 82 sx-220plus ptFx 82 sx-220plus pt
Fx 82 sx-220plus ptthecar1992
 

Semelhante a Aula 13 (20)

Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlab
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Enunciado Trabalho Preparacao Lcd
Enunciado Trabalho Preparacao LcdEnunciado Trabalho Preparacao Lcd
Enunciado Trabalho Preparacao Lcd
 
Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 
Algoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptAlgoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.ppt
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 
Rs logix 5000
Rs logix 5000Rs logix 5000
Rs logix 5000
 
ARDUINO PRIMEIROS PASSOS
ARDUINO  PRIMEIROS PASSOSARDUINO  PRIMEIROS PASSOS
ARDUINO PRIMEIROS PASSOS
 
Calculo numérico
Calculo numéricoCalculo numérico
Calculo numérico
 
Curso De Algoritmo Aula 8
Curso De Algoritmo   Aula 8Curso De Algoritmo   Aula 8
Curso De Algoritmo Aula 8
 
Apostila clp cefet sp
Apostila clp   cefet spApostila clp   cefet sp
Apostila clp cefet sp
 
Desafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleDesafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - Joinville
 
Matematica financeira fn1200 c
Matematica financeira fn1200 cMatematica financeira fn1200 c
Matematica financeira fn1200 c
 
Hp 9s-pt
Hp 9s-ptHp 9s-pt
Hp 9s-pt
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Manual proteus labcenter (portugues)
Manual proteus labcenter (portugues)Manual proteus labcenter (portugues)
Manual proteus labcenter (portugues)
 
Introdução ao gpm(soft) clp metaltex
Introdução ao gpm(soft) clp metaltexIntrodução ao gpm(soft) clp metaltex
Introdução ao gpm(soft) clp metaltex
 
Funções básicas da hp 12 c
Funções básicas da hp 12 cFunções básicas da hp 12 c
Funções básicas da hp 12 c
 
aula_03.pdf
aula_03.pdfaula_03.pdf
aula_03.pdf
 
Fx 82 sx-220plus pt
Fx 82 sx-220plus ptFx 82 sx-220plus pt
Fx 82 sx-220plus pt
 

Aula 13

  • 1. www.u8051.com.br Contador com 2 displays 7-segmentos multiplexado Esta atividade contempla a utilização 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 através das teclas P3.0 e P3.1 (por pulso);  Função de zerar a contagem através de P3.2. Observe o circuito abaixo: Prática 6 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) comum
  • 2. www.u8051.com.br Figura 1.1 – Acionamento do display 7-segmentos multiplexado No circuito da figura 1.1 note que os displays estão com os pinos dos segmentos interligados (A, B, C, D, E, F e G). Aparentemente, este tipo de ligação fará com que ambos displays exibam a mesma informação, e numa primeira impressão seria impossível 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 técnica da multiplexação, empregada neste circuito consiste em ativar apenas um display de cada vez, numa alternância tão rápida entre o acionamento do display da unidade e o display da dezena, dando a impressão de estão acionados ao mesmo tempo. Sobre o circuito 1.1 responda: Os transistores PNP controladores de cada display são acionados em nível lógico 0, ou seja, quando a entrada do transistor (base) receber 0 através 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? 4. Para desativar o display da dezena, O comando a ser executado pelo 8051 é: Dica: Algumas das respostas da atividade a seguir já foram desenvolvidas na Aula 09 (Prática 3 - Contador de 0 a 9).
  • 3. www.u8051.com.br 5. Conforme o livro 8051 – Teoria (página 61) o comando de acesso ao Byte que fará o display exibir o número 1 é: 6. Para exibir o número 5, o microcontrolador deverá executar o seguinte comando: A seguir temos o esboço de um programa que exibe o número 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? 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.
  • 4. www.u8051.com.br 10. Experimente modificar o programa para exibir números diferentes. Observe que a multiplexação produz a rápida alternância entre os displays, permitindo que sejam exibidos números diferentes, mesmo quando os segmentos estiverem em interligados (em paralelo). 11. Supondo que o programa tenha uma variável int contagem=12; determine a equação para extrair quantidade de dezenas da variável contagem: int dezena= / ; 12. Agora determine a equação para extrair a quantidade de unidades da variável contagem. Dica: Para exibir o número 12 é necessário extrair o número 1 e exibi-lo no display da dezena e extrair o número 2 para exibi-lo no display da unidade. Para extrair o número 2 temos que subtrair a quantidade de dezenas no valor total. Exemplo: unidade: 12 – 10 = 2; unidade=contagem-(...*...); 13. Determine uma equação para obter o número de unidades a partir de um número 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= //equação 2.1.1; A quantidade de unidades de um número entre 0 e 99 e dada pelo seu valor total subtraído da sua quantidade de dezenas vezes 10. Importante: Lembre-se de salvar o desenvolvimento das suas atividades periodicamente e evite a perda do seu trabalho!
  • 5. www.u8051.com.br unidade= //equação 2.1.2; if(dezena==0) envia 0 para os segmentos; ... demais condições; liga display da unidade; delay_ms(3); desliga display da unidade; if(unidade==0) envia 0 para os segmentos; ... demais condições; liga display da dezena; delay_ms(3); desliga display da dezena; } } 14. Se o programa anterior estivesse completo, qual número 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 variável unidade e variável 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 relação ao primeiro programa: Agora é possível exibir qualquer valor no display, bastando apenas modificar a variável contagem. 17. Tendo em vista que os comandos do seu programa destinam-se ao acionamento dos displays, transforme-os numa função chamada exibe() para melhorar a organização do seu programa conforme o modelo a seguir: #include <at89x52.h> #include<delay.h> int contagem=45; void exibe(int valor){ int dezena=valor/10; //equação 2.1.1; int unidade=; //equação 2.1.2; if(dezena==0) envia 0 para os segmentos; ... demais condições; liga display da unidade; delay_ms(3);
  • 6. www.u8051.com.br desliga display da unidade; if(unidade==0) envia 0 para os segmentos; ... demais condições; 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, invés de exibe um número fixo, modifique o programa para incrementar a contagem quando você pressionar e soltar a tecla P3.0. Note que essa função 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 função de decrementar a contagem é realizada pela tecla CONTAGEM-- do mesmo circuito (figura 4.2). 20. Insira o recurso de zerar a contagem, caso P3.2 seja pressionada. 21. Se o programador não empregasse a técnica da multiplexação 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 técnica da multiplexação reduz o consumo de energia do circuito? 23. Que conclusão você obteve sobre a técnica da multiplexação?
  • 7. www.u8051.com.br desliga display da unidade; if(unidade==0) envia 0 para os segmentos; ... demais condições; 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, invés de exibe um número fixo, modifique o programa para incrementar a contagem quando você pressionar e soltar a tecla P3.0. Note que essa função 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 função de decrementar a contagem é realizada pela tecla CONTAGEM-- do mesmo circuito (figura 4.2). 20. Insira o recurso de zerar a contagem, caso P3.2 seja pressionada. 21. Se o programador não empregasse a técnica da multiplexação 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 técnica da multiplexação reduz o consumo de energia do circuito? 23. Que conclusão você obteve sobre a técnica da multiplexação?