224,795 matches
-
de întreruperi, comparativ cu metoda mai comune de stocare a contextului de întreruperi într-o stivă. UART-urile MCS-51 fac simplu de utilizat chip-ul ca o interfață serială de comunicații. Pinii externi pot fi configurați să se conecteze la regiștrii interni într-o varietate de moduri, și timer-ele interne pot fi de asemenea utilizate, permițând comunicații pe serială într-o serie de moduri, atât sincrone și asincrone. Unele moduri permit comunicații fără componente externe. Un mod compatibil cu un mediu
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
compatibilitate cu protocoalele ad-hoc existente (de exemplu, atunci când se controlează dispozitivele de control serial). O dată ce un UART, și un timer dacă este necesar, au fost configurate, programatorul are nevoie doar să scrie o simplă rutină de înteruperi pentru a reumple registrul de "send" (de trimitere) ori de câte ori ultimul bit este shiftat afară de către UART și/sau să golească întregul registru "receive" (de primire), să copieze datele în altă parte. Programul principal efectuează apoi citiri seriale și scrie doar prin citirea și scrierea
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
un timer dacă este necesar, au fost configurate, programatorul are nevoie doar să scrie o simplă rutină de înteruperi pentru a reumple registrul de "send" (de trimitere) ori de câte ori ultimul bit este shiftat afară de către UART și/sau să golească întregul registru "receive" (de primire), să copieze datele în altă parte. Programul principal efectuează apoi citiri seriale și scrie doar prin citirea și scrierea a 8 biți de date în stivă. Microcontrolerele bazate pe MCS-51 includ de obicei unul sau două UART
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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, avand o capacitate de 256 octeti. IRAM-ul de la 0x00 la 0x7F (primii 128 octeti) poate fi "accesat direct
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 asemenea bit-adresabile. Memoria program (PMEM), deși mai putin
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 cu adresa 0. Poate fi on- sau off-chip, depinzând de tipul de chip folosit. Memoria program poate fi doar citită ("read-only
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 program poate stoca și tabele de constante ce pot fi accesate prin MOVC A, @DPTR, folosind registrul de uz special @DPTR. Memoria de date externă (XRAM) de asemenea începe la adresa 0. Poate fi on- sau off-chip; ceea ce o face "externă" este că trebuie accesată folosind instrucțiunea MOVX "(Move eXternal)". Multe variante ale 8051 includ standardul de 256
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
de C sunt disponibile pentru 8051, majoritatea dispun de extensii ce permit programatorului să specifice unde fiecare variabilă ar trebui stocată în cele șase tipuri de memorie și oferă acces la caracteristici hardware specifice 8051, cum ar fi bancurile de registre multiple și intrucțiunile de manipulare a biților. Există multe compilatoare de C comerciale. SDCC este un compilator open-source popular. Alte limbaje de nivel înalt, ca Forth, Basic, Pascal/Object Pascal, PL/M și Modula-2 sunt disponibile pentru 8051, dar sunt
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
un mecanism pentru determina la ce memorie se referă un pointer, fie prin constrângerea tipului pointer-ului să includă spațiul de memorie, fie stocând metadate împreună cu pointer-ul. Setul de instrucțiuni MCS-51 oferă mai multe moduri de adresare, incluzând: Bancul registrelor, care conține registrele R0÷ R7, poate fi accesat prin anumite instrucțiuni care specifică în opcode registrul prin 3 biți. Instrucțiunile care accesează astfel registrele au codul mai eficient. Când instrucțiunea se execută, numai unul din cele 8 regiștri din bancul
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
determina la ce memorie se referă un pointer, fie prin constrângerea tipului pointer-ului să includă spațiul de memorie, fie stocând metadate împreună cu pointer-ul. Setul de instrucțiuni MCS-51 oferă mai multe moduri de adresare, incluzând: Bancul registrelor, care conține registrele R0÷ R7, poate fi accesat prin anumite instrucțiuni care specifică în opcode registrul prin 3 biți. Instrucțiunile care accesează astfel registrele au codul mai eficient. Când instrucțiunea se execută, numai unul din cele 8 regiștri din bancul selectat este accesat
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
-ului să includă spațiul de memorie, fie stocând metadate împreună cu pointer-ul. Setul de instrucțiuni MCS-51 oferă mai multe moduri de adresare, incluzând: Bancul registrelor, care conține registrele R0÷ R7, poate fi accesat prin anumite instrucțiuni care specifică în opcode registrul prin 3 biți. Instrucțiunile care accesează astfel registrele au codul mai eficient. Când instrucțiunea se execută, numai unul din cele 8 regiștri din bancul selectat este accesat. Bancul de regiștri cu care se lucrează la un moment dat este selectat
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
metadate împreună cu pointer-ul. Setul de instrucțiuni MCS-51 oferă mai multe moduri de adresare, incluzând: Bancul registrelor, care conține registrele R0÷ R7, poate fi accesat prin anumite instrucțiuni care specifică în opcode registrul prin 3 biți. Instrucțiunile care accesează astfel registrele au codul mai eficient. Când instrucțiunea se execută, numai unul din cele 8 regiștri din bancul selectat este accesat. Bancul de regiștri cu care se lucrează la un moment dat este selectat cu ajutorul a 2 biți din PSW. ex: MOV
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
incluzând: Bancul registrelor, care conține registrele R0÷ R7, poate fi accesat prin anumite instrucțiuni care specifică în opcode registrul prin 3 biți. Instrucțiunile care accesează astfel registrele au codul mai eficient. Când instrucțiunea se execută, numai unul din cele 8 regiștri din bancul selectat este accesat. 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
poate fi accesat prin anumite instrucțiuni care specifică în opcode registrul prin 3 biți. Instrucțiunile care accesează astfel registrele au codul mai eficient. Când instrucțiunea se execută, numai unul din cele 8 regiștri din bancul selectat este accesat. 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
eficient. Când instrucțiunea se execută, numai unul din cele 8 regiștri din bancul selectat este accesat. 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 pointerului de stivă ex: MOV A,@R0
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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. De exemplu, anumite
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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. De exemplu, anumite instrucțiuni operează cu acumulatorul sau DPTR, deci nu este nevoie de
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 A, #100
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 A, #100 - acumulatorul este încărcat cu constanta 100; MOV DPTR, #0A43h. SETB
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
DPTR, #0A43h. SETB C - Bitul de carry devine 1 SETB P1.3 - Bitul 3 al portului P1 devine 1. Numai memoria program poate fi accesată astfel. Acest mod de adresare este folosit pentru a citi tabele memorate în memoria program. Registrul de bază pe 16 biți care reprezintă adresa de început al tabelului, poate fi registrul DPTR sau PC, iar ca registru deplasament este folosit acumulatorul. Adresa unui element din tabel accesat la un moment dat, se calculează astfel: DPTR (PC
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
portului P1 devine 1. Numai memoria program poate fi accesată astfel. Acest mod de adresare este folosit pentru a citi tabele memorate în memoria program. Registrul de bază pe 16 biți care reprezintă adresa de început al tabelului, poate fi registrul DPTR sau PC, iar ca registru deplasament este folosit acumulatorul. Adresa unui element din tabel accesat la un moment dat, se calculează astfel: DPTR (PC) +Acc. ex: MOVC A,@ A+PC Tot adresare indexată este utilizată și în cazul instrucțiunilor
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
program poate fi accesată astfel. Acest mod de adresare este folosit pentru a citi tabele memorate în memoria program. Registrul de bază pe 16 biți care reprezintă adresa de început al tabelului, poate fi registrul DPTR sau PC, iar ca registru deplasament este folosit acumulatorul. Adresa unui element din tabel accesat la un moment dat, se calculează astfel: DPTR (PC) +Acc. ex: MOVC A,@ A+PC Tot adresare indexată este utilizată și în cazul instrucțiunilor de salt. În acest caz, adresa
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
Aceasta poartă și denumirea de arhitectură MCS51 după numele primului astfel de microcontroler realizat de Intel. Familia de microcontrolere MCS51 datează de la începutul anilor 80 este succesoarea familiei 8048 păstrând compatibilitatea cu aceasta. Arhitectura 8051 folosește o magistrală de date, regiștrii și o unitate aritmetico-logică pe 8 biți și o magistrală de adrese de 16 biți. În momentul actual Intel nu mai produce microcontrolere compatibile MCS51. Microcontrolerele compatibile cu arhitectura 8051 sunt încă produse de firme precum: Atmel, Maxim, Infineon sau
Atmel AT89C51AC2 () [Corola-website/Science/321003_a_322332]