Verschillende soorten registers die worden gebruikt in 8051 Microcontroller

Probeer Ons Instrument Voor Het Oplossen Van Problemen





Het register is het belangrijkste onderdeel van het microcontrollers en processors die een snelle manier bieden om gegevens te verzamelen en op te slaan. Als we gegevens willen manipuleren met een controller of processor door optellen, aftrekken, enzovoort, kunnen we dat niet rechtstreeks in het geheugen doen, maar het heeft registers nodig om de gegevens te verwerken en op te slaan. Microcontrollers bevatten verschillende soorten registers die kunnen worden geclassificeerd op basis van hun inhoud of instructies die erin werken.

Verschillende soorten registers in de 8051-microcontroller

Registreren




Een register is een kleine plaats in een CPU die kleine hoeveelheden gegevens kan opslaan die worden gebruikt voor het uitvoeren van verschillende bewerkingen, zoals optellen en vermenigvuldigen, en de resulterende gegevens in het hoofdgeheugen laadt. Registers bevatten het adres van de geheugenlocatie waar de gegevens moeten worden opgeslagen. De grootte van het register is erg belangrijk voor moderne controllers ​Voor een 64-bits register probeert een CPU bijvoorbeeld twee 32-bits getallen toe te voegen en geeft een 64-bits resultaat.

Soorten registers

De 8051-microcontroller bevat hoofdzakelijk twee soorten registers:



  • Registers voor algemeen gebruik (byte-adresseerbare registers)
  • Registers voor speciale functies (Bit-adresseerbare registers)
8051 RAM-geheugen

8051 RAM-geheugen

De 8051 microcontroller bestaat uit 256 bytes RAM, dat op twee manieren is verdeeld, zoals 128 bytes voor algemeen gebruik en 128 bytes voor geheugen voor speciale functieregisters (SFR). Het geheugen dat voor algemene doeleinden wordt gebruikt, wordt RAM genoemd en het geheugen dat voor SFR wordt gebruikt, bevat alle aan randapparatuur gerelateerde registers zoals Accumulator, 'B'-register, Timers of Tellers en interruptgerelateerde registers.

Registers voor algemeen gebruik

Geheugen voor algemeen gebruik

Geheugen voor algemeen gebruik

Het geheugen voor algemene doeleinden wordt het RAM van de 8051-microcontrollers genoemd, dat is onderverdeeld in 3 gebieden, zoals banken, bitadresseerbaar gebied en kladblok. De banken bevatten verschillende algemene registers, zoals R0-R7, en al dergelijke registers zijn byte-adresseerbare registers die slechts 1 byte aan gegevens opslaan of verwijderen.


Banken en registers

De B0, B1, B2 en B3 staan ​​voor banken, en elke bank bevat acht registers voor algemene doeleinden, variërend van ‘R0’ tot ‘R7’. Al deze registers zijn byte-adresseerbaar. Gegevensoverdracht tussen algemene registers naar algemene registers is niet mogelijk. Deze banken worden geselecteerd door het Program Status Word (PSW) register.

Registers voor algemeen gebruik

Registers voor algemeen gebruik

PSW (Program Status Word) Registreren

Het PSW-register is een bit- en byte-adresseerbaar register. Dit register geeft de status weer van de bewerking die in de controller wordt uitgevoerd. Het PSW-register bepaalt de bankselectie door een RS1 en RS0, zoals hieronder weergegeven. Het fysieke adres van de PSW begint bij D0h en de individuele bits worden benaderd met D0h tot en met D7h.

PSW registreert

PSW registreert

Draag vlag (C) : Het adres van de Carry-vlag is D7. Deze carry-vlag wordt beïnvloed wanneer de bit wordt gegenereerd vanaf de 7e positie.
Wanneer C = 0 worden reset uitgevoerd
C = 1 draagsets

Draag vlag

Draag vlag

