LIST P=16F819 
 #INCLUDE "P16F819.INC" 
 __CONFIG _XT_OSC&_CP_OFF&_WDT_OFF &_BODEN_OFF &_PWRTE_OFF & _LVP_OFF
 
 
 
                ORG          	0X0000
                GOTO    	START
 
        CBLOCK  0X20
                        T1
                        T2
			SUML
			SUMH
			OSSZEG_SZAML
			OSZTAS_SZAML
        ENDC
 
 
START  
                
                MOVLW      	b'11111111'                        ; Mindegyik bit bemenet
                BANKSEL  	TRISA
                MOVWF      	TRISA
        
                BANKSEL  	TRISB
                CLRF        	TRISB
                
                BANKSEL  	PIE1                    	   ; Letiltjuk A/D interruptot
                BCF             PIE1,ADIE
 
                BANKSEL  	ADCON0            
                MOVLW      	b'01010001'                        ; 1/8 Fosc, Analóg bemenet =  AN2, A/D konverzió még áll, A/D modul működik
                MOVWF      	ADCON0
 
                
                BANKSEL  	ADCON1
                MOVLW      	b'10000000'                        ; Right justified, konverzió előosztó nincs kettőzve, AN0, AN1, AN2, AN3, AN4 analóg bemenetek
                MOVWF      	ADCON1

		CLRF		SUML
		CLRF		SUMH
		CLRF		OSSZEG_SZAML
		CLRF		OSZTAS_SZAML
		MOVLW		D'17'
		MOVWF		OSSZEG_SZAML
		MOVLW		D'5'
		MOVWF		OSZTAS_SZAML
                        	
 
ADC          
                CALL        	DELAY
                BANKSEL  	ADCON0
                BSF             ADCON0,GO
ADCLOOP
                BTFSC      	ADCON0,GO
                GOTO        	ADCLOOP
                BCF             PIR1,ADIF	; Az értékek ADRESL és ADRESH - ban vannak
                
                

ATLAGOLAS

		DECFSZ		OSSZEG_SZAML,f
		GOTO		OSSZEG_L
		GOTO		OSZTAS
				
OSSZEG_L
		BANKSEL		ADRESL
		MOVFW		ADRESL
		ADDWF		SUML,F

		BANKSEL		STATUS
		BTFSS		STATUS,C
		GOTO		OSSZEG_H
		
		MOVLW		D'1'
		ADDWF		SZUMH,F

OSSZEG_H
		BANKSEL		ADRESH
		MOVFW		ADRESH
		ADDWF		SUMH,F		; Az összeg SUMH és SUML - ben van
		
		GOTO		ADC
	
OSZTAS
		DECFSZ		OSZTAS_SZAML,F
		GOTO		HANYADOS_H
		GOTO		MUTAT

HANYADOS_H
		RRF		SUMH,F
		BCF		SUMH,7
		BANKSEL		STATUS
		BTFSS		STATUS,C
		GOTO		CARRY0		
		GOTO		CARRY1


HANYADOS_L
CARRY0
		RRF		SUML,F
		BCF		SUML,7
CARRY1
		RRF		SUML,F
		BSF		SUML,7		; Az átlag SUML és SUMH - ban van

		MOVLW		D'17'
		MOVWF		OSSZEG_SZAML
		MOVLW		D'5'
		MOVWF		OSZTAS_SZAML	



MUTAT           
		MOVFW		SUML         		
		BANKSEL		PORTB
                MOVWF      	PORTB  

		GOTO		ADC
 
        

DELAY     	MOVLW    	d'100' 
         	MOVWF    	T1 
DEL1    	NOP 
         	NOP 
         	NOP 
         	NOP 
         	NOP 
         	NOP 
         	NOP 
         	NOP 
         	DECFSZ   	T1,f 
         	GOTO     	DEL1 
         	RETURN
 
                
                END  