Sunteți pe pagina 1din 6

José Ricardo Medina Rico - A01206578

Oscar Ivan Plata Kalisch - A0123300


Martín Becerra Díaz - A00569928
Microcontroladores
08/04/2019
Reloj Digital
Circuito

Imagen 1. Diagrama de conexión del circuito en proteus.


En la imagen superior podemos ver el circuito empleado para la practica, de lado
izquierdo tenemos el display LCD en el cual se desplegará la hora y también
tenemos la bocina que indica cada cambio de hora, esta emitirá un pequeño sonido
al momento de cambiar de hora, de lado derecho tenemos los botones que nos
sirven para cambiar los parámetros de horas, minutos y segundos de nuestro reloj.
Imagen 2. Variación del circuito, se agregó un cristal de cuarzo de 8 MHz

En el segundo circuito se agregó un cristal de cuarzo de 8MHz el cual esperamos


que aumente la exactitud de nuestro reloj.

Listado del programa

#asm void tonoT0 (float f)


.equ __lcd_port=0x0B {
.equ __lcd_EN=1 float Cuentas;
.equ __lcd_RS=0 unsigned int CuentasEnt;
.equ __lcd_D4=2
.equ __lcd_D5=3 Cuentas=62500.0/f;
.equ __lcd_D6=4 CuentasEnt=Cuentas;
.equ __lcd_D7=5 if ((Cuentas-CuentasEnt)>=0.5)
#endasm CuentasEnt++;
TCCR0A=0x42;
#include <mega328p.h> TCCR0B=0x02;
#include <delay.h> OCR0A=(CuentasEnt-1);
#include <stdio.h>
#include <display.h> }

unsigned char d=0, s=0; void noTonoT0()


signed char m=0, h=0; {
char cadena[16]; TCCR0A=0x00;
TCCR0B=0x00;
PORTD=6; }
} if (PINC.3==0) // H-
{
void main(void) if(h==0)
{ h=23;
SetupLCD(); else
DDRD=0xFF; h--;
PORTC=0x1F; }
TCCR1A=0; if (PINC.4==0) // H+
TCCR1B=0x0A; {
OCR1AH=31249/256; if(h==23)
OCR1AL=32149%256; h=0;
while (1) else
{ h++;
}
sprintf(cadena,"%02i:%02i:%02i",h,m,s
); if (d==10)
MoveCursor(4,0); {
StringLCDVar(cadena); s++;
if (PINC.0==1) d=0;
d=d+2.5; }
while(TIFR1.OCF1A==0); if (s==60)
TIFR1.OCF1A=1; {
//Revisar switches m++;
if (PINC.0==0) s=0;
{ }
d=0; if (m==60)
s=0; {
} h++;
if (PINC.1==0) // M- m=0;
{ tonoT0(400);
if(m==0) delay_ms(200);
m=59; noTonoT0();
else }
m--; if (h==24)
} h=0;
if (PINC.2==0) // M+ }
{ }
if(m==59)
m=0;
else
m++;
Explicación del programa
Primeramente se incluyeron las funciones previamente hechas de Tono y noTono,
configuramos la LCD y pusimos modo CTC con preescalador de CK/8. Hicimos
condiciones if para revisar si los botones estaban aumentados y así aumentar o
disminuir las horas siempre y cuando aplicará, por ejemplo si apretabas M-, y m=0,
tu m debería cambiar a 59 en este caso. De igual manera cuando m=60, hacíamos
que m se fuera a 0 y soñábamos el sonido por 200ms con la función tono.

Imágenes del circuito

Imagen 3. Primer circuito funcionando (1MHz)


Imagen 4. Segundo circuito funcionando (8MHz)
Resultados
Después de dos horas de prueba tuvimos un atraso de 7 segundos, esto en el
circuito con el cristal de 8 MHz lo cual nos dice que tenemos una frecuencia mayor
en el cristal externo, por medio de cálculos podemos deducir que

(120*60) Segundos en los que se adelantó x 7 seg (lo que se adelantó)

En 1 seg x

x= 7/(120*60)=​0.00097222 ms

Esto nos da un margen de error de ​9.72%

Esto nos da una frecuencia real del cristal de ​8.78016 MHz

El primer circuito, sin el oscilador externo, se adelantó 44 segundos en 40 minutos,


haciendo los cálculos como en el mostrado anteriormente nos da

(44*60) Segundos en los que se adelanto x 44 seg (lo que se adelantó)


En 1 seg x

x= 44/(40*60) = ​ 0.01833 ms

Esto nos da un margen de error de ​78.016%


Liga compilación de videos
https://www.youtube.com/playlist?list=PL1WVMG6haIGKjODiE-NXtf--K9vEymlDN

Se decidió hacer una compilación debido a que se tomaron los videos en distintos
dispositivos.

Conclusiones
● Jose Ricardo
Podemos concluir que el cristal del cuarzo líquido es muy importante para
estas aplicaciones ya que prácticamente tienes una precisión de la frecuencia
cercana al 100% de acuerdo a lo que deseas.
● Martin Becerra
Pude comprender mejor el tema de la frecuencia para el trabajo de un
microcontrolador, supongo que así funcionan las computadoras, o bien que se rigen
por un principio similar, por lo cual puedo decir que una mayor frecuencia se traduce
en una mejor forma de trabajar y en mayor exactitud, así como también velocidad.
● Oscar Ivan
La práctica me sirvió para repasar conceptos vistos en clase, como la
pantalla LCD los timers y el uso de frecuencias y preescalador en un programa,
todos estos conceptos son importantes para lograr un desarrollo óptimo en la clase
y fuera de ella en caso de que nos dediquemos a un campo relacionado con
microcontroladores.

S-ar putea să vă placă și