Ajuda com PIC16F84

Responder
opss
Faça a sua apresentação
Faça a sua apresentação
Mensagens: 6
Registado: 15 abr 2010, 22:51

Ajuda com PIC16F84

Mensagem por opss »

Boa noite,
Sou novo no forum e preciso de ajuda na programação do pic16f84.
Pretendo fazer um contador de pulsos com 4 digitos que comece em 0 e vá até 9999. A ideia é a seguinte:
Sempre que se precione e largue o botão 1 ele incrementa uma unidade ao contador e esse valor apareçe no digito.
O botão 2 faz um reset ao contador ficando os digitos a zero.
O botão 3 quando precionado memoriza o valor que está apresentado no digito.
O botão 4 e 5 premite a visualisação dos valores memorizados permitindo navegar nos mesmos para cima ou para baixo
O botão 6 apaga os valores em memoria.
Complicado? ideias para esquematico também são bem vindas
Obrigado desde já e fico a aguardar a vossa colaboração.


Avatar do Utilizador
carlos_cfr7
Quadro de Honra
Quadro de Honra
Mensagens: 619
Registado: 11 jun 2007, 15:37
Localização: Faro
Agradecimento recebido: 1 vez

Re: Ajuda com PIC16F84

Mensagem por carlos_cfr7 »

e qual é a parte que precisas ajuda?
nao sabes por onde começar? ou queres ouvir opinioes antes de começar a fazer qq coisa?
programas em C ou assembly?
nao tens portos suficientes para fazer 4 digitos em bcd. por isso aconselho a fazeres isso em binario e usar electronica para converter de binario para BCD com os respectivos displays de 7 segmentos.
Eng. de electrónica e telecomunicações
opss
Faça a sua apresentação
Faça a sua apresentação
Mensagens: 6
Registado: 15 abr 2010, 22:51

Re: Ajuda com PIC16F84

Mensagem por opss »

Boa noite carlos
Não sei por onde começar, mas 3 digitos chega para contagem.
O que se passa é que estou a começar a programar em assembly e gostaria de fazer um trabalho inicial com as caracteristicas descritas.
Tinha-me esquecido do problema do numero de portos do PIC obrigado pela dica, mas 3 digitos é suficiente excedi-me.
Quanto ao esquematico procuro ainda na net e não encontrei ainda nada.
Obrigado
BLima
Técnico Dedicado
Técnico Dedicado
Mensagens: 754
Registado: 12 jan 2008, 00:53
Localização: Funchal
Enviou: 17 vezes
Agradecimento recebido: 14 vezes
Contacto:

Re: Ajuda com PIC16F84

Mensagem por BLima »

Viva,

Aconselho fazer isso em MikroC pois já tem funções específicas para botões, pois elimina problemas de debounce.

No site do mikroelektronica tem vários exemplos e o help do programa é bastante elucidativo.

A nível do hardware sempre tens o Proteus que tem diversos circuitos com PIC's.

Cumps,
Bruno
Atentamente,
Bruno
-------------------------------------------------------------------------------------------------------------------
M4I - Manutenção Industrial
e-mail: [email protected]
Avatar do Utilizador
patinhofeio
Quadro de Honra
Quadro de Honra
Mensagens: 513
Registado: 30 mar 2008, 10:45
Localização: 150 Km de Lisboa

Re: Ajuda com PIC16F84

Mensagem por patinhofeio »

Boas.
Para projecto inicial, é um bocado arrojado, mas força nisso.
Para solucionar o problema dos portos, podes usar multiplexagem. Complica um pouco, mas nesse projecto todo, não será a multiplexagem a travar-te o projecto.
Explicando a multiplexagem:
Ligas cada segmendo(A a H) a cada pino do portB e depois a cada segmento igual do digito seguinte. Ficas por exemplo:
RB0=> A (de todos os display's)
RB1=> B (de todos os display's)
etc.
Depois disso, ligas o comum de cada display a um transistos apropriado ao display(conforme seja de ânodo ou cátodo comum) A base desses transístores vai usar 4 pinos do PortA(de 0 a 3)
O conjunto de teclas, podes fazer com teclado matricial, ou por array de teclas. Se for o 1º caso, o teclado vai partilhar o PortB com os segmentos, se for o 2º caso, podes alimentar o comum com um pino do PortA, e cada botão ligar a um pino do PortB.
O funcionamento:
O pic mostra o valor no display 1 e espera 5ms;
Apaga o display 1 e liga o 2, volta a esperar 5ms
Apaga o display 2 e liga o 3, volta a esperar 5ms
Apaga o display 3 e liga o 4, volta a esperar 5ms
Apaga o display 4 e liga o pino comum das teclas=> vai ler o PortB(entretanto reconfigurado para funcionar como entradas)
Faz o debouce á tecla premida, e incrementa os contadores necessários
Desliga o pino comum das teclas e reinicia o ciclo.
Se usares interrupções para contar os 5ms, podes usar o tempo restante entre interrupções para fazer os cálculos para o valor de cada digito(dividir o numero inteiro em unidades, dezenas centenas e milhares)

Para ideias sobre ligações, podes visitar a pagina da MIKROELECTRONIKA tem tem uns kits de desenvolvimento fantásticos. Nessa pagina, podes aceder ao esquema da placa, e consegues ver como fazer as ligações em multiplexagem. Na placa o porto dos segmentos é o PortD, mas nesse pic podes usar o PortB. Ah, também nessa página há exemplos de código, que é fixe para quem quer experimentar alterações ou tentar interpretar programas.
Mais alguma coisa, vai dizendo.
Abraço

PS: Eu no fim do curso que fiz de programação, fiz um contador sua vez de 0 a 99 com 8 balcões de chamada diferentes.(com 4 display's = 27-2 ) O sistema incrementava a contagem da senha, e mostrava o numero do balcão que chamou. Com uma pequena alteração de código, coloquei o mesmo programa a contar ate 999 com os 4 display's apenas(usei o ponto decimal do 3º display para fazer a separação entre o numero e o balcão = 327.8 ) Fica outra ideia para projectos de quem esteja a aventurar-se nos pic's.
Aprender sem pensar é tempo perdido - Confúcio
Participar neste fórum é um privilégio e não um direito
A vida é uma escola. Quem não aprende com a vida, considere-se morto
opss
Faça a sua apresentação
Faça a sua apresentação
Mensagens: 6
Registado: 15 abr 2010, 22:51

Re: Ajuda com PIC16F84

Mensagem por opss »

boa noite a todos
obrigado pela ajuda e dicas mas tenho que me empenar neste projecto pois faz parte de um trabalho para a faculdade.
muito obrigado
Responder

Voltar para “Microcontroladores”