	list	P=16f877A
	#include	"p16f877A.inc"
	
	__CONFIG _CP_OFF&_DEBUG_OFF&_WDT_OFF&_XT_OSC&_LVP_OFF&_BODEN_OFF
	ERRORLEVEL 0, -302

	CBLOCK	0X20
	ANALOG_AL
	ANALOG_MAG
	ENDC
	
	ORG 0
	NOP
	GOTO	START

	ORG	4
	NOP
	GOTO	MEGSZAKITAS
	
START
	BANKSEL	TMR0
	CLRF	TMR0
	BANKSEL OPTION_REG
	MOVLW	B'11010111'
	MOVWF	OPTION_REG
	MOVLW	B'01010000'
	MOVWF	INTCON
	MOVLW	B'01001110'
	MOVWF	ADCON1
	MOVLW	B'00000001'
	MOVWF	TRISA
	MOVLW	B'00000001'
	MOVWF	TRISB
	MOVLW	B'00000000'
	MOVWF	TRISC
	MOVLW	B'00000000'
	MOVWF	TRISD
	MOVLW	B'00000000'
	MOVWF	TRISE
	BANKSEL	ADCON0
	BSF	ADCON0,ADCS1
	BSF	ADCON0,2
	BSF	ADCON0,ADON
	BCF	PIR1,ADIF
	CLRF	PORTA
	CLRF	PORTB
	CLRF	PORTC
	CLRF	PORTD
	CLRF	PORTE
	BANKSEL	PIE1
	BSF	PIE1,ADIE
	BSF	INTCON,GIE
	CALL	DELAY
	
FÖPROGRAM
	BANKSEL	PORTD
	BSF	PORTD,0
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	BCF	PORTD,0
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	CALL	DELAY
	GOTO	FÖPROGRAM
MEGSZAKITAS
	BCF	INTCON,GIE
	BTFSC	PIR1,ADIF
	GOTO	ANALOG
	RETFIE

DELAY	
	BTFSS	INTCON,TMR0IF
	GOTO 	DELAY
	NOP
	BCF	INTCON,TMR0IF
	RETURN

ANALOG
	BANKSEL	ADCON0
	BCF	ADCON0,ADON
	MOVF	ADRESH,0
	MOVWF	ANALOG_MAG
	BANKSEL	ADRESL
	MOVF	ADRESL,0
	MOVWF	ANALOG_AL

	BANKSEL	EEADR
	MOVLW	10		;EEPROM CIM
	MOVWF	EEADR
	MOVF	ANALOG_AL,0
	MOVWF	EEDATA	;EEPROM ADAT
	BANKSEL	EECON1
	BCF EECON1,EEPGD
	BSF	EECON1,WREN
	MOVLW	55H
	MOVWF	EECON2
	MOVLW	0AAH
	MOVWF	EECON2
	BSF	EECON1,WR
	CALL	DELAY
	BCF	EECON1,WREN
	CALL	DELAY	

	BANKSEL	EEADR
	MOVLW	11		;EEPROM CIM
	MOVWF	EEADR
	MOVF	ANALOG_MAG,0
	MOVWF	EEDATA	;EEPROM ADAT
	BANKSEL	EECON1
	BCF EECON1,EEPGD
	BSF	EECON1,WREN
	MOVLW	55H
	MOVWF	EECON2
	MOVLW	0AAH
	MOVWF	EECON2
	BSF	EECON1,WR
	CALL	DELAY
	BCF	EECON1,WREN
	CALL	DELAY
	BANKSEL	PIR1	
	BCF	PIR1,ADIF
	CALL	DELAY
	BSF	INTCON,GIE
	RETURN

	END