;
;-------------------------------------------------------------------
;6x7 szegmenses kijelző rutin
;PARSIC-ban mainprogramként kell hívni.
; 
;Változók: (parsicban definiálni kell őket)
;
;TEMP -segédbájt, parsicban nem szabad írni
;EGY KETTO HAROM NEGY OT HAT -kijelzők értékei, 
; táblázatban kell meghatározni a számokhoz tartozó értéket a parsicban.
; 
;Kimenetek:
;PORTB,0-6  -szegmensek, dp
;PORTB,7	-DP
;PORTC 0-5  -kijelzők
;
;
;-------------------------------------------------------------------
;
;Ezt a részt egy másik include fájlba kell tenni, amit "end of initialization" -al kell hívni,
;mert a nem használt portokat a parsic bemenetnek állítja be.
;
;	BSF STATUS,RP0			;PORTB,0-7 beállítása kimenetnek (SZEGMENSEK)
;	MOVLW B'00000000'
;	MOVWF TRISB
;
;	MOVLW B'11000000'		;PORTC,0-5 beállítása kimenetnek (KIJELZŐK)
;	MOVWF TRISC
;	BCF STATUS,RP0	
;-------------------------------------------------------------------

	
	BANKSEL TEMP
	BTFSC TEMP,4			;itt ciklusonként mindig a következő kijelzőhöz ugrik
	GOTO HATODIK
	BANKSEL TEMP
	BTFSC TEMP,3
	GOTO OTODIK
	BANKSEL TEMP
	BTFSC TEMP,2
	GOTO NEGYEDIK
	BANKSEL TEMP
	BTFSC TEMP,1
	GOTO HARMADIK
	BANKSEL TEMP
	BTFSC TEMP,0
	GOTO MASODIK


	
;-----------első kijelző-------------------------
	BANKSEL TEMP
	BSF TEMP,0			;Seteli a segédbitet, hogy következő ciklusban a következő kijelzőhöz ugorjon
	BANKSEL PORTC
	BCF PORTC,5			;Kikapcsolja az előző kijelzőt

	BANKSEL EGY
	MOVFW	EGY			;Betölti a szegmens értékeket a kimenetre
	BANKSEL PORTB
	MOVWF	PORTB		

	BANKSEL PORTB
	BCF PORTB,7			;ha kell tizedes pont erre a kijelzőre, akkor: BSF, ha nem akkor BCF
	
	BANKSEL PORTC
	BSF PORTC,0			;Bekapcsolja a kijelzőt
	
	GOTO VEGE			;Ugrás a végére

;-----------második kijelző----------------------
MASODIK

	BANKSEL TEMP
	BSF TEMP,1			
	BANKSEL PORTC
	BCF PORTC,0		

	BANKSEL KETTO
	MOVFW	KETTO		
	BANKSEL PORTB
	MOVWF	PORTB		

	BANKSEL PORTB
	BCF PORTB,7				
	
	BANKSEL PORTC
	BSF PORTC,1		
	
	GOTO VEGE		

;-----------harmadik kijelző---------------------
HARMADIK

	BANKSEL TEMP
	BSF TEMP,2			
	BANKSEL PORTC
	BCF PORTC,1		

	BANKSEL HAROM
	MOVFW	HAROM		
	BANKSEL PORTB
	MOVWF	PORTB		

	BANKSEL PORTB
	BCF PORTB,7				
	
	BANKSEL PORTC
	BSF PORTC,2		
	
	GOTO VEGE		

;-----------negyedik kijelző---------------------
NEGYEDIK
	
	BANKSEL TEMP
	BSF TEMP,3			
	BANKSEL PORTC
	BCF PORTC,2		

	BANKSEL NEGY
	MOVFW	NEGY		
	BANKSEL PORTB
	MOVWF	PORTB		

	BANKSEL PORTB
	BCF PORTB,7				
	
	BANKSEL PORTC
	BSF PORTC,3		
	
	GOTO VEGE	
	
;-----------ötödik kijelző-----------------------
OTODIK

	BANKSEL TEMP
	BSF TEMP,4			
	BANKSEL PORTC
	BCF PORTC,3		

	BANKSEL OT
	MOVFW	OT		
	BANKSEL PORTB
	MOVWF	PORTB		

	BANKSEL PORTB
	BCF PORTB,7				
	
	BANKSEL PORTC
	BSF PORTC,4		
	
	GOTO VEGE		
	
;-----------hatodik kijelző----------------------
HATODIK

	MOVLW 0				;kikapcsol minden segédbitet, hogy újra előről kezdje
	BANKSEL TEMP
	MOVWF TEMP			
	
	BANKSEL PORTC
	BCF PORTC,4
	
	BANKSEL HAT
	MOVFW	HAT		
	BANKSEL PORTB
	MOVWF	PORTB		

	BANKSEL PORTB
	BCF PORTB,7			
	
	BANKSEL PORTC
	BSF PORTC,5

VEGE
