Autor Tema: muy raro que los numeros salgan de color negro en display de 7 segmentos  (Leído 1078 veces)

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

Desconectado rodrigo_pinilla

  • PIC10
  • *
  • Mensajes: 11
bueno, lo que pasa es que necesito mostrar una medida de voltaje en el display 7 segmentos, pero sale todo raro osea por ejemplo el tres, los segmentos del tres salen apagados y los demas prendidos asi no sirve yo quiero que sea a lo contraro, tambien el display parpadea demasiado y es muy molesto quisiera saber como arreglo eso, yo vi un video que salia bien pero no se como hicieron, saludos. el codigo que tengo es este:

Código: [Seleccionar]
#include <16F88.h>
#device *=8    //para ke el adc llege asta 255 ndama mas

#FUSES nomclr    //sin reset             
#FUSES intrc      //esto usa el cirstal interno del pic               

#use delay(clock=8M)  //cristal a 8 megabits de velocidad

#byte portb=6   //declaro la ubicasion del puerto b
#byte porta=5   //la ubicasion del puerto a

#bit led = porta.1   //declaro el led conectado en el pin a1

#bit display1 = porta.2   //el pin donde esta conectado el display 1
#bit display2 = porta.3   //el pin donde esta conectado el display 2


void main()
{

inicio:

int numeros[10]={0x7E,               //Se declara un vector de longitud 10 que contenga los
0x30,                                         //valores obtenidos de la tabla, acomodados en orden
0x6D,                                       //Según su posición del 0 al 9
0x79,
0x33,
0x5B,
0x5F,
0x70,
0x7F,
0x7B};


char voltaje;
char sobrevoltaje;
char unidades;
char decenas;


setup_adc(ADC_CLOCK_INTERNAL);   //configuramos el adc con el cristal interno
setup_adc_ports(sAN0);

voltaje=read_adc();   //leo el valor del voltaje

voltaje= (110/255) * voltaje;   //la formula de la regla de tres para objeter el boltaje por el divisor resistivo
                                //con 255 tengo 110 voltios en la entrada del divisor de tension formula de kirchof
decenas = voltaje / 10;
unidades = voltaje - (decenas * 10 );

portb = numeros[decenas];    //muestro en el display el valor del voltaje  de decenas

display1 = 1;   //activo el primer display para multipletsarlo
delay_ms(100);   //espero 100 milisegundos para ke se alcanse a ver
display1 = 0;   //lo apago

portb = numeros[unidades];    //muestro en el display el valor del voltaje  de unidades

display2 = 1;    //lo mismo pero con el segundo
delay_ms(100); 
display2 = 0; 


if (voltaje > 99)    //si hay mas de 99 voltios en el pin
sobrevoltaje = 1;   //activo la alerta  de sobrevoltaje

if(sobrevoltaje = 1)  //si se actibo la alerta de sobreboltaje
led = 1;       //activo el led que indica sobreboltaje en el pin

goto inicio;  //vuelvo a ejecutar el programa de forma infinita

}

y otra cosa que pasa es que el led que indica sobrevoltaje esta siempre encendido, no se apaga nunca no se porque como le hago para que sirva bien??

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2979
Re: muy raro que los numeros salgan de color negro en display de 7 segmentos
« Respuesta #1 en: 22 de Marzo de 2015, 14:26:28 »
Si se te estan encendiendo al contrario de como quieres, lo mas probable es que tengas la lógica cambiada, mira a ver si tu display es de anodo comun o de catodo comun.

lo de que parpade demasiado, es por el tiempo de refresco, ten en cuenta que para que no parpade como mucho debes refrescarlo cada 20ms, esos 20ms debes repartirlos entre los distintos digitos, por ejemplo si tienes 4 digitos cada digito debes refrescarlo cada 4 ms.

el led de sobretension, lo mismo mira a ver si tienes la logica cambiada, de este modo se te deberia apagar cuando detectes cortocircuito.

por cierto eso parece CCS yo he tenido muchos problemas de bug con CCS y recomiendo a todos que se cambien a mplab y los compiladores de microchip un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: muy raro que los numeros salgan de color negro en display de 7 segmentos
« Respuesta #2 en: 22 de Marzo de 2015, 14:53:13 »
Tienes que cambiar los valores en el array numero. Cambia cada numero por su complemento.
Lo del parpadeo lo arreglas bajando el tiempo del delay-ms 100. Bajalo a menos de 10 mseg.
Lo del led,veo que se enciende al superar los 99v y ya nunca se apaga, como haces para apagarlo?

Saludos!
« Última modificación: 22 de Marzo de 2015, 14:56:57 por elgarbe »
-
Leonardo Garberoglio

Desconectado rodrigo_pinilla

  • PIC10
  • *
  • Mensajes: 11
Re: muy raro que los numeros salgan de color negro en display de 7 segmentos
« Respuesta #3 en: 22 de Marzo de 2015, 14:55:58 »
muchas gracias, ya solucione el problema lo cambie a catodo comun los que tenia eran anodo y por eso salia mal, tambien le cambie el delay y ya no parpadeea, pero ahora tengo otro problema el pic lee mal el voltaje, si me pudieran ayudar se los agradeceria mucho:

http://www.todopic.com.ar/foros/index.php?topic=44258.0


 

anything