Discovery znanje
/ Knowledge Discovery >> Discovery znanje >> tech >> elektronika >> polprevodniški elektronika >>

Kako Mikrokontrolerji Work

se 50 'zakasnitev 50ms za EEPROMstart_convert: b0 = $ EE' $ EE je ukaz bajt 1620", da začnete conversionshigh RST "izberite 1620gosub shift_out "ga pošljite na 1620low RST" Počistite 1620 "To je glavna zanka" - prebere in prikaže temperature vsak secondmain_loop: visoka RST "izberite 1620 b0 = $ AA '$ AA je 1620 ukaz bajt" za temperaturo branje gosub shift_out "pošlje na 1620 gosub shift_in" bere temperaturo "iz 1620 nizko RST" prekličite DS1620. gosub prikaz "prikaz temp v stopinjah C premor 1000" počakaj secondgoto main_loop 'Podprogram shift_out pošilja, kar je v "B0 bajta na 1620shift_out: izhod DQ" nastavite DQ pin na "izhod modefor b2 = 1 do 8 nizko CLK "pripravijo na uro vajetih 'v 1620 DQ_PIN = bit0" Pošlji podatkovni nekoliko visoka CLK' zapah podatki bit v 1620 b0 = B0 /2 "preusmeriti vse nastavke pravica" proti bit 0nextreturn "Podprogram shift_in dobi 9-bit 'temperature od 1620shift_in: vhod DQ "nastavite DQ pin na" vhodu modew0 = 0 "jasno w0for b5 = 1 do 9 w0 = w0 /2" vnos izmene desni. nizka CLK "ask 1620 za dostavo bit bit8 = DQ_PIN" se glasi bit visok CLK "preklop ure pinnextreturn" Prikazuje temperaturo v stopinjah Cdisplay: če bit8 = 0, potem pos ", če bit8 = 1", nato pa temp je negativen b0 = b0 & /B0 "invertnega b0 s NANDing it" sama s sabo B0 = B0 + 1pos: serout LCD, n2400, (254, 1) "počistiti LCDserout LCD, n2400, (" Temp = ")" zaslon " Temp = " "Na displaybit9 = bit0 'prihranili pol degreeb0 = B0 /2" pretvoriti degreesif bit8 = 1, potem neg' videli, če temp negativen serout LCD, n2400 (# b0) "Prikazati pozitiven temp goto halfneg: serout LCD, n2400 (" - ", # b0) "zaslon negativen temphalf: če bit9 = 0, potem še serout LCD, n2400, (" 0,5 C ")" prikaže pol stopnja goto doneeven: serout LCD, n2400, (" 0,0 C ") "prikaže pol degreedone: povratni

​​Če zaženete ta program, boste ugotovili, da prikazuje temperaturo Celzija z natančnostjo polovice stopnje

temperatur DS1620 ukrepe. V Celzija polovičnih stopinj. Ta vrne temperature v 9-bitni številom 2s-komplementa s številnimi -110 do 250 F (-55 do 125 C). Si razdeliti število, ki ga prejmete z 2, bi dobili dejansko temperaturo. 2s-dopolnjujejo binarne številke so priročen način, da predstavljajo negativne vrednosti. Naslednji seznam prikazuje vrednosti za 4-bitno število 2s-komplementa:

 0111: 70110: 60101: 50100: 40011: 30010: 20001: 10000: 01111: -11.110: -21.101: -31.100: - 41011: -51.010: -61.001: -

Page << [11] [12]