Jump to content

Programa em C e respectivo HEX para pequeno teste com 16f84A


Recommended Posts

Boas.

Fiz agora um pequeno programa sem nada de especial, mas decido partilhar pois é algo que pode dar jeito para alguem que tambem se esteja a iniciar (como eu) no assunto.

O programa simplesmente faz ligar os 2 led's do circuito ao clic no botão, e ao fim de 5 clices executa a parte final do codigo (liga e desliga os led's 2 vezes)

#include <16f84A.h>
#fuses xt, nowdt, noprotect
#use delay(clock=4000000)
main()
{
   int var;
   int var_1;
   int contador;
   contador = 0;
   var_1=1;
   output_high(PIN_A2); //liga os 2 led's no inicio só para testar, eles apagam logo no else mais a baixo
   output_high(PIN_A3);
   while(var_1=1)
   {
      var=input(PIN_B1);
      if(var==0)
      {
         output_high(PIN_A2);
         output_high(PIN_A3);
         contador = contador + 1;
         delay_ms(100); //não sei se é a melhor forma de resolver a questão do deboucing mas desenrasca
      }
      else
      {
         output_low(PIN_A2); //não clicando ficam desligados
         output_low(PIN_A3);
      }
      if(contador==5)
      {
       output_high(PIN_A2);
       output_high(PIN_A3);
       delay_ms(500);
       output_low(PIN_A2);
       output_low(PIN_A3);
       delay_ms(500);
       output_high(PIN_A2);
       output_high(PIN_A3);
       delay_ms(500);
       output_low(PIN_A2);
       output_low(PIN_A3);
       delay_ms(500);
       contador = 0;
      }
   }
}

Usei para os led's o porto A2 e A3

Para o botão o B1

O esquema da parte electrónica é bastante simples, se quiserem depois logo ai meto.

cool stuffs to check.

http://blog.zxcoders.com//

Link to comment
Share on other sites

foi mesmo isto.

http://img179.imageshack.us/img179/233/2ledsem16f84alteradokk0.jpg

Orientei a coisa com a ajuda da malta la do outro forum.

Mas ATENÇÃO!!!! Aquele condencador que está no botão NÂO tem polaridade como ali está,. eu é que feito cromo da 1ª vez meti um de 100 micros em vez de 100 nanos.

E tb não usei propriamente esses valores que lá estão no resto das coisas, é que usei um desenho de outra cena pq ainda não me entendo lá muito bem com os programas de desenho disso...:S 😄

cool stuffs to check.

http://blog.zxcoders.com//

Link to comment
Share on other sites

Boas.

Para enviar imagem usa o box.net por exemplo, ou o imageshack .

Relativamente ao esquema, pode haver forma mais correcta de o fazer (pq eu nem sou entendido nisto) mas que está a trabalhar está! 🙂 Isso é certo!

Mostra ai como é que estas a dizer para fazer.  😄

PS:Não uses CAPS

cool stuffs to check.

http://blog.zxcoders.com//

Link to comment
Share on other sites

o problema é o condensador de 100nf que colocas-te um condensador com corrente DC funciona como um corte, não passa nada, basta remover e funciona.   ?

já agora no MCLR não precisas usar o condensador e ligar ao GND, usa apenas a resistência ligada aos +5V e mais nada, não estou a ver razões para haver sinusóides a passar no circuito por isso não fazem falta lá condensadores para filtragem.

Link to comment
Share on other sites

Mas ATENÇÃO!!!! Aquele condencador que está no botão NÂO tem polaridade como ali está,. eu é que feito cromo da 1ª vez meti um de 100 micros em vez de 100 nanos.

E não é electrolítico mas sim cerâmico.

edit:

(...)basta remover e funciona.

mas isto ESTÁ a funcionar NA PRATICA ali na bancada.

cool stuffs to check.

http://blog.zxcoders.com//

Link to comment
Share on other sites

Pois,.. isso ai já não sei, sei que me indicaram a utilização dele para prevenir erros.

E eu como sou um rapazinho muito bem mandado ( eheh 🙂 ) meti-o lá! 😄

(...)para encaminhar algum spike que tenha na fonte. Os microcontroladores se tiverem spikes que são ruidos podem dar erro na execução do código. Mas, o 84 é muito robusto e passa por cima disso tudo.

cool stuffs to check.

http://blog.zxcoders.com//

Link to comment
Share on other sites

PELA A LEI DE FARADERS O CAPACITOR ESTÁ CERTO 😄 , POIS QUANDO UM BOTÃO É ACIONADO, EM MICROSEGUNDO ACONTECE UM RUIDO MUITO RÁPIDO QUE O PIC PODE ENTENDER ERRADO. 😁

E O CAPACITOR 100nF CERÂNICO OU DE POLIESTER CONSERTA ESSE ERRO NA SENOÍDE CRIADA PELO BOTÃO. 🙂

VOU ENVIAR OUTRA FOTO PARA VC ENTENDER MELHOR.

http://img175.imageshack.us/img175/1010/colocandocapacitorus8.th.jpg

MUITO OBRIGADO.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.