	LIST P=16F628A
	#INCLUDE "P16F628A.INC"

	__config  _INTRC_OSC_NOCLKOUT & _LVP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_ON & _MCLRE_OFF




	CBLOCK 0x20
	SEC2
	SEC
	MIN
	HR
	THR
	SZHR
	EHR
	FLAG
	BEME
	CIM
	ADAT
	ENDC


org 0000

INIC

	BANKSEL	TRISA

	MOVLW	B'00000111'			;B port felhúzó ellenállások aktívak legyenek, TIMER0 ELŐOSZTÓJA 1:256
	MOVWF	OPTION_REG

	MOVLW	B'00000001'
	MOVWF	TRISB				;RB0 bemenet a többi kimenet

	MOVLW	0x20				;RA5 BEMENET A TÖBBI KIMENET
	MOVWF	TRISA			

	BANKSEL	INTCON

	MOVLW	0xFF				;KIJELZŐ SÖTÉT
	MOVWF	PORTB
	MOVLW	0x07 				;Turn comparators off and
	MOVWF	CMCON 				;enable pins for I/O ("A" port inicializálása)

	MOVLW	B'00001111'			;EGYIIK RELÉ SEM HÚZ KIJELZŐ MINDEN DIGITJE TILTVA
	MOVWF	PORTA
	CLRF	BEME
	CLRF	FLAG
	BSF		PORTA,4				;1ES RELÉ HÚZ A BEMENET PC RŐL (ALAP)
	MOVLW	0x24				;FÉL MÁSODPERCES TÚLCSORDULÁS BEÁLLÍTÁSA
	MOVWF	TMR1L
	MOVLW	0xF4
	MOVWF	TMR1H
	MOVLW	B'00110101'			;EŐOSZTÓ MEGADÁSA ÉS A TMR1 INDÍTÁSA
	MOVWF	T1CON
	CLRF	CIM					;KEZDŐ CÍM A 00

LOAD
	MOVF	CIM,w		;EEPROM CÍMÉNEK MEGADÁSA
	CALL	READ		;OLVASÓ RUTIN MEGHÍVÁSA
	MOVF	ADAT,w		;KIOLVASOTT ADAT BEÍRÁSA (PERC)
	MOVWF	MIN

	INCF	CIM,f		;EEPROM CÍM NÖVELÉSE EGYEL
	MOVF	CIM,w
	CALL	READ
	MOVF	ADAT,w
	MOVWF	HR

	INCF	CIM,f
	MOVF	CIM,w
	CALL	READ
	MOVF	ADAT,w
	MOVWF	THR

	INCF	CIM,f
	MOVF	CIM,w
	CALL	READ
	MOVF	ADAT,w
	MOVWF	SZHR

	INCF	CIM,f
	MOVF	CIM,w
	CALL	READ
	MOVF	ADAT,w
	MOVWF	EHR


START
	BTFSS	PORTA,5
	GOTO	MENT
	BTFSS	PORTB,0			;MEGNYOMTAM A LÉPTETŐ GOMBOT?
	CALL	LEPTET			;HA IGEN AKKOR LÉPTETŐ RUTIN MEGHÍVÁSA
	BTFSS	PIR1,0			;ELTELT FÉLMÁSODPERC?
	GOTO	KIIR
	CALL	ORA				;HA IGEN AKKOR  ÓRA NÖVELÉSE

KIIR

	MOVF	HR,w			;HA SEMMI EGYÉB NINCS AKKOR ÓRA KIÍRÁSA AKIJELZŐRE
	CALL	TABLE
	MOVWF	PORTB
	BCF		PORTA,0
	BSF		PORTA,0
	
	MOVF	THR,w
	CALL	TABLE
	MOVWF	PORTB
	BCF		PORTA,1
	BSF		PORTA,1

	MOVF	SZHR,w
	CALL	TABLE
	MOVWF	PORTB
	BCF		PORTA,2
	BSF		PORTA,2

	MOVF	EHR,w
	CALL 	TABLE
	MOVWF	PORTB
	BCF		PORTA,3
	BSF		PORTA,3

	GOTO	START


LEPTET

	BTFSC	PORTA,4			;MEGNÉZEM MELYIK RELÉ HÚZ ÉS AMELYIK HÚZ AZT ELEJTETEM MAJD KIIÍROM A KIJELZŐRE A KÖVI RELÉ NEVÉT
	GOTO	PC

	BTFSC	PORTA,6
	GOTO	CD

	BTFSC	PORTA,7
	CALL	AU

VISSZA	

	RETURN

PC
	BCF		PORTA,4
	CALL	CDMEGJEL
	BSF		PORTA,6
	GOTO	VISSZA


CD

	BCF		PORTA,6
	CALL	AUMEGJEL
	BSF		PORTA,7
	GOTO	VISSZA

AU

	BCF		PORTA,7
	CALL	PCMEGJEL
	BSF		PORTA,4
	GOTO	VISSZA
	
CDMEGJEL

	CLRF	TMR0

JEL
	MOVLW	0x75			;CD FELIRAT MEGJELENÍTÉSE
	MOVWF	PORTB
	BCF		PORTA,0
	BSF		PORTA,0
	MOVLW	0x31
	MOVWF	PORTB
	BCF		PORTA,1
	BSF		PORTA,1
	BTFSS	INTCON,2
	GOTO	JEL
	BCF		INTCON,2
	INCF	BEME,f
	MOVF	BEME,w
	XORLW	0x0F
	BTFSS	STATUS,Z
	GOTO	JEL
	CLRF	BEME
	RETURN
	
