Excelente trabalho Xformer!!! Na hora de executar você utilizou este método mesmo, de dar loop em 7 endereços?
Obrigado. Não entendi o que você quis dizer com loop em 7 endereços.
Você tem que entender como é a estrutura do seu display. Essa tabela foi feita pra ser usada com displays onde você tem os leds ligados em grupos de 5 pelos catodos, então tem 7 grupos de leds formando 7 linhas. Por sua vez esses mesmos leds são ligados em grupos de 7 pelos anodos, formando as 5 colunas. Dessa forma pra acender apenas um led da matriz, precisa colocar nível lógico 1 numa coluna (mantendo as demais em nível 0) e nível lógico 0 numa linha (mantendo as demais em nível 1). Como pra mostrar um caractere no display precisa acender vários leds da matriz, só multiplexando os leds. Assim o mecanismo é o seguinte: aciona a primeira coluna (nível 1) e coloca os níveis lógicos pra acender ou manter apagados os leds daquela coluna (7 bits) nas respectivas linhas. Deixa um tempo ligado (veja como calcular mais abaixo), desliga essa coluna e aciona a coluna seguinte, coloca os bits correspondentes a nova coluna do caractere, deixa o mesmo tempo ligado, desliga e passa pra coluna seguinte, e assim por diante. Ao final da 5.a coluna, volta pra 1.a coluna.
Ou seja, o ciclo de multiplexação é de 5 colunas. Cada coluna precisa de 7 bits pra acionar os leds daquela coluna. Esses 7 bits são buscados numa tabela de caracteres, onde cada caractere é formado por 5 grupos de 7 bits (na verdade, se o circuito for microcontrolado, vai usar 1 byte pra cada coluna, deixando 1 bit de fora). Essa tabela tem que ficar numa memória.
É mais lógico e eficiente multiplexar as colunas, pois elas são em menor número que as linhas, assim a divisão do tempo é feita por um número menor (divide por 5 contra 7) permitindo um maior brilho dos leds e a tabela fica menor (senão teria que buscar 7 valores de 5 bits). Para que não haja flickering (cintilação) do display, a frequência de multiplexação precisa ser de no mínimo 30Hz, quanto mais melhor. Por exemplo 50Hz, vai dar um período de 20ms que vai ser dividido (multiplexado no tempo) entre 5 colunas. Assim cada coluna tem que ficar acionada por 20ms/5 = 4ms, e apagada no restante do ciclo (16ms).