Autor Tema: Ayuda , Codio en C para un 16f877a usando un display de 7 segmentos  (Leído 1310 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado leeyugioh

  • PIC10
  • *
  • Mensajes: 1
Hola , soy nuevo en el foro. estoy cursando estudios y tengo un problema.  ese codigo para el pic 16f877a  no me corre en  el proteus. no se , si es que tengo mal la programacion , pero el pic compiler no me dice errores.. pero igual no pasa nada =(  el display le doy al pulsador y no pasa nada... 

ESTE ES EL CODIGO  que logre armar pero no entiendo  porq no hace nada.. nada la simulacion el proteus.

#include <16f877a.h>         
#fuses HS,NOWDT,NOPROTECT,PUT
#use delay (clock=20000000)   
#byte puerto_a=05
#use fast_io(b)             
#BYTE puerto_b= 0x06         
int dado [6]={0x06,0x5b,0x4f,0x66,0x6d,0x7d};
void lanzo_dado(void);
void main(void)
{
   set_tris_e(0x01);         
   set_tris_b(0x00);         

   disable_interrupts(GLOBAL);
   do{                 
      puerto_b= 0;           
      if(input(PIN_A0)){     
            lanzo_dado();   
      }
      }while(TRUE);       
}
void lanzo_dado(void) {
      char i=0;           
      do{                 
         i++;             

         if (i == 7) {     
            i = 1;         
         }
      }while(input(PIN_A0));
      delay_ms(50);
      puerto_b=  dado ;
      delay_ms(2000);       
}


no si es que me falta algo. Gracias de ante mano

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Ayuda , Codio en C para un 16f877a usando un display de 7 segmentos
« Respuesta #1 en: 31 de Enero de 2014, 00:36:10 »
Que tal leeyugioh.
Coloca:  
void lanzo_dado(void) {
      int i=0;           
      do{                 
         i++;             

         if (i == 7) {     
            i = 1;         
         }
      }while(input(PIN_A0));
      delay_ms(50);
     puerto_b = dado [ i ];   
      delay_ms(2000);       
}


« Última modificación: 31 de Enero de 2014, 00:44:28 por RALF2 »

Desconectado elchecho

  • PIC10
  • *
  • Mensajes: 7
    • Control Automático Educación
Re: Ayuda , Codio en C para un 16f877a usando un display de 7 segmentos
« Respuesta #2 en: 01 de Marzo de 2015, 17:09:35 »
Hola. Aquí te dejo otro ejemplo para usar un display 7 segmentos. Ademas todo el codigo esta simulado en proteus y tiene un video tutorial en youtube que explica las lineas del código.
Manejo de display 7 segmentos con pic. Curso detallado.
Magister en Automatización y Control. Te invito a visitar mi pagina. http://controlautomaticoeducacion.com/

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Ayuda , Codio en C para un 16f877a usando un display de 7 segmentos
« Respuesta #3 en: 01 de Marzo de 2015, 17:48:12 »
A pesar que es viejo el tema:
Yo hubiera sacado el int i = 0 o char i = 0 fuera como una variable global

Sin contar que hubiera puesto ese dealy_ms(50) al comienzo de la funcion como un "antirebote"