Lucrare Sistem De Masurare A Temperaturii Si Umiditatii Aerului Folosind Un Sistem De Dezvoltare Cu Microcont

  • Nota 10.00
  • 0 comentarii
  • Publicat pe 30 Iunie 2022

Descriere Lucrare

1. Descrierea circuitului 8XC552
8XC552 este un microcontroler de înaltă performanţă proiectat pentru a fi utilizat în aplicaţii de timp real, cum ar fi: instrumentaţie, control industrial şi control pe automobil - pentru controlul motorului şi al transmisiei. Dispozitivul asigură, în plus faţă de funcţiile standard 80C51, un număr de funcţii hardware dedicate pentru aceste aplicaţii.
Microcontrolerul single-chip pe 8 biţi tip 8XC552 este fabricat într-un proces CMOS avansat şi este un derivat al familiei de microcontrolere 80C51. Circuitul 8XC552 foloseşte setul de instrucţiuni puternic al familiei 80C51. Pentru controlul perifericelor on-chip sunt încorporate registre de funcţii speciale suplimentare. Pentru a ne referi la membrii familiei, există trei versiuni derivate din termenul generic 8XC552:
83C552: 8k ROM program de tip cu mascare, 256 octeţi RAM;
87C552: 8k EPROM, 256 octeţi RAM;
80C552: varianta fără ROM.
        8XC552 conţine o memorie ROM nevolatilă de dimensiunea 8K×8, o memorie volatilă de 256×8 - memorie de date de tip scrie / citeşte, cinci porturi I / O de 8 biţi, un port de intrare de 8 biţi, două circuite timer / numărător de evenimente de 16 biţi (identice cu timerele din 80C51), un timer suplimentar de 16 biţi cuplat cu latchuri de captură şi de comparare, o structură de întreruperi imbricată (nested) cu 15 surse şi două nivele de prioritate, un convertor A / D de 10 biţi cu 8 intrări, un convertor D / A dublu cu interfaţă de impulsuri modulate în durată (PWM), două interfeţe seriale (UART şi magistrală I2C), un timer watchdog - ”câine de pază" şi oscilator şi circuite de timing on-chip. Pentru un sistem care necesită capacităţi de lucru suplimentare, 8XC552 poate fi expandat folosind memorii şi logică standard compatibilă TTL.
      8XC552 are două moduri, selectabile software, de reducere a activităţii pentru o diminuare mai pronunţată a consumului de putere: mers în gol şi putere scăzută. Modul mers în gol "îngheaţă" CPU şi resetează timerul T2, convertorul A / D şi circuitele PWM, dar permite funcţionarea celorlalte timere, a memoriei RAM, a porturilor seriale, iar sistemul de întreruperi continuă să funcţioneze. Modul putere scăzută salvează conţinutul memoriei RAM, dar "îngheaţă" oscilatorul, ceea ce inactivează toate funcţiile de pe chip.

2. Diferenţe faţă de 80C51

Memoria program
8XC552 conţine 8 kocteţi de memorie program on-chip ce poate fi extinsă până la 64 kocteţi de memorie externă (vezi fig. 4.1). Când pinul   este ţinut la nivel HIGH, circuitul 8XC552 aduce instrucţiuni de la ROM-ul intern până când adresa depăşeşte 1FFFH. Locaţiile 2000H până la FFFFH sunt aduse din memoria program externă. Când pinul   este ţinut la nivel LOW, toate aducerile de instrucţiuni sunt de la memoria externă. Locaţiile ROM de la 0003H până la 0073H sunt utilizate de rutinele de servire a întreruperilor.

3. Registrele de funcţii speciale
Registrele de funcţii speciale (adresabile numai direct) conţin toate registrele pentru 8XC552, cu excepţia contorului de program (PC) şi cele patru bancuri de registre. Majoritatea din cele 56 registre de funcţii speciale este folosită pentru controlul perifericelor hardware on-chip. Alte registre sunt registrele aritmetice (ACC, B, PSW, indicator de stivă SP) şi registrele indicatoare de date (DPH, DPL). 16 dintre registrele de funcţii speciale (SFR) conţin 128 locaţii direct adresabile la nivel de bit
    Registrele de funcţii speciale 80C51 sunt prezente şi au funcţii identice în 8XC552, cu excepţiile menţionate în paragrafele ce urmează mai jos.

