[Ayuda] Problema con Programador Pablin II-16F877A - Página 4
Página 4 de 4 PrimerPrimer ... 234
Resultados 31 al 36 de 36

Tema: [Ayuda] Problema con Programador Pablin II-16F877A

  1. #31
    Usuario Avatar de editronikx
    Ubicación
    Pasto Colombia
    Mensajes
    299
    Gracias
    24
    Agradecido 228 veces en 125 posts
    ya ensayo en PROTEUS, por que si hay funciona el programa esta bien, y la falla es el programador o el montaje, pero si en proteus funciona igual debes estar mal hecho el programa.

    copie y o pegue el programa que le deje el cual funciona y compilelo con el PCWHD y luego simulelo.


    saludos

  2. #32
    Usuario
    Mensajes
    35
    Gracias
    38
    Agradecido 8 veces en 3 posts
    Cita Iniciado por editronikx Ver mensaje
    ya ensayo en PROTEUS, por que si hay funciona el programa esta bien, y la falla es el programador o el montaje, pero si en proteus funciona igual debes estar mal hecho el programa.

    copie y o pegue el programa que le deje el cual funciona y compilelo con el PCWHD y luego simulelo.


    saludos
    Si el código anda perfectamente en el PROTEUS. Me estube fijando que usando la funcion 'while(input(pin_X))' funciona aparentemente, le grabe este programa:

    Código:
    #include "16F877A.h"
    #use delay (clock = 4M)
    
    void main (void)
    {
    
    set_tris_a(000000);
    set_tris_b(11111111);
    
          while(true)
          {
                  principio:
                 while(input(pin_B4)) // si existe un '1' en el pin B4 prendo el LED
                 {
               
                      delay_ms(500);
                      output_high(pin_A0);  
                 }
                while(input(pin_B5)) // si existe un '1' en el pin B5 apago el LED
                {
                     delay_ms(500);
                     output_low(pin_A0);
                }
               goto principio;
    }
    }
    El problema persiste si en lugar de prender o apagar un LED dependiendo del pulsador, quiero hacer un parpadeo con el LED..

    Tienes idea de como se puede hacer con interrupciones? Te agradecería mucho.

    Gracias compañero.

  3. #33
    Usuario Avatar de PicTrance
    Ubicación
    Puebla, México
    Mensajes
    298
    Gracias
    339
    Agradecido 142 veces en 78 posts
    Cita Iniciado por 14matias13 Ver mensaje
    Si el código anda perfectamente en el PROTEUS. Me estube fijando que usando la funcion 'while(input(pin_X))' funciona aparentemente, le grabe este programa:

    Código:
    #include "16F877A.h"
    #use delay (clock = 4M)
    
    void main (void)
    {
    
    set_tris_a(000000);
    set_tris_b(11111111);
    
          while(true)
          {
                  principio:
                 while(input(pin_B4)) // si existe un '1' en el pin B4 prendo el LED
                 {
               
                      delay_ms(500);
                      output_high(pin_A0);  
                 }
                while(input(pin_B5)) // si existe un '1' en el pin B5 apago el LED
                {
                     delay_ms(500);
                     output_low(pin_A0);
                }
               goto principio;
    }
    }
    El problema persiste si en lugar de prender o apagar un LED dependiendo del pulsador, quiero hacer un parpadeo con el LED..

    Tienes idea de como se puede hacer con interrupciones? Te agradecería mucho.

    Gracias compañero.
    Hola 14matias13

    te comento que he visto varios errores(según mi criterio) en tu código que proporcionas
    así que en mi humilde opinión te proporciono 3 códigos que te podrían funcionar, 2 son como yo lo haría
    y el ultimo es como tu lo estas haciendo

    Código:
    #include <16F877A.h>
    #fuses XT,NOWDT,NOPROTECT,MCLR
    #use delay (clock = 4M)
    
    
    void main (void){
    
    
       set_tris_a(0X00);
       set_tris_b(0XFF);
       while(true){
          if ((input(pin_B4))==1){
             output_high(pin_A0);
          }else if {((input(pin_B4))==0){
             output_low(pin_A0);
          }
          delay_ms(500);
       }
    }
    Código:
    #include <16F877A.h>
    #fuses XT,NOWDT,NOPROTECT,MCLR
    #use delay (clock = 4M)
    
    
    void main (void){
    
    
       set_tris_a(0X00);
       set_tris_b(0XFF);
       while(true){
          if ((input(pin_B4))==1){
             output_high(pin_A0);
          }else if {((input(pin_B5))==1){
             output_low(pin_A0);
          }
          delay_ms(500);
       }
    }

    Código:
    #include <16F877A.h>
    #fuses XT,NOWDT,NOPROTECT,MCLR
    #use delay (clock = 4M)
    
    
    void main (void){
    
    
       set_tris_a(0X00);
       set_tris_b(0XFF);
       while(true){
          while(input(pin_B4)==1){
             delay_ms(500);
             output_high(pin_A0);  
          }
          while(input(pin_B5)==1){
             delay_ms(500);
             output_low(pin_A0);
          }
       }
    }
    ahora preguntas que con interrupciones, que yo sepa el 877 solo tiene 1 interrupción
    externa no sé si necesites más de una interrupción.

    Saludos!!
    Última edición por PicTrance; 28/01/2012 a las 02:53
    Si el proyecto tiene mal olor es de Química, Si echa humo negro es de Mecánica, Si es verde o se retuerce es de Bioingenieria Y si no funciona es de Electrónica.. ... no es mia la frase, pero me gusto. Que la corriente te lo premie sino que te lo queme visita mi canal en youtube
    Si le das click Aquí te doy 10 pesos ┌П┐(•_-)┌П┐

  4. #34
    Usuario Avatar de editronikx
    Ubicación
    Pasto Colombia
    Mensajes
    299
    Gracias
    24
    Agradecido 228 veces en 125 posts
    Saludos, haber si entendí, lo que usted desea hacer es;
    1- cuando este presionado el pulsador se prenda el led y cuando lo suelte se apague?
    2- ó con una pulsacion lo prendo y si lo vuelvo a presionar lo apago?

    por que el programa no hace nada según como usted lo tiene y comparto la idea de pictrance ya que así es como se deben hacer y lo de las interrupciones me imagino es que no desea aplicar la tecnica Polling si no que desea hacer la detección de interrupciones, a los programas que el amigo nos da lo único que se le debe aumentar es la opcion de option reg, si se desea para activar las resistencias de pull-up.
    Última edición por editronikx; 28/01/2012 a las 03:14

  5. #35
    Usuario
    Mensajes
    35
    Gracias
    38
    Agradecido 8 veces en 3 posts
    Hola PicTrance yeditronikx.

    Voy a probar con los códigos que me proporcionaste PicTrance, nomás que les voy a cambiar las instrucciones del while.

    El problema es cuando quiero hacer parpadear el LED (con los demás códigos no tengo inconveniente), supongamos:

    Código:
    ............//parpadeo 3 veces de un LED conectado al puerto A0 si se activa un pulsador//............
    while(true)
    {
    while(input(pin_B4))
    {
    output_high(pin_A0);
    delay_ms(500);
    output_low(pin_A0);
    delay_ms(500);
    output_high(pin_A0);
    delay_ms(500);
    output_low(pin_A0);
    delay_ms(500);
    output_high(pin_A0);
    delay_ms(500);
    output_low(pin_A0);
    delay_ms(500);
    }
    }
    ............
    Si yo grabo este programa en el PIC (completo, solo puse la parte del while para acortarlo) lo que sucede es que cuando activo el pulsador, el LED hay veces que parpadea 1 sola vez.. o parpadea 2 veces, o sino se prende y se queda así (como que nunca termina de hacer lo que realmente debería hacer: entrar al while y parpadear 3 veces). Yo pienso que puede ser que el PIC lo haga muy rápido al parpadeo y yo no me esté dando cuenta.. porque si le pido que nomás prenda el LED cuando presiono un pulsador y que lo apague si presiono otro pulsador funciona perfectamente bien.

    Saludos compañeros.

  6. #36
    Usuario
    Mensajes
    35
    Gracias
    38
    Agradecido 8 veces en 3 posts
    Hola de nuevo.

    Bueno, luego de una larga espera e investigación, descubrí que el problema era producto de la no configuración de los fuses del microcontrolador (si, algo tan tonto como eso). El único problema que persiste, es que cuando alimento el PIC el programa comienza en cualquier parte, como que sigue por donde quedo antes apagar la fuente, puede ser que este faltando algún fuse?

    Ahora todo funciona como debe ser.

    Saludos.

Página 4 de 4 PrimerPrimer ... 234

Temas similares

  1. Cuánto gana un programador en tú país?
    Por Fede en el foro Programación
    Respuestas: 75
    Último mensaje: 04/01/2013, 22:55
  2. Problema básico; mi echo me imprime "array", una ayuda plz!
    Por ras_chalo en el foro Desarrollo Web
    Respuestas: 9
    Último mensaje: 14/11/2011, 21:00
  3. Consejos acerca de que programador comprar
    Por david376 en el foro Electrónica Digital
    Respuestas: 4
    Último mensaje: 10/06/2011, 21:37
  4. Programador para PICS con USB, experiencias
    Por Almejandro en el foro Electrónica Digital
    Respuestas: 34
    Último mensaje: 10/03/2011, 06:00
  5. Feliz día del programador
    Por zitonguito en el foro Noticias de Actualidad
    Respuestas: 1
    Último mensaje: 14/09/2010, 22:20

Los visitantes encuentran esta página buscando por:

programador pablin 2

16f877 grabar

pablin 2

pablin

programador pic pablin ii

programar icprog 16f877 win 7

16f877a

16f877 pablin

programador pablin ii

pablin ii

programador para 16f877a

programador 16f877a

programar 16f877 con pablin

programador de pic 16f877a

programador pablin

proyectos 16F877A pablin

programador

programador pic puerto paralelo

problemas pablin 2 icprog

programador pic 16f877a

Cable programador Pablin II

grabador de pic

programar 16f877

modoficacion del grabador para 16f877a

pickit2 clone reloaded base zif

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37