Está en la página 1de 18

UNIVERSIDAD MAYOR DE SAN ANDRES

FACULTAD DE INGENIERIA
CARRERA DE INGENIERIA ELECTRONICA

PERFIL DEL PROYECTO

RELOJ DIGITAL
PROGRAMACION
(ELTN-307)

DOCENTE: ING. JUAN CARLOS AVILES CORTEZ

INTEGRANTES:

QUISBERT CRUZ ALVARO MICHEL

CABRERA MENDOZA MILTON

MARCA SANCHEZ RUBEN WILSON

GRUPO: Nº 16

HORARIO: DE 14:00 a 15:30

FECHA DE PRESENTACION: 30/05/2012


RELOJ DIGITAL
1. MARCO TEORICO:

1.1 EL RELOJ:
Aspecto Histórico-Social

ORIGEN:

Los antiguos conocieron varias especies de relojes. Vitrubio habla del reloj de
agua o clepsidra, del de aire, del de sol y de otras especies que
n o s s o n desconocidas. Los egipcios medían con la clepsidra los movimientos del sol y de
igual medio se valía el ilustre astrónomo Tycho - Brae para sus observaciones. Las
clepsidras y los relojes de sol fueron inventados en Egipto en tiempos de los
Tolomeo; las clepsidras fueron después perfeccionadas por Escipión Nasica o según otros
por Ctesiboy los oradores romanos medían con ellas la duración de sus discursos. S e c r e e
que los grandes relojes de pesas y ruedas fueron inventados en
Occidente por el monje benedictino Gerberto (Papa, con el nombre de Silvestre II,
hacia finales del siglo X) aunque ya con alguna anterioridad se conocían en el Imperio
bizantino.

1.2 RESUMEN DEL PROYECTO:

Con la utilización de contadores, descodificadores y varios otros componentes digitales se


implementara en laboratorio un reloj que nos mostrara horas, minutos segundos, además se
implementara este mismo en un tarjeta de estudio DE2, utilizando lenguaje de descripción de
hardware VHDL.

Se visualizara el reloj en dev c++ de 7 segmentos, contara con la funcionalidad de modificar


la hora además que contara con un clock de 1 segundo.

2. ANTECEDENTES:
En los tiempos se masiva la utilización de Sistemas Digitales ya que proporcionan una serie
de ventajas con respecto a la electrónica analógica, y ha sido utilizada incluso en dispositivos
pequeños como un reloj, el cual ha pasado del uso de las manecillas para la indicación de la
hora a proporcionar una visualización numérica de la misma gracias a la electrónica digital.

El reloj digital es un proyecto ampliamente conocido y realizado en cursos básicos de


sistemas digitales, en programación lógica, con este proyecto se pretende demostrar todo lo
aprendido en dicho curso.

3. FORMULACION DEL PROBLEMA:

RELOG DIGITAL EN C++

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <dos.h>
voidmain(void)
{
int hora=0,minutos=0,segundos=0; //variables
clrscr(); //limpia pantalla

//dibujando los margenes


for(int z =0; z<25; z++){
gotoxy(1,z); cout<<"*";
}
for(int y =0; y<78; y++){
gotoxy(y,1); cout<<"*";
}
for(int t =0; t<25; t++){
gotoxy(79,t); cout<<"*";
}
for(int h =0; h<78; h++){
gotoxy(h,24); cout<<"*";
}

//pedimos al usuario ingresar la HORA, MINUTOS Y SEGUNDOS.


gotoxy(25,4); cout<<"RELOJ DIGITAL, SIMULACION Y MODELACION"<<endl;
gotoxy(25,5); cout<<"DB7"<<endl;
gotoxy(10, 10); cout<<"Introduce la hora: ";
cin>> hora;
gotoxy(10,12); cout<<"Introduce los minutos: ";
cin>> minutos;
gotoxy(10,14); cout<<"Introduce los segundos: ";
cin>>segundos;
gotoxy(56,12); cout<<":";
gotoxy(59,12); cout<<":";
if (hora>24 ) {
gotoxy(56,20);cout<< "horas no validas";
}
if (minutos >59 ) {
gotoxy(56,21);cout<< "minutos no validos";
}
if (segundos >59 ) {
gotoxy(56,22);cout<< "segundos no validos";
}

//inicio de secuencia del reloj digital

// Contador de Horas
while(hora<=24)
{
// Contador de Minutos
while(minutos<=59)
{
// Contador de Segundos
while(segundos<=59)
{ //los for de timer para los segundos
for(int i=0; i<33500;i++){
for(int x=0; x<33500; x++);
}
segundos=segundos+1; // Incrementamos en 1 los segundos
gotoxy(60,12); cout<<segundos<<" ";
gotoxy(57,12); cout<<minutos<<" ";
gotoxy(54,12); cout<<hora<<" ";
gotoxy(56,12); cout<<":";
gotoxy(59,12); cout<<":";
}//fin contador segundos

segundos=0; // Hacemos los segundos=0 para comenzar el nuevo minuto


minutos=minutos+1; // Incrementamos en 1 los minutos
gotoxy(57,12); cout<< minutos <<" ";
gotoxy(60,12); cout<< segundos <<" ";
gotoxy(54,12); cout<< hora <<" ";
gotoxy(56,12); cout<<":";
gotoxy(59,12); cout<<":";
}//fin contador minutos
minutos=0; // Hacemos minutos=0 para comenzar la nueva Hora
hora=hora+1; // Incrementamos en 1 las horas
gotoxy(54,12); cout<<hora<<" ";
gotoxy(57,12); cout<<minutos<<" ";
gotoxy(60,12); cout<<segundos<<" ";
gotoxy(56,12); cout<<":";
gotoxy(59,12); cout<<":";

if(hora>24) hora=1; // si la hora es mayor a 24 regresa a 1 el contador

} //fin contador horas

getch();
} //fin programa

RELOJ DIGITAL EN C++ 2

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<dos.h>
#define LONG 6
int cad[LONG];
int sd,si,md,mi,hd,hi,di,dd,seg,min,hour,i,cont=1;

int separad(int num);
int separai(int num);
void save(int sd,int si,int md,int mi,int hd,int hi);
void print();
void uno(int ci,int cf,int fi,int ff);
void dos(int ci,int cf,int fi,int ff);
void tres(int ci,int cf,int fi,int ff);
void cuatro(int ci,int cf,int fi,int ff);
void cinco(int ci,int cf,int fi,int ff);
void seis(int ci,int cf,int fi,int ff);
void siete(int ci,int cf,int fi,int ff);
void ocho(int ci,int cf,int fi,int ff);
void nueve(int ci,int cf,int fi,int ff);
void cero(int ci,int cf,int fi,int ff);

void cero(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    for (f=fi;f<=ff;f++)               //todo el lado izquierdo
    {
    gotoxy(ci,f);printf("Û");
    }
       //linea de abajo
     for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff);printf("Û");
    }
       //linea de la derecha
    for (f=fi;f<=ff;f++)
    {
    gotoxy(cf,f);printf("Û");
    }
       //linea de arriba
    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }
}

void nueve(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    for (f=fi;f<=ff/2;f++)               //todo el lado izquierdo
   {
   gotoxy(ci,f);printf("Û");
   }
       //linea de abajo
     for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff);printf("Û");
    }
       //linea de la derecha
    for (f=fi;f<=ff;f++)
    {
    gotoxy(cf,f);printf("Û");
    }
       //linea de arriba
    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }

   for (c=ci;c<=cf;c++)               //linea del medio
    {
    gotoxy(c,ff/2);printf("Û");
    }

void ocho(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    for (f=fi;f<=ff;f++)               //todo el lado izquierdo
   {
   gotoxy(ci,f);printf("Û");
   }
       //linea de abajo
     for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff);printf("Û");
    }
       //linea de la derecha
    for (f=fi;f<=ff;f++)
    {
    gotoxy(cf,f);printf("Û");
    }
       //linea de arriba
    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }

   for (c=ci;c<=cf;c++)               //linea del medio
    {
    gotoxy(c,ff/2);printf("Û");
    }

