viernes, 26 de julio de 2013

Microcontroladores PIC en mikroC 4 - Display (Contador con Boton de 0 a 9)

El Boton hara que se incremente un contador de 0-9   y se visualizara en el Display de 7 segmentos.

A continuación se muestra el diagrama de conexiones en el simulador ISIS de PROTEUS

 Diagrama de conexiones. (clic en la imagen para ampliar)


Herramienta en mikroc en este caso se seleeciona un CERO y para un display de catodo común, se coloco en la funcion el valor de 0x3F en hexadecimal.

 Seven Segment Editor.


Código empleado en el programa.  

//------------------------------------------------------------
//Declaracnion de funciones(Mostradas al final del programa)
void inicio();
char Display(char digito);
char contador=0, estado=1;  //contadores usados

void main() {
    inicio();
    while(1){
        if(Button(&PORTB,0,1,0)) estado =0;         /*Verifica si se pulso
        el boton por el puerto RB0 con 1 ms de retardo, y se pregunta por un
        nivel bajo(0) debido a la forma en la que esta conectada el boton
        (siempre a un nivel logico 1 con la resistencia) */
       
        if(estado==0 && Button(&PORTB,0,1,1)){      /*El programa no incremen-
        tara el contador sino hasta que se suelte el pulsador(pregunta
        nuevamente por el nivel logico 1)*/
            contador++;                             // incrementa contador
            if(contador>9) contador=0;              // resetea contador
            estado =1;                              // regresa el estado
        }
        PORTD = Display(contador);                  //funcion para crear los
                                                    //numeros

    }
}

//Funcion de configuracion inicial del microcontrolador
void inicio(){
    ANSEL    = 0x00;             // puertos E/S digital
    ANSELH   = 0x00;
    C1ON_bit = 0x00;             // se apagan los comparadores
    C2ON_bit = 0x00;
    PORTB    = 0x00;             // inicialización de puertos.
    PORTD    = 0x00;
    TRISB    = 0xFF;             // puerto B como entrada
    TRISD    = 0x00;             // puerto D como salida

}

//Para un display de catodo comun... se puede apoyar de la herramienta
// en mikroc (Seven Segment Editor)  de la barra de herramientas Tools  para la
//verificacion de los valores
char Display(char digito){
    switch(digito){
        case 0: return 0x3F;
        case 1: return 0x06;
        case 2: return 0x5B;
        case 3: return 0x4F;
        case 4: return 0x66;
        case 5: return 0x6D;
        case 6: return 0x7D;
        case 7: return 0x07;
        case 8: return 0x7F;
        case 9: return 0x67;
    }
}
//------------------------------------------------------------


A continuación se adjuntan los archivos para descargar el proyecto, el archivo .hex para el microcontrolador y la simulacion en ISIS.

No hay comentarios:

Publicar un comentario