0% encontró este documento útil (0 votos)
91 vistas19 páginas

Proyect Final

El documento presenta un proyecto de un reloj digital con fecha y cronómetro desarrollado en C. Incluye una introducción sobre relojes digitales, el marco teórico sobre componentes y herramientas como Dev C++, y el desarrollo del código para mostrar la hora, fecha y un cronómetro en bucles anidados.

Cargado por

Cabrera Milton
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
91 vistas19 páginas

Proyect Final

El documento presenta un proyecto de un reloj digital con fecha y cronómetro desarrollado en C. Incluye una introducción sobre relojes digitales, el marco teórico sobre componentes y herramientas como Dev C++, y el desarrollo del código para mostrar la hora, fecha y un cronómetro en bucles anidados.

Cargado por

Cabrera Milton
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

UNIVERSIDAD MAYOR DE SAN ANDRES


FACULTAD DE INGENIERIA
CARRERA DE INGENIERIA ELECTRONICA

Proyecto final
RELOJ DIGITAL con fecha y cronometro
PROGRAMACION
(ETN-307)

Docente: ING. CARLOS


AVILES CORTEZ

Estudiante: CABRERA
MENDOZA MILTON

Fecha de entrega: 03/10/2012

1
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

INDICE

RESUMEN

INDICE

LISTA DE FIGURAS

I INTRODUCCION ------------------------------------------------------- PAG.3

II MARCO TEORICO ------------------------------------------------------- PAG.4

III DESARROLLO DE PROYECTO ----------------------------------- PAG.6

IV ANALISIS DE RESULTADO ----------------------------------- PAG.12

V COSTOS ------------------------------------------------------- PAG.16

VI CONCLUSIONES Y RECOMENDACIONES ------------------------ PAG.16

VII BIBLIOGRAFIA ----------------------------- PAG.16

ANEXOS

LISTA DE FIGURAS

Fig.1 ------------------------------------------------------------------------ pag.5

Fig.2 ------------------------------------------------------------------------ pag7

Fig.3 ------------------------------------------------------------------------ pag.8

Fig.4 ------------------------------------------------------------------------ pag.8

Fig.5 ------------------------------------------------------------------------ pag.11

Fig.6 ------------------------------------------------------------------------ pag.11

Fig.7 ------------------------------------------------------------------------ pag.12

Fig.8 ------------------------------------------------------------------------ pag.17

RELOJ DIGITAL CON FECHA Y CRONOMETRO

2
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

I. INTRODUCCION:

1.1 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 diferentes cursos


básicos de de la electrónica. En nuestro caso en la materia de programación lógica, con
este proyecto se pretende demostrar todo lo aprendido en dicho curso.

1.2. OBJETIVOS Y METAS:

1.2.1 OBJETIVO GENERAL:

 Implementación de un reloj digital utilizando el lenguaje de programación C y


aplicando compiladores de uso en este curso del dev c++, turbo c++ y otros.

1.2.2 OBJETIVOS ESPECIFICOS:

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


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

1.3 ALCANCES Y LIMITES

Para el desarrollo de los objetivos que trazamos a un inicio se requiere de los consignados en la
propuesta del proyecto se ha decidido utilizar el compilador dev c++ para la implementación de este
proyecto.
Los alcances que se desean llegar es simple, de demostrar la simulación de un reloj
digital que consta de fecha y un cronometro.

Las limitaciones que se dan son de no poderse implementar el diseño en un circuito


integrado, también se limita en que solo muestre todo las características de la fecha en

3
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

formato de numero y no así representada en letras de los 7 días de la semana que


existen.

II. MARCO TEORICO:

2.1 EL RELOJ:
Aspecto Histórico-Social
En la antigüedad se conocieron varias especies de relojes, Vitrubio habla del reloj
de a g u a o c l e p s i d r a , d e l d e a i r e , d e l d e s o l y d e o t r a s e s p e c i e s
q u e 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 q u e l o s g r a n d e s r e l o j e s d e p e s a s y r u e d a s
f u e r o n i n v e n t a d o s e n 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.

Se denomina reloj a un instrumento que permite medir el tiempo, existe diversos tipos que
se adecuan según los propósitos.
 Conocer la hora actual
 Medir la duración de un suceso
 Activar un a alarma en cierta hora especificada.
 O de tener un cronometro en mano para un determinado uso.
 Saber que día, mes o año en que uno se encuentra.
