
		#include <p16f877.inc>
        	ERRORLEVEL -302
		__CONFIG	_BODEN_OFF & _PWRTE_OFF & _CP_OFF & _WDT_OFF & _XT_OSC




	Lcd_data1 	EQU H'21'
	Lcd_data2 	EQU H'C8'
	Lcd_data3 	EQU H'06'
	Lcd_data4 	EQU H'13'
	Lcd_data5 	EQU H'20'
	Lcd_data6 	EQU H'0C'
					 
	
	T2		EQU	0X20
	T1		EQU	0X40


START
	

		BANKSEL	TRISA
		MOVLW	H'00'			
		MOVWF	TRISB			
		MOVWF	TRISC	
		BANKSEL	SSPCON	
	
	 	CLRF  	PCLATH             	
	        MOVLW   B'00110010'             
         	MOVWF 	SSPCON           



MAIN
		BCF		PORTB,2			;RESET
		CALL	DELAY
		BSF		PORTB,2	
		CALL	DELAY
		
		BCF		PORTB,3			;D/C  COMMAND
		
		MOVFW	Lcd_data1			
		CALL 	TRANSMIT		
		MOVFW	Lcd_data2			
		CALL 	TRANSMIT
		MOVFW	Lcd_data3			
		CALL 	TRANSMIT
		MOVFW	Lcd_data4		
		CALL 	TRANSMIT		
		MOVFW	Lcd_data5		
		CALL 	TRANSMIT
		MOVFW	Lcd_data6		
		CALL 	TRANSMIT
		
		BSF	PORTB,3
		
IDE		MOVLW	B'00011111'		;DATA
		CALL	TRANSMIT
		
		NOP
		GOTO	IDE
	
;--------------------  TRANSMISION SUBROUTINE  ------------------------------


TRANSMIT 
			BANKSEL	SSPBUF			
     	 	MOVWF 	SSPBUF			;PLACE DATA IN BUFFER TO SEND 

	    	BANKSEL	SSPSTAT			;
	    		
LOOP       	BTFSS 	SSPSTAT, BF		;CHECK IF TRANSMISSION IS COMPLETE
         	GOTO  	LOOP			;
         	BCF   	STATUS, RP0		;SPECIFY BANK 0

	 	RETURN			   	;RETURN FROM SUBROUTINE


;**************************************************************************
DELAY	
			MOVLW	D'150'
			MOVWF	T1
DEL			MOVLW	D'255'
			MOVWF	T2
DEL1		NOP
			NOP
			DECFSZ	T2,F
			GOTO	DEL1
			DECFSZ	T1,F
			GOTO	DEL
			RETURN
	

FINISH
		
	

		END

