Diferite tipuri de registre utilizate în microcontrolerul 8051

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Registrul este partea principală a microcontrolere și procesoare care oferă o modalitate rapidă de colectare și stocare a datelor. Dacă vrem să manipulăm datele cu un controler sau procesor prin efectuarea adunării, scăderilor și așa mai departe, nu putem face acest lucru direct în memorie, dar are nevoie de registre pentru a procesa și stoca datele. Microcontrolerele conțin mai multe tipuri de registre care pot fi clasificate în funcție de conținutul lor sau de instrucțiunile care funcționează în ele.

Diferite tipuri de registre în microcontrolerul 8051

Inregistreaza-te




Un registru este un loc mic într-un procesor care poate stoca cantități mici de date utilizate pentru efectuarea diferitelor operații, cum ar fi adunarea și multiplicarea și încarcă datele rezultate pe memoria principală. Registrele conțin adresa locației de memorie în care urmează să fie stocate datele. Dimensiunea registrului este foarte importantă pentru controlere moderne . De exemplu, pentru un registru pe 64 de biți, un procesor încearcă să adauge două numere pe 32 de biți și dă un rezultat pe 64 de biți.

Tipuri de registre

Microcontrolerul 8051 conține în principal două tipuri de registre:



  • Registre cu scop general (registre adresabile cu octeți)
  • Registre de funcții speciale (Registre adresabile bit)
Memorie RAM 8051

Memorie RAM 8051

8051 microcontroler constă din 256 de octeți de memorie RAM, care este împărțită în două moduri, cum ar fi 128 de octeți pentru scopuri generale și 128 de octeți pentru memoria de funcții speciale (SFR). Memoria care este utilizată în scopuri generale se numește RAM, iar memoria utilizată pentru SFR conține toate registrele conexe periferice, cum ar fi acumulatorul, registrul „B”, cronometre sau contoare și registre de întrerupere.

Registrele cu scop general

Memorie cu scop general

Memorie cu scop general

Memoria de uz general este numită RAM a microcontrolerelor 8051, care este împărțită în 3 zone, cum ar fi băncile, zona de adresare a biților și zona de blocare a zgârieturilor. Băncile conțin diferite registre de uz general, cum ar fi R0-R7, și toate aceste registre sunt registre adresabile cu octeți care stochează sau elimină doar 1 octet de date.


Bănci și registre

B0, B1, B2 și B3 reprezintă bănci și fiecare bancă conține opt registre de uz general, de la „R0” la „R7”. Toate aceste registre sunt adresabile cu octeți. Transferul de date între registrele de uz general în registrele de uz general nu este posibil. Aceste bănci sunt selectate de registrul Program Status Word (PSW).

Registrele cu scop general

Registrele cu scop general

Înregistrare PSW (Program Status Word)

Registrul PSW este un registru care poate fi adresat cu un bit și un byte. Acest registru reflectă starea operațiunii care se efectuează în controler. Registrul PSW determină selectarea băncii prin RS1 și RS0, așa cum se arată mai jos. Adresa fizică a PSW începe de la D0h și biții individuali sunt accesați de la D0h la D7h.

Registrele PSW

Registrele PSW

Steagul Carry (C) : Adresa pavilionului Carry este D7. Acest indicator de transport este afectat când bitul este generat din poziția a 7-a.
Când C = 0 se resetează
C = 1 seturi de transport

Carry Flag

Carry Flag

Steag auxiliar (AC) : Adresa transportului auxiliar este D5. Această transportare auxiliară este afectată atunci când este generat un bit din poziția a 3-a până în poziția a 4-a.
AC = 0 auxiliar este resetat
AC = 1 auxiliar este setat

Transport auxiliar (AC)

Transport auxiliar (AC)

Semnal de revărsare (OV) : Adresa semnalizatorului de depășire este D2. Când se generează un bit de la poziția a 6-a la poziția a 7-a, atunci este afectat semnalizatorul de deversare.

OV = 0 resetare semnalizare overflow
OV = 1 seturi de steaguri de revărsare

Steag de revărsare

Steag de revărsare

Steagul parității (P) : Adresa steagului de paritate este D0. În timp ce efectuați operații aritmetice, dacă rezultatul este 1, atunci semnalizatorul de paritate este setat - în caz contrar, resetați.
RS1 și RS0
RS1 și RS0, biții din registrul PSW, sunt folosiți pentru a selecta diferite locații de memorie (bank0 la bank4) în RAM.

Registru de selecție a băncii

Registru de selecție a băncii

Următorul este un exemplu de utilizare a acestui registru.

Următorul exemplu demonstrează adăugarea a două numere și apoi stocarea valorii finale în registrul Bank1 utilizând un program la nivel de asamblare.

Org 0000h
MOV PSW, # 00h
MOV A, 15
ADĂUGAȚI A, 20
MOV 00h, A
SFÂRȘIT

Program de asamblare pentru a muta 6 numere naturale în registrul bancar0 R0-R5

Org 0000h (declarația adreselor de pornire)
MOV PSW, # 00h (deschideți memoria bank0)
MOV r0, # 00h (adresa de pornire a memoriei bank0)
MOV r1, # 01h
MOV r2, # 02h
MOV r2, # 03h
MOV r3, # 04h
MOV r4, #05h
SFÂRȘIT

Program de asamblare pentru a muta 6 numere naturale în registrul bancar1 R0-R7

Org 0000h (declarația adreselor de pornire)
MOV PSW, # 08h (deschideți memoria bank1)
MOV r0, 00h (valoare trimisă către memoria 1 bancă)
MOV r1, 02h
MOV r2, 02h
MOV r2, 03h
MOV r3, 04h
MOV r4, 05h
MOV r5, 06h
MOV r6, 07h
MOV r7, 08h
SFÂRȘIT

