Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo de Implementacion de Reloj Digital
Trabajo de Implementacion de Reloj Digital
APRENDIZES:
JAVIER CABALLERO
KEVIN QUISTIAL
MICROCONTROLADORES II
INTRUCTOR:
FREDY VALENCIA
CENTRO DE TECNOLOGIA DE LA MANUFACTURA AVANZADA
2019
Implementación del reloj digital
INTRODUCIÓN
Descripción de la practica
TM_HD44780_Init(20, 4);
TM_HD44780_Puts(0, 0, "SISTEMA TIEMPO");
TM_HD44780_Puts(0, 1, "HORA ");
while (1) {
// HORA DEL RELOD
HAL_RTC_GetTime(&hrtc, &TimeA, RTC_FORMAT_BIN);
TM_HD44780_Puts(10, 1, StringTime(&TimeA));
//COMPARAR HORA ON
if (TimeA.Hours == TimeON.Hours && TimeA.Minutes == TimeON.Minutes
&& TimeA.Seconds == TimeON.Seconds) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 1);
}
//COMPARAR HORA OFF
if (TimeA.Hours == TimeOFF.Hours && TimeA.Minutes ==
TimeOFF.Minutes
&& TimeA.Seconds == TimeOFF.Seconds) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 0);
}
//MODO
if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_10) == 0) {
Modo++;
HAL_Delay(100);
switch (Modo) {
case 1:
TM_HD44780_Puts(18, 1, "HH");
break;
case 2:
TM_HD44780_Puts(18, 1, "mm");
break;
case 3:
TM_HD44780_Puts(18, 1, "ss");
break;
case 4:
TM_HD44780_Puts(18, 1, " ");
TM_HD44780_Puts(18, 2, "HH");
break;
case 5:
TM_HD44780_Puts(18, 2, "mm");
break;
case 6:
TM_HD44780_Puts(18, 2, "ss");
break;
case 7:
TM_HD44780_Puts(18, 2, " ");
TM_HD44780_Puts(18, 3, "HH");
break;
case 8:
TM_HD44780_Puts(18, 3, "mm");
break;
case 9:
TM_HD44780_Puts(18, 3, "ss");
break;
case 10:
TM_HD44780_Puts(18, 3, " ");
Modo = 0;
break;
}
}
//Sumador
if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_11) == 0) {
HAL_Delay(100);
switch (Modo) {
case 1:
TimeA.Hours++;
if (TimeA.Hours == 24) {
TimeA.Hours = 0;
}
HAL_RTC_SetTime(&hrtc, &TimeA, RTC_FORMAT_BIN);
break;
case 2:
TimeA.Minutes++;
if (TimeA.Minutes == 60) {
TimeA.Minutes = 0;
}
HAL_RTC_SetTime(&hrtc, &TimeA, RTC_FORMAT_BIN);
break;
case 3:
TimeA.Seconds++;
if (TimeA.Seconds == 60) {
TimeA.Seconds = 0;
}
HAL_RTC_SetTime(&hrtc, &TimeA, RTC_FORMAT_BIN);
break;
case 4:
TimeON.Hours++;
if (TimeON.Hours == 24) {
TimeON.Hours = 0;
}
TM_HD44780_Puts(10, 2, StringTime(&TimeON));
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 0);
break;
case 5:
TimeON.Minutes++;
if (TimeON.Minutes == 60) {
TimeON.Minutes = 0;
}
TM_HD44780_Puts(10, 2, StringTime(&TimeON));
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 0);
break;
case 6:
TimeON.Seconds++;
if (TimeON.Seconds == 60) {
TimeON.Seconds = 0;
}
TM_HD44780_Puts(10, 2, StringTime(&TimeON));
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, 0);
break;
case 7:
TimeOFF.Hours++;
if (TimeOFF.Hours == 24) {
TimeOFF.Hours = 0;
}
TM_HD44780_Puts(10, 3, StringTime(&TimeOFF));
break;
case 8:
TimeOFF.Minutes++;
if (TimeOFF.Minutes == 60) {
TimeOFF.Minutes = 0;
}
TM_HD44780_Puts(10, 3, StringTime(&TimeOFF));
break;
case 9:
TimeOFF.Seconds++;
if (TimeOFF.Seconds == 60) {
TimeOFF.Seconds = 0;
}
TM_HD44780_Puts(10, 3, StringTime(&TimeOFF));
break;
}
}
/* USER CODE BEGIN 4 */
uint8_t* StringTime(RTC_TimeTypeDef *Time) {
str[0] = '\0';
if (Time->Hours < 10) {
strcat(str, itoa(0, temp, 10));
strcat(str, itoa(Time->Hours, temp, 10));
} else {
strcat(str, itoa(Time->Hours, temp, 10));
}
strcat(str, ":");
if (Time->Minutes < 10) {
strcat(str, itoa(0, temp, 10));
strcat(str, itoa(Time->Minutes, temp, 10));
} else {
strcat(str, itoa(Time->Minutes, temp, 10));
}
strcat(str, ":");
if (Time->Seconds < 10) {
strcat(str, itoa(0, temp, 10));
strcat(str, itoa(Time->Seconds, temp, 10));
} else {
strcat(str, itoa(Time->Seconds, temp, 10));
}
return (uint8_t*) str;
}
/* USER CODE END 4 */