4. Timerul T2
Timerul T2 este un timer de 16 biţi ce conţine 2 registre TMH2 (octet superior) şi TML2 (octet inferior). Timerul / numărător de 16 biţi poate fi deconectat sau conectat la clock printr-un circuit de prescalare de la una din două surse: fOSC / 12 sau de la un semnal extern. Atunci când timerul T2 este configurat ca numărător, circuitul de prescalare primeşte clock de la un semnal extern pe intrarea T2 (P1.4). Un front crescător la pinul T2 incrementează circuitul de prescalare, iar rata maximă de repetiţie este o numărare pe ciclu maşină (1 MHz cu un oscilator de 12 MHz).
Rata maximă de repetiţie pentru timerul T2 este de două ori mai mare decât cea a timerului 0 şi a timerului 1. T2 (P1.4) este eşantionat la momentul S2P1 şi din nou la S5P1 (deci de două ori pe un ciclu maşină). Un front crescător este detectat când T2 este LOW pe durata unui eşantion şi HIGH pe durata eşantionului următor. Pentru a asigura detecţia frontului crescător, semnalul de intrare trebuie să fie LOW pentru cel puţin 1/2 ciclu şi apoi HIGH pentru cel puţin 1/2 ciclu. Dacă este detectat un front crescător înaintea sfârşitului S2P1, timerul va fi incrementat pe durata următorului ciclu; în caz contrar va fi incrementat un ciclu mai târziu. Circuitul de prescalare are un factor de prescalare de 1, 2, 4 sau 8 şi este şters dacă factorul său de divizare sau sursa de intrare se modifică, ori dacă timerul / numărător este resetat.

5. Timerul T3, timerul watchdog
Suplimentar timerelor T2 şi a celor două timere standard, în circuitul 8XC552 este inclus un timer watchdog. Destinaţia timerului watchdog este de a reseta microcontrolerul dacă el intră în stări de procesor eronate (posibil provocate de un zgomot electric sau interferenţă radio), într-un interval de timp rezonabil. O analogie este cea cu "manivela omului mort" de la locomotive. Când este activat, circuitul watchdog va genera un reset de sistem dacă programul utilizator nu reuşeşte să reîncarce watchdogul în interiorul unui interval de timp specificat, cunoscut sub denumirea de interval watchdog.
Descrierea circuitului watchdog. Timerul watchdog (T3) constă dintr-un timer de 8 biţi cu un circuit de prescalare de 11 biţi, aşa cum se prezintă în fig. 4.9. Circuitul de prescalare este alimentat cu un semnal al cărui frecvenţă este 1/12 din frecvenţa oscilatorului (1 MHz cu un oscilator de 12 MHz). Timerul de 8 biţi este incrementat la fiecare "t" secunde, unde:

t = 12 × 2048 × 1 / fOSC ( = 1,5 ms la fOSC = 16 MHz; = 1 ms la fOSC = 24 MHz)

Dacă timerul de 8 biţi depăşeşte, se generează un impus scurt de reset care va reseta circuitul 8XC552. Un impuls scurt reset de ieşire este de asemenea generat la pinul RST. Acest impuls de ieşire scurt (3 cicluri maşină) poate fi distrus dacă pinul RST este conectat la un condensator. Aceasta nu va afecta totuşi operaţia de reset intern.
Operaţia watchdog este activată atunci când pinul extern   este fixat la nivel LOW. Atunci când   este fixat la nivel LOW, este imposibil să se dezactiveze din software funcţionarea watchdog.
Cum se lucrează cu timerul watchdog. Timerul watchdog trebuie să fie reîncărcat în interiorul unor perioade ce sunt mai scurte decât intervalul watchdog programat; în caz contrar, timerul watchdog va depăşi şi se va genera un reset de sistem. Programul utilizator trebuie în continuare să execute secţiunile de instrucţiuni care reîncarcă timerul watchdog. Perioada de timp trecută între executarea acestor secţiuni de instrucţiuni nu trebuie să depăşească niciodată intervalul watchdog. Când se utilizează un oscilator de 16 MHz, intervalul watchdog este programabil între 1.5 şi 392 ms. Când se foloseşte un oscilator de 24 MHz, intervalul watchdog este programabil între 1 ms şi 255 ms. În scopul pregătirii software pentru funcţionarea watchdog, un programator trebuie mai întâi să determine cât de mult poate susţine sistemul său o stare eronată. Rezultatul va fi valoarea maximă a intervalului watchdog. Dacă valoarea maximă a intervalului watchdog devine mai scurtă, devine mult mai dificil pentru programator să asigure că programul utilizator va reîncărca totdeauna timerul watchdog în înteriorul intervalului watchdog şi astfel operaţia de implementare a watchdogului devine mult mai dificilă.
Programatorul trebuie să cunoască împărţirea software-ului în aşa fel încât reîncărcarea timerului watchdog este îndeplinită în concordanţă cu cerinţele de mai sus. Programatorul trebuie să determine timpii de execuţie pentru toate modulele software. Trebuie luat în considerare efectul diferitelor ramuri condiţionale, al subrutinelor, întreruperilor interne şi externe. Întrucât poate fi foarte dificil să se evalueze timpii de execuţie ale unor secţiuni de program, programatorul va utiliza cazul de estimare cel mai dezavantajos. În orice eventualitate, programatorul trebuie să fie sigur că circuitul watchdog este activat pe durata funcţionării normale.

