sionshigh RST başlatmak için' $ EE 1620 komut byte 'seçeneğini 1620gosub 'Bu, ana döngü' 1620 seçimini '1620low RST göndermek' shift_out - okur ve görüntüler sıcaklığı her secondmain_loop: Yüksek RST $ AA sıcaklığını okumak için 1620 komut baytı 'is' 1620 b0 = $ AA seçin ' GOSUB shift_out '1620 düşük RST gelen' sıcaklığını okumak DS1620 seçimini 'it 1620 GOSUB shift_in göndermek'. GOSUB display '1000 pause C derece temp görüntülemek' a secondgoto main_loop 1620shift_out için b0 byte 'shift_out altprogram içinde ne olursa olsun gönderen' bekle: çıktı DQ b2 = 1 8 düşük CLK için modefor çıkış 'olarak DQ pin ayarlayın' 'Veri biti gönder yüksek CLK' 1620 DQ_PIN = bit0 içine 'saat bit hazırlamak' 1620 içine mandal veri biti b0 = b0 /2 sıcaklık 'shift_in altprogram 9-bit alır' bit 0nextreturn doğru 'doğru tüm bitleri vardiya' 1620shift_in gelen: Giriş DQ girişi modew0 = 0 'açık b5 w0for = 1'den 9'a kadar w0 = w0 /2' sağa kaydırma girişine 'için DQ pin set'. Düşük CLK 'saat pinnextreturn geçiş' biraz yüksek CLK okumak 'Bir sonraki bit Bit8 = DQ_PIN için 1620 ask' derece sıcaklığını gösterir CDisplay: eğer Bit8 = 0, sonra 'Bit8 1 = eğer' temp negatif b0 = b0 & olan pos; /kendisi ile b0 'Nanding o kadar invert b0' b0 = b0 + 1pos: Ekranı " serout LCD n2400, (254, 1) 'LCDserout LCD, n2400, (;, Temp = " ") temizleyin'; Temp = " Serout LCD n2400: 'displaybit9 üzerine = bit0' kurtarmak yarım degreeb0 = b0 /2 temp negatif serout LCD, n2400, (# b0) 'ekran pozitif sıcaklık git halfneg olup olmadığını görmek' Bit8 = 1 sonra neg degreesif dönüştürmek ' (" - ", # b0) 'ekran negatif temphalf: Bit9 = 0 o zaman bile serout LCD, n2400, (" 0,5 C ") if' yarım derece git doneeven görüntüler: serout LCD, n2400, (" 0,0 C ") 'yarım degreedone görüntüler: Bu programı çalıştırırsanız dönüş
, bunun bir buçuk derece hassasiyetle santigrad sıcaklığını gösterir bulacaksınız
DS1620 önlemleri sıcaklıkları. santigrat yarım derece. 250 ° F (-55 125 ° C) -110 bir dizi 9-bit 2s-tamamlayıcı dizi sıcaklık döndürür. Sen 2'ye aldığınız numara gerçek sıcaklık elde etmek bölün. 2s-tamamlayıcı ikili sayılar negatif değerleri temsil etmek için uygun bir yoldur. Aşağıdaki liste, 4-bit 2s-tamamlayıcı numarası değerlerini gösterir:
0111: 70.110: 60.101: 50.100: 40.011: 30.010: 20.001: 01.111: 10.000 -11.110: -21.101: -31.100: - 41011: -51.010: -61.001: -71.000: -8 yerine 0'dan 15'e kadar değerleri temsil 4 bit olduğunu
Page
<< [11] [12]