Hulpvlag (AC) : Het adres van de extra carry is D5. Deze extra carry wordt beïnvloed wanneer een bit wordt gegenereerd van de 3e naar de 4e positie.
AC = 0 hulp is gereset
AC = 1 hulp is ingesteld

Extra Carry (AC)

Extra Carry (AC)

Overloopvlag (OV) : Het adres van de overloopvlag is D2. Wanneer een bit wordt gegenereerd van de 6e naar de 7e positie, heeft dit invloed op de overloopvlag.

OV = 0 overloopvlag wordt gereset
OV = 1 overloopvlagensets

Overloopvlag

Overloopvlag

Pariteitsvlag (P) : Het adres van de pariteitsvlag is D0. Als het resultaat 1 is tijdens het uitvoeren van rekenkundige bewerkingen, wordt de pariteitsvlag gezet, anders wordt gereset.
RS1 en RS0
De RS1 en RS0, de bits in het PSW-register, worden gebruikt om verschillende geheugenlocaties (bank0 tot bank4) in het RAM te selecteren.

Bank selectie registers

Bank selectie registers

Het volgende is een voorbeeld van het gebruik van dit register.

Het volgende voorbeeld toont de toevoeging van twee getallen en vervolgens de opslag van de eindwaarde in het Bank1-register met behulp van een programma op merkniveau.

Org 0000h
MOV PSW, # 00h
MOV A, 15
VOEG A, 20
MOV 00h, A
EINDE

Assembly programma om 6 natuurlijke getallen in bank0 register R0-R5 te verplaatsen

Org 0000h (aangifte startadressen)
MOV PSW, # 00h (open het bank0-geheugen)
MOV r0, # 00h (startadres van bank0-geheugen)
MOV r1, # 01h
MOV r2, # 02h
MOV r2, # 03h
MOV r3, # 04h
MOV r4, # 05h
EINDE

Assemblageprogramma om 6 natuurlijke getallen in bank1 register R0-R7 te verplaatsen

Org 0000h (aangifte startadressen)
MOV PSW, # 08h (open het bank1-geheugen)
MOV r0, 00h (waarde verzonden naar het geheugen van bank1)
MOV r1, 02h
MOV r2, 02h
MOV r2, 03 uur
MOV r3, 04 uur
MOV r4, 05 uur
MOV r5, 06 uur
MOV r6, 07 uur
MOV r7, 08 uur
EINDE

Speciale functieregisters (SFR)

Registers voor speciale functies zijn bovenste RAM in de 8051 microcontrollers ​Deze registers bevatten alle perifere registers zoals P0, P1, P2, P3, timers of tellers, seriële poort en interrupts-gerelateerde registers. Het SFR-geheugenadres begint van 80h tot FFh. Het SFR-register wordt geïmplementeerd door bitadresregisters en byte-adresregisters.

Speciale functieregisters (SFR)


Speciale functieregisters (SFR)

De accumulator, B-register, Po, P1, P2, P3, IE-registers zijn bit-adresseerbare registers, alle overige zijn byte-adresseerbare registers.

Accumulator

De accumulator die ook bekend staat als ACC of A is zowel een bit- als een byte-adresseerbaar register door een adres van de accumulator. Als je een bit-adresseerbaar register wilt gebruiken, kun je een enkele bit (E0) van het register gebruiken en kun je een 8-bit van de accumulator gebruiken als een byte-adresseerbaar register. De accumulator bevat de resultaten van de meeste rekenkundige en logische bewerkingen.

Accumulatorregister

Accumulatorregister

Het montageprogramma voor aftrekken gebruikt met een accumulator

Org 0000h
MOV R0, # 09h
MOV A, # 03h (1 byte gegevens)
SUBB A, 01h (1 byte gegevens)
EINDE

B-Register