AUMEGJEL

	CLRF	TMR0

JEL1

	MOVLW	0x03		;AU FELIRAT MEGJELENÍTÉSE
	MOVWF	PORTB
	BCF		PORTA,0
	BSF		PORTA,0
	MOVLW	0x91
	MOVWF	PORTB
	BCF		PORTA,1
	BSF		PORTA,1
	BTFSS	INTCON,2
	GOTO	JEL1
	BCF		INTCON,2
	INCF	BEME,f
	MOVF	BEME,w
	XORLW	0x0F
	BTFSS	STATUS,Z
	GOTO	JEL1
	CLRF	BEME
	RETURN	
		

PCMEGJEL

	CLRF	TMR0

JEL2
	MOVLW	0x07		;PC FELIRAT MEGJELENÍTÉSE
	MOVWF	PORTB
	BCF		PORTA,0
	BSF		PORTA,0
	MOVLW	0x75
	MOVWF	PORTB
	BCF		PORTA,1
	BSF		PORTA,1
	BTFSS	INTCON,2
	GOTO	JEL2
	BCF		INTCON,2
	INCF	BEME,f
	MOVF	BEME,w
	XORLW	0x0F
	BTFSS	STATUS,Z
	GOTO	JEL2
	CLRF	BEME
	RETURN	

ORA
	BCF		PIR1,0		;TMR1 TÚLCSODULÁS JELZŐ BIT TÖRLÉSE
	MOVLW	0x24		;A SZÁMLÁLÓ BEÁLLÍTÁSA 500MS ONKÉNTI TÚLCSORDULÁSRA
	MOVWF	TMR1L
	MOVLW	0xF4
	MOVWF	TMR1H

	INCF	SEC2,f		;FÉLMÁSODPERCEK NÖVELÉSE
	MOVF	SEC2,w
	XORLW	0x02
	BTFSS	STATUS,Z
	GOTO	VEGE
	CLRF	SEC2

	INCF	SEC,f
	MOVF	SEC,w
	XORLW	0x3C		;ELÉRTE A 60 MÁSODPERCET?
	BTFSS	STATUS,Z
	GOTO	VEGE
	CLRF	SEC

	INCF	MIN,f
	MOVF	MIN,w
	XORLW	0x3C		;ELÉRTE A 60 PERCET?
	BTFSS	STATUS,Z
	GOTO	VEGE
	CLRF	MIN

	INCF	HR,f
	MOVF	HR,w
	XORLW	0x0A		;ELÉRTE A 10 ÓRÁT? STB..
	BTFSS	STATUS,Z
	GOTO	VEGE
	CLRF	HR

	INCF	THR,f
	MOVF	THR,w
	XORLW	0x0A
	BTFSS	STATUS,Z
	GOTO	VEGE
	CLRF	THR

	INCF	SZHR,f
	MOVF	SZHR,w
	XORLW	0x0A
	BTFSS	STATUS,Z
	GOTO	VEGE
	CLRF	SZHR

	INCF	EHR,f
	MOVF	EHR,w
	XORLW	0x0A
	BTFSS	STATUS,Z
	GOTO	VEGE
	CLRF	MIN
	CLRF	HR
	CLRF	THR
	CLRF	SZHR
	CLRF	EHR

VEGE

	RETURN

TABLE							;UGRÓTÁBLA: A 7SEGMENSES KIJELZŐ KÓDOKKAL
	
	ADDWF	PCL,f
	RETLW	0x81	;0
	RETLW	0xBB	;1
	RETLW	0x25	;2
	RETLW	0x29	;3
	RETLW	0x1B	;4
	RETLW	0x49	;5
	RETLW	0x41	;6
	RETLW	0xAB	;7
	RETLW	0x01	;8
	RETLW	0x09	;9





MENT

	CLRF	CIM
	MOVF	MIN,w
	MOVWF	ADAT
	CALL	SAVE

	INCF	CIM,f
	MOVF	HR,w
	MOVWF	ADAT
	CALL	SAVE

	INCF	CIM,f
	MOVF	THR,w
	MOVWF	ADAT
	CALL	SAVE

	INCF	CIM,f
	MOVF	SZHR,w
	MOVWF	ADAT
	CALL	SAVE

	INCF	CIM,f
	MOVF	EHR,w
	MOVWF	ADAT
	CALL	SAVE

VAR

	GOTO	VAR

;================================================================
;                       EEPROM kezelés
;================================================================


READ

	BANKSEL	EEADR
	MOVWF	EEADR				;W-ből EEPROMCÍMBE
	BSF		EECON1,RD			;Olvasás engedély
	MOVF	EEDATA,W			;Eepromból W-be
	BANKSEL	PORTB
	MOVWF	ADAT				;W-ből ADAT REGBE
	RETURN



SAVE


	BANKSEL	PORTB
	MOVF	CIM,w
	BANKSEL	EEADR
	MOVWF	EEADR
	BANKSEL	PORTB
	MOVF	ADAT,w
	BANKSEL	EEDATA
	MOVWF	EEDATA
	BSF		EECON1,2
	MOVLW	h'55'
	MOVWF	EECON2
	MOVLW	h'AA'
	MOVWF	EECON2 
	BSF		EECON1,1

w_ready


	BTFSC	EECON1,1 
	GOTO	w_ready 
	BCF		EECON1,2
	BANKSEL	PORTB
    RETURN

	END