'****************************************************************
'* Name : timer de pedaceria.pbp *
'* Author : Max E. Reyes Vera Juárez *
'* Notice : Copyright (c) 2006 Protegido por leyes de Autor *
'* : All Rights Reserved *
'* Date : 23/10/2006 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_EREG PORTC
DEFINE LCD_EBIT 4
DEFINE LCD_RSREG PORTC
DEFINE LCD_RSBIT 5
ADCON1 = 7
OPTION_REG.7 = 0
TRISA = 255
TRISB = 255
TRISC = 0
TRISD = 0
H VAR PORTB.0
L VAR PORTB.1
ENTER VAR PORTB.2
EXIT VAR PORTB.3
x VAR PORTC.0
TIME VAR WORD
T VAR WORD
SL VAR WORD
RL VAR BYTE
TL VAR BYTE
I VAR WORD
INICIO:
TIME=0
TL=0
T=0
I=0
PORTC=0
LCDOUT$FE,1,"Ingrese el "
LCDOUT$FE,$C0,"Tiempo en minutos "
GOSUB PAUSA
GOTO INICIO
MASTIEMPO:
IF EXIT=0 THEN BREAK
IF L=0 THEN
GOSUB MENOSTIEMPO
ENDIF
IF H=0 THEN
PAUSE 130
IF H=0 THEN
TIME=TIME+1
TL = TIME
LCDOUT$FE,1,"TIEMPO DE:"
LCDOUT$FE,$C0," ",DEC TL,"MINs"
IF L=0 THEN MENOSTIEMPO
ENDIF
ENDIF
IF TIME>=500 THEN
TIME=0
ENDIF
IF ENTER=0 THEN
Tl=(TIME*60)
GOTO DOIT
ENDIF
GOTO MASTIEMPO
MENOSTIEMPO:
IF EXIT=0 THEN BREAK
IF H=0THEN
GOTO MASTIEMPO
ENDIF
IF L=0 THEN
PAUSE 130
IF L=0 THEN
TIME = TIME - 1
TL = TIME
LCDOUT$FE,1,"TIEMPO DE:"
LCDOUT$FE,$C0," ",DEC TL,"MINs"
IF H=0 THEN MASTIEMPO
ENDIF
ENDIF
IF TIME <0 THEN
TIME = 500
ENDIF
IF ENTER=0 THEN
TL=(TIME*60)
GOTO DOIT
ENDIF
GOTO MENOSTIEMPO
PAUSA:
FOR I=0 TO 20
IF H=0 OR L=0 THEN
GOTO MASTIEMPO
ENDIF
PAUSE 100
NEXT I
RETURN
DOIT:
FOR I=0 TO TL
t=((TL-i)/60)+1
LCDOUT $FE,1,"TIEMPO DE: ",DEC TIME," Mins"
LCDOUT $FE,$C0, "RESTANTE:", DEC T, "Mins"
IF EXIT=0 THEN BREAK
PAUSE 778
NEXT I
LCDOUT$FE,1,"HECHO!!!!"
HIGH PORTC.0
PAUSE 1500
GOTO INICIO
BREAK:
PORTC=0
TIME=0
i=0
T=0
TL=0
GOTO INICIO
END