' 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




Bookmarks