Registre de bancs i assignació de memòria de pila al microcontrolador 8051

Proveu El Nostre Instrument Per Eliminar Problemes





La col·lecció de registres d’ús general (R0-R7) s’anomena bancs de registres, que accepten un byte de dades. El registre bancari forma part del Memòria RAM incorporada microcontroladors, i s’utilitza per emmagatzemar les instruccions del programa. Cada microcontrolador consta de diversos bancs de memòria i cada registre bancari consta d’una adreça única per reconèixer la ubicació d’emmagatzematge.

Registre de bancs el 8051

Registre de bancs el 8051

Registre de bancs el 8051



El microcontrolador 8051 consta de quatre bancs de registre, com ara Bank0, Bank1, Bank2, Bank3 que són seleccionats pel registre PSW (Program Status Word). Aquests bancs de registres estan presents a la memòria RAM interna del microcontrolador 8051 i s’utilitzen per processar les dades quan es programa el microcontrolador.


Canvi de bancs registrals



Per defecte, el microcontrolador 8051 s’alimenta amb el banc de registre 0 i, mitjançant el Word Status Program (PSW), podem canviar a altres bancs. Els dos bits de PSW s’utilitzen per canviar entre els bancs de registre. A aquests dos bits s’accedeix mitjançant les instruccions SETB i CLR dirigibles a bits.

Basant-se en les possibles combinacions de RS1 i RS0 de PSW, es modifica el banc de registre en conseqüència, és a dir, si RS1 i RS0 són 0, es selecciona el banc 0. De la mateixa manera, Bank1, 2 i 3 se seleccionen segons els valors de RS1 i RS0.

Assignació de memòria de pila en microcontrolador 8051

La pila és una àrea de memòria d'accés aleatori (RAM) assignada per contenir temporalment tots els paràmetres de les variables. La pila també s’encarrega de recordar l’ordre en què es diu una funció perquè es pugui retornar correctament. Sempre que es crida a la funció, els paràmetres i les variables locals que s’hi associen s’afegeixen a la pila (PUSH). Quan la funció torna, els paràmetres i les variables s'eliminen ('POP') de la pila. Per això, la mida de la pila d’un programa canvia contínuament mentre s’executa el programa.


El registre utilitzat per accedir a la pila s’anomena registre de punter de pila. El punter de la pila és un petit registre que s’utilitza per assenyalar la pila. Quan introduïm alguna cosa a la memòria de la pila, el punter de la pila augmenta.

Assignació de memòria de pila en microcontrolador 8051

Assignació de memòria de pila en microcontrolador 8051

Exemple

Quan s’encén un microcontrolador 8051, el valor del contingut del punter de pila és 07, per defecte, tal com es mostra a la figura anterior. Si realitzem l’operació ‘PUSH’, l’adreça del punter de la pila augmentarà i es desplaçarà a un altre registre. Per evitar aquest problema, abans d’iniciar el programa, hem d’assignar una ubicació d’adreça diferent al punter de la pila.

Operació PUSH

El 'PUSH' s'utilitza per prendre els valors de qualsevol registre i emmagatzemar-los a l'adreça inicial del punter de la pila, és a dir, 00h mitjançant l'operació 'PUSH'. I, per al següent 'PUSH', augmenta +1 i emmagatzema el valor a la següent adreça del punter de la pila, és a dir, 01h.

Funcionament PUSH de Stack

Funcionament PUSH de Stack

Mitjans d'operació PUSH (First in First out)

Exemple: WAP en llenguatge assemblador per a l'operació PUSH

0000h
MOV 08h, # 21h
MOV 09h, # 56h
PUSH 00h
PUSH 01h
FINAL

Operació POP

S’utilitza per col·locar els valors des de l’adreça màxima del punter de pila fins a l’adreça de qualsevol altre registre. Si tornem a utilitzar aquest 'POP', aleshores disminueix en 1 i el valor emmagatzemat en qualsevol registre es dóna com a 'POP'.

Operació POP en pila

Operació POP en pila

L'operació POP significa 'Últim en primer lloc'.

000H
MOV 00H, # 12H
MOV 01H, # 32H
POP 1FH
POP 0EH
FINAL

Registres del microcontrolador 8051

Si realitzem qualsevol operació, ja sigui suma o resta, aquestes operacions no es poden realitzar directament a la memòria i, per tant, es realitzen utilitzant els registres. Hi ha diferents tipus de es registra al microcontrolador 8051 .

Aquests registres es classifiquen en dos tipus segons les seves operacions:

• Registres d’ús general

• Registres de funcions especials

Registres d’ús general

Com hem comentat anteriorment en aquest article, hi ha quatre registres bancaris diferents, cada banc té 8 registres de 8 bits adreçables i només es pot accedir a un registre bancari alhora. Però, canviant el número del registre bancari al registre de la bandera, podem accedir a altres registres bancaris, que ja hem comentat anteriorment en aquest document. concepte d’interrupció el 8051 .

Registres de funcions especials

Els registres de funcions especials, inclosos l'Acumulador, el Registre B, el punter de dades, PCON, PSW, etc., estan dissenyats per a un propòsit predeterminat durant la fabricació amb l'adreça 80H a FFH, i aquesta àrea no es pot utilitzar per a l'emmagatzematge de dades o programes. Aquests registres es poden implementar mitjançant registres d’adreces de bits i bytes.

Tipus de registres de funcions especials

El 8051 consta de quatre registres de funcions especials relacionats amb l'entrada / sortida en què hi ha totalment 32 línies d'E / S. Els registres de funcions especials controlen els valors llegits des de les línies d'E / S i els registres de funcions especials que controlen el funcionament de 8051. Els registres de funcions especials auxiliars no estan connectats directament al 8051, però, de fet, sense aquests registres, el 8051 no pot funcionar correctament. A continuació s’explica el conjunt de registres de 8051.

Registre conjunt de microcontroladors 8051

Establir un valor constant fix al registre s’anomena conjunt de registres. Els valors s’estableixen als registres mitjançant el conjunt d’instruccions. El 8051 segueix les instruccions del CISC amb l’arquitectura ‘Harvard’. El CISC significa computació complexa d’instruccions . Els diferents tipus d’instruccions del microcontrolador 8051 inclouen:

  1. Instruccions aritmètiques
  2. Instruccions condicionals
  3. Instruccions per trucar i saltar
  4. Instruccions de bucle
  5. Instruccions lògiques
  6. Instruccions de lingots

1. Instruccions aritmètiques

Les instruccions aritmètiques realitzen diverses operacions bàsiques com ara:

  • Addició
  • Resta
  • Multiplicació
  • Divisió
Instruccions aritmètiques al microcontrolador 8051

Instruccions aritmètiques al microcontrolador 8051

Exemples:

a. Addició:

Org 0000h
MOV R0, # 03H // moure el valor 3 és registrar R0 //
MOV A, # 05H // mou el valor 5 a l’acumulador A //
Afegiu A, 00H // valor de l’acumulador ‘5’ amb 0 i emmagatzemat a l’acumulador //
FINAL

b. Resta:

Org 0000h
MOV R0, # 03H // moure el valor 3 és registrar R0 //
MOV A, # 05H // mou el valor 5 a l’acumulador A //
SUBB A, 03H // A = 5-3 El valor final és 2 emmagatzemat a l'Acumulador A //
FINAL

C. Multiplicació:

Org 0000h
MOV R0, # 03H // moure el valor 3 és registrar R0 //
MOV A, # 05H // mou el valor 5 a l’acumulador A //
MUL A, 03H // A = 5 * 3 El valor final és 15, emmagatzemat a l'Acumulador A //
FINAL

D. Divisió:

Org 0000h
MOV R0, # 03H // moure el valor 3 és registrar R0 //
MOV A, # 15H // mou el valor 5 a l’acumulador A //
DIV A, 03H // A = 15/3 El valor final és 5 emmagatzemat a l’Acumulador A //
FINAL

2. Instruccions condicionals

La CPU pot executar les instruccions basades en la condició comprovant l'estat d'un bit o l'estat de byte que s'anomena instruccions condicionals, com ara:

Per comprovar l'estat d'un bit al registre dirigible a bits

JB- salta si està a sota

JNB- salt si no és superior

Per comprovar l'estat del bit de transport

JC- salta si porta bandera

JNC-salt si no es porta

Per comprovar l'estat de l'acumulador, 0 o 1

JZ- salta si marca zero

JNZ- salt si no zero

Tot es tracta del registre establert al microcontrolador 8051 i de la seva assignació de memòria de pila. Esperem que aquest article us hagi proporcionat algunes idees essencials sobre el tema juntament amb alguns programes molt interessants que acompanyen cada tema. També ens podeu escriure per obtenir ajuda a codificació del microcontrolador i també sobre el darrers projectes sobre microcontrolador .