' and next

'READ TIME FROM DS1307

TIMEDS1307:
LOOPP=0
loop:
i2cread dpin,cpin,$d0,$00,[b1,b2,b3,b4,b5,b6,B7]
'pause 10
'BB=B1
'gosub conv
'SEC = ((B_H*10)+B_L)
'serout SO,t9600,["sec ",#SEC,10]
BB=B2
GoSub conv
M=(B_H*10)+ B_L
'serout SO,t9600,["Min ",#M,10]
BB=B3
GoSub conv
hR=(B_H*10)+ B_L
'serout SO,t9600,["Hour ",#HR,":",#M,":",#SEC,10]
value = ((HR*100) + m)
'serout SO,t9600,["TIMES ",#VALUE,10]

GoSub display_TIME
If LOOPP > 254 Then loopp =0 :Return ' GOTO MAINLOOP
LOOPP=LOOPP+1
GoTo loop
'RETURN mainloop

conv:
B_L=BB&%00001111
B_H=BB&%11110000
B_H=B_H>>4

Return

'================== 7 seg ment display ==============================
display: 'Display Temp
Disable Interrupt

PORTC =$58 '$39 "C"

Low DIGITS.0
PAUSE 3 'INCREASE BRITE OF LED "C"
'PAUSEUS 850
'PORTC =$00 '$39 "C"
'value = 125

For i = 1 To 4 ' Loop through 4 digits

n = Value Dig i ' Get digit to display

' Gosub display1 ' Display the value
Digits = $ff

LookUp n, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F,_
$77, $7C, $39, $5E, $79, $71, $0FF], Segments

If i = 2 Then segments = segments + 128 'Digit 2 show dot

Digits = ~DCD i

PAUSE 1 'INCREASE BRITE OF LED "number"
Next i

Enable Interrupt
Return

display_TIME: 'Display time
Disable Interrupt
dot var Byte

For i = 0 To 4 ' Loop through 4 digits

n = Value Dig i ' Get digit to display

' Gosub display1 ' Display the value
Digits = $ff

LookUp n, [$3F, $06, $5B, $4F, $66, $6D, $7D, $07, $7F, $6F,_
$77, $7C, $39, $5E, $79, $71, $0FF], Segments
If dot < 100 Then
If i = 2 Then segments = segments + 128 'Digit 2 show dot
Digits = ~DCD i
dot = dot+1
Else
dot = dot+1
If dot < 254 Then
Digits = ~DCD i
Else
dot = 0
digits = ~DCD i
EndIf
EndIf

PAUSE 1 'INCREASE BRITE OF LED

Next i
Enable Interrupt
Return
'+++++++ir decode +++++++++++++++++++++++++

Showoutput:

'HSEROUT ["Bot ",dec bitmask.LOWBYTE,13,10]
'HSEROUT ["Cmd ",dec bITMASK.highbyte,13,10]

'botx = bitmask.lowbyte
'Cmdx = bitmask.highbyte
Disable Interrupt
If bitmask.LowByte = 164 Then ' 36 BOTTM 9
If bitmask.HighByte = 64 Then ' 32
Toggle PORTB.7 'RELAY B.1
EndIf
EndIf
If bitmask.LowByte = 36 Then ' 36 BOTTM 9
If bitmask.HighByte = 32 Then ' 32
Toggle PORTB.6 'RELAY B.1
EndIf
EndIf
If bitmask.LowByte = 168 Then ' 36 BOTTM 9
If bitmask.HighByte = 32 Then ' 32
Toggle PORTB.5 'RELAY B.1
EndIf
EndIf

BITMASK =0

'enable interrupt
GoTo ActiveINT_B0

'============IR decode =======================
Disable
IR_B0:

PulsIn PORTB.0, 0, LeadIn
'Sumsung and Hitachi check
AB:

If LeadIn < 400 Then GoTo ActiveINT_B0 '885 hitachi, sumsung 400
If LeadIn > 1045 Then GoTo ActiveINT_B0

For U = 0 To 15
PulsIn PORTB.0, 1, pulses[U]

Next U
For U = 0 To 15
PulsIn PORTB.0, 1, pulses[U]

Next U
For U = 0 To 11
If (pulses[U] < 40) Or (pulses[U] > 300) Then
GoTo ActiveINT_B0
EndIf
If pulses[U] > 99 Then
BITMASK.0 = 1
BITMASK = BITMASK << 1
EndIf
BITMASK.0 = 0
BITMASK = BITMASK << 1
Next U

GoTo Showoutput

ActiveINT_B0: 'active interrupt b0
PULSES = 0
INTCON.1 = 0
value =0
Resume
Enable Interrupt
End