Logo Studenta

Practica Reloj Calendario

¡Este material tiene más páginas!

Vista previa del material en texto

Reloj Calendario 
Instituto Tecnológico de la Laguna 
Microcontroladores 
Práctica 6 
Mecatrónica 
Fecha de elaboración: 17 de junio de 2021 
 
 
 
Consideraciones teóricas 
EL MPLAB IDE es un software de “Entorno de Desarrollo Integrado”, que se ejecuta bajo 
Windows. Con este entorno se pueden desarrollar aplicaciones para los microcontroladores PIC. 
Incluye todas las utilidades necesarias para la realización de proyectos con PIC; permite editar 
el archivo fuente, además de ensamblarlo y simularlo en pantalla pata comprobar cómo 
evolucionan la RAM, ROM, registros del SFR, etc., según progresa la ejecución del programa. 
 
Características: 
Es un potenciómetro (resistencia variable) miniatura de 10 kOhms, 0,2 Watts y 150 Volts, con 
caña estriada de 2,54 cm, sin interruptor (Switch). Color: gris 
 
 
 
 
 
 
 
 
El LCD (Liquid Crystal Dysplay) o pantalla de cristal líquido es un dispositivo empleado para la 
visualización de contenidos o información de una forma gráfica, mediante caracteres, símbolos 
o pequeños dibujos dependiendo del modelo. Está gobernado por un microcontrolador el cual 
dirige todo su funcionamiento. 
Un LCD de 40x2 quiere decir que dispone de 2 filas de 40 caracteres cada una. Los píxeles de 
cada símbolo o carácter, varían en función de cada modelo 
En la siguiente imagen de Proteus se puede observar la estructura de sus pines. 
Se puede dividir en los Pines de alimentación, pines de control y los pines del bus de datos 
bidireccional. Por lo general podemos encontrar además en su estructura los pines de Ánodo de 
led backlight y cátodo de led backlight que son los que encienden el LED del LCD 
Pines de alimentación: 
• Vss: Gnd 
• Vdd: +5 voltios 
• Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K 
conectado a Vdd y Vss. 
 
Pines de control: 
• RS: Corresponde al pin de selección de registro de control de datos (0) o registro de 
datos(1). Es decir, el pin RS funciona paralelamente a los pines del bus de datos. Cuando RS 
es 0 el dato presente en el bus pertenece a un registro de control/instrucción, y cuando 
RS es 1 el dato presente en el bus de datos pertenece a un registro de datos o un carácter. 
• RW: Corresponde al pin de Escritura (0) o de Lectura(1). Nos permite escribir un dato en la 
pantalla o leer un dato desde la pantalla. 
• E: Corresponde al pin Enable o de habilitación. Si E (0) esto quiere decir que el LCD no está 
activado para recibir datos, pero si E (1) se encuentra activo y podemos escribir o leer 
desde el LCD. 
 
El PIC16F84A es uno de los microcontroladores más populares. Todas las instrucciones se 
ejecutan en un solo ciclo excepto las de salto que necesitan dos, cuenta con un módulo oscilador 
de 20MHz, Tiene una Unidad Aritmética Lógica (ALU) de 8 bits y registro de trabajo W del que 
normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de 
Entrada/Salida o el propio código de instrucción. Cuenta con 18 pines incluyendo los de alimentación, 
13 pueden ser usados como E/S. 
Algunas de sus especificaciones son 
• Manufactura: Microchip 
• Voltaje de alimentación: de 2 a 5,5 V 
• Cuenta únicamente con 35 palabras de instrucciones 
• Memoria de Programa: FLASH 1024 palabras regrabable (1 K x 14 bits) 
• Memoria RAM de 68 bytes 
• Memoria EEPROM de 64 bytes 
• Temperatura de operación: -55° a 125°C 
Pines de Bus de datos: 
• El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la 
comunicación con el LCD podemos hacerlo utilizando los 8 bits del bus de datos (D0 a D7) 
o empleando los 4 bits más significativos del bus de datos (D4 a D7). En este caso vamos 
a explicar la comunicación con el bus de 4 bits. 
 
En física, el periodo es el tiempo que tarda en efectuarse una onda o vibración completa, es 
decir, un ciclo o una oscilación completa. Este se mide en segundos (s) y se representa con una 
T . 
Es el número de ciclos producidos por segundo. Se indica con la letra f. Se mide en ciclos/segundo 
o, más comúnmente, en Hertz (Hz). Se relaciona con el periodo mediante la fórmula 
𝑇 =
1
𝑓
 
O, inversamente 
𝑓 =
1
𝑇
 
 
Se conoce por onda cuadrada a la onda que alterna su valor entre dos valores extremos sin 
pasar por los valores intermedios (al contrario de lo que sucede con la onda senoidal y la onda 
triangular, etc.) Se usa principalmente para la generación de pulsos eléctricos que son usados 
como señales (1 y 0) que permiten ser manipuladas fácilmente, un circuito electrónico que genera 
ondas cuadradas se conoce como generador de pulsos, este tipo de circuitos es la base de la 
electrónica digital. Estas ondas, tal como una senoidal, tienen su frecuencia y su periodo 
 
