 LIST P=16F871
 #INCLUDE "P16F871.INC"
 __CONFIG _LP_OSC&_CP_OFF&_WDT_OFF&_LVP_OFF
	CBLOCK	0x20			;A 0x20 egy szabad memória rész kezdő címe
	T1
	T2
	SZ1
	SZ2
	SZ3
	SZ4
	A1
	A2
	ENDC
#INCLUDE "M_BANK.ASM"


kijel1	EQU		B'000001'
kijel2	EQU		B'000010'
kijel3	EQU		B'000100'
kijel4	EQU		B'001000'


	ORG	0

START
	BANK1
	MOVLW	0x06			
	MOVWF	ADCON1			;Mindegyik PORTA digitális
	MOVLW	B'00000000'		;Betöltjük az akksiba a TRISD-be valót
	MOVWF	TRISB	
	MOVWF	TRISC		;Beletöltjük (mind kimenet a nulla miatt)
	MOVLW	B'00000001'
	MOVWF	TRISA	;RA0 bemenet legyen
	
	MOVLW	B'10000000'	;jobbra igazitott eredmeny ADRESH/ADRESL, 8 Analog
				;csatorna, Vdd(+) es Vss(-) a referencia feszultseg
	MOVWF ADCON1
	BANK0		
	MOVLW	D'1'		;fosc/2, RA0 csatorna, nincs konverzio inditva ,konverter bekapcsolva
	MOVWF	ADCON0


MAIN					;Ez egy label
	BSF		ADCON0,2
START1
	BTFSC	ADCON0,2
	GOTO	START1
	BANK1
	MOVF	ADRESL,0
	BANK0
	MOVWF	A1
	MOVF	ADRESH,0
	MOVWF	A2
	CLRF	SZ1
	CLRF	SZ2
	CLRF	SZ3
	CLRF	SZ4
	BTFSS	A2,0
	GOTO	EZRES
	MOVLW	D'2'
	MOVWF	SZ2
	MOVLW	D'5'
	MOVWF	SZ3
	MOVLW	D'6'
	MOVWF	SZ4
	BTFSS	A2,1
	GOTO	UJRA
	MOVLW	D'7'
	MOVWF	SZ2
	MOVLW	D'6'
	MOVWF	SZ3
	MOVLW	D'8'
	MOVWF	SZ4	
	GOTO	UJRA

EZRES
	BTFSS	A2,1
	GOTO	UJRA
	MOVLW	D'5'
	MOVWF	SZ2
	MOVLW	D'1'
	MOVWF	SZ3
	MOVLW	D'2'
	MOVWF	SZ4


UJRA
	MOVLW	D'10'
	SUBWF	A1,0
	BTFSS	STATUS,0
	GOTO	FOLYT1
	MOVWF	A1
	INCF	SZ3,1
	MOVLW	D'10'
	SUBWF	SZ3,0
	BTFSS	STATUS,Z
	GOTO	UJRA
	CLRF	SZ3
	INCF	SZ2,1
	MOVLW	D'10'
	SUBWF	SZ2,0
	BTFSS	STATUS,0
	GOTO	UJRA
	CLRF	SZ2
	INCF	SZ1,1
	GOTO	UJRA
FOLYT1
	MOVF	A1,0
	ADDWF	SZ4,1
	MOVLW	D'10'
	SUBWF	SZ4,0
	BTFSS	STATUS,0
	GOTO	KIJELZO
	MOVF	SZ4,0
	MOVWF	A1
	CLRF	SZ4
	GOTO	UJRA

		

KIJELZO
	MOVLW	kijel1
	MOVWF	PORTC
	MOVFW	SZ1
	CALL	SEGMENT
	MOVWF	PORTB
	CALL	KESL
	MOVLW	kijel2
	MOVWF	PORTC
	MOVFW	SZ2
	CALL	SEGMENT
	MOVWF	PORTB
	CALL	KESL
	MOVLW	kijel3
	MOVWF	PORTC
	MOVFW	SZ3
	CALL	SEGMENT
	MOVWF	PORTB
	CALL	KESL
	MOVLW	kijel4
	MOVWF	PORTC
	MOVFW	SZ4
	CALL	SEGMENT
	MOVWF	PORTB
	CALL	KESL
	GOTO	MAIN

	
KESL
	MOVLW	B'11111111'
	MOVWF	T1
SEG1
	DECFSZ	T1,1
	GOTO	SEG2
	RETURN
SEG2
	MOVLW	B'00000011'
	MOVWF	T2
SEG3
	DECFSZ	T2,1
	GOTO	SEG3
	GOTO	SEG1


	
SEGMENT				;szammintak
	ADDWF PCL,1
	DT	0x3f,0x06,0x5b,0x4f,0x66,0x6d
	DT	0x7c,0x07,0xff,0x6f,0x3f,0x06,


 	END						;Teljes program végét jelentő END