Hola:
Estoy tratando de visualizar en un display 7 segmentos de cuatro dígitos y ánodo común, los números del 0 a 9 a través de un registro de desplazamiento CD4094 con un PIC16F676 usando mikroC.
He visto y probado todo lo que he encontrado y no me funciona, el compilador no me da error, pero sin embargo la simulación no funciona
Esto es parte del código que he estado usando:
     
	
	
	
		
Esto lo saqué del libro uControl que tiene esta misma estructura pero en CCS.
Si alguien tiene una respuesta se lo estaría agradeciendo.
				
			Estoy tratando de visualizar en un display 7 segmentos de cuatro dígitos y ánodo común, los números del 0 a 9 a través de un registro de desplazamiento CD4094 con un PIC16F676 usando mikroC.
He visto y probado todo lo que he encontrado y no me funciona, el compilador no me da error, pero sin embargo la simulación no funciona
Esto es parte del código que he estado usando:
		Código:
	
	  #define dato RA0_bit      //pin de datos Data
#define clock RA1_bit     //pin de reloj o Clk
#define strobe RA2_bit   //pin de strobe transfiere los datos a la salida del 4094
        /***************************Declaración Global de variables*******************/
  //char bit_test;
  int t;
int const SEGMENTO[16] =  {0b00000011, //contiene los digitos
                          0b10011111, //0,1,2,3,4,5,6,7,8,9
                          0b00100101, // en formato para ser
                          0b00001101, // mostrados en display de 7segmentos
                          0b10011001,
                          0b01001001,
                          0b01000001,
                          0b00011111,
                          0b00000001,
                          0b00011001,
                          0b00010001,
                          0b11000001,
                          0b01100001,
                          0b10000101,
                          0b01100001,
                          0b01110001};
 void escribir_4094( int caracter){//funcion que carga el registro CD4094 con dato j
 int contador_8;               // variable contador como entero cuenta los bits a sacar por el pin
dato=0;
clock=0;
strobe=0;
   if(contador_8=0,contador_8<8,contador_8++){ //el dato a sacar serialmente es de 16 bits
 dato= caracter & 0x01; // operación and para sacar bit a bit
     dato=caracter >>1;
     dato=dato;
      clock=1;// saca un pulso de reloj
      delay_ms(10);    // de un periodo en alto de 1 ciclo de instrucción
      clock=0;
   }
  strobe=1; // transfiere los datos a las salidas del registro 4094
   delay_ms(10);      // al terminar de  enviar el dato, enviando
   strobe=0;  // un pulso de strobe
        }
  //void bit_test();
void escribir_4094(int caracter);// el numero a convertir es un entero largo
void main(){
porta=0;
portc=0;
trisa=0;
trisc=0;
while (1){               // indice del arreglo unidades=bcd_dato [0],d=[1],...m=[5]
(t=0,t<16,t++)// llena el arreglo con los valores uni,dec,cen,mil,diezm
   {
   escribir_4094(t);
   delay_ms(100); // n dividido 10 para cada i y tomamos su valor entero:
           }
        }
    }
	Si alguien tiene una respuesta se lo estaría agradeciendo.
			
				Última edición por un moderador: