		
		;	MANEJO DEL MODULO LCD CON PIC16F877A, MUESTRA HOLA AMIGO EN LA  LCD 
		;	PUERTO B COMO SALIDA DE DATOS DE LA LCD Y RD7= RS Y  RD6=E, W/R SE CONECTA A CERO DIRECTAMENTE
		;	
		
	LIST P=16F877
	__CONFIG 3F79
	INCLUDE	"P16F877.INC"

RS		EQU	7
E		EQU	6
CONTA	EQU	0X45
MEMORIA	EQU	0X3F


	ORG 0	
	GOTO	INICIO
	ORG 5	

;*****PROGRAMA PRINCIPAL*****************
		
INICIO		BSF		STATUS,RP0	;PASO AL BANCO 1
			BCF		STATUS,RP1
			MOVLW	0X07		;PREESCALADOR DIVIDIENDO POR 256
			MOVWF	OPTION_REG 
			CLRF	TRISD
			CLRF	TRISB		;RB0-RB7 = SALIDA
			BCF		STATUS,RP0	;PASO AL BANCO 0
			CLRF	PORTB	
			BCF		PORTD,RS
			BCF		PORTD,E
JEJEJE		MOVLW	0X38		; Bus 8 bits, LCD 2 lineas, 5*7 pixeles
			MOVWF	PORTB
			CALL	CONTROL		;PERMITE EL ACCESO A LOS COMANDOS DE LA LCD
			CALL	CONTROL
			CALL	CONTROL
			MOVLW	0X01		; Clear LCD
			MOVWF	PORTB
			CALL	CONTROL
			MOVLW	0X0C		; Display On, Cursor Off, sin parpadeo 	
			MOVWF	PORTB
			CALL	CONTROL
MENSAJE		MOVLW	0X80		; INICIA LA ESCRITURA EN LA POSICION FILA 1 COLUMNA 1 
			MOVWF	PORTB
			CALL 	CONTROL
			
MAIN		movlw	' '
			call	DATO
			movlw	'H'
			call	DATO
			movlw	'O'
			call	DATO
			movlw	'L'
			call	DATO
			movlw	'A'
			call	DATO
			movlw	' '
			call	DATO
			movlw	' '
			call	DATO
			movlw	' '
			call	DATO
			movlw	'A'
			call	DATO
			movlw	'M'
			call	DATO
			movlw	'I'
			call	DATO
			movlw	'G'
			call	DATO
			movlw	'O'
			call	DATO
			movlw	' '
			call	DATO
			GOTO	MENSAJE
		
;***********SUBRUTINAS DE RETARDO Y CONTROL**************
		
RETA20MS	BCF		INTCON,T0IF
			MOVLW	0X22		;B2
			MOVWF	TMR0
BUCLE		BTFSS	INTCON,T0IF
			GOTO	BUCLE
			RETURN

;------------------------CONTROL---------------;
CONTROL		BCF		PORTD,RS
			GOTO	PULSO
DATO		movwf	PORTB
			BSF		PORTD,RS
			CALL  	RETA10uS		 ; RETA20MS
PULSO		BSF		PORTD,E
			;CALL	RETA20MS
			call    RETA10uS 				;	RETA20MS
			bcf		PORTD,E
			CALL 	RETA10uS	;				RETA20MS
			bcf		PORTD,RS
			RETURN
		

RETA10uS	call	aqui
			return
aqui		call	masaqui
			return
masaqui		call	otropoqui
			return
otropoqui	return



	END
