TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: diegostreetbob en 27 de Junio de 2009, 12:09:46
-
Hola compañeros, acabo de iniciarme con la programación en C, aunque anteriormente he trabajado con picbasic y me gustaria que alguien me explicara en este las lineas que no entiendo, es un contador de 0 a 99 con 2 displays 7seg de cátodo común,
No entiendo las lineas marcadas con asteriscos**********
#include <16F876.h>
#USE DELAY( CLOCK=4000000)
#FUSES XT,NOWDT,NOPROTECT,NOPUT
#USE fast_IO (B)
#USE fast_IO (A)
byte CONST DISPLAY[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//00111111,00000110,etc,,,etc,,,*********************
byte ud=0,dec=0;********************************ud y dec no estan definidas perviamente con ningu tipo de variable, no entiendo de donde salen
SET_TRIS_B(0x00);
SET_TRIS_A(0x00);
OUTPUT_B(0);
for( ;; ){
for (dec=0;dec<10;dec++){ //Cuenta digito decenas
for (ud=0;ud<10;ud++){
OUTPUT_A(0x02); //cat_D=apagado,cat_U=encendido
OUTPUT_B(DISPLAY[ud]); //Digito unidades
delay_ms(50); //Para evitar parpadeos
if (dec==0) output_a(0x03); //Si decenas=0, cat_D=apagado
else output_a(0x01); //Si decenas>0, cat_D=encendido
OUTPUT_B(DISPLAY[dec]); //Digito decenas
delay_ms(50); //Para evitar parpadeos
}
}
}
}
Gracias a todos por vuestra ayuda
-
byte = int = 8 bits.
CONST DISPLAY[10], es un arreglo de 10 elementos.
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; es la definiciones de elementos.
Y bueno la siguiente, entendiendo byte ya esta...
-
byte ud=0,dec=0;********************************ud y dec no estan definidas perviamente con ningu tipo de variable, no entiendo de donde salen
esa es la definicion, se definen las variables ud y dec como byte (de 0 a 255) y se inicializan en cero ud=0 y dec=0 de lo contrario toman valores aleatorios
-
hola bueno lo que hace essas lineas es: son numeros hexadesimales de el cual esta asociado a una matris byte CONST DISPLAY[10], mas abajo las define como salida, osea por ejemplo el primer dijito 0x3F equivale a 00111111 en binario y eso equivale a las salidas en alto o bajo del pic que en este caso la asigna al puerto B de este mismo, para poder asi visualizar un digito en el display, donde los 0 equivale a las salidas en alto del pic y los 1 equivalen a entradas. por lo tanto B6 y B7 esta configurado como salida y B0 a B5 como entradas, entonces por cada digito que quiera ver saca un valor de la matriz y lo mete al puerto B y se ve reflejado en el display.
a y up + dec son dos variables que solo pueden tomar un valor o es = 0 ó 1 y nada mas por eso se define byte.
espero aver sido claro saludos
-
hola de nuevo ley mal sorry: byte ud=0,dec=0; Carga 8 bits en el segmento del área de datos del puerto B, con cada dirección del bit especificado