Witam na potrzeby szkolne stworzyłem termometr na układach Attiny 2313 i Dallas 20b18
Interesuje mnie w jaki sposób odbywa się odczyt temp. z czujnika
Dołączam program z bascomAVR
Interesuje mnie w jaki sposób odbywa się odczyt temp. z czujnika
Dołączam program z bascomAVR
$regfile "2313def.dat" *Nazwa pliku doobsługi programu
$crystal = 1000000 *Częstotliwosc taktowania 1Mhz z dokumentacji układu
Config Lcd = 16 * 1a *Deklaracja LCD 16 znaków na 1 rząd
Config Lcdpin = Pin , Db4 = Pb.3 , Db5 = Pb.2 , Db6 = Pb.1 , Db7 = Pb.0 , E = Pb.4 , Rs = Pb.5 *Konfiguracja obsługi lcd
Config 1wire = Portd.6 *Konfiguruje port dla transmji 1wire
Dim I As Integer *deklaracja zmiennych
Dim S As Single
Dim T As String * 4
Deflcdchar 0 , 6 , 9 , 6 , 32 , 32 , 32 , 32 , 32 *kod do znaku stopnia znalazłem to w programie bascomavr
Cursor Off *wył kursor
Cls
Lcd "Musiol IVc :)" *komikat pocz
Wait 2 *czas wyswietlania pow napis
Cls
Do
1wreset *wysyła zapyt o temp
1wwrite &HCC
1wwrite &H44
Waitms 750 *czeka aż ds18b20 przetwozy temp
1wreset *nastepne zczytuje
1wwrite &HCC
1wwrite &HBE
I = 1wread(2)
S = I / 16
T = Fusing(s , "##.#") *Przetwazanie temperatury do do 1 cyfry po przecinku
Cls
Locate 1 , 4 *Miejsce wyswietlania napisu TEMP
Lcd "Temp:"
Locate 2 , 1 *Pozycja wyswietlania znaku stopnia i odczytu z czujnik
Lcd T ; Chr(0) ; "C"
Loop