Thanks once again for your input to my posts.

Here's my basic code.

Code:

ASM 
  __CONFIG    _CONFIG1H, _OSC_HSPLL_1H
  __CONFIG    _CONFIG2L, _PWRT_ON_2L  
  __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
  __CONFIG    _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H  
  __CONFIG    _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
ENDASM

DEFINE  OSC 48  ; config settings 18F4580, 20mhz crystal
ADCON1 = $0F
clear



DEFINE LCD_DREG  PORTB           ' LCD Data port
DEFINE LCD_DBIT  0               ' starting Data bit (0 or 4)
DEFINE LCD_EREG  PORTB           ' LCD Enable port
DEFINE LCD_EBIT  5               '     Enable bit  (on EasyPIC 5 LCD)
DEFINE LCD_RSREG PORTB           ' LCD Register Select port
DEFINE LCD_RSBIT 4               '     Register Select bit   (on EasyPIC 5 LCD)
DEFINE LCD_BITS  4               ' LCD bus size (4 or 8 bits)
DEFINE LCD_LINES 4               ' number of lines on LCD
DEFINE LCD_COMMANDUS 2000        ' Command delay time in us 
DEFINE LCD_DATAUS 50             ' Data delay time in us 



RTCSec var byte		' Seconds
RTCMin var byte		' Minutes
RTCHour var byte	' Hours
RTCWDay var byte	' Weekday
RTCDay var byte		' Day
RTCMonth var byte	' Months
RTCYear var byte	' Year
RTCCtrl var byte	' Control 
SetTime var byte	' 12/24 Hour Clock
SetSec var byte		' Seconds
SetMin var byte		' Minutes
SetHour var byte	' Hours
SetDay var byte		' Day
SetMonth var byte	' Months
SetYear var byte	' Year

RTCSec = 0
RTCMin = 1
RTCHour= 2
RTCWDay =1
RTCDay  =1
RTCMonth=10
RTCYear =13
RTCCtrl =0 


Counter1 var byte
counter2 var byte
counter3 var word

CounterA var byte	' General purpose Variable

TimeH var byte      ' Variable to store current hour 
TimeM var Byte      ' Variable to store current minutes 

'****************************************************************

CCP1CON = %00001100             ' 
CCP2CON = %00001100 


'****************************************************************
'DS18B20 setting

DQ              VAR     PORTA.5         ' One-wire data pin
temperature     VAR     WORD            ' Temperature storage
count_remain    VAR     BYTE            ' Count remaining
count_per_c     VAR     BYTE            ' Count per degree C

'****************************************************************
'analog settings

ADCON0 = 0                      'Set ADCON0
ADCON1 = %00001111              'Set D i/o
CMCON = 7                       'Disable Comparators

'****************************************************************
'Port settings

CCP1CON = %00001100             ' 
CCP2CON = %00001100             '     
TRISA  = %11101111              '
TRISB  = %00000011 
TRISC  = %00011011 
TRISD  = %00000011              '
                   
SCLpin var PORTC.3               ' RTC pin - clk
SDApin var PORTC.4               ' RTC pin - data


Main:

I2CRead SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour,RTCWDay,RTCDay,RTCMonth,RTCYear,RTCCtrl]

timeH=(RTCHour>>4)                               'convert the BCD format of the hours register and store in variable timeH
timeH=(timeH &$03)*10
timeH=timeH+(RTCHour&$0F)

timeM=(RTCMin>>4)
timeM=(timeM &$07)*10
timeM=timeM+(RTCMin&$0F)                         'convert the BCD format of the mins register and store in variable timeM

If TimeH = 0 and timeM = 0 then
    Counter3 = 0
endif

If TimeH <0 then 
Counter1 = 0
endif
If timeH >0 then 
Counter1 = TimeH * 60
endif



lcdout $FE,$80,"Counter 3 = ",dec Counter3
I2CRead SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour,RTCWDay,RTCDay,RTCMonth,RTCYear,RTCCtrl]
If RTCHour.6=1 then
			
CounterA=(RTCHour>>4)&$01                           ' Work-Out 12 or 24 hour Display for Hours
else
CounterA=(RTCHour>>4)&$03
endif
CounterA=CounterA*10+(RTCHour&$0F)                  ' Display Hours appropriately for 12 or 24 hour Mode 
If RTCHour.6=1 then			
LCDOut $FE,$D4,#CounterA
else
LCDOut $FE,$D4,#CounterA Dig 1,#CounterA Dig 0
endif
LCDOut ":",#(RTCMin>>4)&$0F,#RTCMin&$0F,"   "

Counter3 = counterA*60 + TimeM
    
GOTO Main
The strange thing is that even if I remove the DS1307 from the breadboard and connect the SDA wire to the junction of the 4.7K pull up resistor (ie as if the SDA line was being pulled high) the LCD displays 10:10.

I've also tried code that is running in my current LED lights (for fish tank) using the same chip. This also displays the same issue with the breadboarded chip, but if that chip is removed and placed back in the light controller it picks up the 1307 and displays the current time.

I'll look at the links and see what develops

Malcolm