2,860 matches
-
controler pentru DRAM. Marele avantaj al acestor cvasi(aproape) microcontrolere (ele nu au memorie integrată!) este legat de utilizarea ca mediu de dezvoltare a unor platforme de calcul tip IBM-PC, compatibile 80x86, cu tot softul aferent. Un microcontroler de 8 biți derivat din microprocesorul M6800 și care prezintă multe asemănări cu un alt microprocesor răspândit, la timpul său, 6502. Are un spațiu de memorie unic (64Kbytes) în care sunt plasate și registrele perifericelor (I/O, timere) cu un indicator de stivă
Microcontroler () [Corola-website/Science/320971_a_322300]
-
stivă de maxim 32 octeți !). Există variante cu memorie EEPROM, CAN, port serial, etc. Este unul din cele mai răspândite microcontrolere (comparabil cu 8051). Varianta evoluată a acestei familii este seria 68HC08 bazată pe o nouă unitate centrală de 8 biți numită CPU08, cu cea mai recentă dezvoltare sub forma seriei 68HCS08 destinată în mod special unor aplicații din industria automobilului. Limbajul mașină (instrucțiunile mașină) este singura formă de reprezentare a informației pe care un microcontroler o "înțelege" (ca de altfel
Microcontroler () [Corola-website/Science/320971_a_322300]
-
timer, etc.) într-un singur pachet; pentru variantele 8051, 8031 și 8751 diferențele apăreau la memoria internă program. O caracteristică deosebit de utilă a microcontrolerului 8051 este includerea unui motor de procesare boolean care permite operațiilor logice booleene la nivel de bit să fie efectuate în mod direct și eficient cu ajutorul registrelor interne și RAM-ului. Aceasta caracteristică a ajutat la cimentarea popularității 8051 în aplicațiile de control industrial. O altă caracteristică importantă este că are patru seturi de registre separate, care
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 a 8 biți de date în stivă
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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-uri, două sau trei timere, 128 sau 256 biți de memorie internă de date RAM (dintre care 16 bytes sunt bit-adresabili), până la 128 bytes de
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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-uri, două sau trei timere, 128 sau 256 biți de memorie internă de date RAM (dintre care 16 bytes sunt bit-adresabili), până la 128 bytes de I/ O, de la 512 bytes până la 64KB de memorie internă program și uneori o cantitate de memorie de date RAM extinsă (ERAM) localizată în
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
din familia 8080/8085 (PPI 8255, USART 8251, PIT 8253 etc.). Pentru a realiza comunicarea între aceste extensii și microcontroler, 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
dezactivat, iar toate instrucțiunile XRAM vor fi descărcate de pe magistrala externă. Circuitul standard realizat în capsulă DIL prezintă 40 pini. Dintre aceștia, doi pini sunt rezervați tensiunii de alimentare (+5V și masă). Controlerul conține 4 porturi paralele de câte 8 biți fiecare, ce pot fi folosite pentru generarea și, respectiv, receptarea semnalelor digitale (notate P0, P1, P2, P3). 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
atenția asupra faptului că liniile portului P0 sunt de tipul "“open drain”", fiind necesară plasarea în exterior de rezistențe către sursa de alimentare, în vederea asigurării polarizării. Portul P1 este în orice situație de lucru a microcontrolerului, port de tip paralel, biții acestuia fiind configurabili atât ca ieșiri, cât și ca intrări digitale. Liniile portului sunt notate P1.0, ..., P1.7. Ultimul port (P3) are un caracter multifuncțional, funcție de modul de lucru al microcontrolerului. Pe de o parte, prin liniile acestui port
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 mai puțin folosite decât C și programarea
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 cu ajutorul a 2
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 biți, prin acest mod de adresare se poate accesa atât memoria RAM internă 00-7Fh
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 memoriei interne de la
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
ș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 instrucțiuni operează cu acumulatorul sau DPTR, deci nu este
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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. 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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. 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
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
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) +Acc. ex: MOVC A,@ A
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
020h,03fh va copia valoare din locația de memorie intern RAM 0x3f în locația de memorie 0x20, aflată de asemenea în memoria internă RAM. Microcontrolerele din seria Intel 8031 au setul de instrucțiuni asemănătoare cu cele ale microprocesoarelor pe 8 biți, însă mai apar o serie de instrucțiuni specifice numai acestor tipuri de circuite. Instrucțiunile pot fi clasificate în funcție de operația pe care o realizează în: Sunt instrucțiuni noi, specifice microcontrolerelor. Cu ajutorul acestor instrucțiuni se pot realiza teste la nivel de bit
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
biți, însă mai apar o serie de instrucțiuni specifice numai acestor tipuri de circuite. Instrucțiunile pot fi clasificate în funcție de operația pe care o realizează în: Sunt instrucțiuni noi, specifice microcontrolerelor. Cu ajutorul acestor instrucțiuni se pot realiza teste la nivel de bit, ceea ce permite un răspuns prompt al aplicației la schimbări și o dimensiune redusă a codului utilizatorului. ex: JB bit ,rel - salt relativ dacă bit este 1; ANL C, bit - SI logic între Carry și bit; SETB bit - setează direct bit
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
operația pe care o realizează în: Sunt instrucțiuni noi, specifice microcontrolerelor. Cu ajutorul acestor instrucțiuni se pot realiza teste la nivel de bit, ceea ce permite un răspuns prompt al aplicației la schimbări și o dimensiune redusă a codului utilizatorului. ex: JB bit ,rel - salt relativ dacă bit este 1; ANL C, bit - SI logic între Carry și bit; SETB bit - setează direct bit; Deoarece 8051 are o arhitectură acumulator, toate operațiile aritmetice trebuie să folosească acumulatorul, ex: ADD A, 020h va adăuga
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
în: Sunt instrucțiuni noi, specifice microcontrolerelor. Cu ajutorul acestor instrucțiuni se pot realiza teste la nivel de bit, ceea ce permite un răspuns prompt al aplicației la schimbări și o dimensiune redusă a codului utilizatorului. ex: JB bit ,rel - salt relativ dacă bit este 1; ANL C, bit - SI logic între Carry și bit; SETB bit - setează direct bit; Deoarece 8051 are o arhitectură acumulator, toate operațiile aritmetice trebuie să folosească acumulatorul, ex: ADD A, 020h va adăuga valoarea din locația de memorie
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
microcontrolerelor. Cu ajutorul acestor instrucțiuni se pot realiza teste la nivel de bit, ceea ce permite un răspuns prompt al aplicației la schimbări și o dimensiune redusă a codului utilizatorului. ex: JB bit ,rel - salt relativ dacă bit este 1; ANL C, bit - SI logic între Carry și bit; SETB bit - setează direct bit; Deoarece 8051 are o arhitectură acumulator, toate operațiile aritmetice trebuie să folosească acumulatorul, ex: ADD A, 020h va adăuga valoarea din locația de memorie internă RAM 0x20 în acumulator
Intel MCS-51 () [Corola-website/Science/320976_a_322305]
-
realiza teste la nivel de bit, ceea ce permite un răspuns prompt al aplicației la schimbări și o dimensiune redusă a codului utilizatorului. ex: JB bit ,rel - salt relativ dacă bit este 1; ANL C, bit - SI logic între Carry și bit; SETB bit - setează direct bit; Deoarece 8051 are o arhitectură acumulator, toate operațiile aritmetice trebuie să folosească acumulatorul, ex: ADD A, 020h va adăuga valoarea din locația de memorie internă RAM 0x20 în acumulator. Pentru a programa 8051, nu este
Intel MCS-51 () [Corola-website/Science/320976_a_322305]