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

Cum Microcontrolere Work

e -110 pentru a 250 F (-55 pentru a 125 C). Împărțiți numărul primiți de 2 pentru a obține temperatura reală. 2s-complementului numere binare sunt un mod convenabil de a reprezenta valori negative. Următoarea listă arată valorile pentru un număr de 2S-complement 4-bit:
 0111: 70110: 60101: 50100: 40011: 30010: 20001: 10000: 01111: -11,110: -21,101: -31,100: - 41011: -51,010: -61,001: -71,000: -8 

Puteți vedea că în loc de 4 biți reprezentând valori de la 0 la 15, 4 biți într-un număr de 2s-complement reprezintă valorile -8 la 7. sa te uiti la bit stânga mai pentru a determina dacă numărul este negativ sau pozitiv. Dacă numărul este negativ, puteți inversa biți și se adaugă 1 pentru a obține reprezentarea pozitivă a numărului

Iată ce se întâmplă cu programul de termometru digital arătat aici:.

  1. Se folosește cuvântul cheie simbol de a crea mai multe constante care fac programul ușor mai ușor de citit (și, de asemenea, face mai ușor pentru tine pentru a muta cip la diferite pini I /O de pe timbru).
  2. Aceasta stabilește . CLK și RST pini de pe DS1620 la valorile așteptate
  3. Se scrie un octet de comandă pentru a EEPROM de pe DS1620 pentru a spune cip de a opera în " " modul termometru.; Deoarece modul este stocată în EEPROM, trebuie doar să o faci o dată, așa că ai putea lua punct de vedere tehnic această secțiune a codului din program după ce executați programul dată (pentru a economisi spațiu de program).
  4. Programul trimite comanda $ EE (" $ " mijloace " număr hexazecimal " - $ EE este 238 în zecimal) pentru a spune termometrul pentru a porni procesul de conversie Site-ul

    Programul apoi. intră într-o buclă. Fiecare al doilea, aceasta trimite o comanda la DS1620 spune DS1620 pentru a reveni temperatura curentă, și apoi citește valoarea 9-bit ca DS1620 revine în variabila w0. Stamp trimite și primește date de 1 bit la un moment dat de comutare linia CLK pe DS1620. Amintiți-vă că W0 (16-bit) variabila suprapuneri B0 /B1 (8-bit) variabile, care îmbrăcarea bit0 /bit1 /.../bit15 (1-bit) variabile, astfel încât atunci când introduce un pic de la DS1620 în bit 8 și divizare W0 de 2, ceea ce faci este schimba fiecare bit la dreapta pentru a stoca temperatura 9-bit de la DS1620 în w0. Odată ce temperatura a fost salvat în W0, subrutina de afișare determină dacă numărul este pozitiv sau negativ și îl afișează corespunzător pe ecranul LCD ca o temperatură Celsius. Conversi

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