Ir ao conteúdo
  • Cadastre-se

PIC Configuração de portas aleatórias (pic 16f887)


Posts recomendados

Boa tarde amigos.

 

Sou iniciante e estou começando  um projeto com o pic 16f887 e gostaria de saber se tem algum meio de agrupar portas aleatórias de conjuntos diferentes do microcontrolador.

 

Exemplo:

Vou acionar um display de 7 segmentos pelas seguintes portas do microcontrolador...

 

RD7 ,RD6 ,RB0 ,RB1 ,RB2 ,RB4 , RB3 (Nesta sequencia 6,5,4,3,2,1,0).

 

Queria saber se tem alguma função para agrupar estar portas nesta sequencia...Pra na programação chame esta funções que possa executar algo no display.

 

Obs:  Não consigo colocar o conjunto de porta A inteiro para um display, pois na montagem da placa fica impossível traçar as trilhas.

         Programa que estou utilizando para programação é o mikroC.

 

 

Desde já agradeço pela atenção.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Moleza amigo. Algo como:

43 minutos atrás, Furiaberg disse:

RD7 ,RD6 ,RB0 ,RB1 ,RB2 ,RB4 , RB3 (Nesta sequencia 6,5,4,3,2,1,0).

Crie uma função pra espalhar os bits

void espalhabits(unsigned char a)
{
PORTD.bit7=a>>6;
PORTD.bit6=a>>5;
PORTB.bit0=a>>4;
PORTB.bit1=a>>3;
PORTB.bit2=a>>2;
PORTB.bit4=a>>1;
PORTB.bit3=a>>0; //!?!
}
...
espalhabits(tabela[i]);
...

Pronto. O desenho da tabela está distribuído na sua "porta espalhada" ou agrupada, como preferir

 

Me lembro vagamente que o mikroc já tem como escolher a posição dos bits na função de display lcd. Mas o supramencionado te dá controle absoluto e consciente. Ah... no seu caso é pra display 7 segmentos... então pronto... é aquilo mesmo.

de nada...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Infelizmente nao sei. Não uso este compilador. Mas como estava antes? Quando nao dava este erro? Publique seu fonte e esquema pra ajuda mais efetiva.

 

E tudo bem se seu comentar sobre isso...?

2 horas atrás, Furiaberg disse:

na montagem da placa fica impossível traçar as trilhas

(Por favor haja como certas pessoas recentes com sérias limitações sociais)

você pode sim, caso disponível, usar um port completo e otimizar as conexões de modo a não haver jumpers. É simples: direcione os pinos do mc aos do display a revelia, claro considerando o melhor trajeto. Depois na tabela, distribua os bits coerentemente ao que quer desenhar no display. Bem simples até de entender... acho.

Pra vários displays tem técnica semelhante mas não quero arriscar a te falar por enquanto...

 

Perdão se não gostou por não ter pedido nada deste adicional. Ao meu favor, registro que as informações cá passadas podem não ser exclusivas pro seu problema mas sim pode ser útil pra algum navegante.

  • Haha 1
Link para o comentário
Compartilhar em outros sites

Em 20/11/2018 às 18:44, Furiaberg disse:

Muito obrigado.

Mas agora esta dando este erro .

 

 102 Finished (with errors): 20 nov 2018, 18:42:12 prog 001.mcppi


Sabe me dizer o que seria ?

 

Tenho a impressão que tu clonou o código da @Isadora Ferraz, sem adaptar pro teu projeto :)

De exemplo da solução acima, tu pode criar uma função estilo display_write() e internamente mapear bit a bit em o byte a ser escrito, pergunta, estamos falando de vários displays(aka multiplexação)?

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...