;****************** Mensaje_07.asm **************
;
;
; El módulo LCD visualiza un mensaje largo (más de 16 caracteres)
; que se desplaza a lo largo de la pantalla.
; 
; ZONA DE DATOS ***************************** 
	
	LIST	P=16F877      ;indicamos procesador que utilizamos
	include	<p16f877.inc>   ;processor specific definitions


	__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF
		
	ERRORLEVEL -302      ;elimina mensaje de warning "not in bank 0" 
  	ERRORLEVEL -203      ;elimina mensaje de warning
  	ERRORLEVEL -305      ;elimina mensaje de warning
  	ERRORLEVEL -205      ;elimina mensaje de warning

;**************Definimos variables para la demora ******************************************

temp_1	equ	20h		;definimos variable temp_1 para la demora
temp_2	equ	21h		;definimos variable temp_2 para la demora
pcl 	equ 22h  		;Registro PC
RECORRE equ 26h

;**************Definimos el puerto de conexionado del LCD, en este caso Puerto D ***********
ORG 0

	clrf	PORTA			;pone a 0 el puerto A	
	clrf	PORTB   		;pone a 0 el puerto B
	clrf	PORTC			;pone a 0 el puerto C
	clrf    PORTE   		;pone a 0 el puerto E
	bsf 	STATUS,RP0  	;Seleccionamos Bank 1
	movlw	0x06   			; ponemos todos los pines        
	movwf	ADCON1			; como digital TTL
	clrf   	TRISA			;indicamos puerto A salidas
	clrf   	TRISB			;indicamos puerto B salidas
	clrf	TRISC			;indicamos puerto C salidas
	clrf	TRISD			;indicamos puerto D salidas               
	MOVLW b'11101001'		; cargo el valor E9 o lo que es lo mismo 233.
    movwf 	TRISE      		;le estoy diciendo con el 001 que RE0= entrada y RE1y2= salidas.
	bcf 	STATUS,RP0  	;Seleccionamos Bank 0
	call	LCD_Inicializa	;inicializamos el LCD desde la librería. 		
	call 	LCD_2Lineas4Bits5x7	;le ponemos en modo 4 bits 2 líneas	

	
x1	call LCD_Borra
	pageselw Mensaje22
	movwf PCLATH
	movf RECORRE,W 
	call Mensaje22
	pageselw LCD_Mensaje
	call LCD_Mensaje
	call Retardo_5s

 goto x1 ; Repite la visualización.

; "Mensajes" ----------------------------------
	org	100
Mensajes
	addwf	PCL,F	
Mensaje0	DT "  PROBADOR I/O", 0x00		; Posición inicial del mensaje 0.
addwf	PCL,F
Mensaje1	DT "    Version B", 0x00		; Posición inicial del mensaje 1.	
addwf	PCL,F
Mensaje2	DT "By David Galera", 0x00		; Posición inicial del mensaje 2.
addwf	PCL,F
Mensaje3	DT "P1=Prueba Manual", 0x00		; Empezamos a activar salidas
addwf	PCL,F
Mensaje4	DT "P2= Reset", 0x00				; Reiniciamos el programa
addwf	PCL,F
Mensaje5	DT "P1= Act. salidas" , 0x00
addwf	PCL,F
Mensaje6	DT "PRUEBA AUTO.", 0x00        
addwf	PCL,F
Mensaje7	DT "V1-1 ON (5 seg)", 0x00
addwf	PCL,F
Mensaje8	DT "V1-2 ON (5 seg)", 0x00	
addwf	PCL,F
Mensaje9	DT "V2-1 ON (5 seg)", 0x00	
addwf	PCL,F
Mensaje10	DT "V2-2 ON (5 seg)", 0x00	
addwf	PCL,F
Mensaje11	DT "V3-1 ON (5 seg)", 0x00	
addwf	PCL,F
Mensaje12	DT "V3-2 ON (5 seg)", 0x00	
addwf	PCL,F
Mensaje13	DT "PRUEBA TERMINADA",0x00  
addwf	PCL,F
Mensaje14	DT "ELECF1 ON", 0X00
addwf	PCL,F
Mensaje15	DT "ELECF2 ON", 0x00
addwf	PCL,F

org 200
Mensaje16	DT "ELECF3 ON", 0x00
addwf	PCL,F
Mensaje17	DT "ALARMA_TEC ON", 0x00
addwf	PCL,F
Mensaje18	DT "LUZ TOLVA ON", 0x00
addwf	PCL,F
Mensaje19	DT "ROTANTE ON", 0x00
addwf	PCL,F
Mensaje20	DT "MONITOR ON", 0x00
addwf	PCL,F
Mensaje21	DT "ELEC_REC1 ON", 0x00
addwf	PCL,F
Mensaje22	DT "ELEC_REC2 ON", 0x00
addwf	PCL,F
Mensaje23	DT "ELEC_REC3 ON", 0x00
addwf	PCL,F
Mensaje24	DT "ELEC_REC4 ON", 0x00
addwf	PCL,F
Mesnaje25	DT "CREDITO ON", 0x00
addwf	PCL,F
Mensaje26	DT "MONEDAS ON", 0x00
addwf	PCL,F
Mensaje27   DT "BILLETES ON", 0x00
addwf	PCL,F
Mensaje28	DT "AUXILIAR ON", 0x00
addwf	PCL,F
Mensaje29 	DT "CERR_ELEC ON",0x00
addwf	PCL,F
Mensaje30	DT "ALARMA ON", 0x00
addwf	PCL,F
Mensaje31	DT "INH_ALARMA ON", 0x00
addwf	PCL,F
Mensaje32	DT "Salidas ON", 0x00
addwf	PCL,F
Mensaje33	DT "Salidas OFF", 0x00
addwf	PCL,F

org 300
Mensaje34	DT"Activacion aut.",0x00
addwf	PCL,F
Mensaje35	DT"   salidas", 0x00
addwf	PCL,F
Mensaje36	DT"INH_24", 0x00


FinMensaje2

INCLUDE <LCD_MENS.INC>
INCLUDE	<P876ALCD_4B.INC>
INCLUDE <RETARDOS.INC>
END