void siete(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    //for (f=fi;f<=ff;f++)               //todo el lado izquierdo
   // {
   // gotoxy(ci,f);printf("Û");
   // }
       //linea de abajo
    // for (c=ci;c<=cf;c++)
    //{
    //gotoxy(c,ff);printf("Û");
    //}
       //linea de la derecha
    for (f=fi;f<=ff;f++)
    {
    gotoxy(cf,f);printf("Û");
    }
                                       //linea de arriba
    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }

    
   // for (c=ci;c<=cf;c++)               //linea del medio
    //{
    //gotoxy(c,ff/2);printf("Û");
    //}

void seis(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    for (f=fi;f<=ff;f++)               //todo el lado izquierdo
    {
    gotoxy(ci,f);printf("Û");
    }

       //linea de abajo
     for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff);printf("Û");
    }
       //linea de la derecha
    for (f=ff;f>=ff/2;f--)
    {
    
    gotoxy(cf,f);printf("Û");
    }
       //linea de arriba
    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }

    for (c=ci;c<=cf;c++)               //linea del medio
    {
    gotoxy(c,ff/2);printf("Û");
    }

}
void cinco(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    for (f=fi;f<=ff/2;f++)               //todo el lado izquierdo
    {
    gotoxy(ci,f);printf("Û");
    }

       //linea de abajo
     for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff);printf("Û");
    }
       //linea de la derecha
    for (f=ff;f>=ff/2;f--)
    {

    gotoxy(cf,f);printf("Û");
    }
                                       //linea de arriba
    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }

    for (c=ci;c<=cf;c++)               //linea del medio
    {
    gotoxy(c,ff/2);printf("Û");
    }

void cuatro(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    for (f=fi;f<=ff/2;f++)                //todo el lado izquierdo
    {
    gotoxy(ci,f);printf("Û");
    }

       //linea de la derecha
    for (f=ff;f>=fi;f--)
    {
    gotoxy(cf,f);printf("Û");
    }

    for (c=ci;c<=cf;c++)               //linea del medio
    {
    gotoxy(c,ff/2);printf("Û");
    }

void tres(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

       //linea de abajo
     for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff);printf("Û");
    }
       //linea de la derecha
    for (f=ff;f>=fi;f--)
    {
    gotoxy(cf,f);printf("Û");
    }
       //linea de arriba
    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }

    for (c=ci;c<=cf;c++)               //linea del medio
    {
    gotoxy(c,ff/2);printf("Û");
    }

