Descoperirea cunoştinţelor
/ Knowledge Discovery >> Descoperirea cunoştinţelor >> tech >> electronică >> Electronice stare solidă >>

Cum Microcontrolere Work

comanda octet "spune " Scrie Config " gosub shift_out" trimite-l la 1620b0 =% 10'% 10 este 1620 de comandă octet "pentru a seta termometru modegosub shift_out" trimite-l la RST 1620low "deselectați 1620pause 50 '50ms întârziere pentru EEPROMstart_convert: B0 = $ EE' $ EE este 1620 de comandă octet" pentru a începe RST conversionshigh "selectați 1620gosub shift_out "trimite-l la RST 1620low" deselecta 1620 "Aceasta este bucla principală" - citește și temperatura afișează fiecare secondmain_loop: mare RST "selectați 1,620 b0 = $ AA '$ AA este octet 1,620 de comandă" pentru temperatura de lectură gosub shift_out "trimite-l la 1,620 gosub shift_in" citi temperatura "de la 1,620 RST scăzut" deselecta DS1620. afișare gosub "afișa temperatura în grade C pauză 1,000" stai main_loop secondgoto 'The shift_out subrutina trimite tot ceea ce este în "octet B0 la 1620shift_out: ieșire DQ" seta codul PIN DQ la "ieșire modefor b2 = 1 la 8 scăzut CLK "se pregătesc să ceas pic" în 1620 DQ_PIN = bit0 'Trimite bitul de date de mare CLK "dispozitivul de blocare bit de date în 1620 b0 = B0 /2' Shift toate biți dreapta" spre ceva 0nextreturn 'The shift_in subrutina devine un 9-bit "temperatură din 1620shift_in: intrare DQ "seta codul PIN DQ la" intrare modew0 = 0 'clar w0for B5 = 1-9 W0 = W0 /2 "de intrare schimbare dreapta. CLK scăzut "cere 1620 pentru următorul bit bit8 = DQ_PIN 'citit pic ridicat CLK" toggle ceas pinnextreturn "Afișează temperatura în grade Cdisplay: dacă bit8 = 0 atunci POS" dacă bit8 = 1 ", apoi temperatura este negativ b0 = B0 & /B0 "B0 invertit de NANDing Este cu sine = B0 B0 + 1pos: serout LCD, N2400, (254, 1)" șterge ecranul LCD LCDserout, N2400, (" Temp = ") "Display " Temp = " "Pe displaybit9 = bit0 'salva jumătate degreeb0 = B0 /2" se convertească la degreesif bit8 = 1 apoi GNM "a vedea dacă temperatura este LCD negativ serout, N2400, (# B0)" afișaj Temperatura pozitiv Mergi halfneg: serout LCD, N2400 , (" - ", # B0) "temphalf negativ afișaj: dacă bit9 = 0 LCD atunci chiar serout, N2400, (" 0.5 C ")" a afișa doneeven goto jumătate de studii: serout LCD, N2400, (" 0.0 C ") "a afișa jumătate degreedone: întoarcere

Dacă rula acest program, veți găsi că acesta afișează temperatura Celsius, cu o precizie de o jumătate de studii

măsuri DS1620 Temperaturile. în centigrade jumătate de grade. Aceasta întoarce temperatura într-un număr 2s-complement 9-bit cu o serie d

Page << [11] [12] [13] [14]