	LIST      P=18f1320            ; LIST DIRECTIVE TO DEFINE PROCESSOR
	#INCLUDE <P18f1320.INC>         ; PROCESSOR SPECIFIC VARIABLE DEFINITIONS

	CBLOCK	0X02e

		IDO_100MS
		W_SAVE
		STATUS_SAVE
		DELAY1
		DELAY2
		CUCC
		CUCC2
		PCL_SEGED
		ADAT_SEGED
		
		SEC
		SEC2
		PERC
		PERC2
		ORA
		ORA2
		LSEC
		LSEC2
		LPERC
		LPERC2
		LORA
		LORA2
		ADAT_AMPER1
		ADAT_AMPER2
		ADAT_AMPER3
		ADAT_FESZ1
		ADAT_FESZ2
		ADAT_FESZ3
		ADAT_TELJ1
		ADAT_TELJ2
		ADAT_TELJ3

		AMPER1
		AMPER2
		AMPER3
		FESZ1
		FESZ2
		FESZ3
		P_TERHELY_A1
		P_TERHELY_A2
		P_TERHELY_A3
		P_TERHELY_F1
		P_TERHELY_F2
		P_TERHELY_F3

	ENDC
TEMPFSR		EQU	000H  ;kell
LOOP3		EQU	001H  ;kell
LOOP	   	EQU	002H  ;kell
LOOP0      	EQU	003H  ;kell
TEMP		EQU	004H  ;kell
R0	  	 	EQU	005H  ;kell
R1	   		EQU	006H  ;kell
R2	   		EQU	007H  ;kell
ANALS	   	EQU	008H  ;kell
ANFEL	   	EQU	009H  ;kell
ALSO	   	EQU	00aH  ;kell
FELSO	   	EQU	00bH  ;kell
L_TEMP	   	EQU	00cH  ;kell
H_TEMP	   	EQU	00dH  ;kell
COUNT16		EQU	00eH  ;kell
BCD0		EQU	00fH	;KELL
BCD1		EQU	010H	;KELL
BCD2		EQU	011H	;KELL
BCD3		EQU	012H	;KELL
BCD4		EQU	013H	;KELL
SEGED1		EQU	014H	;KELL
SEGED2		EQU	015H	;KELL
SEGED3		EQU	016H	;KELL

MSB         EQU     7  ;kell
LSB         EQU     0  ;kell
;
;       1-ES LAPON HASNÁLT VÁLTOZÓK
; a lebegőpontos aritmetikához használjuk
;       binary operation arguments
AARGB4          equ     017H
AARGB3          equ     018H
AARGB2          equ     019H
AARGB1          equ     020H
AARGB0          equ     021H
AARG            equ     022H    ; most significant byte of argument A
EXP             equ     0023H    ; 8 bit biased exponent
AEXP            equ     EXP    ; 8 bit biased exponent for argument A
SIGN            equ     024H    ; save location for sign in MSB
;       floating point library exception flags
FPFLAGS         equ     025h    ; floating point library exception flags
;
BARGB3          equ     026h
BARGB2          equ     027h
BARGB1          equ     028h
BARGB0          equ     029h
BARG            equ     02ah   ; most significant byte of argument B
BEXP            equ     02bh    ; 8 bit biased exponent for argument B
TEMPB1          EQU     02cH
TEMPF           equ     02dH    ; temporary storage


;       Note that AARG and ACC reference the same storage locations
;*********************************************************************************************
;
;       FIXED POINT SPECIFIC DEFINITIONS
;
LOOPCOUNT       equ     0B2H    ; loop counter;
;*********************************************************************************************
;       FLOATING POINT SPECIFIC DEFINITIONS
;
;       literal constants
;
EXPBIAS         equ     D'127'
IOV             equ     0       ; bit0 = integer overflow flag
FOV             equ     1       ; bit1 = floating point overflow flag
FUN             equ     2       ; bit2 = floating point underflow flag
FDZ             equ     3       ; bit3 = floating point divide by zero flag
NAN             equ     4       ; bit4 = not-a-number exception flag
DOM             equ     5       ; bit5 = domain error exception flag
RND             equ     6       ; bit6 = floating point rounding flag, 0 = truncation
				; 1 = unbiased rounding to nearest LSB
SAT             equ     7       ; bit7 = floating point saturate flag, 0 = terminate on
				; exception without saturation, 1 = terminate on
				; exception with saturation to appropriate value
;**********************************************************************************************
; skálázás
;
;       FM=(MHF-MHA)/(DF-DA)*(MERT-DA)+MHA
;
;	KO=(MHF-MHA)/(DF-DA)
	ORG	0
	GOTO	START
	
	ORG	8
	goto	interrupt
	org	18	
	goto	$		;Low Priority Interrupt Vector Trap
interrupt
	MOVWF	W_SAVE		;W-T LEMENTEM
	SWAPF	STATUS,W	;STATUS-T LEMENTEM, NEM MUSZÁJ, DE NÉMELY PIC-NEK KELL, KÜLÖNBEN NEM TUD VISSZATÉRNI INTERRUPTBÓL
	MOVWF	STATUS_SAVE
	BCF		T0CON,7		;IDŐZÍTŐ KIKAPCSOLÁSA AZ ALAPÉRTÉK MEGADÁSHOZ
;	MOVLW	0X0B		;20MHZ	\
;	MOVLW	0X9E		;8MHZ
	MOVLW	0Xcf		;4MHZ
	MOVWF	TMR0H		;		 \IDŐZÍTŐ KEZDŐÉRTÉK MEGADÁS
;	MOVLW	0XE0		;20MHZ	 /
;	MOVLW	0X57		;8MHZ
	MOVLW	0X2b		;4MHZ
	MOVWF	TMR0L		;		/
	BCF		INTCON,2
	BSF		T0CON,7		;IDŐZÍTŐ VISSZAKAPCSOLÁSA
	
	
	bcf		status,z
	MOVLW	5
	SUBWF	IDO_100MS,W
	BTFSS	STATUS,Z
	CALL	VALT
	bcf		status,z
	MOVLW	0
	SUBWF	IDO_100MS,W
	BTFSS	STATUS,Z
	CALL	VALT

	bcf		status,z
	INCF	IDO_100MS,1  ;\
	MOVLW	0X0A		 ; \
	SUBWF	IDO_100MS,0	 ;  \
	BTFSC	STATUS,Z	 ;  /MEGVISZGÁLOM A 100MS HÁNYSZOR TELLT LEM HA 10X, TOVÁBB, HA KEVESEBBSZER, KILÉP
	GOTO	ORAZ		 ; /
	GOTO	INTERRUPT_END;/
;************************************************************************************

;IDŐ LÉPTETÉSÉNEK RUTINJA:
ORAZ
	CLRF	IDO_100MS
	INCF	SEC
	MOVLW	.10
	SUBWF	SEC,W
	BTFSS	STATUS,Z
	GOTO	INTERRUPT_END
	CLRF	SEC
	INCF	SEC2
	MOVLW	.6
	SUBWF	SEC2,W
	BTFSS	STATUS,Z
	GOTO	INTERRUPT_END
	CLRF	SEC2
	INCF	PERC
	MOVLW	.10
	SUBWF	PERC,W
	BTFSS	STATUS,Z
	GOTO	INTERRUPT_END
	CLRF	PERC
	INCF	PERC2
	MOVLW	.6
	SUBWF	PERC2,W
	BTFSS	STATUS,Z
	GOTO	INTERRUPT_END
	CLRF	PERC2
	INCF	ORA
	MOVLW	.10
	SUBWF	ORA,W
	BTFSS	STATUS,Z
	GOTO	INTERRUPT_END
	CLRF	ORA
	INCF	ORA2
	MOVLW	.10
	SUBWF	ORA2,W
	BTFSS	STATUS,Z
	GOTO	INTERRUPT_END
	CLRF	ORA2
INTERRUPT_END
	SWAPF	STATUS_SAVE,W
	MOVWF	STATUS
	SWAPF	W_SAVE,F
	SWAPF	W_SAVE,W
	RETFIE	;MEGSZAKÍTÁSBÓL VALÓ VISSZATÉRÉS
;************************************************************************************


START	;ALAPBEÁLLÍTÁSOK, ÉS ALAPÉRTÉKEK MEGADÁSA:
	MOVLW	B'10100000'
	MOVWF	INTCON		;TIMER 0 INTERRUPT ELÉRHETŐ
	MOVLW	B'00000100'
	MOVWF	INTCON2		;TIMER 0 INTERRUPT prioryti
	MOVLW	B'00000010'
	MOVWF	T0CON		;TIMER 0 16 BIT MÓD, 8-AS ELŐOSZTÁSSAL
	MOVLW	B'01111101'
	MOVWF	ADCON1		;LATA0-1 ANALÓG, A TÖBBI DIGITÁLIS
	MOVLW	B'00000001'
	MOVWF	ADCON0		;TÁP A REFERENCIA, 0-S CSATORNA AKTÍV, A/D BEKAPCSOLVA
	MOVLW	B'10001000'
	MOVWF	ADCON2		;JOBBRA IGAZÍTVA, 1/2 ÓRAJEL
	MOVLW	B'01101100'
	MOVWF	OSCCON		;4MHZ BELSŐ ÓRAJEL
	clrf	wdtcon
	
	MOVLW	B'00000010'
	MOVWF	TRISA	  	; OUTPUT-BA ALLITASA
	CLRF	TRISB
	clrf	lata
	clrf	latb
	CLRF	SEC
	CLRF	SEC2
	CLRF	PERC
	CLRF	PERC2
	CLRF	ORA
	CLRF	ORA2
	CLRF	LSEC
	CLRF	LSEC2
	CLRF	LPERC
	CLRF	LPERC2
	CLRF	LORA
	CLRF	LORA2
	CALL	NAGYIDO
	bsf		lata,0
;************************************************************************************
;	MOVLW	0X0B		;20MHZ	\
;	MOVLW	0X9E		;8MHZ
	MOVLW	0Xcf		;4MHZ
	MOVWF	TMR0H		;		 \IDŐZÍTŐ KEZDŐÉRTÉK MEGADÁS
;	MOVLW	0XE0		;20MHZ	 /
;	MOVLW	0X57		;8MHZ
	MOVLW	0X2b		;4MHZ
	MOVWF	TMR0L		;		/
	BSF		T0CON,7
;************************************************************************************
INIT	;LCD ALAPBEÁLLÍTÁSOK MEGADÁSA:
	BCF		lata,2
	MOVLW	38h			;2 soros mód
	CALL	LCD_ENGEdELY
	MOVLW	01h			;TÖRLÉS
	CALL	LCD_ENGEdELY
	MOVLW	06h			;NINCS KURZORTOLÁS
	CALL	LCD_ENGEdELY
	MOVLW	0ch			;NINCS KURZOR, NINCS ALÁHÚZVA
	CALL	LCD_ENGEdELY
	MOVLW	10H			;nincs KÉPELTOLÁS
	CALL	LCD_ENGEdELY
;**********************************************************************************************
KEZDOCIM_MEGADAS
	BCF		lata,2
	CALL	IDO
	movlw	B'00000001'
	CALL	LCD_ENGEdELY
	BSF		lata,2
	CALL	IDO		
	MOVLW	.0
	MOVWF	CUCC
	MOVLW	.32
	MOVWF	CUCC2	
	GOTO	KULD
;**********************************************************************************************
KULD
	MOVF	CUCC,W
	CALL	DATA_ITT
	CALL	LCD_ENGEdELY
	INCF	CUCC,F
	INCF	CUCC,F
	BCF		STATUS,Z
	movlw	.17
	subwf	cucc2,w
	btfsc	status,z
	call	pozicio_ugrAS
	DECFSZ	CUCC2,F
	GOTO	KULD
	GOTO	CIKLUS	
DATA_ITT	;ALAPKIJELZÉS BETÖLTÉSE
	MOVWF	ADAT_SEGED
	MOVF	PCL,W
	BCF		STATUS,C
	ADDWF	ADAT_SEGED,W
	BTFSC	STATUS,C
	INCF	PCLATH
	MOVF	ADAT_SEGED,W
	ADDWF	PCL,1
	DT	"U=00,0V  A=0,00A"
	DT	"P=00,0W 00:00:00"
pozicio_ugras
	BCF		lata,2
	CALL	IDO
	movlw	080h
	CALL	LCD_ENGEdELY
	BSF		lata,2
	CALL	IDO
	return	
	
LCD_ENGEdELy
	MOVWF	latb
	call	ido
	BSF		lata,4
	CALL	IDO
	BCF		lata,4	
	call	ido
	CLRF	latb
	RETURN
VALT		;1 SEC OSCILLÁTORT KEZELŐ RUTIN
	BTFSS	lata,0
	GOTO	BE	
KI	BCF		lata,0
	RETURN
BE	BSF		lata,0
	RETURN
	
NAGYIDO					;KÉSLELTETÉS A KIJELZŐNEK 1. INDÍTÁSNÁL
	MOVLW	.255
	MOVWF	DELAY1
NAGYIDO2 
	MOVLW	.255
	MOVWF	DELAY2
NAGYIDO3
	DECFSZ	DELAY2,F
	GOTO	NAGYIDO3
	DECFSZ	DELAY1,F
	GOTO	NAGYIDO2
	return		
IDO	
	MOVLW	.255
	MOVWF	DeLAY1
IDO2  
	MOVLW	.255
	MOVWF	DELAY2
IDO3
	DECFSZ	DELAY2,F
	GOTO	IDO3
	DECFSZ	DELAY1,F
	GOTO	IDO2
	RETURN
	
LCD_KARAKTEREK
	MOVWF	ADAT_SEGED
	MOVF	PCL,W
	BCF		STATUS,C
	ADDWF	ADAT_SEGED,W
	BTFSC	STATUS,C
	INCF	PCLATH
	MOVF	ADAT_SEGED,W
	ADDWF	ADAT_SEGED,W
	ADDWF	PCL,F
	DT"0123456789HHHHHHHH"
	
CIKLUS	
	goto	$
	BCF		STATUS,Z
	MOVF	LSEC,W
	SUBWF	SEC,W
	BTFSS	STATUS,Z
	CALL	SEC_BEIR
	MOVFF	SEC,LSEC
	
	BCF		STATUS,Z
	MOVF	LSEC2,W
	SUBWF	SEC2,W
	BTFSS	STATUS,Z
	CALL	SEC2_BEIR
	MOVFF	SEC2,LSEC2
	
	BCF		STATUS,Z
	MOVF	LPERC,W
	SUBWF	PERC,W
	BTFSS	STATUS,Z
	CALL	PERC_BEIR
	MOVFF	PERC,LPERC
	
	BCF		STATUS,Z
	MOVF	LPERC2,W
	SUBWF	PERC2,W
	BTFSS	STATUS,Z
	CALL	PERC2_BEIR
	MOVFF	PERC2,LPERC2
	
	BCF		STATUS,Z
	MOVF	LORA,W
	SUBWF	ORA,W
	BTFSS	STATUS,Z
	CALL	ORA_BEIR
	MOVFF	ORA,LORA
	
	BCF		STATUS,Z
	MOVF	LORA2,W
	SUBWF	ORA2,W
	BTFSS	STATUS,Z
	CALL	ORA2_BEIR	
	MOVFF	ORA2,LORA2
	GOTO	CIKLUS
		
SEC_BEIR
	BCF		lata,2
	CALL	IDO
	MOVLW	0CFH
	CALL	LCD_ENGEDELY
	BSF		lata,2
	CALL	IDO
	MOVF	SEC,W
	CALL	LCD_KARAKTEREK
	CALL	LCD_ENGEDELY
	RETURN
	
SEC2_BEIR
	BCF		lata,2
	CALL	IDO
	MOVLW	0CEH
	CALL	LCD_ENGEDELY
	BSF		lata,2
	CALL	IDO
	MOVF	SEC2,W
	CALL	LCD_KARAKTEREK
	CALL	LCD_ENGEDELY
	RETURN
PERC_BEIR
	BCF		lata,2
	CALL	IDO
	MOVLW	0CCH
	CALL	LCD_ENGEDELY
	BSF		lata,2
	CALL	IDO
	MOVF	PERC,W
	CALL	LCD_KARAKTEREK
	CALL	LCD_ENGEDELY
	RETURN
PERC2_BEIR
	BCF		lata,2
	CALL	IDO
	MOVLW	0CBH
	CALL	LCD_ENGEDELY
	BSF		lata,2
	CALL	IDO
	MOVF	PERC2,W
	CALL	LCD_KARAKTEREK
	CALL	LCD_ENGEDELY
	RETURN
ORA_BEIR
	BCF		lata,2
	CALL	IDO
	MOVLW	0C9H
	CALL	LCD_ENGEDELY
	BSF		lata,2
	CALL	IDO
	MOVF	ORA,W
	CALL	LCD_KARAKTEREK
	CALL	LCD_ENGEDELY
	RETURN
ORA2_BEIR
	BCF		lata,2
	CALL	IDO
	MOVLW	0C8H
	CALL	LCD_ENGEDELY
	BSF		lata,2
	CALL	IDO
	MOVF	ORA,W
	CALL	LCD_KARAKTEREK
	CALL	LCD_ENGEDELY
	RETURN



		
	END	;PROGRAM VÉGE.