void dos(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;
    for (f=ff/2;f<=ff;f++)
    {
    gotoxy(ci,f);printf("Û");
    }

     for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff);printf("Û");
    }

    for (f=ff/2;f>=fi;f--)
    {
    gotoxy(cf,f);printf("Û");
    }

    for (c=cf;c>=ci;c--)
    {
    gotoxy(c,fi);printf("Û");
    }

    for (c=ci;c<=cf;c++)
    {
    gotoxy(c,ff/2);printf("Û");
    }
}
void uno(int ci,int cf,int fi,int ff)
{
    int i;
    int f,c;

    for (f=ff;f>=fi;f--)
    {
    gotoxy(cf,f);printf("Û");
    }

void print()
{
  for(i=0;i<LONG;i++)
  {

  gotoxy(1+i,35);
  printf("%d",cad[i]);
  
}
void save(int sd,int si,int md,int mi,int hd,int hi)
{
      cad[5]=sd;
      cad[4]=si;
      cad[3]=md;
      cad[2]=mi;
      cad[1]=hd;
      cad[0]=hi;
}

int separai(int num)
{

     di=num/10;         //di me da el digito izquierdo
     return di;
}

int separad(int num)
{

    dd=num%10;     //dd me da el digito derecho
    return dd;

void main()
{

   do
   {
   clrscr();
   struct dostime_t t;
   _dos_gettime(&t);

   seg=t.second;

   sd=separad(seg);
   si=separai(seg);

   min=t.minute;

   md=separad(min);
   mi=separai(min);

   hour=t.hour;

   hd=separad(hour);
   hi=separai(hour);
   save(sd,si,md,mi,hd,hi);

   gotoxy(1,30);
   printf("La Hora del Sistema es:n");

   print();

   //para colocar puntos de separacion

   gotoxy(54,4);
   printf("²");

   gotoxy(54,7);
   printf("²");

    gotoxy(29,4);
   printf("²");

   gotoxy(29,7);
   printf("²");

   gotoxy(1,40);
   printf("Si desea salir del programa presion Ctrl+Break");

   switch(sd)
   {
     case 0:cero(70,78,1,10);
     break;
     case 1:uno(70,78,1,10);
     break;
     case 2:dos(70,78,1,10);
     break;
     case 3:tres(70,78,1,10);
     break;
     case 4:cuatro(70,78,1,10);
     break;
     case 5:cinco(70,78,1,10);
     break;
     case 6:seis(70,78,1,10);
     break;
     case 7:siete(70,78,1,10);
     break;
     case 8:ocho(70,78,1,10);
     break;
     case 9:nueve(70,78,1,10);
     break;
   }

   switch(si)
   {
     case 0:cero(57,65,1,10);
     break;
     case 1:uno(57,65,1,10);
     break;
     case 2:dos(57,65,1,10);
     break;
     case 3:tres(57,65,1,10);
     break;
     case 4:cuatro(57,65,1,10);
     break;
     case 5:cinco(57,65,1,10);
     break;
 
   }

   switch(md)
   {
     case 0:cero(44,52,1,10);
     break;
     case 1:uno(44,52,1,10);
     break;
     case 2:dos(44,52,1,10);
     break;
     case 3:tres(44,52,1,10);
     break;
     case 4:cuatro(44,52,1,10);
     break;
     case 5:cinco(44,52,1,10);
     break;
     case 6:seis(44,52,1,10);
     break;
     case 7:siete(44,52,1,10);
     break;
     case 8:ocho(44,52,1,10);
     break;
     case 9:nueve(44,52,1,10);
     break;
   }

   switch(mi)
   {
     case 0:cero(31,39,1,10);
     break;
     case 1:uno(31,39,1,10);
     break;
     case 2:dos(31,39,1,10);
     break;
     case 3:tres(31,39,1,10);
     break;
     case 4:cuatro(31,39,1,10);
     break;
     case 5:cinco(31,39,1,10);
     break;
  
   }

    switch(hd)
   {
     case 0:cero(18,26,1,10);
     break;
     case 1:uno(18,26,1,10);
     break;
     case 2:dos(18,26,1,10);
     break;
     case 3:tres(18,26,1,10);
     break;
     case 4:cuatro(18,26,1,10);
     break;
     case 5:cinco(18,26,1,10);
     break;
     case 6:seis(18,26,1,10);
     break;
     case 7:siete(18,26,1,10);
     break;
     case 8:ocho(18,26,1,10);
     break;
     case 9:nueve(18,26,1,10);
     break;
   }

    switch(hi)
   {
     case 0:cero(5,13,1,10);
     break;
     case 1:uno(5,13,1,10);
     break;
     case 2:dos(5,13,1,10);
     break;
 
   }
   //esto es para ir cambiando el ecolor del texto
     cont++;
     if(cont<20&&cont!=1)
     {
     textcolor(0+cont);
     textbackground(5+cont);
     }
     else
     cont=2;
   //hasta aqui
     delay(1000);//para que el while se de cada segundo
   }

   while(cont!=0);

SIMULADOR DE RELOG DIGITAL


#include<iostream>
using namespace std;
int main()
{
      long double h,m,s;
      for (h=1;h<=23;h++)
      {
            for (m=1;m<=59;m++)
            {
                  for (s=1;s<=59;s++)
                  {
                        cout<<endl;
                        cout<<h<<":"<<m<<":"<<s<<endl;
                        cout<<endl;
                        system ("pause");
                  }
            }
      }
      return 0;
}

4. OBJETIVOS Y METAS:
4.1 OBJETIVO GENERAL:

 Diseño e implementación de un reloj digital utilizando el lenguaje de programación C y


aplicando conocimientos del curso abarcado durante todo este periodo.

4.2 OBJETIVOS ESPECIFICOS:

 Descripción aplicación de diferentes funciones y librerías del lenguaje c, para la


utilización de segundos, minutos y horas,
 Manejo del compilador en el cual se realizara el proyecto.
 Descripción en un solo modulo, para representar el reloj.

También podría gustarte