Získávání znalostí
/ Knowledge Discovery >> Získávání znalostí >> technologie >> elektronika >> polovodičová elektronika >>

Jak Mikrokontroléry Work

b shift_out 'odeslat ji na 1620low RST "zrušte zaškrtnutí 1620" To je hlavní smyčka "- čte a zobrazuje teplotu každý secondmain_loop: vysoká RST" vyberte 1620 b0 = $ AA' $ AA je 1620 příkazový byte "na teplotu čtení GOSUB shift_out "poslat ho do 1620 Gosub shift_in" odečítat teplotu "z roku 1620 s nízkou RST" zrušte zaškrtnutí DS1620. GOSUB displej "zobrazí teplota ve stupních C pauza 1000 'počkej secondgoto main_loop dále jen" shift_out podprogram pošle, co je v "B0 bajt na 1620shift_out: výstup DQ" nastavit DQ pin na "výstup modefor b2 = 1 až 8 nízkou CLK "připravit se na hodiny bitu 'do roku 1620 DQ_PIN = bit0' odeslat data trochu vysoká CLK 'západka datový bit do roku 1620 B0 = B0 /2' posune všechny 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žádat 1620 na jeden bit bit8 = DQ_PIN" číst trochu vysoká CLK "přepnout hodinami pinnextreturn" Zobrazuje teplotu ve stupních Cdisplay: pokud bit8 = 0, potom pos ", pokud bit8 = 1 ', pak teplota je negativní B0 = B0 & /b0 "invertní B0 podle NANDing je to s sebou B0 = B0 + 1pos: serout LCD, n2400, (254, 1)" zrušte LCDserout LCD, n2400, (" Temp = ") "Displej na " Temp = &Quot; "Na displaybit9 = bit0 'zachránit polovina degreeb0 = B0 /2' převést na degreesif bit8 = 1, pak neg 'zjistit, jestli teplota je negativní serout LCD, n2400, (# b0)" displej pozitivní temp goto halfneg: serout LCD, n2400 (" - ", # b0) "displej negativní temphalf: pokud Bit9 = 0 pak i serout LCD, n2400, (" 0,5 C ")" zobrazení polovice stupeň goto doneeven: serout LCD, n2400, (" 0,0 C ") "zobrazení polovinu degreedone: return

Pokud spustíte tento program, zjistíte, že to zobrazuje teplotu Celsia s přesností půl stupně

DS1620 Opatření pro teploty. v Celsia polo-stupňů. Vrací teploty v 9-bitové číslo 2s-komplementu s rozsahem -110 až 250 ° F (-55 až 125 C). Rozdělit číslo dostanete o 2 dostat aktuální teplotu. 2s-komplementu binární čísla představují pohodlný způsob, jak reprezentovat záporné hodnoty. Následující seznam zobrazuje hodnoty pro 4-bitové číslo 2s-komplementu:

 0111: 70110: 60101: 50100: 40011: 30010: 20001: 10000: 01111: -11110: -21101: -31100: - 41011: -51010: -61001: -71000: -8 

Můžete vidět, že namísto 4 bity představující hodnoty od 0 do 15, 4 bity v řadě 2s-komplement předst

Page << [11] [12]