
		;reloj calendario termometro

	LIST	P=16F876

	RADIX	HEX

	INCLUDE	P16F876.INC
#DEFINE	PM	PORTB,7
#DEFINE	PC	PORTB,5
#DEFINE	SELET	PORTC,7
#DEFINE ADD	PORTC,6
#DEFINE	INI	PORTC,5
LOCAL_VAR	EQU	0X20
		cblock	LOCAL_VAR
			Temporal_1
			Temporal_2
			DATOA_H		
			DATOA_L		
			DATOB_H		
			DATOB_L		
			DATOD_H		
			DATOD_L		
			DATOC_H		
			DATOC_L		
			CONTADOR	
			BCD_2		
			BCD_1		
			BCD_0		
			TEMPORAL	
			TEMP
			DELAY
			SEC
			MIN
			HORAS
			A_DIA
			AÑO
			W_MES
			CO_MO
			DELAY_10
			PUL_CONT
			PUL_MON
					
		endc

		ORG	0X2007
		DATA   	b'11101100110001'           ;PROGRAMACION FUSES
	
		ORG	0X00
		goto	INICI
		ORG	0X05
		


		INCLUDE LCD_CXX.inc



TABLA		ADDWF	PCL,F		;TABLA ENCRIPTACION
		RETLW	0x34
		RETLW	0x35
		RETLW	0x36
		RETLW	0x33


;******************************************************************************************
;Según el valor contenido en el registro W, se devuelve el carácter a visualizar

Tabla_Mensajes	movwf	PCL		;Calcula el desplazamiento sobre la tabla

;***********************************************************************************
;La directiva dt genera tantas intsrucciones retlw como bytes o caracteres contenga

Mens_0		equ	$		;Mens_0 apunta al primer carácter del mensaje 0
		dt	" INTRODUCE MONEDAS",0x00

Mens_1		equ	$		;Mens_1 apunta al primer carácter del mensaje 1
		dt	"    MONEDA 0.1 E",0x00

Mens_2		equ	$		;Mens_2 apunta al primer carácter del mensaje 2
		dt	"    MONEDA 0.2 E",0x00

Mens_3		equ	$		;Mens_3 apunta al primer carácter del mensaje 3
		dt	"    MONEDA 0.5 E",0x00

Mens_4		equ	$		;Mens_0 apunta al primer carácter del mensaje 0
		dt	"    MONDEA 1 E",0x00

Mens_5		equ	$		;Mens_1 apunta al primer carácter del mensaje 1
		dt	"    MONEDA 2 E",0x00

Mens_6		equ	$		;Mens_2 apunta al primer carácter del mensaje 2
		dt	"   MONEDERO PULSO",0x00

Mens_7		equ	$		;Mens_3 apunta al primer carácter del mensaje 3
		dt	"      ERROR",0x00

Mens_8		equ	$		;Mens_3 apunta al primer carácter del mensaje 3
		dt	"    MONEDA 0.05 E",0x00
Mens_9		equ	$		;Mens_3 apunta al primer carácter del mensaje 3
		dt	"P-MON",0x00
Mens_10		equ	$		;Mens_3 apunta al primer carácter del mensaje 3
		dt	"P-CONT",0x00

Mensaje		movwf   Temporal_1      ;Salva posición de la tabla
Mensaje_1       movf    Temporal_1,W    ;Recupera posición de la tabla
                call    Tabla_Mensajes  ;Busca caracter de salida
                movwf   Temporal_2      ;Guarda el caracter
                movf    Temporal_2,F
                btfss   STATUS,Z        ;Mira si es el último
                goto    No_es_ultimo
                return
No_es_ultimo    call    LCD_DATO        ;Visualiza en el LCD
                incf    Temporal_1,F    ;Siguiente caracter
                goto    Mensaje_1
FFIN		movlw	0x04
		movwf	DELAY
		call	DELAY_3
		btfsc	ADD
		return
FFFI		btfss	ADD
		goto	FFFI
		goto	INICIO
LCD_DATO1	call	LCD_DATO
		btfss	ADD
		call	FFIN
		movlw	.18
		movwf	DELAY
		call	DELAY_3
		bsf	PCLATH,4
		return

TEMP_10		movlw	0xFF		;RUTINA TEMPORIZACION ESTABILIZAR
		movwf	TEMPORAL
VOLVER1		decfsz	TEMPORAL,F
		goto	VOLVER1
		return


SEC1		movlw	.50
		movwf	DELAY
DELAY_3		movlw	.195
		movwf	TMR0
		bcf	INTCON,T0IF
DELAY_4		clrwdt
		btfss	INTCON,T0IF
		goto	DELAY_4
		decfsz	DELAY,F
		goto	DELAY_3
		return

SEC2		movlw	.10
		movwf	DELAY
DELAY_8		movlw	.195
		movwf	TMR0
		bcf	INTCON,T0IF
DELAY_9		clrwdt
		swapf	PORTB,W
		andlw	0X0F
		xorlw	0X0F
		btfss	STATUS,Z	;MIRAMOS SI HA CAMBIADO LA PUERTA B
		return
		btfss	INTCON,T0IF
		goto	DELAY_9
		decfsz	DELAY,F
		goto	DELAY_8
		call	UP_LCD		;SI PASA UN SEGUNDO DAR ERROR
		movlw	b'00000001'
		call	LCD_REG		;Borra LCD y Home (colocar cursor en 1ª posición)
		movlw	Mens_7		;mensaje error
		call	Mensaje		;Visualiza el mensaje 7
		movlw	" "
		call	LCD_DATO
		movf	CO_MO,W
		call	LCD_DATO	;VISIALIZA CODIGO BINARIO
		call	SEC1
		return

MUL16x16	movlw	.16
		movwf	CONTADOR
		clrf	DATOD_H
		clrf	DATOD_L
MUL_LOOP	rrf	DATOB_H,F
		rrf	DATOB_L,F
		btfss	STATUS,C
		goto	NO_SUMA
		movf	DATOA_L,W
		addwf	DATOD_L,F
		btfsc	STATUS,C
		incf	DATOD_H,F
		movf	DATOA_H,W
		addwf	DATOD_H,F
NO_SUMA		rrf	DATOD_H,F
		rrf	DATOD_L,F
		rrf	DATOC_H,F
		rrf	DATOC_L,F
		decfsz	CONTADOR,F
		goto	MUL_LOOP
		return
;Rutina de conversión de un número binario de 16 bits a 5 digitos BCD para sacar por el LCD


BITS16_BCD	bcf	STATUS,C
		clrf	CONTADOR
		bsf	CONTADOR,4
		clrf	BCD_0
		clrf	BCD_1
		clrf	BCD_2
LOOP_16		rlf	DATOC_L,F
		rlf	DATOC_H,F
		rlf	BCD_2,F
		rlf	BCD_1,F
		rlf	BCD_0,F
		decfsz	CONTADOR,F
		goto	AJUSTE
		return
AJUSTE		movlw	BCD_2
		movwf	FSR
		call	AJUSTE_BCD
		incf	FSR,F
		call	AJUSTE_BCD
		incf	FSR,F
		call	AJUSTE_BCD
		goto	LOOP_16
AJUSTE_BCD	movf	INDF,W
		addlw	0x03
		movwf	TEMPORAL
		btfsc	TEMPORAL,3
		movwf	INDF
		movf	INDF,W
		addlw	0X30
		movwf	TEMPORAL
		btfsc	TEMPORAL,7
		movwf	INDF
		return

;SECUENCIA DE INICIO
S_START		bcf	PIR1,SSPIF
		bsf	STATUS,RP0	;BANCO 1
		bsf	SSPCON2,SEN	;ACTIVA SECUENCIA INICIO
		bcf	STATUS,RP0	;banco 0
START_W		btfss	PIR1,SSPIF	;HA TERMINADO
		goto	START_W
		return
RS_STAR		bcf	PIR1,SSPIF
		bsf	STATUS,RP0	;BANCO 1
		bsf	SSPCON2,RSEN	;ACTIVA SECUENCIA REPETICION INICIO
		bcf	STATUS,RP0	;banco 0
STAR_W		btfss	PIR1,SSPIF	;HA TERMINADO
		goto	STAR_W
		return
;SECUENCIA STOP
S_STOP		bcf	PIR1,SSPIF
		bsf	STATUS,RP0	;BANCO 1
		bsf	SSPCON2,PEN	;ACTIVA SECUENCIA STOP
		bcf	STATUS,RP0	;banco 0
STOP_W		btfss	PIR1,SSPIF	;HA TERMINADO
		goto	STOP_W
		return
	;ENVIAR ACK
S_ACK		bcf	PIR1,SSPIF
		bsf	STATUS,RP0	;banco 1
		bcf	SSPCON2,ACKDT	;PONE BIT ACK A 0
		bsf	SSPCON2,ACKEN	;ACTIVA GENERACION ACK
		bcf	STATUS,RP0	;BANCO 0
ACK_W		btfss	PIR1,SSPIF	;SECUENCIA ACABADA
		goto	ACK_W
		return
;SECUENCIA ESCRIBIR
W_BYTE		bcf	PIR1,SSPIF	;RESTAURA FLAG MSSP
		movwf	SSPBUF		;LLEVAR BYTE AL BUFFER
SEND_W		btfss	PIR1,SSPIF	;RECIBIDO ACK
		goto	SEND_W
		return
;SECUENCIA LECTURA
R_BYTE		bcf	PIR1,SSPIF	;RESTAURA FLAG MSSP
		bsf	STATUS,RP0	;banco 1
		bsf	SSPCON2,RCEN	;activa modo receptor
		bcf	STATUS,RP0	;banco 0
READ_W		btfss	PIR1,SSPIF	;byte recibido?
		goto	READ_W
		movf	SSPBUF,W
		return
	

		
		
INICI		bsf	STATUS,RP0	;paso banco1
		bcf	STATUS,RP1
		movlw	b'00000110'	; PA E/S DIGITALES
		movwf	ADCON1
		movlw	b'00101000'
		movwf	TRISA		; RA3-5 ENTRADAS
		clrf	TRISB		; PB SALIDAS
		movlw	b'11011000'
		movwf	TRISC		;PC ENTRADAS
		movlw	b'10000111'	; CONF. TMR0
		movwf	OPTION_REG
		movlw	b'10000000'
		movwf	SSPSTAT		;NIVELES ESTANDAR I2C
		movlw	.9
		movwf	SSPADD		;VELOCIDAD BUS I2C 100KHZ
		bcf	STATUS,RP0	; PASO BANCO 0
		bsf	INI		;INIBICION ALTO
		call	UP_LCD
		call	LCD_INI
		movlw	b'00001100'
		call	LCD_REG
		movlw	b'00110100'
		call	LCD_REG
		movlw	b'00000111'
		call	LCD_REG
		movlw	0x94
		call	LCD_REG
		bsf	PCLATH,4
		call	Mensaj
		call	SEC1
INICIO		movlw	b'00001100'
		call 	LCD_REG
		movlw	b'00000100'
		call	LCD_REG
		movlw	b'00000001'
		call	LCD_REG

		clrf	PORTB
		movlw	b'00101000'	;modulo mssp en on
		movwf	SSPCON
		call	S_START
		movlw	b'10100000'
		call	W_BYTE		;ENVIO DIRECCION DEL ESCLAVO A ESCRIBIR
		clrw	
		call	W_BYTE		;ENVIO LA DIRECCION DONDE QUIERO ESCRIBIR
		call	W_BYTE
		call	S_STOP
REP		call	S_START
		movlw	b'10100000'
		call	W_BYTE		;ENVIO DIRECCION DEL ESCLAVO A ESCRIBIR
		movlw	0x02
		call	W_BYTE		;ENVIO LA DIRECCION DONDE QUIERO LEER
		call	RS_STAR		;REPETICION SECUENCIA INICIO
		movlw	b'10100001'	;CONTROL BYTE A LEER
		call	W_BYTE
		call	R_BYTE
		movwf	SEC
		call	S_ACK
		call	R_BYTE
		movwf	MIN
		call	S_ACK
		call	R_BYTE
		movwf	HORAS
		call	S_ACK
		call	R_BYTE
		movwf	A_DIA
		call	S_ACK
		call	R_BYTE
		movwf	W_MES
		call	S_STOP
		call	UP_LCD
		movlw	0x80
		call	LCD_REG
		swapf	HORAS,W
		andlw	0X03
		iorlw	0X30
		call	LCD_DATO
		movf	HORAS,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		btfsc	SEC,0
		movlw	" "
		btfss	SEC,0
		movlw	":"
		call	LCD_DATO
		swapf	MIN,W
		andlw	0x0f
		iorlw	0X30
		call	LCD_DATO
		movf	MIN,W
		andlw	0x0F
		iorlw	0X30
		call	LCD_DATO
		movlw	0x87
		call	LCD_REG
		swapf	A_DIA,W
		andlw	0X03
		iorlw	0X30
		call	LCD_DATO
		movf	A_DIA,W
		andlw	0x0F
		iorlw	0x30
		call	LCD_DATO
		movlw	"/"
		call	LCD_DATO
		swapf	W_MES,W
		andlw	0X01
		iorlw	0x30
		call	LCD_DATO
		movf	W_MES,W
		andlw	0x0F
		iorlw	0X30
		call	LCD_DATO
		movlw	"/"
		call	LCD_DATO
		movlw	"0"
		call	LCD_DATO
		movf	A_DIA,W
		movwf	AÑO
		swapf	AÑO,F
		rrf	AÑO,F
		rrf	AÑO,W
		andlw	0X03
		call 	TABLA
		call	LCD_DATO
	;SALTA DIRECTAMENTE A VISUALIZAR TEMPERATURA
		

		bsf	STATUS,RP0
		bcf	STATUS,RP1
		movlw	b'00101000'
		movwf	TRISA
		movlw	b'10000001'
		movwf	ADCON1
		bcf	STATUS,RP0
		movlw	b'10100001'
		movwf	ADCON0
		movlw	.5
		movwf	DELAY
DELAY_1		movlw	~.195
		movwf	TMR0
		bcf	INTCON,T0IF
DELAY_2		clrwdt
		btfss	INTCON,T0IF
		goto	DELAY_2
		decfsz	DELAY,F
		goto	DELAY_1
		bcf	PIR1,ADIF
		bsf	ADCON0,GO
ADC_WA		btfss	PIR1,ADIF
		goto	ADC_WA

;Se pasa el valor binario obtenido a un valor en grados que pasa a BCD

		bsf	STATUS,RP0
		bcf	STATUS,RP1
		movf	ADRESL,W
		bcf	STATUS,RP0
		movwf	DATOB_L
		movf	ADRESH,W
		movwf	DATOB_H
		movlw	.243
		movwf	DATOA_L
		clrf	DATOA_H
		call	MUL16x16
		call	BITS16_BCD
;Visualiza el resultado en la pantalla LCD

		bsf	STATUS,RP0
		bcf	STATUS,RP1
		movlw	b'00000110'
		movwf	ADCON1
		bcf	STATUS,RP0
		call	UP_LCD
		movlw	0X91
		call	LCD_REG
		movf	BCD_0,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		swapf	BCD_1,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		movlw	0XDF
		call 	LCD_DATO

;PREGUNTA PULSADORES PARA PROGRAMAR

		btfsc 	ADD
		goto	CONT
		movlw	0X04
		movwf	DELAY
		call	DELAY_3
		btfss	ADD
		goto	IN_MO
CONT		btfsc	SELET
		goto	REP
		movlw	0X04
		movwf	DELAY
		call	DELAY_3
		btfsc	SELET
		goto	REP
REP11		btfss	SELET
		goto	REP11
		movlw	b'00000001'	;BORRA LCD_
		call	LCD_REG
AJ_HOR		btfsc	SELET		;PULSANDO BOTON AJUS_MIN
		goto	AJ_HO
		movlw	0X04
		movwf	DELAY
		call	DELAY_3
		btfss	SELET
		goto	AJ_MIN
AJ_HO		movlw	0X80
		call	LCD_REG
		movlw	"H"
		call	LCD_DATO
		movlw	"O"	
		call	LCD_DATO
		movlw	"R"
		call	LCD_DATO
		movlw	"A"
		call	LCD_DATO
		movlw	0x88
		call	LCD_REG
		swapf	HORAS,W
		andlw	0X03
		iorlw	0X30
		call	LCD_DATO
		movf	HORAS,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		btfsc	ADD		;PULSADO BOTON AUMENTAR HORA
		goto	AJ_HOR
		movlw	0x07
		movwf	DELAY
		call	DELAY_3
		btfsc	ADD
		goto	AJ_HOR
		movf	HORAS,W
		andlw	0x0F
		movwf	TEMP
		incf	TEMP,W
		xorlw	0x0A
		btfsc	STATUS,Z
		movlw	0X06
		btfss	STATUS,Z
		clrw
		addwf	HORAS,F
		incf	HORAS,F
		movf	HORAS,W
		xorlw	0X24
		btfsc	STATUS,Z
		clrf	HORAS
		goto	AJ_HOR	

;	AJUSTE MINUTOS

AJ_MIN		btfss	SELET		;PULSANDO BOTON AJUS_DIA
		goto	AJ_MIN
AJ_M		btfsc	SELET
		goto	AJ_MI
		movlw	0X04
		movwf	DELAY
		call	DELAY_3
		btfss	SELET
		goto	AJ_DIA
AJ_MI		movlw	0X80
		call	LCD_REG
		movlw	"M"
		call	LCD_DATO
		movlw	"I"	
		call	LCD_DATO
		movlw	"N"
		call	LCD_DATO
		movlw	" "
		call	LCD_DATO
		movlw	0x88
		call	LCD_REG
		swapf	MIN,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		movf	MIN,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		btfsc	ADD		;PULSADO BOTON AUMENTAR HORA
		goto	AJ_M
		movlw	0x07
		movwf	DELAY
		call	DELAY_3
		btfsc	ADD
		goto	AJ_M
		movf	MIN,W
		andlw	0x0F
		movwf	TEMP
		incf	TEMP,W
		xorlw	0x0A
		btfsc	STATUS,Z
		movlw	0X06
		btfss	STATUS,Z
		clrw
		addwf	MIN,F
		incf	MIN,F
		movf	MIN,W
		xorlw	0X60
		btfsc	STATUS,Z
		clrf	MIN
		goto	AJ_M	

AJ_DIA		btfss	SELET
		goto	AJ_DIA
AJ_D		btfsc	SELET		;PULSANDO BOTON AJUS_mes
		goto	AJ_DI
		movlw	0X04
		movwf	DELAY
		call	DELAY_3
		btfss	SELET
		goto	AJ_MES
AJ_DI		movlw	0X80
		call	LCD_REG
		movlw	"D"
		call	LCD_DATO
		movlw	"I"	
		call	LCD_DATO
		movlw	"A"
		call	LCD_DATO
		movlw	" "
		call	LCD_DATO
		movlw	0x88
		call	LCD_REG
		swapf	A_DIA,W
		andlw	0X03
		iorlw	0X30
		call	LCD_DATO
		movf	A_DIA,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		btfsc	ADD		;PULSADO BOTON AUMENTAR HORA
		goto	AJ_D
		movlw	0x07
		movwf	DELAY
		call	DELAY_3
		btfsc	ADD
		goto	AJ_D
		movf	A_DIA,W
		andlw	0x0F
		movwf	TEMP
		incf	TEMP,W
		xorlw	0x0A
		btfsc	STATUS,Z
		movlw	0X06
		btfss	STATUS,Z
		clrw
		addwf	A_DIA,F
		incf	A_DIA,F
		movf	A_DIA,W
		andlw	0x3F
		xorlw	0X32
		btfsc	STATUS,Z
		clrf	A_DIA
		btfsc	STATUS,Z
		incf	A_DIA,F
		goto	AJ_D

AJ_MES		btfss	SELET
		goto	AJ_MES
AJ_MM		btfsc	SELET		;PULSANDO BOTON AJUS AÑO
		goto	AJ_ME
		movlw	0X04
		movwf	DELAY
		call	DELAY_3
		btfss	SELET
		goto	AJ_AÑO

AJ_ME		movlw	0X80
		call	LCD_REG
		movlw	"M"
		call	LCD_DATO
		movlw	"E"	
		call	LCD_DATO
		movlw	"S"
		call	LCD_DATO
		movlw	" "
		call	LCD_DATO
		movlw	0x88
		call	LCD_REG
		swapf	W_MES,W
		andlw	0X01
		iorlw	0X30
		call	LCD_DATO
		movf	W_MES,W
		andlw	0X0F
		iorlw	0X30
		call	LCD_DATO
		btfsc	ADD		;PULSADO BOTON AUMENTAR HORA
		goto	AJ_MM
		movlw	0x07
		movwf	DELAY
		call	DELAY_3
		btfsc	ADD
		goto	AJ_MM
		movf	W_MES,W
		andlw	0x0F
		movwf	TEMP
		incf	TEMP,W
		xorlw	0x0A
		btfsc	STATUS,Z
		movlw	0X06
		btfss	STATUS,Z
		clrw
		addwf	W_MES,F
		incf	W_MES,F
		movf	W_MES,W
		andlw	0x1F
		xorlw	0X13
		btfsc	STATUS,Z
		clrf	W_MES
		btfsc	STATUS,Z
		incf	W_MES,F
		goto	AJ_MM	

AJ_AÑO		btfss	SELET
		goto	AJ_AÑO
AJ_A		btfsc	SELET		;PULSANDO BOTON PROGR I2C
		goto	AJ_AÑ
		movlw	0X04
		movwf	DELAY
		call	DELAY_3
		btfss	SELET
		goto	PROGR


AJ_AÑ		movlw	0X80
		call	LCD_REG
		movlw	"A"
		call	LCD_DATO
		movlw	"N"	
		call	LCD_DATO
		movlw	"O"
		call	LCD_DATO
		movlw	" "
		call	LCD_DATO
		movlw	0x88
		call	LCD_REG
		movlw	"0"
		call	LCD_DATO
		movf	A_DIA,W
		movwf	AÑO
		swapf	AÑO,F
		rrf	AÑO,F
		rrf	AÑO,W
		andlw	0X03
		call 	TABLA
		call	LCD_DATO	
		btfsc	ADD		;PULSADO BOTON AUMENTAR AÑO
		goto	AJ_A
		movlw	0x07
		movwf	DELAY
		call	DELAY_3
		btfsc	ADD
		goto	AJ_A
		movlw	0x01
		movwf	AÑO
		swapf	AÑO,F
		rlf	AÑO,F
		rlf	AÑO,W
		andlw	0xC0
		addwf	A_DIA,F
		goto	AJ_A

PROGR		btfss	SELET
		goto	PROGR
		call	S_START
		movlw	b'10100000'
		call	W_BYTE		;ENVIO DIRECCION DEL ESCLAVO A ESCRIBIR
		movlw	0x02	
		call	W_BYTE		;ENVIO LA DIRECCION DONDE QUIERO ESCRIBIR
		clrw
		call	W_BYTE
		movf	MIN,W
		call	W_BYTE
		movf	HORAS,W
		call	W_BYTE
		movf	A_DIA,W
		call	W_BYTE
		movf	W_MES,W
		call	W_BYTE	
		call	S_STOP
		goto	REP	

IN_MO		goto	INICIO

	ORG	0X1000


;******************************************************************************************
;Según el valor contenido en el registro W, se devuelve el carácter a visualizar

Tabla_Mensaje	movwf	PCL		;Calcula el desplazamiento sobre la tabla

;***********************************************************************************
;La directiva dt genera tantas intsrucciones retlw como bytes o caracteres contenga

						;Mens_0 apunta al primer carácter del mensaje 0
		dt	" PROGRAMA SIMULACION "
		dt	" MONEDEROS AZKOYEN "
		dt	" PREPARADO PARA TRABAJAR CON INHIBICION "
		dt	" EN TIEMPO REAL. "
		dt      " DESARROLLADO POR J.R.(JULIAN MUNOZ "
		dt	" COMDIBAL 2000 MADRID 91-7109344  "
		dt	" julianjulia@ya.com                    ",0x00
	
Mensaj		bsf	PCLATH,4
		movlw	0x01
		movwf   Temporal_1      ;Salva posición de la tabla
Mensaj_1        movf    Temporal_1,W    ;Recupera posición de la tabla
                call    Tabla_Mensaje   ;Busca caracter de salida
                movwf   Temporal_2      ;Guarda el caracter
                movf    Temporal_2,F
                btfss   STATUS,Z        ;Mira si es el último
                goto    No_es_ultim
                bcf	PCLATH,4
		return
No_es_ultim     bcf	PCLATH,4
		call	LCD_DATO1
		incf    Temporal_1,F    ;Siguiente caracter
                goto    Mensaj_1
		
		IF	BCD_0 == 9
		movlw	0
		ELSE
		movlw	1
		ENDIF


	ORG	0x2100	


TipoINFO										
	DE	" PROBADOR MONEDEROS AZKOYEN "
	DE	" RELOJ CALENDARIO TERMOMETRO   "	
	DE	" Version Universal 1.00 "										
	DE	" para PIC-2 (16F876) por JULIAN MUÑOZ  "
	DE	" julianjulia@ya.com ",0X00		
			END


