Академический Документы
Профессиональный Документы
Культура Документы
br
Prtica 3
Contador de 0 a 9 com display 7-segmentos
Esta atividade contempla a utilizao 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);
(seg.a) (seg.a) (seg.b) (seg.b) (seg.c) (seg.c) (seg.d) (seg.d) (seg.e) (seg.e) (seg.f) (seg.f) (seg.g) (seg.g)
c omum
www.u8051.com.br
Sendo os segmentos do display do circuito da figura 4.1. acionados com nvel lgico 1, examine a tabela 7.1 do referencial terico (pgina 61) e responda: Qual comando far com que o display exiba o nmero 0? Resposta: P0=63;
Observao: Utilizar apenas os comandos de manipulao do Port inteiro (acesso ao Byte), e no o comando de acionamento de pino individual.
o o o o o o o o o
o o o o o o o o o
1? 2? 3? 4? 5? 6? 7? 8? 9?
4.10. Note que alm de ativar os segmentos do display, necessrio acionar o pino comum do display, o qual est conectado um transistor PNP. Qual comando far saturar o transistor PNP (ativa em nvel lgico baixo) e acionar o display de 7-segmentos?
Observao: Utilizar os comandos de acionamento de pino individual. Exemplo: P2_0=0;
www.u8051.com.br
//ativa display da unidade //exibe 0 no display //aguarda 2 segundos
O programa anterior consiste numa dica para a prxima atividade. Observe que o comando P2_0=...; est incompleto, pois os pontinhos devem ser substitudos pelo comando que corresponda ao comentrio, o qual foi respondido na questo 4.10. Digite e compile o programa no JFE Editor. Em seguida grave-o no microcontrolador para observar o seu funcionamento.
Cole aqui o cdigo fonte do seu programa.
4. 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 repetio citada no referencial terico (8051 Teoria - pg. 54) para que o programa execute eternamente.
Cole aqui o cdigo fonte do seu programa.
6. Para otimizar o cdigo fonte e torn-lo til noutras aplicaes que necessitem do display de 7-segmentos, reescreva o programa do contador de 0 a 9 com incremento a cada 2 segundos empregando a estrutura de repetio if ilustrada a seguir:
#include <at89x52.h> #include <delay.h> int contagem=0; void main(){ ativa pino comum do display;
www.u8051.com.br
while(1){ if(condicao) if(condicao) if(condicao) if(condicao) P0=63; ... ... ... //envia //envia //envia //envia 0 1 2 3 para para para para os os os os segmentos; segmentos; segmentos; segmentos;
... demais condies; ... ... } } //aguarda por 2 segundos; //incrementa a varivel contagem;
7. Note que no programa anterior, o contador aparentemente, conta at 9. Na verdade, a varivel contagem continua incrementando, embora no seja possvel visualiza no display. Isto ocorre por que aps a varivel contagem atingir o valor 10, nenhuma condio if satisfeita e, portanto, o display no mais atualizado. Empregue a estrutura de controle if-else para que o contador execute a transio de 9 para zero e reinicie a contagem.
Se voc no dispe do CD-ROM de estudos, poder conferir esta atividade em videoaula acessando o seguinte canal do YouTube:
HTTP://www.youtube.com/user/cmg3k1#p/u/3/lWFjB0x8siw 8. De acordo com o livro 8051 Teoria (pgina 32), a linguagem C oferece diversos tipos de dados para que o programador faa o melhor uso da memria quanto lhe for possvel. No trecho de programa do captulo 3 desta atividade foi declarada uma varivel do tipo: unsigned char unidade=0; Ento pergunta-se:
a.
O tipo desta varivel (acima, em negrito) a que melhor otimiza o uso da memria do 8051?
www.u8051.com.br b. Existe algum outro tipo de declarao de varivel, que neste caso ofereceria otimizao similar ou melhor de memria RAM do que a unsigned char? Qual? c.
Que outros tipos de variveis funcionariam neste programa? Cite um exemplo e mencione tambm, se haveria alguma vantagem ou desvantagem.
O desenvolvimento desta atividade ser utilizado como base para a prxima atividade. Nos captulos 5 e 6 - questo 10 deste livro possvel encontrar uma dica para as atividades deste captulo confira!