Projeto 427 Chaves S1 – S4 Acendem Números Hexadecimais no Display LED de 7 Segmentos

02/10/2013 11:08

 

SWITCHES S1 – S4 LIGHT HEX NUMBER ON 7-SEG LED.

 

Este programa lê sua entrada nas teclas S1 a S4 em binário e mostra o número hexadecimal correspondente no display LED de 7 segmentos.
Descrições:
Observando o fluxograma, notamos que o programa tem alguns padrões em seu processamento. Sim, há muitos blocos de decisão e eles têm à direita caixas de processamento similares.
A observação está correta. Falando francamente, este programa tem dois blocos de processamento; uma série de blocos de decisão e instruções MOV associadas formam o bloco de instruções MOV em pilha.
Agora, veja os códigos de programa. Com as linhas #00 a #04, o programa inicialmente envia para a saída o valor 00 e obtém sua entrada de dados das teclas. Com as linhas #05 e #07, se sua entrada por teclas for maior que 0F, o fluxo do programa retorna para o início (você pode imaginar um caso?). Começando na linha #05 estão os códigos correspondentes à série de blocos de decisão no fluxograma.
Esses códigos estão usando uma técnica engenhosa para identificar a entrada de dados das teclas. É a chave para entender este programa, de modo que vamos estudá-los mais precisamente.
Você pode facilmente achar que o valor da entrada de teclas está dentro da faixa de 00 até 0F. É o ponto inicial para entender esta técnica de programação. Agora, com as linhas #05 e #06, o programa compara o valor da entrada de teclas com um valor constante 0F. É claro que desta vez o valor da entrada de teclas em questão é desconhecido. Primeiro o programa verifica se o valor da entrada de teclas é maior que 0F em #07. Se for, o valor é diferente do esperado e o fluxo do programa retorna para #00. Como você vai ver mais tarde, este código é destinado para uso numa situação muito especial. Vamos assumir que o valor da entrada de teclas não encontra esta condição e o fluxo do programa vai para #08. Com a linha #08, o programa verifica se o valor da entrada de teclas é igual a 0F. Se for, ele entende que você configurou todas as chaves de S1 a S4 para a posição acionada (1111 em binário). Neste caso, o programa vai para a linha #26 para usar o dado “F”.
Já que essas codificações incluem uma decisão excepcional na linha #07 como previamente explicado, vamos olhar alguns dos próximos códigos para a sua compreensão.
Agora assuma que o fluxo do programa esteja na linha #09, e vamos analisar cuidadosamente essa linha até a #0C. Lembre-se que neste ponto, o valor da entrada de teclas desconhecido está dentro da faixa 0E a 00; a faixa está menor devido ao processamento acima. Com a linha #0B, o programa verifica se o valor de entrada de teclas é maior que 0D. Se for, o valor é 0E, certo? Numa faixa de 0E a 00, somente o valor 0E é maior que 0D. E se não for este caso, isto é, se o valor da entrada de teclas não for 0E, o fluxo do programa chega à linha #0C. E se o valor é igual a 0D, o fluxo do programa vai para a linha #28 para usar o dado “D”.
Você pode ver que os códigos que sucedem de #0D a #24 são a repetição dos códigos semelhantes aos que verificam o valor da entrada de teclas e o identificam.
Começando na linha #26 está o conhecido bloco de instruções MOV em pilha.
Exemplo 1: Acione apenas a chave S2, e um número “2” é exibido no display:


Exemplo 2: Acione as chaves S2 e S4, e um número “A” é exibido no display:

Note que S1 a S4 são usadas como chaves do tipo deslizante. “++” significa que a chave está acionada e “--” significa que a chave está desligada (desacionada).

 

 

FLUXOGRAMA:

 

 

 

Link para YouTube: youtu.be/m-zoCGlOqVo