Získavanie vedomostí
/ Knowledge Discovery >> Získavanie vedomostí >> technológie >> elektronika >> polovodičové elektronika >>

Ako Mikrokontroléry Work

quot; Napíšte Config " GoSub shift_out' odoslať ju na 1620b0 =% 10 '% 10 je 1620 príkazový bajt "pre nastavenie teplomera modegosub shift_out 'odoslať ju na 1620low RST" zrušte 1620pause 50' oneskorenie 50ms pre EEPROMstart_convert: B0 = $ EE '$ EE je 1620 príkazový bajt' začnite conversionshigh RST "vyberte 1620gosub shift_out 'odoslať ju na 1620low RST "zrušte zaškrtnutie 1620" To je hlavná slučka "- číta a zobrazuje teplotu každý secondmain_loop: vysoká RST" vyberte 1620 b0 = $ AA' $ AA je 1620 príkazový bajt "na teplotu čítanie GoSub shift_out "poslať ho do 1620 GoSub shift_in" odčítať teplotu "z roku 1620 s nízkou RST" zrušte zaškrtnutie DS1620. GoSub displej "zobrazí teplota v stupňoch C pauza 1000 'počkaj secondgoto main_loop ďalej len" shift_out podprogram pošle, čo je v "B0 bajt na 1620shift_out: výstup DQ" nastaviť DQ pin na "výstup modefor b2 = 1 až 8 nízku CLK "pripraviť sa na hodiny bitu 'do roku 1620 DQ_PIN = bit0' odoslať dáta trochu vysoká CLK 'západka dátový bit do roku 1620 B0 = B0 /2' posunie všetky bity doprava" k bit 0nextreturn 'Nahrávka shift_in podprogram dostane 9-bit' teplota Z 1620shift_in: vstup DQ "nastavte DQ pin na" vstup modew0 = 0 'jasné w0for b5 = 1 až 9 W0 = W0 /2 "shift vstupu pravé. low CLK "požiadať 1620 na jeden bit bit8 = DQ_PIN" čítať trochu vysoká CLK "prepnúť hodinami pinnextreturn" Zobrazuje teplotu v stupňoch Cdisplay: ak bit8 = 0, potom pos ", ak bit8 = 1 ', potom teplota je negatívny B0 = B0 & /B0 "invertný B0 podľa NANDing je to so sebou B0 = B0 + 1pos: serout LCD, n2400, (254, 1)" zrušte LCDserout LCD, n2400, (" Temp = ") "Displej na " Temp = &Quote; "Na displaybit9 = bit0 'zachrániť polovica degreeb0 = B0 /2' previesť na degreesif bit8 = 1, potom neg 'zistiť, či teplota je negatívny serout LCD, n2400, (# B0)" displej pozitívny temp goto halfneg: serout LCD, n2400 (" - ", # b0) "displej negatívny temphalf: ak Bit9 = 0 potom aj serout LCD, n2400, (" 0,5 C ")" zobrazenie polovice stupeň goto doneeven: serout LCD, n2400, (" 0,0 C ") "zobrazenie polovicu degreedone: return

Ak spustíte tento program, zistíte, že to zobrazuje teplotu Celzia s presnosťou pol stupňa

DS1620 Opatrenia pre teploty. v Celzia polo-stupňov. Vracia teploty v 9-bitové číslo 2s-komplementu s rozsahom -110 až 250 ° F (-55 až 125 C). Rozdeliť číslo dostanete o 2 dostať aktuálnu teplotu. 2s-komplementu binárne čísla predstavujú pohodlný spôsob, ako reprezentovať zá

Page << [11] [12]