Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Wielka prośba - do znających Bascom'a

jacek38
-
-
Posty:4
Rejestracja:12 mar 2005, o 19:01
Lokalizacja:Pelplin
Wielka prośba - do znających Bascom'a

Postautor: jacek38 » 11 lip 2007, o 22:23

Witam - mam prośbę do ludzi którzy znają Bascom'a - mam program regulatora temperatury dla DS1820 który napisał mi kolega ( pracowaliśmy razem - teraz już nie - szkoda hi, mam nadzieję że nie będzie zły że umieszczę ten program tutaj) , teraz potrzebuje aby ten regulator współpracował z czujnikiem DS18B20 i regulował z dokładnością 0.1 C ( stary program pokazywał z dokładnością 0.1 ale regulował 1 stopień) czy znalazł by się ktoś kto pomoże - pozdrawiam Jacek.

Kod: Zaznacz cały

Config Lcd = 16 * 2 Dim S As Byte Dim H As Byte , G As Byte H = 2 'histereza S = 20 P3 = 255 Config 1wire = P1.0 'use P1,0 for 1wire communication Deflcdchar 0 , 14 , 10 , 14 , 32 , 32 , 32 , 32 , 32 Dim Temp_buf As Byte , Tmp As Byte , T1 As Integer , T2 As Integer Dim Ar(9) As Byte , I As Byte , T As Integer 'Cursor Off Noblink Cls Wait 3 Tem: Do Cls Lcd "T set=" ; S Set P3.0 Set P3.1 Set P3.2 Waitms 250 Waitms 100 If P3.0 = 0 Then S = S + 1 If P3.1 = 0 Then S = S - 1 If P3.2 = 0 Then Exit Do Loop ' histereza Do Cls Lcd "h=" ; H Set P3.0 Set P3.1 Set P3.2 Waitms 250 Waitms 100 If P3.0 = 0 Then H = H + 1 If P3.1 = 0 Then H = H - 1 If P3.2 = 0 Then Exit Do Loop ' end Cls Set P3.2 Main: 1wreset 1wwrite &HCC 1wwrite &H44 1wreset Gosub Pause Citaj: 1wreset 1wwrite &HCC 1wwrite &HBE For I = 1 To 9 Temp_buf = 1wread() Ar(i) = Temp_buf Next 1wreset 'precision 0.1 C Tmp = Ar(1) And 1 If Tmp = 1 Then Decr Ar(1) End If T = Makeint(ar(1) , Ar(2)) T = T * 50 : T = T - 25 : T1 = Ar(8) - Ar(7) : T1 = T1 * 100 T1 = T1 / Ar(8) : T = T + T1 : T = T / 10 T1 = T T = T / 10 T2 = T * 10 T1 = T1 - T2 'T=temperature in C,T1= 1/10C Ispis: '--------------------------------- write on lcd DISPLAY ---------------------------------------------- If T < 0 Then Locate 1 , 4 : Lcd "-" Else Locate 1 , 4 : Lcd " " End If T = Abs(t) If T > 99 Then Locate 1 , 5 Elseif T > 9 Then Locate 1 , 6 Elseif T < 10 Then Locate 1 , 7 End If Lcd T ; "." ; T1 Locate 1 , 11 : Lcd Chr(0) : Locate 1 , 12 : Lcd "C" Locate 2 , 1 : Lcd "T set=" ; S If P3.2 = 0 Then Goto Tem G = S - H If T >= S Then Reset P3.3 Elseif T < G Then Set P3.3 End If Goto Main Pause: Waitms 250 Return End
Kod programu proszę ujmować w tagi 'code'. radzio
Ostatnio zmieniony 12 lip 2007, o 06:32 przez jacek38, łącznie zmieniany 1 raz.

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości