Projeto 487 Roleta Digital

19/07/2015 14:01

 

DIGITAL ROULETTE.

 

Com este Projeto você pode fazer uma roda de roleta digital. A chave S1 atua como disparadora e S2 como chave de parada.

Enquanto o programa está “rodando”, pressione S1 e a roleta começa a mostrar números em hexadecimal; 1, 2, 3, ..., 9, A, B, C, D, E, F. A qualquer momento pressione S2 e os números mostrados no display de LED de 7 segmentos começam a aparecer mais lentamente, gradualmente, e eventualmente pára em um certo número.

Descrições:

Este programa adota uma técnica de programação interessante para gradualmente desacelerar a rotação dos números. Vamos observá-la. A chave para entender este programa é o registrador B; ele é usado como um indicador e como contador. Veja o fluxograma anexo. O registrador B é inicialmente configurado com zero. Após a chave disparadora S1ser pressionada, o fluxo do programa faz mostrar o número através do endereçamento indireto em #05, seguido por um som de beep “Mi”, para simular o ruído de “impulsionamento” da roda da roleta!

Então o programa obtém a entrada das chaves S1 ou S2, se houver. Se nenhuma chave for pressionada, o fluxo do programa incrementa o indicador / contador B. ele avança até que a contagem se torne 0A em #13.

Normalmente o fluxo do programa chega as linhas #15 até #18, onde aguarda até que o contador no registrador B se torne zero; dependendo do valor da contagem, pode demorar apenas um curto tempo, ou um longo tempo, até que saia do processamento deste “loop”.

O controle então vai para #19 e incrementa 1 ao endereço da tabela de dados. Se o endereço de dados calculado estiver dentro do limite da tabela, o fluxo do programa vai para #05 e continua o processamento; se o endereço estiver acima do limite da tabela, retorna para o endereço inicial da tabela e continua o processamento.

Assumindo que você não pressionou S2, siga o fluxo do programa. Ele segue de #04 até #0D. Já que o indicador / contador é zero, ele salta de #19 para #11. Então incrementa o endereço da tabela de dados e retorna para #05 ou #06. Enquanto neste “loop”, o programa mostra os números um por um no display de LED 7 segmentos, continuamente.

Se você pressionou S2 pela primeira vez, em #0E o programa coloca o valor 01 No indicador/contador. Uma vez que tenha seguido esta rota, começa a aumentar a contagem do indicador / contador. Quanto mais aumenta o valor da contagem, mais longo se torna o “loop” de espera, indo de #15 até #18.

E finalmente a contagem chega ao número limite 0A na linha #13 e retorna para o início do programa. Neste momento, o número alcançado é mostrado no display de LED 7 segmentos.

 

 

 

 

Projetos relacionados:

Projeto 005 Roleta Digital

Projeto 95 Roleta Eletronica