#include <p16F887.inc>
	__CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
	__CONFIG    _CONFIG2, _WRT_OFF & _BOR21V


		cblock 070
		adat
		endc


     org 0

Start:
		BANKSEL TRISD
		MOVLW	000
		MOVWF	TRISD
		banksel ANSELH
		movlw	0x00
		movwf	ANSELH
		MOVLW	B'00000000' ;c3-4 ki
		MOVWF	TRISC

		BANKSEL PORTC
		MOVLW	0FF			; ADATVONALAK FENT a kezdéshez
		MOVWF	PORTC

		MOVLW	000
		MOVWF	adat

main

		;--------------------------------------------- START SDA FENTRŐL LE AMIKOR SCL FENT
		BCF		PORTC,4

		NOP
		NOP
		NOP
		NOP
		;------------------------------------------- CÍM
		BCF	PORTC,3
		NOP
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		;--------------- CÍM KINT
		;---ACK JÖN
		BANKSEL TRISC
		MOVLW	B'00010000'
		MOVWF	TRISC
	
		BANKSEL	PORTC
		BSF		PORTC,3 ;ÓRAJEL FEL - ACK MIATT SDA LENT KELL H LEGYEN

		BTFSS	PORTC,4
		CALL	sda_l ;ACK OK
		BTFSC	PORTC,4
		CALL	sda_h	;ACK NEM OK

		BANKSEL	TRISC
		BCF 	TRISC,4	; SDA KIMENET
		
		BCF		PORTC,3 ;ÓRAJEL VÉGE
		;--ACK VÉGE


		;----PARANCS MEGY
		BSF	PORTC,4 ;1
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		;---------PARANCS VÉGE (EEh) MÉRJ PARANCS MENT

		;---ACK JÖN
		BANKSEL TRISC
		MOVLW	B'00010000'
		MOVWF	TRISC
	
		BANKSEL	PORTC
		BSF		PORTC,3 ;ÓRAJEL FEL - ACK MIATT SDA LENT KELL H LEGYEN
		NOP
		NOP
		BTFSS	PORTC,4
		CALL	sda_l ;ACK OK
		BTFSC	PORTC,4
		CALL	sda_h	;ACK NEM OK

		BANKSEL	TRISC
		BCF 	TRISC,4	; SDA KIMENET
		BANKSEL	PORTC
		
		BCF		PORTC,3 ;ÓRAJEL VÉGE
		;--ACK VÉGE


		;STOP JÖN
		BSF	PORTC,3 ;ÓRAJEL FEL
		BSF	PORTC,4 ;STOP JEL

		
;---------EDDIG LEFUT HIBA NÉLKÜL----------------------------KONVERTÁL JÖHET AZ OLVASÁS

		NOP
		NOP
		NOP
		NOP
		BCF	PORTC,4
		NOP
		NOP
		NOP
		NOP
		;---------CÍM----------------------------------
		BCF	PORTC,3
		NOP
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		;--------------- CÍM KINT
		;---ACK JÖN
		BANKSEL TRISC
		MOVLW	B'00010000'
		MOVWF	TRISC
		BANKSEL	PORTC

		BSF		PORTC,3 ;ÓRAJEL FEL - ACK MIATT SDA LENT KELL H LEGYEN

		BTFSS	PORTC,4
		CALL	sda_l ;ACK OK
		BTFSC	PORTC,4
		CALL	sda_h	;ACK NEM OK

		BANKSEL	TRISC
		BCF 	TRISC,4	; SDA KIMENET
		BCF		PORTC,3 ;ÓRAJEL VÉGE
		;--ACK VÉGE


		;----PARANCS MEGY
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		;---------PARANCS VÉGE (AAh) - OLVASD KI A MÉRÉST

		;---ACK JÖN
		BANKSEL TRISC
		MOVLW	B'00010000'
		MOVWF	TRISC
	
		BANKSEL	PORTC
		BSF		PORTC,3 ;ÓRAJEL FEL - ACK MIATT SDA LENT KELL H LEGYEN
		NOP
		NOP
		BTFSS	PORTC,4
		CALL	sda_l ;ACK OK
		BTFSC	PORTC,4
		CALL	sda_h	;ACK NEM OK

		BANKSEL	TRISC
		BCF 	TRISC,4	; SDA KIMENET
		BANKSEL	PORTC
		
		BCF		PORTC,3 ;ÓRAJEL VÉGE
		;--ACK VÉGE -----------------------------------------------------EDDIG RENDBEN

;-RESTART ON BUS
		BSF PORTC,4
		NOP
		BSF	PORTC,3
		NOP
		BCF	PORTC,4
		NOP
		BCF	PORTC,3
;---RESTART KINT

;-CÍM KI
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BCF	PORTC,4 ;0
		CALL cpulse
		BSF	PORTC,4 ;1
		CALL cpulse
;-CÍM KINT
		;---ACK JÖN                                --------------------------------- EZ AZ ACK NEM JÖN MEG.
	;	BANKSEL TRISC
	;	MOVLW	B'00010000'
	;	MOVWF	TRISC
	
	;	BANKSEL	PORTC
		BSF		PORTC,3 ;ÓRAJEL FEL - ACK MIATT SDA LENT KELL H LEGYEN
	;	NOP
		NOP
	;	BTFSS	PORTC,4
	;	CALL	sda_l ;ACK OK
	;	BTFSC	PORTC,4
	;	CALL	sda_h	;ACK NEM OK

	;	BANKSEL	TRISC
	;	BCF 	TRISC,4	; SDA KIMENET
	;	BANKSEL	PORTC
		
		BCF		PORTC,3 ;ÓRAJEL VÉGE
		;--ACK VÉGE

;ADAT JÖN ADAT VÁLTOZÓBA

		BANKSEL	TRISC
		BSF	TRISC,4
		BANKSEL PORTC

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,7
		BTFSC	PORTC,4
		BCF		adat,7
		BCF		PORTC,3		;ÓRA LE

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,6
		BTFSC	PORTC,4
		BCF		adat,6
		BCF		PORTC,3		;ÓRA LE

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,5
		BTFSC	PORTC,4
		BCF		adat,5
		BCF		PORTC,3		;ÓRA LE

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,4
		BTFSC	PORTC,4
		BCF		adat,4
		BCF		PORTC,3		;ÓRA LE

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,3
		BTFSC	PORTC,4
		BCF		adat,3
		BCF		PORTC,3		;ÓRA LE

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,2
		BTFSC	PORTC,4
		BCF		adat,2
		BCF		PORTC,3		;ÓRA LE

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,1
		BTFSC	PORTC,4
		BCF		adat,1
		BCF		PORTC,3		;ÓRA LE

		BSF	PORTC,3			;óra fel
		BTFSS	PORTC,4
		BSF		adat,0
		BTFSC	PORTC,4
		BCF		adat,0
		BCF		PORTC,3		;ÓRA LE

		BANKSEL	TRISC
		BCF	TRISC,4
		BANKSEL PORTC
;---ADAT BENT

;master nack
	BSF PORTC,4
	BSF PORTC,3
	NOP
	BCF	PORTC,4

;STOP
	BSF PORTC,3
	NOP
	BSF	PORTC,4

MOVLW	adat
MOVWF	PORTD

GOTO $














;..-------------------------------------SCRIPTEK

sda_l
	MOVLW	0FF
	MOVWF	PORTD
	RETURN

sda_h
	MOVLW	001
	MOVWF	PORTD
	GOTO main



cpulse
		NOP
		BSF	PORTC,3	;ÓRAJEL FEL - ADATOLVASÁS
		NOP
		BSF	PORTC,3 ;ÓRAJEL LE
		RETURN
	
	END
     
