Autor Tema: Codigo funciona em Proteus Isis7 e montado no!!  (Leído 1622 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado camolas

  • PIC10
  • *
  • Mensajes: 22
Codigo funciona em Proteus Isis7 e montado no!!
« en: 23 de Abril de 2008, 21:20:56 »
Ola a todos,

Sou Portuges por isso perdonar mi lenguaje  :)


Fiz este codigo em PBP250 para un 16f877a com exprimentacao en Proteus mas ao fazer o pcb no me da bien.
A ideia deste codigo era aciender um led por 3s siempre que o interroptor estivesse desconectado adjunto los fix del Proteus

DEFINE  OSC         20
TRISC.6=1
TRISC.7=0

LED var PORTB.7
Bot1 var PORTB.6

CMCON=%00000111      ' Disable Comparators
CVRCON=%00000000   ' Disable Reference Module
OPTION_REG.7=0      ' Enable Weak Pull-Up's


ini:
Low LED
WHILE Bot1=0 :WEND
 
high LED
PAUSE 300
Low LED

VA:
WHILE Bot1=1 :WEND
GOTO ini
End


Gracias a todos.


p.s. Este ano Luxo Gonsales, Lisandro Lopes (melhor marcador da liga Portugesa) , Mariano Gonsales e Hernesto Farias foram campeones una vez mas de la liga Portugese em mi clube. F.C.PORTO  :-/



Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Codigo funciona em Proteus Isis7 e montado no!!
« Respuesta #1 en: 25 de Abril de 2008, 03:19:05 »
Olá Camolas,

   Minha passagem pelo PBP foi muito rápida mais vou tentar te ajudar.

   
Código: [Seleccionar]
ini:
Low LED   //inicia com led em 0
WHILE Bot1=0 :WEND // loop eterno enquanto Bot1=0
high LED  // se chegou aqui é porque Bot1=1, então led liagdo
PAUSE 300 //você descreve que pretende que o led fique ligado por 3 seg mais o seu delay é de 300 milseg
Low LED // led desligado

VA:  // não sei porque você criou outro label
WHILE Bot1=1 :WEND // loop eterno enquanto Bot1=1
GOTO ini // volta ao inicio "ini"
End

   tente desta forma, desconsidere o estilo de linguagem que está em C, pois já não me lembro bem como se faz isso em PBP.

Código: [Seleccionar]
while (TRUE)  // loop eterno faz com que você não precise colocar goto ini ao final
    {
       if ((input(Bot1)==0)&&(controle==TRUE))  // se Bot1 passar de 1 para 0 e a variavel controle for verdadeira
          {
            controle = FALSE; // coloca a veriavel controle falsa para que não se repita este ciclo enquanto o batão não for liberado
              output_high (LED);  // acende led
                delay_ms (3000);  // pausa de 3 segundos
                  output_Low (LED);   // apaga led
          }
       if (input(Bot1)==1) // se botão foi liberado
          {controle=TRUE;} //passa a variavel controle a verdadeira, para que possa executar novamente a função acima
    }  // inicio de while


   Espero que ajude pois foi isso que pude entender no pouco que descreveu.
   Outro detalhe importante, na simulção no proteus não se esqueça de colocar uma resistencia pullup, para quando rodar o programa o pic entender que o sinal está alto(righ).
   Baixe e rode o arquivo que está em anexo, e veja se é isto que queres.
   Qualquer dúvida pergunte.

   Saudações do Brasil

  Ivan Braga
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado camolas

  • PIC10
  • *
  • Mensajes: 22
Re: Codigo funciona em Proteus Isis7 e montado no!!
« Respuesta #2 en: 05 de Mayo de 2008, 13:53:21 »
Boas,

Obg pela ajuda amigo ivan braga, ja solocionei o problema ele era que no soft do programador n dava para activar o HS entao tive de o difinir no codigo "@ DEVICE HS_OSC"

Abraço