Un botón pulsador (push button) es, básicamente, un interruptor que se puede accionar pulsando 
sobre él. Mientras lo mantenemos pulsado el interruptor estará cerrado, generando continuidad; 
cuando lo soltemos, el interruptor se abrirá. 
 
 
 
 
El bus de comunicaciones I2C (nombrado a veces como I cuadrado C) es un protocolo que se 
efectúa por medio de dos hilos. A través de estos, pueden conectarse diferentes dispositivos 
donde algunos de ellos serán maestros en cuanto muchos otros dispositivos serán esclavos. 
Para poder reconocer cada uno de los dispositivos conectados a los DOS hilos del bus I2C, a cada 
dispositivo se le asigna una dirección. 
Así en este tipo de comunicaciones el maestro es el que tiene la iniciativa en la transferencia y 
este es quien decide con quien se quiere conectar para enviar y recibir datos y también decide 
cuando finalizar la comunicación. 
Los DOS hilos del BUS interfaz de comunicación I2C PIC son líneas de colector abierto donde una 
de las líneas lleva la señal de reloj y es conocida como (SCL), y la otra línea lleva los datos y es 
conocida como (SDA). Los pines de estas señales se encuentran especificados en todos los 
componentes utilizados en este tipo de protocolos. 
La conexión I2C entre un maestro y varios esclavos sería similar a: 
 
 
 El número de dispositivos que pueden conectarse de esta forma y además la longitud del bus es 
limitada según las características del microcontrolador utilizado. 
La transmisión de datos se inicia con un bit de inicio (START) y termina con un bit de finalización 
(STOP). El bit de START se reconoce porque la línea SDA pasa de un estado alto para un estado 
lógico de bajo cuando la línea SCL está en nivel alto. El STOP se establece cuando hay una 
transición de bajo a alto en la línea SDA, cuando SCL está en un nivel alto. 
 
Cuando comienza la transmisión de datos, el maestro envía la dirección del esclavo con el cual se 
quiere comunicar. Después de la dirección, se adiciona un bit, que indica si se desea escribir o leer 
(R/W). 
Cuando el Maestro envía estos datos para el esclavo. El esclavo debe responderle al maestro 
con un bit de confirmación para informarle que escucho la solicitud del maestro y que está a 
disposición de lo que él necesite. Este bit de confirmación se conoce como ACK. Si el maestro NO 
recibe este bit, la comunicación se interrumpe. Por otro lado, se puede dar el caso que un esclavo 
está mandando alguna información al maestro, entonces el maestro también generará este bit 
de confirmación hacia el esclavo. 
Se puede presentar el caso de que, una vez el maestro se comunica con el esclavo, el maestro 
no abandone el bus y continúe comunicándose con el esclavo, para eso el maestro debe generar 
una nueva condición de START que se conoce como START REPETIDA (Sr), idéntica al START 
anterior solo que con un pulso de reconocimiento. 
Para trabajar con el módulo de comunicación I2C en PIC, se deben configurar los siguientes 
registros: SSPCON, SSPCON2, SSPADD, SSPBUF, SSPSTAT y SSPSR. 
El DS1307 es un reloj en tiempo real (RTC: Real Time Clock) con líneas de conexión a un bus I2C 
para lograr comunicarse con un microcontrolador con solo dos líneas o pines. Además, sus 
registros de reloj y calendario,proveen información de segundos, minutos, horas, días, mes y año, 
haciendo el ajuste automático de los días que corresponden a cada mes de acuerdo al año en 
curso. 
Cuenta con las siguientes características: 
• Fabricado por Dallas Semiconductors en encapsulado de 8 pines 
• Cuenta los segundos, minutos, horas, días de la semana, días del mes, meses y años, válido 
hasta el año 2100. 
• Almacena los datos en formato BCD para que se pueda trabajar directamente con ellos. 
• Tiene 56 bytes de RAM no volátil para almacenamiento de datos. 
• En su pin SQW/OUT, proporciona una onda cuadrada programable. 
• Tienen una circuitería interna de “respaldo” para alimentación en caso de fallo de la 
alimentación principal. Por tanto, es capaz de mantener el tiempo y la fecha actualizados 
aún cuando el sistema está apagado. 
• Se puede alimentar entre 4.5 y 5.5 V, siendo su valor típico 5V. 
• Posee un bajo consumo. Menos a 500 nA en el modo respaldo. 
• Utiliza un cristal de cuarzo propio de 32768 Hz para lograr tiempos exactos y no depender 
del microcontrolador. 
• El último día del mes es automáticamente ajustado a 28, 29, 30 o 31 días según 
corresponda, tiene en cuenta los años bisiestos. 
• Puede trabajar en formato europeo de 24 horas o en el americano de 12 con indicador de 
AM/PM. 
• Se activa cuando recibe la dirección válida de la figura. 
 
