Академический Документы
Профессиональный Документы
Культура Документы
PORTD = 0
inicio:
Gosub tiempo
Gosub mostrar
Gosub ajustar_tiempo
Gosub comparar
Gosub resetear
D.R.L.
Goto inicio
End
tiempo:
If control_seg = True Then
control_seg = False
mostrar:
Lcdcmdout LcdClear
Lcdout "Hora ", #horas, ":", #minutos, ":", #segundos
Lcdcmdout LcdLine2Home
Lcdout "Alarma ", #horas_al, ":", #minutos_al, ":", #segundos_al
WaitMs 50
Return
ajustar_tiempo:
If ajustar = True Then
If aj_segundos = True Then
If flanco_seg = 0 Then
flanco_seg = 1
If segundos < 59 Then
segundos = segundos + 1
Else
segundos = 0
Endif
Endif
Else
flanco_seg = 0
Endif
If flanco_min = 0 Then
flanco_min = 1
If minutos < 59 Then
minutos = minutos + 1
Else
minutos = 0
Endif
Endif
Else
flanco_min = 0
Endif
If flanco_horas = 0 Then
flanco_horas = 1
If horas < 23 Then
horas = horas + 1
Else
horas = 0
Endif
Endif
Else
flanco_horas = 0
Endif
Else
If aj_segundos = True Then
If flanco_seg = 0 Then
flanco_seg = 1
If segundos_al < 59 Then
segundos_al = segundos_al + 1
Else
segundos_al = 0
Endif
Endif
Else
flanco_seg = 0
Endif
If flanco_min = 0 Then
flanco_min = 1
If minutos_al < 59 Then
minutos_al = minutos_al + 1
Else
minutos_al = 0
Endif
D.R.L.
Endif
Else
flanco_min = 0
Endif
If flanco_horas = 0 Then
flanco_horas = 1
If horas_al < 23 Then
horas_al = horas_al + 1
Else
horas_al = 0
Endif
Endif
Else
flanco_horas = 0
Endif
Endif
Return
comparar:
If horas = horas_al Then
If minutos = minutos_al Then
If segundos = segundos_al Then
alarma = True
Endif
Endif
Endif
Return
resetear:
If parar_alarma = 1 Then
If flanco_al = 0 Then
flanco_al = 1
alarma = False
Endif
Else
flanco_al = 0
Endif
Return
On Interrupt
conti = 0
Endif
Endif
Resume