 LIST P=18F1320
 #INCLUDE "P18F1320.INC"
 CONFIG OSC=XT,  WDT=OFF, LVP=OFF, MCLRE = OFF, BOR=OFF, DEBUG=OFF, PWRT=off	
 config EBTRB=off,EBTR1=off,EBTR0=off,WRTD=off,WRTB=off,WRTC=off,WRT1=off,WRT0=off,CP0=off,CP1=off,CPB=off,CPD=off 
 ;kódvédelmek kikapcsolása
;4MHz-es kristállyal egy utasítást (amit 4 órajel periódus alatt csinál meg) 0,000001 sec alatt csinál meg.

	CBLOCK	0x00			;A 0x00 egy szabad memória rész kezdő címe
	VAR	
	VAR2		;várakozási idö a delay szubrutinban
	ENDC

	ORG	0

;  D0..D3 --> RB0..RB3
;  R/S --> RB4
;  E --> RB5

;elöször a felsö 4 bitet kell elküldeni

START   
	CLRF LATB	
	CLRF LATA
	MOVLW b'01111111' 
	MOVWF ADCON1
	MOVLW b'00000000'
	MOVWF TRISB 
	CALL L_DELAY
	CALL L_DELAY


	CALL L_DELAY  ;inicializalas eleje   0000 00010
	BSF LATB,5
	CALL L_DELAY
	BCF LATB,5
	CALL L_DELAY
	BSF LATB,1
	CALL L_DELAY
	BSF LATB,5
	CALL L_DELAY
	BCF LATB,5
	CALL L_DELAY
	BCF LATB,1		;inicializalas vege	 

	CALL L_DELAY
				
	MOVLW d'3'   ;'7'-es szám kiírása eleje
	MOVWF LATB	 ; felsö 4 bit kiküldése eleje  0011
	CALL L_DELAY
	BSF LATB,4
	CALL L_DELAY
	BSF LATB,5		;Enable 1
	CALL L_DELAY
	CALL L_DELAY
	BCF LATB,5      ;Enable 0
	CALL L_DELAY
	BCF LATB,4
	CALL L_DELAY
	BCF LATB,2
	CALL L_DELAY
	BCF LATB,1
	CALL L_DELAY
	BCF LATB,0   ; felsö 4 bit kiküldése vége
	
	CALL L_DELAY

	MOVLW d'7'		 ; alsó 4 bit kiküldése eleje  0111
	MOVWF LATB
	CALL L_DELAY
	BSF LATB,4
	CALL L_DELAY
	BSF LATB,5       ;Enable 1
	CALL L_DELAY
	CALL L_DELAY
	BCF LATB,5       ;Enable 0
	CALL L_DELAY
	BCF LATB,4
	CALL L_DELAY
	BCF LATB,2
	CALL L_DELAY
	BCF LATB,1
	CALL L_DELAY   ; alsó 4 bit kiküldése vége
	BCF LATB,0     ; '7'-es szám kiírása vége

	CALL L_DELAY  

ENDLESS_LOOP
	GOTO ENDLESS_LOOP
	
L_DELAY
	MOVLW d'250'
	MOVWF VAR
DEL
	MOVLW d'250'
	MOVWF VAR2
DEL2
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ VAR2,f
	GOTO DEL2
	DECFSZ VAR
	GOTO DEL
	RETURN	

	END