Página 1 de 1

Como fazer caracter deslizar display 7 seg?

MensagemEnviado: 12 Fev 2013 20:25
por elzirobotelho
Estou tentando e até o momento sem sucesso, fazer um caracter ou palavra deslizar da direita para esquerda num conjunto de 8 display´s 7 seg. Estou usando o MikroC Pro, Pic 16F887 e o Max7219. Sem o uso do Max7219 consegui implementar sem problemas, fazendo o uso de multiplexação e contador em anel. Mas, agora com o uso deste "max7219", não obtive sucesso até o momento.
Alguém poderia me ajudar, com dicas ou parte do código para o max7219?
Só um esclarecimento, estou tentando fazer uso do max7219, devido as várias multiplexações e leituras atribuídas ao Pic, o display ficou com o brilho muito fraco.
Sds

Re: Como fazer caracter deslizar display 7 seg?

MensagemEnviado: 12 Fev 2013 21:10
por andre_luis
você precisa criar um array de saída, para o qual os dados serão buscados.
preencher os dígitos á direita e a esquerda com valor nulo, de tal modo que não sejam apresentados no display quando endereçados.


+++

MensagemEnviado: 13 Fev 2013 10:13
por ze
se teu chip tiver 2 ports sobrando e se uma interrupção duns 400Hz num incomodar o sistema, creio ser + mió de bão. Voce pode até mesmo usar o sinal de dígito pra ler um teclado de 8 teclas. Mas vejamos...
dei uma leitura superficial no ds. gostei do xip. dá um pra mim? pelo que entendi voce tem apenas que montar a palavra com endereço/dado para o bixo. desconsideremos os modos decode, intensity, scan limit, shutdown, display test.
p.ex.
Código: Selecionar todos
#define cs RB0
#define clk RB1
#define din RB3

void desloca8(unsigned char dado)
for (i=0;i<8;i++)
{
if (dado&0b10000000) din=1;else din=0;
clk=1;asm("nop");clk=0;
dado<<=1;
}

void putdig(unsigned char dado, unsigned char end)
{
unsigned char i;
cs=clk=0;
desloca8(end);
desloca8(dado);
cs=1;asm("nop");cs=0;
}


escrevendo H no 4º dígito
Código: Selecionar todos
putdig(0b0110111,3);


para deslocar
Código: Selecionar todos
for (i=0;i<8;i++)
{
putdig(0b0110111,i);
delay(xx);//sou contra delay mas...
}

obviamente deverá fazer uma tabela com o padrão de dígito desejado
Se este chip tiver no proteus, de repente faço uma simulação... ou não... (cara, to tendo um dejavu). Mas antes é bom saber se compensa investir em voce. mostre o que já fez.
Claro, são concepções pscóticas/délicas teóricas do sistema. Exatamente como está, não espero que não lhe seja totalmente inútil e que não funcione ... ou ao contrário.
sucessos

MensagemEnviado: 13 Fev 2013 12:39
por ze
... resolvi cavar um pouco +.
só pra constar. antes voce precisa inicializar o ci no caso enviando o comando No-Op (0) no ex. seria tipo putdig(0,0)
e também dígito0 seria end 1 (e não 0) e 7... 8 (e não 7)

e o mais importante. Esqueça este chip de U$13,7(!!??) na digikey. vtnc! Bom, pelo menos pra mim que sou pobre. Nem simular num vale a pena então (só se vc insistir muito mesmo). Compensa + os pinos do MC mesmo ou um shifit register qualquer ou se quiser algo elegante um PCF8575. Para driver uns pobres bc817

(tá ruim pra postar e pior pra editar...)

abç

MensagemEnviado: 14 Fev 2013 11:50
por tcpipchip

MensagemEnviado: 14 Fev 2013 13:02
por ze
U$27,00.. é phoda ser pobre e ter amigo rico. me sinto humilhado
[fiz] com 4094... pobreza total
http://www.forumnow.com.br/vip/mensagen ... 60&nrpag=3

off...
spider... seu outro video... spider... uma placa matriz de leds que ainda tenho. neste fds tirei uma foto de uma aranha mui lôca na varanda de casa. filmei tb. tá no fb. vê lá.
abç

MensagemEnviado: 19 Fev 2013 21:54
por elzirobotelho


Desculpe a demora para responder parece que havia um problema no site estava difícil se conectar
Mas vou verificar todas as dicas que me foram dadas
Quero agradecer pela disponibilidade de vocês em ajudar a solucionar as dúvidas

Acessei o link mas não é exibido o funcionamento deste projeto

MensagemEnviado: 19 Fev 2013 21:58
por elzirobotelho
lellis escreveu:se teu chip tiver 2 ports sobrando e se uma interrupção duns 400Hz num incomodar o sistema, creio ser + mió de bão. Voce pode até mesmo usar o sinal de dígito pra ler um teclado de 8 teclas. Mas vejamos...
dei uma leitura superficial no ds. gostei do xip. dá um pra mim? pelo que entendi voce tem apenas que montar a palavra com endereço/dado para o bixo. desconsideremos os modos decode, intensity, scan limit, shutdown, display test.
p.ex.
Código: Selecionar todos
#define cs RB0
#define clk RB1
#define din RB3

void desloca8(unsigned char dado)
for (i=0;i<8;i++)
{
if (dado&0b10000000) din=1;else din=0;
clk=1;asm("nop");clk=0;
dado<<=1;
}

void putdig(unsigned char dado, unsigned char end)
{
unsigned char i;
cs=clk=0;
desloca8(end);
desloca8(dado);
cs=1;asm("nop");cs=0;
}


escrevendo H no 4º dígito
Código: Selecionar todos
putdig(0b0110111,3);


para deslocar
Código: Selecionar todos
for (i=0;i<8;i++)
{
putdig(0b0110111,i);
delay(xx);//sou contra delay mas...
}

obviamente deverá fazer uma tabela com o padrão de dígito desejado
Se este chip tiver no proteus, de repente faço uma simulação... ou não... (cara, to tendo um dejavu). Mas antes é bom saber se compensa investir em voce. mostre o que já fez.
Claro, são concepções pscóticas/délicas teóricas do sistema. Exatamente como está, não espero que não lhe seja totalmente inútil e que não funcione ... ou ao contrário.
sucessos


Valeu Lelis pelas dicas, vou implementar estes códigos depois eu posto o resultado
Este forum é show