Lucrare Generatoare De Impulsuri Cu Microcontroler. Implementarea Soft A Unei Tastaturi Matriciale

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

Descriere Lucrare

1.1 Prezentare generală 
Partea principală a generatorului de impulsuri o constituie microsistemul de calcul care este dezvoltat în jurul elementului de calcul, în acest caz microcontrolerul 80c552.  
       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.
        Circuitul 80C552 foloseşte setul de instrucţiuni puternic al familiei 80C51 din care şi face parte. Pentru controlul perifericelor on-chip sunt încorporate registre de funcţii speciale suplimentare. 
      80C552 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. 
       80C552 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.

1.1.1 Memoria program
80C552 conţine 8 kocteţi de memorie program on-chip ce poate fi extinsă până la 64 kocteţi de memorie externă ( fig. 2.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.

1.1.2 Memoria date
Memoria internă de date este divizată în 3 secţiuni: 128 octeţi inferiori, 128 octeţi superiori (RAM) şi aria de 128 octeţi a registrelor de funcţii speciale. Cei 128 octeţi inferiori de RAM de la 128 la 255 şi aria registrelor de funcţii speciale împart acelaşi spaţiu de adresă, iar accesarea lor se face în moduri de adresare diferite. Locaţiile RAM 128 la 255 sunt adresabile numai indirect, iar registrele de funcţii speciale sunt adresabile numai direct. Toate celelalte aspecte ale memoriei interne RAM sunt identice cu 80C51.
Stiva poate fi localizată oriunde în RAM-ul intern prin încărcarea indicatorului de stivă de 8 biţi. Înălţimea stivei este de maximum 256 octeţi.

1.1.3 Registrele de funcţii speciale
Registrele de funcţii speciale (adresabile numai direct) conţin toate registrele pentru 80C552, 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. Tabelul 2.1 (Anexă) – prezintă registrele de funcţii speciale pentru 80C552.

1.2 Accesarea memoriei externe
Accesul la memoria externă este de două tipuri: acces la memoria program externă şi acces la memoria externă date. Accesul la memoria program externă foloseşte semnalul   (Program Store Enable) ca strob pentru citire. Accesul la memoria date externe foloseşte  sau   (funcţii alternative ale P3.7 şi P3.6) pentru a stroba memoria. Aducerea de la memoria program externă foloseşte întotdeauna o adresă de 16 biţi. Accesul la memoria de date externă poate folosi fie o adresă de 16 biţi (MOVX  @DPTR), fie o adresă de 8 biţi (MOVX  @Ri).
Ori de câte ori se foloseşte o adresă de 16 biţi, octetul superior de adresă este transmis la ieşirea portului 2, unde este păstrat pe durata ciclului de citire sau scriere. De notat că driverele portului 2 folosesc pullup-urile puternice pe întreg intervalul de timp în care ele emit biţii de adresă care au valoarea "1". Aceasta este pe durata executării unei instrucţiuni MOVX @DPTR. Pe acest interval de timp, latchul portului 2 (registrul de funcţii speciale) nu trebuie să conţină valori "1", iar conţinutul portului 2 SFR nu este modificat. Dacă ciclul memoriei externe nu este urmat imediat de un alt ciclu de de memorie externă, conţinutul neafectat al portului 2 SFR va reapărea în codul următor.
Dacă se utilizează o adresă de 8 biţi (MOVX  @Ri), conţinutul portului 2 SFR rămâne la pinii portului 2 pe durata ciclului memorie externă. Aceasta va facilita modul de lucru pagină.
În toate cazurile, octetul inferior al adresei este multiplexat în timp cu octetul de date din portul 0. Semnalele ADDR / DATA comandă de asemenea şi FET-urile din bufferele de ieşire ale portului 0. Astfel, în această aplicaţie, pinii portului 0 nu sunt ieşiri cu drena în gol şi nu necesită pullup extern. Semnalul ALE (Address Latch Enable) poate fi folosit pentru a captura octetul de adresă dintr-un latch extern. Octetul de adresă este valabil la tranziţia pe front căzător a semnalului ALE. Apoi, în ciclul de scriere, octetul de date ce urmează a fi scris apare în portul 0 puţin înainte ca să fie activat semnalul   şi rămâne astfel până la dezactivarea  . În ciclul de citire, octetul ce soseşte este acceptat în portul 0 puţin înainte ca strobul READ să fie dezactivat.
Pe durata oricărui acces la memoria externă, CPU scrie 0FFH în latchul portului 0 (în SFR), astfel ştergându-se orice fel de informaţie ce ar putea fi păstrată în portul 0 SFR.
Memoria program externă este accesată în două condiţii: ori de câte ori semnalul   este activ sau când contorul de program (PC) conţine un număr mai mare decât 0FFFH (în circuitul 80C51).
Aceasta presupune că versiunile fără ROM să aibă conectat semnalul   de la nivel scăzut pentru a permite ca cei mai inferiori 4 kocteţi de program să fie aduşi de la memoria externă.
Atunci când CPU lucrează cu memoria program externă, toţi cei 8 biţi ai portului 2 sunt dedicaţi unei funcţii de ieşire şi nu pot fi utilizaţi în scopuri generale I / O. Pe durata aducerilor de la programul extern, ei dau la ieşire octetul superior al contorului de program (PC). Pe acest interval de timp, driverele portului 2 folosesc pullup-urile puternice pentru a emite biţii din contorul de program (PC) care au valoarea 1.
Descarca lucrare
  • Specificatii Lucrare Generatoare De Impulsuri Cu Microcontroler. Implementarea Soft A Unei Tastaturi Matriciale :

    • Tema: Generatoare De Impulsuri Cu Microcontroler. Implementarea Soft A Unei Tastaturi Matriciale
    • Tip de fisier: zip
    • Numar de pagini: 44 pagini
    • Nivel: Facultate
    • Descarcari: 0 descarcari
    • Accesari: 27 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: generator, memorie, program, timer, control,