ERRORLEVEL 2
LIST P=16F684
	#INCLUDE "P16F684.INC"
	__CONFIG _INTOSCIO&_CP_OFF&_WDT_OFF



COUNT1	EQU	0X20
CODES	EQU	0X21
HIGHER	EQU	0X22
LOWER	EQU	0X23
RS		EQU	0X24
COUNT2	EQU	0X25
COUNT3	EQU	0X26
COUNT4	EQU	0X27

	ORG 0x00

	CALL	SETTINGS
	GOTO	MAIN




SETTINGS

	BCF		STATUS,RP1
 	BCF 	STATUS,RP0   ;BANK0-ba átlépünk

 ;PORTC ÉS PORTA Digitális I/O-vá tétel

	MOVLW 	0X07 ;comparator off
	MOVWF 	CMCON0
	BSF 	STATUS,RP0 ;Bank 1
	CLRF 	ANSEL ;digital I/O
	MOVLW	0X00
	MOVWF 	TRISC  ;set RC<5:0> as outputs
 
	BCF 	STATUS,RP0 ;Bank 0
	CLRF 	PORTC ;Init PORTA
	MOVLW 	0X07 ;comparator off
	MOVWF 	CMCON0 ;digital I/O
	BSF 	STATUS,RP0 ;Bank 1
	BSF		OSCCON,SCS	;RA5 ACTIVATED
	MOVLW 	0X3C
	MOVWF	TRISA ;set RA<1,0> as outputs RA<5,4,3,2> as Inputs
	BCF 	STATUS,RP0 ;Bank 0
	CLRF	PORTA

;LCD INICIALIZÁLÁS

;INDÍTÁSHOZ
	BANKSEL	PORTC
	BSF		PORTC,0
	BSF		PORTC,1
	BCF		PORTC,2
	BCF		PORTC,3
	BSF		PORTC,4		;ENABLE OFF FIGYELNI KELL ÍGY LESZ KIKAPCSOLVA HA 5V-OT AD
	BCF		PORTC,5
	CLRF	COUNT1		;SZÁMLÁLÓK TÖRLÉSE
	CLRF	COUNT2
	CLRF	COUNT3
	CLRF	COUNT4
	BCF		PORTC,5		;RS-T 0-RA KAPCSOLNI PARANCS MÓD PORTC5=RS
	MOVLW	B'00011111'
	MOVWF	RS		;RS VÁLTOZÓ 5. BITJÉNEK NULLÁZÁSA A TÖBBI 1-ES AMI SZÁMÍT A MARADÉK 0 KIVÉVE E MIVEL 
;várakozás

	CALL	WAITING2
	CALL	WAITING2
	CALL	WAITING2
	CALL	WAITING2
	CALL	WAITING2

;AZ 1-NÉL AZAZ 5V-NÁL VAN KIKAPCSOLVA; A 6. ÉS 7. BIT NINCS HASZNÁLATBAN

LOOP2
	CALL	WAITING
	INCF	COUNT2,F	;SORSZAM2 NÖVELÉSE 1-EL
	MOVFW	COUNT2		;SORSZÁM BETÖLTÉSE A WORKBE
	XORLW	D'3'		;3-MAL XOROLVA HA 3 AZ ÉRTÉKE XOROLVA 0-T AD
	BTFSC	STATUS,Z	;HA 3 AZ ÉRTÉK AKKOR A KÖVETKEZŐ UTASÍTÁST NEM UGORJA ÁT, HA HAMIS AKKOR ÁTUGORJA AZAZ ;NEM ÉRTE EL MÉG AZ 3-AT

	GOTO	NEXT		;LÉNYEGÉBEN 3-SZOR ADJUK KI AZ UTASÍTÁST AZ LCD-NEK HOGY BIZTOSAN INDULJON
	GOTO	LOOP2
NEXT
	CLRF	COUNT2

;LCD TOVÁBBI INICIALIZÁLÁSA
;4 BITES ÁTVITELI MÓD BEÁLLÍTÁSA PARANCS 00100000
	
	BCF	PORTC,0		;FELSŐ 0.BIT 0
	BSF	PORTC,1		;FELSŐ 1.BIT 1
	BCF	PORTC,2		;FELSŐ 2.BIT 0
	BCF	PORTC,3		;FELSŐ 3.BIT 0 A PANACS 00100000 UTOLSÓ 4 BIT NULLA NINCS BEKÖTVE A KIJELZŐBE AZZAL ;NEM KELL FOGLALKOZNI A FELSŐ 4 BIT SZÁMÍT 0010
	CALL	WAITING


;2 SOROS MÓD BEÁLLÍTÁSA PARANACS 00101000 MOST MÁR 2 SOROS ÁTVITELBE VAGYUNK! ELŐSZÖR A FELSŐ 4 BITET MAJD AZ ALSÓ ;NÉGY BITET ÍGY 2X KELL HASZNÁLNI AZ ENABLET

;FELSŐ 4 BIT
	BCF	PORTC,0		;FELSŐ 0.BIT 0
	BSF	PORTC,1		;FELSŐ 1.BIT 1
	BCF	PORTC,2		;FELSŐ 2.BIT 0
	BCF	PORTC,3		;FELSŐ 3.BIT 0
	CALL	WAITING
;ALSÓ 4 BIT
	BCF	PORTC,0		;ALSÓ 0.BIT 0
	BCF	PORTC,1		;ALSÓ 1.BIT 0
	BCF	PORTC,2		;ALSÓ 2.BIT 0
	BSF	PORTC,3		;ALSÓ 3.BIT 1
	CALL	WAITING


;KURZOR BEÁLLÍTÁS PARANCS 00001111
	
;FELSŐ 4 BIT
	BCF	PORTC,0		;FELSŐ 0.BIT 0
	BCF	PORTC,1		;FELSŐ 1.BIT 0
	BCF	PORTC,2		;FELSŐ 2.BIT 0
	BCF	PORTC,3		;FELSŐ 3.BIT 0
	CALL	WAITING
;ALSÓ 4 BIT
	BSF	PORTC,0		;FELSŐ 0.BIT 1
	BSF	PORTC,1		;FELSŐ 1.BIT 1
	BSF	PORTC,2		;FELSŐ 2.BIT 1
	BSF	PORTC,3		;FELSŐ 3.BIT 1
	CALL	WAITING


;KIJELZŐ 2 SOR 4 karakter 10000011

;FELSŐ 4 BIT
	BCF	PORTC,0		;FELSŐ 0.BIT 0
	BCF	PORTC,1		;FELSŐ 1.BIT 0
	BSF	PORTC,2		;FELSŐ 2.BIT 1
	BSF	PORTC,3		;FELSŐ 3.BIT 1
	CALL	WAITING
;ALSÓ 4 BIT
	BSF	PORTC,0		;FELSŐ 0.BIT 1
	BSF	PORTC,1		;FELSŐ 1.BIT 1
	BCF	PORTC,2		;FELSŐ 2.BIT 0
	BCF	PORTC,3		;FELSŐ 3.BIT 0
	CALL	WAITING

;KARAKTERÍRÁS
	BSF		PORTC,5

;FELSŐ 4 BIT
	BCF	PORTC,0		;FELSŐ 0.BIT 0
	BCF	PORTC,1		;FELSŐ 1.BIT 0
	BSF	PORTC,2		;FELSŐ 2.BIT 1
	BCF	PORTC,3		;FELSŐ 3.BIT 0
	CALL	WAITING
;ALSÓ 4 BIT
	BSF	PORTC,0		;FELSŐ 0.BIT 1
	BCF	PORTC,1		;FELSŐ 1.BIT 0
	BCF	PORTC,2		;FELSŐ 2.BIT 0
	BCF	PORTC,3		;FELSŐ 3.BIT 0
	CALL	WAITING

return



WAITING
	BCF	PORTC,4		;ENABLE KAPCSOLÁSA ENABLE=PORTC4 (ENABLE ENGEDÉLYEZÉS)
	nop
	nop
	nop
	NOP
	NOP
	nop
	nop
	nop
	NOP
	NOP
	BSF		PORTC,4		;ENABLE KIKAPCSOLÁSA

WAITING2
LOOP1
	INCF	COUNT1,F	;SORSZAM NÖVELÉSE 1-EL
	MOVFW	COUNT1		;SORSZÁM BETÖLTÉSE A WORKBE
	XORLW	D'200'		;250-ET XOROLVA HA 250 AZ ÉRTÉKE XOROLVA 0-T AD, LÉNYEGÉBEN KÉSLELTETÉS SZEREPE VAN ;MIVEL AZ ENABLE-T NEM TUDOM MENNYI IDEIG KELL "RAJTA HAGYNI"

	BTFSC	STATUS,Z	;HA 250 AZ ÉRTÉK AKKOR A KÖVETKEZŐ UTASÍTÁST NEM UGORJA ÁT, HA HAMIS AKKOR ÁTUGORJA ;AZAZ NEM ÉRTE EL MÉG AZ 250-ET

	GOTO	LOOPNEXT
	GOTO	LOOP1

LOOPNEXT
	INCF	COUNT4,F
	MOVFW	COUNT4
	XORLW	D'10'
	BTFSC	STATUS,Z
	GOTO	LOOPEND
	GOTO	LOOP1
	
LOOPEND

	CLRF	COUNT1
	CLRF	COUNT4
	RETURN

MAIN
	GOTO	MAIN
END

