166,702 matches
-
este nevoie ca o parte din liniile de port să fie redirecționate în alte scopuri. De exemplu, adresa pe 16 biți pentru accesul la memoria externă se furnizează cu ajutorul porturilor P0 și P2 care acum joacă rolul de magistrală de adrese. Magistrala de date este obținută din liniile portului P0. Pentru a face deosebirea între adresă și date, liniile portului P0 sunt multiplexate în timp. MCS-51 are patru tipuri distincte de memorie - "RAM intern", "registre de uz special", "memorie program" și
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
De exemplu, adresa pe 16 biți pentru accesul la memoria externă se furnizează cu ajutorul porturilor P0 și P2 care acum joacă rolul de magistrală de adrese. Magistrala de date este obținută din liniile portului P0. Pentru a face deosebirea între adresă și date, liniile portului P0 sunt multiplexate în timp. MCS-51 are patru tipuri distincte de memorie - "RAM intern", "registre de uz special", "memorie program" și "memorie externă de date". Memoria RAM internă (IRAM) este localizată de la adresa 0 la adresa 0xFF
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
face deosebirea între adresă și date, liniile portului P0 sunt multiplexate în timp. MCS-51 are patru tipuri distincte de memorie - "RAM intern", "registre de uz special", "memorie program" și "memorie externă de date". Memoria RAM internă (IRAM) este localizată de la adresa 0 la adresa 0xFF, avand o capacitate de 256 octeti. IRAM-ul de la 0x00 la 0x7F (primii 128 octeti) poate fi "accesat direct", iar biții de la 0x20 la 0x2F sunt de asemenea bit-adresabili. IRAM-ul de la 0x80 la 0xFF (urmatorii 128
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
de la 0x00 la 0x7F (primii 128 octeti) poate fi "accesat direct", iar biții de la 0x20 la 0x2F sunt de asemenea bit-adresabili. IRAM-ul de la 0x80 la 0xFF (urmatorii 128 de octeti) trebuie "accesat indirect", folosind sintaxa @R0 sau @R1, cu adresa de acces incărcată în R0 sau R1. Registrele de uz special (SFR) sunt localizate de la adresa 0x80 la 0xFF și sunt "accesate direct" folosind aceleași instrucțiuni ca pentru partea inferioara (low) a IRAM. O parte din registrele SFR sunt de
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
0x2F sunt de asemenea bit-adresabili. IRAM-ul de la 0x80 la 0xFF (urmatorii 128 de octeti) trebuie "accesat indirect", folosind sintaxa @R0 sau @R1, cu adresa de acces incărcată în R0 sau R1. Registrele de uz special (SFR) sunt localizate de la adresa 0x80 la 0xFF și sunt "accesate direct" folosind aceleași instrucțiuni ca pentru partea inferioara (low) a IRAM. O parte din registrele SFR sunt de asemenea bit-adresabile. Memoria program (PMEM), deși mai putin folosită decât IRAM sau XRAM, este localizată Incepând
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
la 0xFF și sunt "accesate direct" folosind aceleași instrucțiuni ca pentru partea inferioara (low) a IRAM. O parte din registrele SFR sunt de asemenea bit-adresabile. Memoria program (PMEM), deși mai putin folosită decât IRAM sau XRAM, este localizată Incepând cu adresa 0. Poate fi on- sau off-chip, depinzând de tipul de chip folosit. Memoria program poate fi doar citită ("read-only"), deși anumite variante ale 8051 folosesc memorie flash on-chip și oferă o metodă de reprogramare a memoriei. Pe lângă stocarea codului, memoria
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
Funcție de modul de lucru în care lucrează, aceste porturi se pot configura și pot avea mai multe situații de lucru. Astfel, dacă se lucrează cu memorie ROM externă, 2 dintre aceste porturi se constituie în linii ce formează magistralele de adrese și de date. Portul P0 generează, multiplexat în timp, partea cea mai puțin semnificativă a informației de adresă (A0-A7) și, respectiv, gestionează magistrala de date (D0- D7). Pentru formarea magistralei de adrese, va fi nevoie să se plaseze în exteriorul
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
de lucru. Astfel, dacă se lucrează cu memorie ROM externă, 2 dintre aceste porturi se constituie în linii ce formează magistralele de adrese și de date. Portul P0 generează, multiplexat în timp, partea cea mai puțin semnificativă a informației de adresă (A0-A7) și, respectiv, gestionează magistrala de date (D0- D7). Pentru formarea magistralei de adrese, va fi nevoie să se plaseze în exteriorul MCU-ului un circuit de tip "latch" (de exemplu 74HCT573), cu scopul de a memora informația de adresă
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
se constituie în linii ce formează magistralele de adrese și de date. Portul P0 generează, multiplexat în timp, partea cea mai puțin semnificativă a informației de adresă (A0-A7) și, respectiv, gestionează magistrala de date (D0- D7). Pentru formarea magistralei de adrese, va fi nevoie să se plaseze în exteriorul MCU-ului un circuit de tip "latch" (de exemplu 74HCT573), cu scopul de a memora informația de adresă. Acționarea acestui circuit se face utilizând semnalul "ALE". Portul P2, în aceleasi situații, generează
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
adresă (A0-A7) și, respectiv, gestionează magistrala de date (D0- D7). Pentru formarea magistralei de adrese, va fi nevoie să se plaseze în exteriorul MCU-ului un circuit de tip "latch" (de exemplu 74HCT573), cu scopul de a memora informația de adresă. Acționarea acestui circuit se face utilizând semnalul "ALE". Portul P2, în aceleasi situații, generează octetul cel mai semnificativ al informației de adrese (A8-A15). Cele 16 linii de adrese astfel formate, permit adresarea a 64 KB memorie. De fapt, se pot
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
exteriorul MCU-ului un circuit de tip "latch" (de exemplu 74HCT573), cu scopul de a memora informația de adresă. Acționarea acestui circuit se face utilizând semnalul "ALE". Portul P2, în aceleasi situații, generează octetul cel mai semnificativ al informației de adrese (A8-A15). Cele 16 linii de adrese astfel formate, permit adresarea a 64 KB memorie. De fapt, se pot adresa 64KB memorie de programe (ce conține instrucțiuni) și, respectiv, 64KB memorie de date, deci în total 128 KB. Notațiile liniilor porturilor
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
tip "latch" (de exemplu 74HCT573), cu scopul de a memora informația de adresă. Acționarea acestui circuit se face utilizând semnalul "ALE". Portul P2, în aceleasi situații, generează octetul cel mai semnificativ al informației de adrese (A8-A15). Cele 16 linii de adrese astfel formate, permit adresarea a 64 KB memorie. De fapt, se pot adresa 64KB memorie de programe (ce conține instrucțiuni) și, respectiv, 64KB memorie de date, deci în total 128 KB. Notațiile liniilor porturilor sunt "Pi.j", cu i = 0
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
Acționarea acestui circuit se face utilizând semnalul "ALE". Portul P2, în aceleasi situații, generează octetul cel mai semnificativ al informației de adrese (A8-A15). Cele 16 linii de adrese astfel formate, permit adresarea a 64 KB memorie. De fapt, se pot adresa 64KB memorie de programe (ce conține instrucțiuni) și, respectiv, 64KB memorie de date, deci în total 128 KB. Notațiile liniilor porturilor sunt "Pi.j", cu i = 0, .., 3, iar j = 0, ..., 7. Atunci când formează "magistrala de adrese" și date, liniile
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
fapt, se pot adresa 64KB memorie de programe (ce conține instrucțiuni) și, respectiv, 64KB memorie de date, deci în total 128 KB. Notațiile liniilor porturilor sunt "Pi.j", cu i = 0, .., 3, iar j = 0, ..., 7. Atunci când formează "magistrala de adrese" și date, liniile portului P0 mai sunt notate "AD0- AD7", iar liniile lui P2 au denumirea "A8-A15". Când nu se lucrează cu magistralele externe, cele 2 porturi P0 și P2 se pot folosi ca porturi de tip paralel. În această
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
EA" - External Address. Când se lucrează cu magistrale externe, acest pin se conectează la "0"- logic. Când se folosește memoria ROM internă, pinul se leagă la "1”- logic. În această situație, la adresarea ROM-ul intern de 4K, controlerul generează adrese din gama 0000h-0FFFh și nu se emit semnale pe magistralele externe (P0 și P2 putând fi folosite ca porturi paralele). Există posibilitatea folosirii în completare, a unei memorii ROM externe, dar care va fi selectată și adresată începând cu adresa
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
adrese din gama 0000h-0FFFh și nu se emit semnale pe magistralele externe (P0 și P2 putând fi folosite ca porturi paralele). Există posibilitatea folosirii în completare, a unei memorii ROM externe, dar care va fi selectată și adresată începând cu adresa 1000h (P0 și P2 încetând să mai poată fi folosite ca porturi paralele). "ALE" - Address Latch Enable. Semnalul este folosit pentru demultiplexarea externă a informațiilor emise pe portul P0. Astfel, semnalul este folosit în vederea memorării în latch-ul extern 74HCT573, a
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
să mai poată fi folosite ca porturi paralele). "ALE" - Address Latch Enable. Semnalul este folosit pentru demultiplexarea externă a informațiilor emise pe portul P0. Astfel, semnalul este folosit în vederea memorării în latch-ul extern 74HCT573, a părții mai puțin semnificative a adresei A0-A7 emisă pe liniile acestuia. Semnalul este activ "1" logic. "PSEL" - Program SELect. Este semnalul prin care se face activarea memoriei de programe atunci când controlerul realizează extragerea codurilor instrucțiunilor. Dacă se lucrează cu ROM-ul intern, acest semnal nu se
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
Alte limbaje de nivel înalt, ca Forth, Basic, Pascal/Object Pascal, PL/M și Modula-2 sunt disponibile pentru 8051, dar sunt mai puțin folosite decât C și programarea în limbaj de asamblare. Deoarece IRAM, XRAM și PMEM, toate au o adresă 0x00, compilatoarele pentru 8051 oferă extensii pentru a indica unde o anumită parte de date ar trebui stocată (i.e. constante în PMEM sau variabile ce necesită acces rapid din IRAM). Din momement ce datele pot fi într-unul din cele
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
Bancul de regiștri cu care se lucrează la un moment dat este selectat cu ajutorul a 2 biți din PSW. ex: MOV A, R7 - conținutul registrului R7 este transferat în acumulator In adresarea directă, operandul este specificat printr-un câmp de adresă de 8 biți, prin acest mod de adresare se poate accesa atât memoria RAM internă 00-7Fh, cât și zona SFR (80-FFh). ex: MOV A, direct - conținutul memoriei interne de la adresa direct este transferat în acumulator. ADD A, direct - adună conținutul
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
In adresarea directă, operandul este specificat printr-un câmp de adresă de 8 biți, prin acest mod de adresare se poate accesa atât memoria RAM internă 00-7Fh, cât și zona SFR (80-FFh). ex: MOV A, direct - conținutul memoriei interne de la adresa direct este transferat în acumulator. ADD A, direct - adună conținutul memoriei interne de la adresa direct cu acumulatorul. Instrucțiunea specifică un registru care conține adresa operandului. Prin acest mod de adresare poate fi accesat atât memoria de date internă cât și
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
prin acest mod de adresare se poate accesa atât memoria RAM internă 00-7Fh, cât și zona SFR (80-FFh). ex: MOV A, direct - conținutul memoriei interne de la adresa direct este transferat în acumulator. ADD A, direct - adună conținutul memoriei interne de la adresa direct cu acumulatorul. Instrucțiunea specifică un registru care conține adresa operandului. Prin acest mod de adresare poate fi accesat atât memoria de date internă cât și cea externă, astfel: - adresare pe 8 biți cu ajutorul registrelor R0 și R1 sau al
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
RAM internă 00-7Fh, cât și zona SFR (80-FFh). ex: MOV A, direct - conținutul memoriei interne de la adresa direct este transferat în acumulator. ADD A, direct - adună conținutul memoriei interne de la adresa direct cu acumulatorul. Instrucțiunea specifică un registru care conține adresa operandului. Prin acest mod de adresare poate fi accesat atât memoria de date internă cât și cea externă, astfel: - adresare pe 8 biți cu ajutorul registrelor R0 și R1 sau al pointerului de stivă ex: MOV A,@R0 - conținutul locației de
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
mod de adresare poate fi accesat atât memoria de date internă cât și cea externă, astfel: - adresare pe 8 biți cu ajutorul registrelor R0 și R1 sau al pointerului de stivă ex: MOV A,@R0 - conținutul locației de memorie internă de la adresa dată de registrul R0 este transferată în acumulator - adresare pe 16 biți utilizând registrul DPTR ex: MOVX A,@DPTR - conținutul locației de memorie de date externă de la adresa din registrul DPTR este transferată în acumulator Anumite instrucțiuni specifică anumite registre
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
de stivă ex: MOV A,@R0 - conținutul locației de memorie internă de la adresa dată de registrul R0 este transferată în acumulator - adresare pe 16 biți utilizând registrul DPTR ex: MOVX A,@DPTR - conținutul locației de memorie de date externă de la adresa din registrul DPTR este transferată în acumulator Anumite instrucțiuni specifică anumite registre. De exemplu, anumite instrucțiuni operează cu acumulatorul sau DPTR, deci nu este nevoie de o adresa pentru a le accesa. Opcod-ul instrucțiunii conține toate informațiile necesare. ex: MOV
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
ex: MOVX A,@DPTR - conținutul locației de memorie de date externă de la adresa din registrul DPTR este transferată în acumulator Anumite instrucțiuni specifică anumite registre. De exemplu, anumite instrucțiuni operează cu acumulatorul sau DPTR, deci nu este nevoie de o adresa pentru a le accesa. Opcod-ul instrucțiunii conține toate informațiile necesare. ex: MOV A, #100 - acumulatorul este încărcat cu constanta 100; MOV DPTR, #0A43h. SETB C - Bitul de carry devine 1 SETB P1.3 - Bitul 3 al portului P1 devine 1
Intel MCS-51 () [Corola-website/Science/320976_a_322305]