6. Circuitul serial I / O
Circuitul 8XC552 este echipat cu două porturi seriale independente: SIO0 şi SIO1. SIO0 este un port UARTduplex complet şi este identic cu portul serial de la 80C51. SIO1 realizează magistrala I2C.
SIO0. SIO0 este un port serial I / O duplex complet, identic cu cel de la 80C51. Funcţionarea este aceaşi, incluzând folosirea timerului 1 ca generator pentru transfer (baud rate).
SIO1, port serial I2C. Magistrala I2C foloseşte două fire (SDA şi SCL) pentru a transfera infomaţii între dispozitivele conectate la magistrală. Principalele caracteristici ale magistralei sunt:
transfer de date bidirecţional între circuitele master şi slave
magistrală multimaster (nu există un master central)
arbitrarea între transmisiile simultane de la circuitele master, fără afectarea datei seriale pe magistrală
sincronizarea clockului serial permit dispozitivelor cu diferite viteze de transfer să comunice pe o magistrală serială
sincronizarea clockului serial poate fi folosită ca un mecanism de stabilire a legăturii, pentru a suspenda şi relua transferul serial
magistrala I2C poate fi folosită pentru scopuri de test şi diagnostic.
Latchurile de ieşire P1.6 şi P1.7 trebuie să fie setate la nivel logic "1" în vederea activării SIO1.
Logica I2C on-chip a circuitelor 8XC552 asigură o interfaţă serială care satisface specificaţiile megistralei I2C şi permite toate modurile de transfer (altele decât cele în modul viteză redusă) de la şi către magistrala I2C. Logica SIO1 manipulează transferul serial octeţii transferaţi în mod autonom. De asemenea supraveghează transferul serial, iar un registru de stare (S1STA) reflectă starea pentru SIO1 şi magistrala I2C. Unitatea centrală de procesare (CPU) se interfaţează către magistrala I2C prin următoarele patru registre de funcţii speciale: S1CON (registrul de control SIO1), S1STA (registrul de stare SIO1), S1DAT (registrul de date SIO1) şi S1ADR (registrul adresei SIO1). Logica SIO1 se interfaţează spre magistrala externă I2C prin doi pini ai portului 1: P1.6 / SCL (linia de clock serial) şi P1.7 / SDA (linia serială de date).
Descarca lucrare
  • Specificatii Lucrare Sistem De Masurare A Temperaturii Si Umiditatii Aerului Folosind Un Sistem De Dezvoltare Cu Microcont :

    • Tema: Sistem De Masurare A Temperaturii Si Umiditatii Aerului Folosind Un Sistem De Dezvoltare Cu Microcont
    • Tip de fisier: zip
    • Numar de pagini: 92 pagini
    • Nivel: Facultate
    • Descarcari: 0 descarcari
    • Accesari: 29 accesari
    • Nota: 10.00/10 pe baza a 0 comentarii.
    • Pret: 2 Monede
    • Pret aproximativ in lei: 8 RON (pretul variaza in functie de modalitatea de plata aleasa)
      Disponibilitate: In stoc! Comanda-l acum!
    • Taguri: logica, registru, functie, interfata,