
_Soft_I2C_Init:

;Soft_I2C.c,12 :: 		void Soft_I2C_Init(void) {
;Soft_I2C.c,13 :: 		Soft_I2C_Stop();
	CALL       _Soft_I2C_Stop+0
;Soft_I2C.c,14 :: 		return;
;Soft_I2C.c,15 :: 		}
L_end_Soft_I2C_Init:
	RETURN
; end of _Soft_I2C_Init

_Soft_I2C_Start:

;Soft_I2C.c,17 :: 		void Soft_I2C_Start() {
;Soft_I2C.c,18 :: 		Soft_I2C_Scl = 1;
	BSF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,19 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Start0:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Start0
	NOP
	NOP
;Soft_I2C.c,20 :: 		Soft_I2C_Sda = 1;
	BSF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,21 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Start1:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Start1
	NOP
	NOP
;Soft_I2C.c,22 :: 		Soft_I2C_Sda = 0;
	BCF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,23 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Start2:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Start2
	NOP
	NOP
;Soft_I2C.c,24 :: 		Soft_I2C_Scl = 0;
	BCF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,25 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Start3:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Start3
	NOP
	NOP
;Soft_I2C.c,26 :: 		return;
;Soft_I2C.c,27 :: 		}
L_end_Soft_I2C_Start:
	RETURN
; end of _Soft_I2C_Start

_Soft_I2C_Write:

;Soft_I2C.c,29 :: 		char Soft_I2C_Write(char d) {
;Soft_I2C.c,31 :: 		for(i=0; i<8; i++) {
	CLRF       R1+0
L_Soft_I2C_Write4:
	MOVLW      8
	SUBWF      R1+0, 0
	BTFSC      STATUS+0, 0
	GOTO       L_Soft_I2C_Write5
;Soft_I2C.c,32 :: 		Soft_I2C_Sda = d.B7;
	BTFSC      FARG_Soft_I2C_Write_d+0, 7
	GOTO       L__Soft_I2C_Write29
	BCF        LATA2_bit+0, BitPos(LATA2_bit+0)
	GOTO       L__Soft_I2C_Write30
L__Soft_I2C_Write29:
	BSF        LATA2_bit+0, BitPos(LATA2_bit+0)
L__Soft_I2C_Write30:
;Soft_I2C.c,33 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Write7:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Write7
	NOP
	NOP
;Soft_I2C.c,34 :: 		Soft_I2C_Scl = 1;
	BSF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,35 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Write8:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Write8
	NOP
	NOP
;Soft_I2C.c,36 :: 		Soft_I2C_Scl = 0;
	BCF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,37 :: 		d = d << 1;
	LSLF       FARG_Soft_I2C_Write_d+0, 1
;Soft_I2C.c,31 :: 		for(i=0; i<8; i++) {
	INCF       R1+0, 1
;Soft_I2C.c,38 :: 		}
	GOTO       L_Soft_I2C_Write4
L_Soft_I2C_Write5:
;Soft_I2C.c,40 :: 		Soft_I2C_Sda = 1; //ACK
	BSF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,41 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Write9:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Write9
	NOP
	NOP
;Soft_I2C.c,42 :: 		Soft_I2C_Scl = 1;
	BSF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,43 :: 		ack = Soft_I2C_Sda_in;
	MOVLW      0
	BTFSC      PORTA+0, 2
	MOVLW      1
	MOVWF      R2+0
;Soft_I2C.c,44 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Write10:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Write10
	NOP
	NOP
;Soft_I2C.c,45 :: 		Soft_I2C_Scl = 0;
	BCF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,46 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Write11:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Write11
	NOP
	NOP
;Soft_I2C.c,47 :: 		return ack;
	MOVF       R2+0, 0
	MOVWF      R0
;Soft_I2C.c,48 :: 		}
L_end_Soft_I2C_Write:
	RETURN
; end of _Soft_I2C_Write

_Soft_I2C_Read:

;Soft_I2C.c,50 :: 		char Soft_I2C_Read(void){
;Soft_I2C.c,51 :: 		char i, d = 0;
	CLRF       Soft_I2C_Read_d_L0+0
;Soft_I2C.c,52 :: 		for(i=0; i<8; i++){
	CLRF       R1+0
L_Soft_I2C_Read12:
	MOVLW      8
	SUBWF      R1+0, 0
	BTFSC      STATUS+0, 0
	GOTO       L_Soft_I2C_Read13
;Soft_I2C.c,53 :: 		d = d << 1;
	LSLF       Soft_I2C_Read_d_L0+0, 1
;Soft_I2C.c,54 :: 		d = d + Soft_I2C_Sda_in;
	CLRF       R0
	BTFSC      PORTA+0, 2
	INCF       R0, 1
	MOVF       R0, 0
	ADDWF      Soft_I2C_Read_d_L0+0, 1
;Soft_I2C.c,55 :: 		Soft_I2C_Scl = 1;
	BSF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,56 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Read15:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Read15
	NOP
	NOP
;Soft_I2C.c,57 :: 		Soft_I2C_Scl = 0;
	BCF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,58 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Read16:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Read16
	NOP
	NOP
;Soft_I2C.c,52 :: 		for(i=0; i<8; i++){
	INCF       R1+0, 1
;Soft_I2C.c,59 :: 		}
	GOTO       L_Soft_I2C_Read12
L_Soft_I2C_Read13:
;Soft_I2C.c,60 :: 		return d;
	MOVF       Soft_I2C_Read_d_L0+0, 0
	MOVWF      R0
;Soft_I2C.c,61 :: 		}
L_end_Soft_I2C_Read:
	RETURN
; end of _Soft_I2C_Read

_Soft_I2C_ACK:

;Soft_I2C.c,63 :: 		void Soft_I2C_ACK(void){
;Soft_I2C.c,64 :: 		Soft_I2C_Sda = 0;
	BCF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,65 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_ACK17:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_ACK17
	NOP
	NOP
;Soft_I2C.c,66 :: 		Soft_I2C_Scl = 1;
	BSF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,67 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_ACK18:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_ACK18
	NOP
	NOP
;Soft_I2C.c,68 :: 		Soft_I2C_Scl = 0;
	BCF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,69 :: 		Soft_I2C_Sda = 1;
	BSF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,70 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_ACK19:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_ACK19
	NOP
	NOP
;Soft_I2C.c,71 :: 		return;
;Soft_I2C.c,72 :: 		}
L_end_Soft_I2C_ACK:
	RETURN
; end of _Soft_I2C_ACK

_Soft_I2C_NACK:

;Soft_I2C.c,74 :: 		void Soft_I2C_NACK(void){
;Soft_I2C.c,75 :: 		Soft_I2C_Sda = 1;
	BSF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,76 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_NACK20:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_NACK20
	NOP
	NOP
;Soft_I2C.c,77 :: 		Soft_I2C_Scl = 1;
	BSF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,78 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_NACK21:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_NACK21
	NOP
	NOP
;Soft_I2C.c,79 :: 		Soft_I2C_Scl = 0;
	BCF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,80 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_NACK22:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_NACK22
	NOP
	NOP
;Soft_I2C.c,81 :: 		return;
;Soft_I2C.c,82 :: 		}
L_end_Soft_I2C_NACK:
	RETURN
; end of _Soft_I2C_NACK

_Soft_I2C_Stop:

;Soft_I2C.c,84 :: 		void Soft_I2C_Stop() {
;Soft_I2C.c,85 :: 		Soft_I2C_Sda = 0;
	BCF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,86 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Stop23:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Stop23
	NOP
	NOP
;Soft_I2C.c,87 :: 		Soft_I2C_Scl = 1;
	BSF        LATA3_bit+0, BitPos(LATA3_bit+0)
;Soft_I2C.c,88 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Stop24:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Stop24
	NOP
	NOP
;Soft_I2C.c,89 :: 		Soft_I2C_Sda = 1;
	BSF        LATA2_bit+0, BitPos(LATA2_bit+0)
;Soft_I2C.c,90 :: 		Delay_I2C;
	MOVLW      39
	MOVWF      R13
L_Soft_I2C_Stop25:
	DECFSZ     R13, 1
	GOTO       L_Soft_I2C_Stop25
	NOP
	NOP
;Soft_I2C.c,91 :: 		return;
;Soft_I2C.c,92 :: 		}
L_end_Soft_I2C_Stop:
	RETURN
; end of _Soft_I2C_Stop