La cuenta de números se lo realizara en binario de 4 bits, no obstante este numero de
base 2 no representa números decimales.
Un reloj digital es un tipo de reloj que basa su funcionamiento en la electrónica digital para
marcar el tiempo. Este tipo de reloj está diseñado en su interior por pequeños dispositivos
electrónicos, y por ser este el caso, funcionan con un voltaje de 5 voltios.
Los relojes digitales son empleados mucho actualmente, en la mayoría de
electrodomésticos que tenemos en nuestro hogar.

4
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

2.2 Descripción y funcionamiento de herramientas:

Como parte importante para comprender como es que se implemento el reloj digital,
tenemos que comprender el funcionamiento, la forma de instalación, el rango de trabajo y
las peculiaridades de cada uno de los elementos y dispositivos que se emplearon en su
implementación, para tal fin hemos agregado las características de todos los
componentes que se emplearon en este circuito.

Case recordarle al lector que su conocimiento es importante, tal vez la parte mas
importante de toda la obra, ya que se esto dependerá el máximo aprovechamiento que le
demos a esta obra.

El programa propuesto para el desarrollo de este proyecto es el dev c++ a continuación


mostraremos alguna de las características del mismo.

1
2

Fig.1

5
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

En general la descripción que podemos hacer del programa a utilizarse, del cual
citaremos los mas importantes son:

1. En la figura (1) uno se puede observar que es la pantalla donde se desarrolla la


codificación en c.
2. Es el cuadro en donde se crea el proyecto.
3. Son las barras de herramientas que se utilizaran.
4. Es una venta donde se muestran los errores que se cometen en el desarrollo del
programa, donde nos muestra el numero de fila en donde existe el erro con un
mensaje.

III. DESARROLLO DEL PROYECTO:

Las librerías que se utilizaran para el diseño y simulación del programa son.

#include <stdlib> /* Declaramos las librerías iniciales */

#include <iostream>

#include <conio.h>

#include <stidio.h>

#include <string.h>

Por otro lado para desarrollar el programa necesitamos crear un programa para que nos
muestre la hora, los minutos y los segundos.

El código fuente es:

int main()
{
    int a, b, c, d, e, f;
    system("title **Hora y Fecha por HackerPasivo**");
    system("color 0c");
    cout << "\t\t\t**Hora y Fecha por HackerPasivo**\t\t\t\n\n" <<
endl;
    printf("Pon la hora que es(solo la hora, no los minutos)\n");
    scanf("%i", &c);
    system("cls");
    printf("Pon los minutos\n");
    scanf("%i", &d);
    system("cls");
    printf("Pon el numero de el dia\n");
    scanf("%i", &a);
    system("cls");
    printf("Pon el numero del mes\n");

6
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

    scanf("%i", &b);
    system("cls");
    for(b=b; b<=12; b++)
    {
             for(a=a; a<=31; a++)
             {
                      for(c=c; c<=24; c++)
                      {
                               for(d=d; d<=60; d++)
                               {
                                        for(e=0; e<=60; e++)
                                        {
                                                 for(f=0; f<=50; f+
+)
                                                 {                 

                                                         
printf("%i.%i.%i Hs.\n\n", c, d ,e);
                                                      printf("Fecha
%i/%i\n\n", a, b);
 
system("cls");
                                                 }
                                        }
                               }
                               
                      }
                     
             }
    }
}

donde al compilarlo nos pide primeramente la hora como en la figura:

Fig.2

7
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

Seguidamente los minutos:

Fig.3
Y finalmente los segundos.

Fig.4

PARA MOSTRAR LA FECHA:

8
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

También creamos otro programa:


Diagrama de bloque.

Leer
Dia,mes,año

mes

d= d=3 d= d= d= d= d= d= d= d=
31 1 30 31 30 31 31 30 31 30

Año=bisiesto

d=
d= d=
31
28 29

FALSO

dia<=d

d=1 d = d+1

mes=12

mes=mes+ mes= 1
1 año=año+
1

9
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

Imp
Dia,mes,año

cout << "\n\n\n\n\t\t\t Escriba el dia actual?\n";


cout <<"\n\n\n\n\t\t\t ";
cin >> dia;

cout << "\n\n\n\n\t\t\t Escriba el mes actual?\n";


cout <<"\n\n\n\n\t\t\t ";
cin >> mes;
system("cls");

cout << "\n\n\n\n\t\t\t Escriba el anio actual?\n";


cout <<"\n\n\n\n\t\t\t ";
cin >> anio;
system("cls");
while (a == 0)
{
switch (mes)
{
case 4:d=30;
case 7:d=30;
case 9:d=30;
case 11:d=30;
break;
case 1:d=31;
case 3:d=31;
case 5:d=31;
case 6:d=31;
case 8:d=31;
case 10:d=31;

10
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

case 12:d=31;
break;
case 2: d=29;

break;

default: return FALSE;


y como resultado nos muestra como en las siguientes figuras.

Fig.5

Fig.6

11
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

Fig.7
De igual forma un programa para el cronometro:
Cronometro
#include <cstdlib> /* Declaramos las librerías iniciales */
#include <iostream>

using namespace std;

int main()
{
    system("title Cronometro 9999 - by Erik");

  int h, m, s, ml;

  for(h=0; h<9999; h++)


  {
  for(m=0; m<60; m++)
  {
    for(s=0; s<60; s++)
    {
      for(ml=0; ml<18.5; ml++)
      {
            cout << "Cronometro:";
        cout << h << ":" << m <<":"<< s << "." << ml << "\n";
        system("cls");
    }
  }
}
  cout << "Ha llegado a las 9999 horas";
  system("PAUSE>NUL");
}

IV. ANALISIS DE RESULTADOS:


Por ultimo y para concluir con el diseño unimos los tres programas en uno y nos dará
como resultado que se muestra a continuación.

12
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

//hora, fecha y cronometro


#include <iostream>
#include <windows.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

using namespace std;


bool e;
int main()
{
int a = 0;
int h;
int m;
int s;
int dia;
int mes;
int anio;
int d;
int hr;
int min;
int seg;
int ml;
char c;

mistake:
system ("color 39");

cout <<"\n\t PARA INICIAR CRONOMETRO PRESIONE SPACE:\n\n\t";


cout <<" PARA INICIAR RELOJ PRESIONE ENTER:\n";
c=getch();
hr=0;
min=0;
seg=0,
ml=0;
e=0;
a=0;
if (c==32)
{

while (!e)
{
system ("color 12");

do
{

{system ("color 12");


system("Cronometro 9999 ");

for(hr=0; hr<9999; hr++)

13
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

{
for(min=0; min<60; min++)
{
for(seg=0; seg<60; seg++)
{
for(ml=0; ml<50; ml++)
{
cout << "\n\n\n\t\t\t CRONOMETRO:\n\n\n\t\t\t\t";
cout << hr << ":" << min <<":"<< seg << ":" << ml << "\n";
system("cls");

if(GetAsyncKeyState(VK_LSHIFT))
{

cout << "\n\n\n\t\t\t CRONOMETRO:\n\n\n\t\t\t\t";


cout << hr << ":" << min <<":"<< seg << ":" << ml << "\n"<<endl;
getchar();

}
if(GetAsyncKeyState(VK_ESCAPE))
{ hr=0;
min=0;
seg=0,
ml=0;
cout << "\n\n\n\t\t\t CRONOMETRO:\n\n\n\t\t\t\t";
cout << hr << ":" << min <<":"<< seg << ":" << ml << "\n"<<endl;
getch();}

}
}
}
}
cout << "Ha llegado a las 9999 horas";
system("PAUSE>NUL");
}

}while(a!=32);

if(GetAsyncKeyState(VK_LSHIFT))
{
e=1;
hr=0 ; min=0; seg=0; ml=0;
cout << "\n\n\n\t\t\t CRONOMETRO:\n\n\n\t\t\t\t";
cout << hr << ":" << min <<":"<< seg << ":" << ml << "\n";

14
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

}
else

cout << "\n\n\n\t\t\t Que hora es?\n";


cout <<"\n\n\n\n\t\t\t ";
cin >> h;
system("cls");
if (h > 24 )
{
cout << "\n\n\n\n\t\t\t Por favor, vuelve a intentarlo!\n\n";
system("cls");
goto mistake;
}
cout << "\n\n\n\n\t\t\t Escriba el minuto actual?\n";
cout <<"\n\n\n\n\t\t\t ";
cin >> m;
system("cls");
if ( m > 60 )
{
cout << "\n\n\n\n\t\t\t Por favor, vuelve a intentarlo!\n\n";
system("cls");
goto mistake;
}
cout << "\n\n\n\n\t\t\t Escriba el segundo actual?\n";
cout <<"\n\n\n\n\t\t\t ";
cin >> s;
system("cls");
if ( s > 60)
{
cout << "\n\n\n\n\t\t\t Por favor, vuelve a intentarlo!\n\n";
system("cls");
goto mistake;
}
cout << "\n\n\n\n\t\t\t Escriba el dia actual?\n";
cout <<"\n\n\n\n\t\t\t ";
cin >> dia;
system("cls");
if (dia > 31)
{
cout << "\n\n\n\n\t\t\t Por favor, vuelve a intentarlo!\n\n";
system("cls");
goto mistake;
}
cout << "\n\n\n\n\t\t\t Escriba el mes actual?\n";
cout <<"\n\n\n\n\t\t\t ";
cin >> mes;
system("cls");
if ( mes > 12)
{
cout << "\n\n\n\n\t\t\t Por favor, vuelve a intentarlo!\n\n";
system("cls");
goto mistake;
}
cout << "\n\n\n\n\t\t\t Escriba el anio actual?\n";

15
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

cout <<"\n\n\n\n\t\t\t ";


cin >> anio;
system("cls");

if (anio < 0)
{
cout << "\n\n\n\n\t\t\t Por favor, vuelve a intentarlo!\n\n";
system("cls");
goto mistake;
}

while (a == 0)
{
switch (mes)
{
case 4:d=30;
case 7:d=30;
case 9:d=30;
case 11:d=30;
break;
case 1:d=31;
case 3:d=31;
case 5:d=31;
case 6:d=31;
case 8:d=31;
case 10:d=31;
case 12:d=31;
break;
case 2: d=29;

break;

default: return FALSE;


}
while (dia<=d)
{ cout <<"\n\n\n\n\t\t\t ";
cout <<" HORA Y FECHA";
cout <<"\n\n\n\n\t\t\t ";
cout << h << ":" << m << ":" << s <<"\n\n";
cout <<"\n\n\t\t\t ";
cout << dia << ":" << mes << ":" << anio <<"\n\n" ;
cout <<"\n\n\t\t\t ";
cout << hr << ":" << min << ":" << seg <<":" << ml;
Sleep(1000);
system("cls");
s++;
if (s > 59)
{
s = 0;
m++;

if (m > 59)
{
m = 0;

16
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

h++;

if (h > 23)
{
h = 0;

dia++;

}
}
}
}

dia=1;
mes++;

if (mes > 12)


{
mes=1;
anio++;
}
}

getch ();
}

Como resultado se obtiene lo siguiente:

Fig.8

17
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

V. COSTOS:
El costo este proyecto solo se hace referencia al tiempo invertido en el diseño del
simulador, en la impresión de las hojas el uso de internet para algunas consultas que se
realizaron durante el proceso.
También cabe mencionar que de haberse relazado la implementación de la parte del
hardware los costos serian mucho mayores debido a los materiales que se hubiesen
empleado.

VI. CONCLUSIONES Y RECOMENDACIONES:

Para concluir con este proyecto aremos referencia a algunos aspectos.

 El formato de la hora se da con un siglo de 24, los minutos y segundos da hasta 60


 La frecuencia de transición el ancho de un segundo a otro es de Sleep(1000).
 La fecha esta en formato numérico pero se podría modificarlo mostrando en forma
literal los días, el mes solo en cuestión de diseño.

Para terminar se recomienda a todo los lectores que el presente proyecto se implemente
el diseño de la parte de hardware, es decir con un circuito integrado para su mejor
apreciación del objetivo de este proyecto.

VII. BIBLIOGRAFIA:

PROGRAMACION EN C++ PARA INGENIEROS- XHAFA ,PERE PAU VÁZQUEZ

The C Programming Language (2nd Edition), Prentice Hall, 1988.

[Link]/

[Link]/.../el-rincon-del-programador-5

18
INGENIERIA ELECTRONICA

PROGRAMACION ETN-307

CABRERA MENDOZA MILTON

19

También podría gustarte