init: pause 500
serout B.0,N2400,(254,1)
SYMBOL line1 = 128
SYMBOL line2 = 192
SYMBOL Ds18b20 = B.7
SYMBOL Temperature = W12
SYMBOL TempLsb = b24
SYMBOL TempMsb = b25
SYMBOL Sign = b26
symbol RTC=%11010000
hi2csetup i2cmaster, RTC,i2cslow,i2cbyte 'set up i2c DS1307 RTC
Gettemps:
pause 50
let b18 = line2
owout Ds18b20,%1001,($55,40,51,163,51,3,0,0,243,$44)
pause 500
owout Ds18b20,%0001,($55,40,51,163,51,3,0,0,243,$BE)
gosub Convert
serout B.0,N2400,(254,192)
serout B.0,N2400,("1:",Sign,#TempMsb,%11011111,"C")
let b18 = line2
owout Ds18b20,%1001,($55,40,65,188,51,3,0,0,22,$44)
pause 500
owout Ds18b20,%0001,($55,40,65,188,51,3,0,0,22,$BE)
gosub Convert
serout B.0,N2400,(254,201)
serout B.0,N2400,("2:",Sign,#TempMsb,%11011111,"C")
gettime:
hi2cin 0,(b0,b1,b2,b3,b4,b5,b6,b7) 'read Time and Date
bcdtoascii b0,b19,b20 'Secs Convert to ASCII
bcdtoascii b1,b8,b9 'Mins
bcdtoascii b2,b10,b11 'Hours
bcdtoascii b3,b21,b22 'DayOfWeek; bcdtoascii b4,b12,b13 'Date
bcdtoascii b5,b14,b15 'Month
bcdtoascii b6,b16,b17 'Year
If b22="1" then serout B.0,N2400,(254,line1,"Sun ") 'convert Ascii 1-7 Day of Week number to Text
elseif b22="2" then serout B.0,N2400,(254,line1,"Mon ")
elseif b22="3" then serout B.0,N2400,(254,line1,"Tue ")
elseif b22="4" then serout B.0,N2400,(254,line1,"Wed ")
elseif b22="5" then serout B.0,N2400,(254,line1,"Thur")
elseif b22="6" then serout B.0,N2400,(254,line1,"Fri ")
elseif b22="7" then serout B.0,N2400,(254,line1,"Sat ")
endIf
serout B.0,N2400,(254,133,b10,b11,":",b8,b9,":",b19,b20)
goto Gettemps
Convert:
owin Ds18b20,%0000,(TempLsb,TempMsb) ' read in result
TempMsb = Temperature >> 4 : let Sign = " " ' Display space for +
IF TempMsb > 127 THEN : let Sign = "-" : TempMsb = - TempMsb : ENDIF ' Display -
return