Het B-register is een bit- en byte-adresseerbaar register. U hebt toegang tot 1 bit of alle 8 bits via een fysiek adres F0h. Stel dat we toegang willen krijgen tot bit 1, we moeten f1 gebruiken. Het B-register wordt alleen gebruikt voor vermenigvuldigings- en deelbewerkingen.

B-Register

B-Register

Het montageprogramma voor vermenigvuldiging gebruikt met een B-register

Org 0000h
MOV A, # 09h
MOV B, # 03h
MUL A, B (Eindwaarde opgeslagen in A)
EINDE
Het montageprogramma voor divisie gebruikt met een B-register
Org 0000h
MOV A, # 09h
MOV B, # 03h
DIC A, B (eindwaarde opgeslagen in A)
EINDE

Havenregisters

De 8051-microcontroller bestaat uit 4 invoer- en uitvoerpoorten (P0, P1, P2 en P3) of 32-I / O-pinnen. Elke pin is ontworpen met een transistor en P registreert. De pin configuratie is erg belangrijk voor een microcontroller die afhankelijk is van de logische toestanden van de registers. De pinconfiguratie als de ingang gegeven door 1 of uitgang 0 hangt af van de logische toestanden. Als logica 1 wordt toegepast op de bit van het P-register, schakelt de uitgangstransistor de juiste pin uit die als ingangspin fungeert.

Havenregisters van 8051

Havenregisters van 8051

Montageprogramma om LED's van Port0 te schakelen

ORG 0000 uur
RETURN: MOV P0, # 00h
ACALL DEL1
MOV P0, # 0FF
ACALL DEL1
SJMP RETURN
DEL1: MOV R2, # 200
FR: DJNZ R0, # 230
DJNZ R2, DEL
RECHTSAF
EINDE

Tellers en registers

Veel microcontrollers bestaan ​​uit een of meer timers en tellers ​De timers worden gebruikt om kostbare tijdsvertragingen te genereren en de bron voor de timers is een kristaloscillator. De tellers worden gebruikt om het aantal externe gebeurtenissen te tellen - bijvoorbeeld de objectieve teller , en de bron voor tellers zijn externe pulsen die over de tegenpen worden aangelegd.

De 8051 microcontroller bestaat uit twee 16-bit timers en tellers zoals timer 0 en timer 1. Beide timers bestaan ​​uit een 16-bit register waarin de onderste byte wordt opgeslagen in de TL en de hogere byte in de TH. De timer kan zowel als teller worden gebruikt als voor timingoperaties die afhankelijk zijn van de bron van de klokpulsen naar de tellers.

De tellers en timers in 8051-microcontrollers bevatten twee speciale functieregisters: TMOD (Timer Mode Register) en TCON (Timer Control Register) , die worden gebruikt voor het activeren en configureren van timers en tellers.

Soorten ploegregister

Schuifregisters zijn een soort sequentiële logische schakelingen die voornamelijk worden gebruikt voor de opslag van digitale gegevens. De schuifregisters zijn bitadresseerbare registers die slechts één bit aan gegevens opslaan. De schuifregisters zijn opgebouwd uit flip-flops - een groep flip-flops die als een ketting zijn verbonden, zodat de output van de ene flip-flop de input wordt van de volgende flip-flop.

Alle flip-flops worden aangedreven door de kloksignalen die worden geïmplementeerd door de D-flip-flap. De schuifregisters worden voornamelijk gebruikt voor seriële communicatie

Deze zijn ingedeeld in 4 typen:

  • Serie in Serie uit (SISO)
  • Serieel in parallel uit (SIPO)
  • Parallel in serieel uit (PISO)
  • Parallel in parallel uit (PIPO)
D-flipflop register

D-flipflop register

Dit zijn allemaal verschillende soorten registers in een 8051-microcontroller. We hopen dat we u met succes relevante inhoud hebben gegeven met het juiste programma voor elk register. Verder kunt u voor enige vorm van hulp bij het kennen van de codering van verschillende andere registers contact met ons opnemen door hieronder te reageren.

Fotocredits: