;*********************************************************************************************************;
OSCCON=%01100110 ; Se utiliza para pic 16f88, Configura oscilador interno en 4MGH de frecuencia estable
ANSEL=0 ; Se utiliza para pic 16f88, Todos los puertos configurados como digital y si los queremos analogos los = 1
;*******************************************************************************
DEFINE LCD_DREG PORTB ; Indica que el Bus estará conectado en el Puerto B
DEFINE LCD_DBIT 4 ' Selección del Bit de inicio del puerto en el uC para el
' bus de datos de la LCD
DEFINE LCD_RSREG PORTB ' Indica al uC que el pin "RS" estará en el Puerto B
DEFINE LCD_RSBIT 3 ' "RS" estará conectado en RB3
DEFINE LCD_EREG PORTB ' Indica al uC que el pin "E" estará en el Puerto B
DEFINE LCD_EBIT 2 ' "E" estará conectado en RB2
Define Osc 4 ' Define el Oscilador para un Cristal
' de 4 Mhz.
TRISA=%00111110
TRISB=%00000000
;************************* Pines de control ************************
Symbol enter = PORTA.1
;****************************** Declaración de variables******************************
B0 Var Byte
B1 Var Byte
B2 Var Byte
Dias Var Byte
Tardes var byte
Noches var byte
cafe var byte
arroz var byte
jugo var byte
dato var byte
datod var byte
datoa var byte
datoc var byte
Dato = 0
datod = 0
datoa = 0
datoc = 0
LCDOut $fe, 1 ' Limpia la pantalla
Inicio:
LCDOut $fe, 2 ' Posiciona el cursor en el inicio
LCDOut "Bienvenidos"
LCDOut $fe,$C0, "Welcome"
clear
;Menus:
For B0 = 1 To 200
if enter=0 and dato = 0 then gosub suma
Next
gosub Hola1
For B1 = 1 To 200
if enter=0 and dato = 1 then gosub suma
next
gosub Hola2
For B2 = 1 To 200
if enter=0 and dato = 2 then gosub suma
next
gosub Hola3
;goto Menus
goto Inicio
Hola1:
for Dias = 1 to 30
lcdout $fe,1
lcdout $fe,$80,"Buenos"
lcdout $fe,$c0,"Dias"
pause 100
NEXT Dias
lcdout $fe,1
lcdout $fe,$80,"Como"
lcdout $fe,$c0,"Estas"
pause 300
if enter = 0 then gosub desayuno
return
Hola2:
for Tardes = 1 to 30
lcdout $fe,1
lcdout $fe,$80,"Buenas"
lcdout $fe,$c0,"Tardes"
pause 100
NEXT Tardes
lcdout $fe,1
lcdout $fe,$80,"Veo que"
lcdout $fe,$c0,"Estas bien"
pause 300
if enter = 0 then gosub almuerzo
RETURN
Hola3:
for Noches = 1 to 30
lcdout $fe,1
lcdout $fe,$c80, "Buenas"
lcdout $fe,$c0,"Noches"
pause 100
NEXT Noches
lcdout $fe,1
lcdout $fe,$80,"Que pases"
lcdout $fe,$c0,"Bien"
pause 300
if enter = 0 then gosub cena
RETURN
desayuno:
for cafe = 1 to 30
lcdout $fe,1
lcdout $fe,$c80, "Elija 1 opcion"
lcdout $fe,$c0,"de desayuno"
pause 100
NEXT cafe
lcdout $fe,1
lcdout $fe,$80,"1- Americano"
lcdout $fe,$c0,"2- Nativo"
pause 300
if enter = 0 and datod = 0 then gosub sumad
lcdout $fe,1
lcdout $fe,$80,"1- Americano"
pause 300
if enter = 0 and datod = 1 then gosub sumad
lcdout $fe,1
lcdout $fe,$c0,"2- Nativo"
pause 300
lcdout $fe,1
lcdout $fe,$80,"Gracias por"
lcdout $fe,$c0,"su eleccion"
pause 300
RETURN
almuerzo:
for arroz = 1 to 30
lcdout $fe,1
lcdout $fe,$c80, "Elija 1 opcion"
lcdout $fe,$c0,"de almuerzo"
pause 100
NEXT arroz
lcdout $fe,1
lcdout $fe,$80,"1- Guisado"
lcdout $fe,$c0,"2- Sopa"
pause 300
if enter = 0 and datoa = 0 then gosub sumaa
lcdout $fe,1
lcdout $fe,$80,"1- Guisado"
pause 300
if enter = 0 and datoa = 1 then gosub sumaa
lcdout $fe,1
lcdout $fe,$c0,"2- Sopa"
pause 300
lcdout $fe,1
lcdout $fe,$80,"Gracias por"
lcdout $fe,$c0,"su eleccion"
pause 300
RETURN
cena:
for jugo = 1 to 30
lcdout $fe,1
lcdout $fe,$c80, "Elija 1 opcion"
lcdout $fe,$c0,"de almuerzo"
pause 100
NEXT jugo
lcdout $fe,1
lcdout $fe,$80,"1- Asado"
lcdout $fe,$c0,"2- Pizza"
pause 300
if enter = 0 and datoc = 0 then gosub sumac
lcdout $fe,1
lcdout $fe,$80,"1- Asado"
pause 300
if enter = 0 and datoc = 1 then gosub sumac
lcdout $fe,1
lcdout $fe,$c0,"2- Pizza"
pause 300
lcdout $fe,1
lcdout $fe,$80,"Gracias por"
lcdout $fe,$c0,"su eleccion"
pause 300
RETURN
Suma:
Dato = Dato + 1 ' Incrementa en una unidad la variable "Dato".
Pause 350 ' Realiza una pausa de 350 milisegundos para evitar
' que el incremento de la variable sea muy acelerado
' mientras el pulsador "enter" esté presionado.
Return ' Retorna una línea después del llamado "gosub Suma".
Sumad:
datod = datod + 1 ' Incrementa en una unidad la variable "Dato".
Pause 350 ' Realiza una pausa de 350 milisegundos para evitar
' que el incremento de la variable sea muy acelerado
' mientras el pulsador "enter" esté presionado.
Return ' Retorna una línea después del llamado "gosub Suma".
Sumaa:
datoa = datoa + 1 ' Incrementa en una unidad la variable "Dato".
Pause 350 ' Realiza una pausa de 350 milisegundos para evitar
' que el incremento de la variable sea muy acelerado
' mientras el pulsador "enter" esté presionado.
Return ' Retorna una línea después del llamado "gosub Suma".
Sumac:
datoc = datoc + 1 ' Incrementa en una unidad la variable "Dato".
Pause 350 ' Realiza una pausa de 350 milisegundos para evitar
' que el incremento de la variable sea muy acelerado
' mientras el pulsador "enter" esté presionado.
Return ' Retorna una línea después del llamado "gosub Suma".