Witam
Proszę osoby które są dobrze obeznane w pisaniu softu o sprawdzenie poniższego:
A i dodam że to jest soft na 1 wire 4 czujniki podpięte do 1 portu
z zasilaniem pasożytniczym
Z góry dzięki za sprawdzenie i ewentualne poprawki
Pozdro T.J.Storm
Oto kod:
Proszę osoby które są dobrze obeznane w pisaniu softu o sprawdzenie poniższego:
A i dodam że to jest soft na 1 wire 4 czujniki podpięte do 1 portu
Z góry dzięki za sprawdzenie i ewentualne poprawki
Pozdro T.J.Storm
Oto kod:
'******************************************************************************
'*****************************Deklaracja Procesora*****************************
'******************************************************************************
$regfile = "m8def.DAT"
'******************************************************************************
'************************Deklaracja Częstotliwości Pracy***********************
'***************Wewnętrzny Oscylator 1MHz W Zupełności Wystarcza***************
'******************************************************************************
$crystal = 1000000
'******************************************************************************
'**************************Konfiguracja Połączeń LCD***************************
'******************************************************************************
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
'******************************************************************************
'***************************Wybór Typu Wyświetlacza****************************
'******************************************************************************
Config Lcd = 16 * 4
'*************************************WAŻNE************************************
'************Konfiguracja portu Na Którym Będą Podpięte DS18B20****************
'******************************************************************************
Config 1wire = Portd.0
'******************************************************************************
'*********************Zmienne Dotyczące Pomiaru Temperatur*********************
'******************************************************************************
Dim B1 As Byte
Dim B2 As Byte
Dim R As Byte
Dim W As Byte
Dim B As Byte
Dim Znak As String * 1
Dim Tmp As String * 4
R = 255
Dim T1 As Single
Dim T2 As Single
Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
Dim Dsid4(8) As Byte
'******************************************************************************
'***************************Deklaracja Podprogramu*****************************
'******************Przetwarzanie Temperatury Dla Czujników ********************
'*************Oraz Wyświetlanie Temperatury Z Dokładnością 0.1 st C************
'******************************************************************************
Declare Sub Wysw_temp_ds
'******************************************************************************
'****************************Znak Stopnia Celcjusza****************************
'******************************************************************************
Deflcdchar 1 , 8 , 20 , 11 , 4 , 4 , 4 , 3 , 32
'******************************************************************************
'*******************Znajdź 1,2,3,4 Czujnik Podpięty Do Portu*******************
'******************************************************************************
Dsid1(1) = 1wsearchfirst()
Dsid2(1) = 1wsearchnext()
Dsid3(1) = 1wsearchnext()
Dsid4(1) = 1wsearchnext()
'******************************************************************************
'*************************Opis Poszczególnch Czujników*************************
'******************************************************************************
'******************************************************************************
'********************************Czujnik 1 DS_1********************************
'******************************************************************************
Locate 1 , 1
Lcd "1 :"
'******************************************************************************
'********************************Czujnik 2 DS_2********************************
'******************************************************************************
Locate 2 , 1
Lcd "2 :"
'******************************************************************************
'********************************Czujnik 3 DS_3********************************
'******************************************************************************
Locate 3 , 1
Lcd "3 :"
'******************************************************************************
'********************************Czujnik 4 DS_4********************************
'******************************************************************************
Locate 4 , 1
Lcd "4 :"
'******************************************************************************
'*********************************Pętla Główna*********************************
'******************************************************************************
Do
'******************************************************************************
'************************Wysyłanie Polecenia"Match Rom"************************
'************Oraz Żądanie Przetwarzania Temperatury Dla Czujnika DS1***********
'*********************Odczyt Temperatury Dla Czujnika 1 DS1********************
'******************Wyświetlanie Temperatury Dla Czujnika 1 DS1*****************
'*****************Przetwarzanie Temperatury Dla Czujnika 1 DS1*****************
'******************************************************************************
1wreset
1wwrite &H55
1wverify Dsid1(1)
1wwrite &HBE
B1 = 1wread(2)
B2 = 1wread(2)
Locate 1 , 10
Wysw_temp_ds
'******************************************************************************
'************************Wysyłanie Polecenia"Match Rom"************************
'************Oraz Żądanie Przetwarzania Temperatury Dla Czujnika DS2***********
'*********************Odczyt Temperatury Dla Czujnika 2 DS2********************
'******************Wyświetlanie Temperatury Dla Czujnika 2 DS2*****************
'*****************Przetwarzanie Temperatury Dla Czujnika 2 DS2*****************
'******************************************************************************
1wreset
1wwrite &H55
1wverify Dsid2(1)
1wwrite &HBE
B1 = 1wread(2)
B2 = 1wread(2)
Locate 2 , 10
Wysw_temp_ds
'******************************************************************************
'************************Wysyłanie Polecenia"Match Rom"************************
'************Oraz Żądanie Przetwarzania Temperatury Dla Czujnika DS3***********
'*********************Odczyt Temperatury Dla Czujnika 3 DS3********************
'******************Wyświetlanie Temperatury Dla Czujnika 3 DS3*****************
'*****************Przetwarzanie Temperatury Dla Czujnika 3 DS3*****************
'******************************************************************************
1wreset
1wwrite &H55
1wverify Dsid3(1)
1wwrite &HBE
B1 = 1wread(2)
B2 = 1wread(2)
Locate 3 , 10
Wysw_temp_ds
'******************************************************************************
'************************Wysyłanie Polecenia"Match Rom"************************
'************Oraz Żądanie Przetwarzania Temperatury Dla Czujnika DS4***********
'*********************Odczyt Temperatury Dla Czujnika 4 DS4********************
'******************Wyświetlanie Temperatury Dla Czujnika 4 DS4*****************
'*****************Przetwarzanie Temperatury Dla Czujnika 4 DS4*****************
'******************************************************************************
1wreset
1wwrite &H55
1wverify Dsid4(1)
1wwrite &HBE
B1 = 1wread(2)
B2 = 1wread(2)
Locate 4 , 10
Wysw_temp_ds
'******************************************************************************
'*******************Konwersja Temperatur Dla Wszystkich Ds18B20****************
'******************************************************************************
1wreset
1wwrite &HCC
1wwrite &H44
'******************************************************************************
'********************************Delay Czujników*******************************
'******************************************************************************
Waitms 800
'******************************************************************************
'*****************************Koniec Pętli Głównej*****************************
'******************************************************************************
Loop
Sub Wysw_temp_ds
If B2 >= 248 Then
B1 = R - B1
B2 = R - B2
Znak = "-"
Else
Znak = " "
End If
T1 = B1 / 16
T2 = B2 * 16
T1 = T1 + T2
T1 = T1 + 0.05
Tmp = Fusing(t1 , "##.&")
If T1 > 99.999 Then
Lcd Tmp ; Chr(1)
Else
If T1 > 9.999 Then
Lcd Znak ; Tmp ; Chr(1)
Else
Lcd Znak ; "" ; Tmp ; Chr(1)
End If
End If
End Sub