Registre de funcții speciale (SFR)

Registrele de funcții speciale sunt RAM superioare în microcontrolerele 8051 . Aceste registre conțin toate registrele legate periferic, cum ar fi P0, P1, P2, P3, cronometre sau contoare, port serial și registre legate de întreruperi. Adresa de memorie SFR începe de la 80h la FFh. Registrul SFR este implementat prin registre de adrese de biți și registre de adrese de octeți.

Registre de funcții speciale (SFR)


Registre de funcții speciale (SFR)

Acumulatorul, registrul B, registrele Po, P1, P2, P3, IE sunt registre care pot fi adresate pe biți, rămânând toate registre care pot fi adresate pe octeți.

Acumulator

Acumulatorul, care este, de asemenea, cunoscut sub numele de ACC sau A este un pic, precum și un registru adresabil de octeți de către o adresă a acumulatorului. Dacă doriți să utilizați un registru bit-adresabil, puteți utiliza un singur bit (E0) al registrului și puteți utiliza un 8-bit din acumulator ca registru adresabil pe octeți. Acumulatorul deține rezultatele majorității operațiilor aritmetice și logice.

Registrul acumulatorului

Registrul acumulatorului

Programul de asamblare pentru scăderea utilizat cu un acumulator

Org 0000h
MOV R0, # 09h
MOV A, # 03h (date de 1 byte)
SUBB A, 01h (date 1byte)
SFÂRȘIT

Înregistrare B

Registrul B este un registru care poate fi adresat cu un bit și un byte. Puteți accesa 1-bit sau toți cei 8 biți printr-o adresă fizică F0h. Să presupunem că pentru a accesa un bit 1, trebuie să folosim f1. Registrul B este utilizat numai pentru operații de multiplicare și divizare.

Înregistrare B

Înregistrare B

Programul de asamblare pentru multiplicare utilizat cu un registru B.

Org 0000h
MOV A, # 09h
MOV B, # 03h
MUL A, B (valoarea finală stocată în A)
SFÂRȘIT
Programul de asamblare pentru divizie utilizat cu un registru B.
Org 0000h
MOV A, # 09h
MOV B, # 03h
DIC A, B (valoarea finală stocată în A)
SFÂRȘIT

Registrele portului

Microcontrolerul 8051 este format din 4 porturi de intrare și ieșire (P0, P1, P2 și P3) sau pini 32-I / O. Fiecare pin este proiectat cu un tranzistor și registre P. configurația pinului este foarte important pentru un microcontroler care depinde de stările logice ale registrelor. Configurația pinului ca intrare dată de 1 sau ieșire 0 depinde de stările logice. Dacă logica 1 este aplicată bitului registrului P, tranzistorul de ieșire oprește pinul corespunzător care acționează ca pin de intrare.

Registrele portuare din 8051

Registrele portuare din 8051

Program de asamblare pentru comutarea LED-urilor Port0

ORG 0000h
RETURN: MOV P0, # 00h
APELĂ DEL1
MOV P0, # 0FF
APELĂ DEL1
RETUR SJMP
DEL1: MOV R2, #200
FR: DJNZ R0, # 230
DJNZ R2, DEL
DREAPTA
SFÂRȘIT

Contoare și registre

Multe microcontrolere constau dintr-unul sau mai multe cronometre și contoare . Temporizatoarele sunt folosite pentru a genera întârzieri prețioase, iar sursa pentru temporizatoare este un oscilator de cristal. Contoare sunt utilizate pentru a număra numărul de evenimente externe - de exemplu, contor obiectiv , iar sursa pentru contoare sunt impulsuri externe aplicate peste pinul contorului.

Microcontrolerul 8051 este format din două temporizatoare și contoare de 16 biți, cum ar fi temporizatorul 0 și temporizatorul 1. Ambele temporizatoare constau dintr-un registru de 16 biți în care octetul inferior este stocat în TL, iar octetul superior este stocat în TH. Temporizatorul poate fi folosit ca un contor, precum și pentru o operație de sincronizare care depinde de sursa impulsurilor de ceas către contoare.

Contoarele și temporizatoarele din microcontrolerele 8051 conțin două registre de funcții speciale: TMOD (Timer Mode Register) și TCON (Timer Control Register) , care sunt utilizate pentru activarea și configurarea cronometrelor și contoarelor.

Tipuri de registru de schimbare

Registrele de schimbare sunt un tip de circuite logice secvențiale care sunt utilizate în principal pentru stocarea datelor digitale. Registrele de schimbare sunt registre care pot fi adresate pe biți, care stochează doar un bit de date. Registrele de schimbare sunt construite cu flip-flops - un grup de flip-flop-uri conectate ca un lanț, astfel încât ieșirea dintr-un flip-flop să devină intrarea următorului flip-flop.

Toate flip-flop-urile sunt acționate de semnalele de ceas care sunt implementate de D-flip-flap. Registrele de schimbare sunt utilizate în principal pentru comunicare în serie .

Acestea sunt clasificate în 4 tipuri:

  • Serial in Serial out (SISO)
  • Serial in Parallel Out (SIPO)
  • Paralel in Serial out (PISO)
  • Paralel în Paralel Out (PIPO)
D- registru flipflop

D- registru flipflop

Acestea sunt toate tipuri diferite de registre într-un microcontroler 8051. Sperăm că v-am oferit cu succes conținut relevant cu programul adecvat pentru fiecare registru. În plus, pentru orice fel de ajutor pentru a cunoaște codarea altor câteva registre, ne puteți contacta comentând mai jos.

Credite foto: