;
;Ejemplo de usu del LCD con 4 interfaz de 4bits
;Las líneas RA0-RA2 actúan señales de control hacia el LCD.
;Las lineas RB7..RB4 van conectadas a D7..D4 del display

		List	p=16F84A		;Tipo de procesador
		include	"P16F84A.INC"	;Definiciones de registros internos

	__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_OFF 
                   		
Lcd_var		equ	0x0c		;Variables (2) de las rutinas de manejo del LCD

		org	0x00		;Vector de Reset
		goto	Inicio
		org	0x05		;Salva vector de interrupción

		include	"LCD4b_2.inc"	;Incluye las rutinas de manejo del LCD

Inicio	        clrf 	PORTB		;Borra los latch de salida
		bsf	STATUS,RP0	;Selecciona banco 1
		clrf	TRISB		;Puerta B se configura como salida
		movlw	b'00011000'		
		movwf	TRISA		;RA0-RA2 salidas, RA3-RA4 entradas				
		bcf	STATUS,RP0	;Selecciona banco 0	
		
		call	LCD_INI		;Secuencia de inicio del LCD
		movlw	b'00001111'
		call	LCD_REG		;Envía instrucción: LCD ON, Cursor ON y blink ON		
		movlw	'H'
		call	LCD_DATO	;Visualiza H
		movlw	'o'
		call	LCD_DATO	;Visualiza o
		movlw	'l'
		call	LCD_DATO	;Visualiza l
		movlw	'a'
		call	LCD_DATO	;Visualiza a
		movlw	' '
		call	LCD_DATO	;Visualiza blanco
		

Loop		sleep			;Puesta en Standby
		goto	Loop		;Vuelta a standby

		end			;Fin del programa fuente

