I2C_STRT:
;{
bsf I2C_CLOCK ; set clock high
bsf I2C_DTA ; set data high
bcf I2C_DTA ; clear data bit
bcf I2C_CLOCK ; set clock low
return
;}
I2C_STP:
;{
bsf I2C_CLOCK ; set clock high
bcf I2C_DTA ; set data low
bsf I2C_DTA ; set data high
return
;}
I2C_SEND:
;{
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,7 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,6 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,5 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,4 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,3 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,2 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,1 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
btfsc I2C_Value,0 ; test CARRY for hi
bsf I2C_DTA ; hi, so set data bit
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
bcf I2C_DTA ; clear data bit
; bsf STATUS,RP0 ; goto Bank 1
; bsf TRISC,3 ; turn Data to input
nop
; bcf STATUS, RP0 ; goto Bank 0
bsf I2C_CLOCK ; set clock high
bcf I2C_CLOCK ; set clock low
nop
; bsf STATUS,RP0 ; goto Bank 1
; bcf TRISC,3 ; turn Data back to output
; bcf STATUS, RP0 ; goto Bank 0
return
;}
Since no PIC assembly language knowledgeable member seems to be interested in assisting you then I will take a stab at it. I am going to have to get familiar with the opcodes. I do know the DS1307 so I am at least ahead in that part of the task.Did you see any flaws in the code if any?
by Jake Hertz
by Jake Hertz
by Jake Hertz
by Aaron Carman