Autor Tema: Contador de 0 a 99 sin interrupciones CCS  (Leído 3211 veces)

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

Desconectado cmontoya

  • PIC10
  • *
  • Mensajes: 29
Contador de 0 a 99 sin interrupciones CCS
« en: 20 de Agosto de 2014, 21:53:07 »
Hola amigos del foro

Tengo una actividad la cual toca hacer un contador 0 a 99, yo lo se hacer utilizando 2 puertos, ademas e visto muchos contadores 0 a 9999 en fin.
Me toca hacer el contador con multiplexeo sin utilizar interrupciones (TIMMER) como puedo hacer un multiplexeo sin eso hay alguna forma??

Gracias por su ayuda

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Contador de 0 a 99 sin interrupciones CCS
« Respuesta #1 en: 21 de Agosto de 2014, 12:50:40 »
algo que pense es , como la multiplexación usa una frecuencia de refresco tal que es imperceptible para el ojo humano, al hacerlo sin interrupciones el refresco de los display iría a mayor frecuencia.
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado nico

  • PIC16
  • ***
  • Mensajes: 180
Re: Contador de 0 a 99 sin interrupciones CCS
« Respuesta #2 en: 21 de Agosto de 2014, 15:02:08 »
Tambien podría ser sin multiplexar, usando el puerto B solamente, nibble alto para decena, nibble bajo para unidad y usar dos conversores bcd a 7 segmentos del tipo cd4511.
Maneras hay muchas, no se si es imprescindible que sea sin multiplexion o solamente el micro sin mas componentes externos.


Slds.

Desconectado cmontoya

  • PIC10
  • *
  • Mensajes: 29
Re: Contador de 0 a 99 sin interrupciones CCS
« Respuesta #3 en: 21 de Agosto de 2014, 22:44:48 »
La logica seria hacer en contador solo con el micro  pero el problema es el multiplexeo alguna solucion o codigo??

Desconectado juanpi2908

  • PIC12
  • **
  • Mensajes: 54
Re: Contador de 0 a 99 sin interrupciones CCS
« Respuesta #4 en: 22 de Agosto de 2014, 08:49:01 »
Hola

Por lo que entiendo utilizas un puerto para la unidad y otro puerto para la decena, para multiplexar
unidad y decena por un solo puerto:

1: escribes el valor de unidad en puerto X y activas el NPN correspondiente al display unidad con RA0 por ejemplo y pon 0 a RA1
2: Pones un temporizador de 100 o 200 mS
3: escribes el valor de decena en puerto X y activas el NPN correspondiente al display decena con RA1 por ejemplo y pon 0 a RA0
4: Pones un temporizador de 100 o 200 mS y vuelves al paso 1

Sdos. :D
, yo lo se hacer utilizando 2 puertos,
« Última modificación: 22 de Agosto de 2014, 09:30:13 por juanpi2908 »
"La gran sabiduría esta en sentirse satisfecho con poca cosa; quien aumenta sus riquezas aumenta sus cuidados; pero una mente contenta es un tesoro oculto a quien no alcanzan las calamidades"

Desconectado cmontoya

  • PIC10
  • *
  • Mensajes: 29
Re: Contador de 0 a 99 sin interrupciones CCS
« Respuesta #5 en: 23 de Agosto de 2014, 01:08:42 »
Hola

Pues anexe la pausa de 200ms pero no multiplexea bien alguna observacion??

Código: [Seleccionar]

#include <16F877A.h>
#fuses xt         
#fuses nowdt       
#fuses noprotect 
#fuses put       
#fuses nolvp   
#use delay(clock=4000000)


#byte puertob= 0x06
#byte puertoc= 0x07
#byte puertod= 0x08


int conteo=0,conteo2=0;
int tab7seg[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67};   


void main ()
{
   set_tris_B(0xFF);
   set_tris_c(0x00);
   set_tris_d(0x00);
   port_b_pullups(true);
   puertoc=(0x00);
   puertod=(0x00);
   
      for(;;)
 {
 
 if(bit_test(puertob,2)==0){       
while(bit_test(puertob,2)==0);   
delay_ms(20); 
conteo++;

if(conteo>9)         
conteo=0;

if(conteo==0)
conteo2++;
if(conteo2>9)
conteo2=0;
               
      output_high(PIN_D1);                 
      output_low(PIN_D0);       
      delay_ms(200);     
      output_c(tab7seg[conteo]);     
      output_low(PIN_D1);                 
      output_high(PIN_D0);     
      delay_ms(200);           
      output_c(tab7seg[conteo2]);             
         
}
 }
}




Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Contador de 0 a 99 sin interrupciones CCS
« Respuesta #6 en: 23 de Agosto de 2014, 13:08:16 »
primero debes poner el dato en el puerto y luego activar como corresponda los displays, recuerda que usando delays "amarras" el procesador en esa rutina.
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA


 

anything