Kod: Zaznacz cały
$large
Config Lcd = 16 * 2
Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32
Dim A As Integer , D As Integer , C As Bit
Dim T1 As Integer
Dim T2 As Integer
Dim T3 As Integer
Dim T4 As Integer
Dim B1 As Byte , B2 As Byte
Dim Znak As String * 1
Dim Tk1 As Byte
Cursor Off
P3.3 = 1
P3.4 = 1
C = 0
Cls
Tk1 = 3
S1:
Set P3.3
Cls
Wait 2
Do
Set P3.0 : Set P3.1 : Set P3.2 : Set P3.4 : Set P3.7
Cls
Locate 1 , 1
Lcd "Temp diff= " ; Tk1
If P3.0 = 0 Then Tk1 = Tk1 + 1
If P3.1 = 0 Then Tk1 = Tk1 - 1
If P3.2 = 0 Then Exit Do
Waitms 250
Loop
Wait 1
Set P3.2
Cls
Do 'początek pętli glównej
1wreset P1.1
1wwrite &HCC P1.1 'komenda skip ROM
1wwrite &H44 P1.1 'komenda convert T
Waitms 250
Waitms 250
1wreset P1.1
1wwrite &HCC P1.1 'komenda skip ROM
1wwrite &HBE P1.1 'komenda read
B1 = 1wread(p1.1) 'odczyt z termometru
B2 = 1wread(p1.1)
1wreset P1.1 'podprogram 1wr
If B2 >= 248 Then 'w przypadku temperatur ujemnych
B1 = 255 - B1
B2 = 255 - B2
Znak = "-"
Else
Znak = "+"
End If
Shift B1 , Right , 4
Shift B2 , Left , 4
T1 = B1 + B2
T3 = T1
Locate 1 , 1
Lcd Znak ; T3 ; Chr(1) ; "C " ; "PIEC C.O." 'T3 temp. pieca c.o.
Waitms 250
1wreset P1.0
1wwrite &HCC P1.0 'komenda skip ROM
1wwrite &H44 P1.0 'komenda convert T
Waitms 250
Waitms 250
1wreset P1.0
1wwrite &HCC P1.0 'komenda skip ROM
1wwrite &HBE P1.0 'komenda read
B1 = 1wread(p1.0) 'odczyt z termometru
B2 = 1wread(p1.0)
1wreset P1.1 'podprogram 1wr
If B2 >= 248 Then 'w przypadku temperatur ujemnych
B1 = 255 - B1
B2 = 255 - B2
Znak = "-"
Else
Znak = "+"
End If
Shift B1 , Right , 4
Shift B2 , Left , 4
T2 = B1 + B2
T4 = T2
Locate 2 , 1
Lcd Znak ; T4 ; Chr(1) ; "C " ; "BOJLER" 'T4 temp. bojlera
Gosub Ster
Waitms 250
Waitms 250
If P3.2 = 0 Then Goto S1
Loop 'koniec pętli glównej
'podprogram obliczania różnicy - ustawianie okna
Ster:
A = T3 - T4
D = T4 + Tk1
If T3 > D Then 'obliczanie różnicy temp
Set P3.3 'ustaw wyjscie P3.3 w stan wysoki
Else 'inaczej
Reset P3.3 'ustaw P3.3 w stan niski
End If
If T4 >= 90 Then 'jeśli temp bojlera + histereza jest większa lub równa 90 stopni
Set P3.4 'ustaw wyjście P3.4 w stan wysoki
Else 'inaczej
Reset P3.4 'utrzymuj wyjście P3.4 w stanie niskim
End If
If T4 >= 40 Then 'jeśli temp. bojlera + histereza jest większa lub równa 40 stopni
Set P3.7 'ustaw wyjście P3.7 w stan wysoki
Else 'inaczej
Reset P3.7 'utrzymaj wyjście P3.7 w stanie niskim
End If
Return
End