Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

16/04/2016 #1


Contador de 0 a 9 en pic c compiler
Hola gente de foros de electrónica soy nuevo en esta comunidad espero y puedan ayudarme con un problema que tengo verán me encargaron un proyecto el cual consiste en que en un display de 7 segmentos cátodo común sea un contador del 0 al 9, hice todo como me dijo el profesor, lo pude conectar y funciono pero el problema es que solo me marca hasta el 9 y no se regresa al 0 como debia de ser, me podrían ayudar porfavor soy un novato en esto de los pic´s y esas cosas :v



Declaracion en pic c compiler:

#INCLUDE <16F84A.H>
#FUSES XT,NOPROTECT,NOPUT
#USE DELAY(CLOCK=4000000)
#BYTE PORTA=5
#BYTE PORTB=6
#BYTE TRISA=0x05
#BYTE TRISB=0x06
VOID MAIN()
{
SET_TRIS_A(0b11111111);
SET_TRIS_B(0b00000000);

PORTB=0b00111111;
DELAY_ms(1000);
PORTB=0b00000110;
DELAY_ms(1000);
PORTB=0b01011011;
DELAY_ms(1000);
PORTB=0b01001111;
DELAY_ms(1000);
PORTB=0b01100110;
DELAY_ms(1000);
PORTB=0b01101101;
DELAY_ms(1000);
PORTB=0b01111101;
DELAY_ms(1000);
PORTB=0b00000111;
DELAY_ms(1000);
PORTB=0b01111111;
DELAY_ms(1000);
PORTB=0b01100111;
DELAY_ms(1000);
}

//WHILE(0);

//MAIN(VOID);
16/04/2016 #2


Tendrás que meter lo que activa los números en un bucle (while por ejemplo)
16/04/2016 #3

Avatar de roberttorres

buenas Victor
Solo tienes que agregar a tu codigo un bucle infinito, te lo marque en rojo

Código:
#INCLUDE <16F84A.H>
#FUSES XT,NOPROTECT,NOPUT
#USE DELAY(CLOCK=4000000)
#BYTE PORTA=5
#BYTE PORTB=6
#BYTE TRISA=0x05
#BYTE TRISB=0x06
VOID MAIN() 
{
SET_TRIS_A(0b11111111);
SET_TRIS_B(0b00000000);

while (true)
{
PORTB=0b00111111;
DELAY_ms(1000);
PORTB=0b00000110;
DELAY_ms(1000);
PORTB=0b01011011;
DELAY_ms(1000);
PORTB=0b01001111;
DELAY_ms(1000);
PORTB=0b01100110;
DELAY_ms(1000);
PORTB=0b01101101;
DELAY_ms(1000);
PORTB=0b01111101;
DELAY_ms(1000);
PORTB=0b00000111;
DELAY_ms(1000);
PORTB=0b01111111;
DELAY_ms(1000);
PORTB=0b01100111;
DELAY_ms(1000);
     }
}

//WHILE(0);

//MAIN(VOID);
16/04/2016 #4


Me podrias decir como le hago, porfavor
16/04/2016 #5
Moderador general

Avatar de Fogonazo

Victor 666 dijo: Ver Mensaje
Me podrias decir como le hago, porfavor
Te escribieron el código, ¿ Que mas necesitas ?
16/04/2016 #6

Avatar de roberttorres

Victor 666 dijo: Ver Mensaje
Me podrias decir como le hago, porfavor
el código que alce esta como hacerlo, te lo marque en rojo

While (true)
{
tu codigo para el display

}
16/04/2016 #7


Jajajaja perdon no habia visto el mensaje :v si me sirvio men gracias lince +10 papu :v
16/04/2016 #8

Avatar de Nuyel

No olvides para el futuro que el chip ejecuta las tareas linealmente, solo seguirá y seguirá y seguirá hasta que no pueda más o algo lo detenga, lo normal es escribir el programa siempre así

Código:
 void main()
{
  //Tu configuración aquí por ejemplo
  setup();

  //luego el bucle para las tareas que deberá repetir constantemente
  while(1)
  {
     //Tu programa principal aquí por ejemplo
     loop();
  }
}
16/04/2016 #9


Lo tomare en cuenta men gracias por responder
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.