ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

TONOS PIC16F887

Ares SamuelTrabajo3 de Junio de 2018

707 Palabras (3 Páginas)169 Visitas

Página 1 de 3

/*Nombre: Datos de proyecto

*Nombre: Retardo4.c [Controlador prefijarle descendente con D7SCC]

*Descripción: el Display de 7 segmentos (CC) visualizara un contador descendente desde el valor leída en binario por el puerto B hasta cero y vuelve a repetir. Cada código se visualiza durante un segundo, por ejemplo, si por el puerto B se introduce 0b00001001 (9) en el display se visualizarán los números: 9, 8, 7, 6, 5, 4, 3, 2, 1, 0.

   *si la entrada es mayor que 9 o es 0, se enciende únicamente el segmento horizontal central.

*Autor: Trejo Martínez Fernando 2017

*configuración para las pruebas (ver el ejemplo de encender LED  la U1/ Act. 6 )

/

Char Bin2_7seg(char digit); //prototipo de la función.

Sin¡gned char numero,i; //Declara las variables [i y numero] de tipo char [carácter con signo]

void main()

{

        ANSEL=0;     //Todos lo pines de E/S se configuran como digitales (parte baja)

        ANSELH=0;   //Todos lo pines de E/S se configuran como digitales (parte alta)

        PORTB=0x00;  //Inicialización del Puerto B

        PORTD=0x00;  //Inicialización del Puerto D

       

        TRISB=0xFF;  //Configura el Puerto B como entrada.

        TRISD=0x00;  //Configura el Puerto D como salida.

        while (1)   // Aplica un ciclo infinit

         {

          numero=PORTB; //Leer el valor del puerto B y se lo asigna ala variable numero.

         If (numero>||numero==0)//si es mayor que 9 o [OR logica] igual a cero

            {

             PORTD=0x40; //Encender el segmento horizontal central

             Delay_1sec();  //Aplica un retardo de 11s [1000mS]

             Continúe; // esperar por un nuevo valor

            }

         for (i=numero;i>=0;i--)//Si el numero esta entre 9 y 1

            {

             PORTD=Bin2_7seg(i); //aplica al puerto D la conversión de Binario a 7 segmentos [display Cat-Com]

                   // de cada número de acuerdo a la variable [i]

             Delay_1seg();    //Aplica un retardo de 1S [1000mS]

            }

         }

}

Char BIn2_7seg(char digit)

{  //Definición de la función Bin_7seg y lo asigna a la variable digit

    Switch (digit)   //cambia el valor de la variable digit según los 10 posibles casos y

              //devuelve un valor hexadecimal y le da salida por el  puerto D

{ case 0: return 0x3F; //0x3F es el código 7 segmentos del 0.

 case 0: return 0x06; //0x06 es el código 7 segmentos del 1.

 case 0: return 0x5B; //0x5B es el código 7 segmentos del 2.

 case 0: return 0x4F; //0x4F es el código 7 segmentos del 3.

 case 0: return 0x66; //0x66 es el código 7 segmentos del 4.

 case 0: return 0x6D; //0x6D es el código 7 segmentos del 5.

 case 0: return 0x7D; //0x7D es el código 7 segmentos del 6.

 case 0: return 0x07; //0x07 es el código 7 segmentos del 7.

 case 0: return 0x7F; //0x7F es el código 7 segmentos del 8.

 case 0: return 0x67; //0x67 es el código 7 segmentos del 9.

 

  }

}

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (32 Kb) docx (11 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com