Adicionalmente posee 56 registros de 8 bits, de uso general que 
podrían ser utilizados por el microcontrolador como un recurso 
extra para guardar información. Toda la configuración y 
operación del chip radica en un conjunto de registros de 8-bits. 
Todos los registros son de lectura y escritura, en particular el 
registro CONTROL permite ajustar ciertas opciones relacionadas 
con una señal externa del pin SQW/OUT. 
También es importante recalcar que los registros almacenan la información en formato BCD, 
es decir unidades y décadas por lo tanto será necesario convertir esta representación a valores 
en decimal antes de proceder con los cálculos. 
LED Rojo de 5 mm: 
Tiene una luminosidad de 120 mcd, un ángulo de vista de 45º, una corriente de alimentación de 20 
mA y una tensión de alimentación de 2,0-2,4 VDC 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
• Laptop con simulador Proteus y compilador MPLAB. 
Dentro del simulador 
• 2 Push button 
• 1 circuito integrado DS1307 
• 2 cristales de cuarzo (4MHz para el microcontrolador y 32768 Hz para el DS1307). 
• 1 potenciómetro de 10kΩ 
• 5 resistencias: 2 de 4.7kΩ, 2 de 330Ω y 1 de 220Ω. 
• 1 LCD LM018L (LCD de 40x2). 
• 4 capacitores: 2 de 22 pF y 1 de 100nF para el PIC y 1 de 100nF para el DS1307. 
• 1 batería de 3V para el DS1307 
• 1 diodo emisor de luz (LED), rojo, en este caso. 
• 1 PIC 16F84A 
Material y equipo 
Desarrollo de la práctica 
Primero que nada, se tiene el siguiente circuito en Proteus: 
 
 
Así, el código en MPLAB es el siguiente 
Para esta práctica, la LCD se conecta como comúnmente para poder utilizar la subrutina, 
además de utilizar otras subrutinas para la comunicación I2C. Aquí, como el código ya se nos fue 
proporcionado, no hubo necesidad de realizar modificaciones mayores 
Lo único “agregado”, en comparación con el proporcionado, es la aparición del nombre del alumno 
(Ángel Alejandro en la primera línea y Arreola Favela en la segunda), esto a lo largo de todo el 
programa, es decir, se muestra simultáneamente el reloj en tiempo real y el nombre. 
Adicionalmente, se cambió, en el código y en el circuito, la ubicación de los botones, para que ahora 
se encuentren en las terminales RB1 y RB2, que son las líneas que faltaban de ser utilizadas en el 
puerto B. Y, de esa manera, ahora sí se tiene el funcionamiento correcto de los botones, el cual 
es configurar o cambiar la fecha/hora del reloj en tiempo real. También, se hizo el intercambio 
de los días de la semana, colocando al domingo como día 1, ya que, con el lunes como primer día, 
el reloj mostraba un día por delante del que realmente era. 
 
 
 
 
 
 
 
 Donde, este programa fue poco más “complejo” que los anteriores que se habían realizado. 
Ahora, con la integración de la comunicación I2C, se vuelven un poco más extensos los códigos 
dadas las subrutinas que tienen que ser creadas. Sin embargo, estos códigos con muchísimo más 
cortos que lo que tendrían que ser en caso de no usar este tipo de comunicación, además de 
requerir más pines para ella. Por esta razón es que este tema se torna muy interesante cuando 
se están programando los microcontroladores. 
Este programa, en todo momento se encarga de mostrar el nombre del alumno, así como la 
manera en que funciona el reloj en tiempo real, donde, en la LCD se estará proyectando, en la 
primera línea, la fecha del día en curso, en el formato Día Mes Año, además de los nombres del 
alumno, mientras que en la línea 2, se muestra el día de la semana y, luego, la hora en formato 
de 24 horas, la cual, va cambiando cada segundo, además del apellido del estudiante, y también, 
cada segundo, se produce el parpadeo del LED que se muestra en el circuito. 
La finalidad de los pulsadores es, con el MODO, seleccionar ya sea año, mes, día, hora, minuto, 
segundo, y con el INCREMENTAR, aumentar en una unidad el valor, como se explica al inicio en los 
comentarios del programa. Sin embargo, como realmente lo que se quiere es el reloj en tiempo 
real, esta opción no sería muy utilizada. 
 
 
 
 
 
Resultados 
Para comprobar el funcionamiento del circuito, comenzamos la simulación en Proteus 
Se observa cómo está el reloj, mostrando los datos mencionados. 
Un minuto después, se muestra 
 Ahora, comparándolo con la hora y fecha dadas por el ordenador, observamos 
Comprobando que sí se trata de un reloj el tiempo real, el cual nos da la hora y fecha 
correctas y correspondientes al día y hora que es

Continuar navegando