0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

8051單片機的寄存器是什么樣的

科技觀察員 ? 來源:英銳恩 ? 作者:英銳恩 ? 2023-07-07 12:24 ? 次閱讀

CPU中使用寄存器來臨時存儲信息,這些信息可以是要處理的數(shù)據(jù),也可以是指向要獲取的數(shù)據(jù)的地址。在8051單片機中,有一種數(shù)據(jù)類型是8位,從MSB(最高有效位)D7到LSB(最低有效位)D0。對于8 位數(shù)據(jù)類型,任何大于 8 位的數(shù)據(jù)類型都必須在處理之前分成 8 位塊。

8051中使用最廣泛的寄存器是 A(累加器)、B、R0-R7、DPTR(數(shù)據(jù)指針)和 PC(程序計數(shù)器)。所有這些寄存器都是 8 位的,除了 DPTR和 PC。

一、8051中的存儲寄存器

我們將在這里討論以下類型的存儲寄存器:

1.累加器;

2.寄存器;

3.B寄存器;

4.數(shù)據(jù)指針 (DPTR);

5.程序計數(shù)器 (PC);

6.堆棧指針 (SP)。

(1)累加器

累加器寄存器 A

用于所有算術(shù)和邏輯運算。如果累加器不存在,則每次計算(加法、乘法、移位等)的每個結(jié)果都將存儲到主存儲器中。訪問主存儲器比訪問諸如累加器之類的寄存器慢,因為用于大主存儲器的技術(shù)比用于寄存器的技術(shù)慢(但更便宜)。

(2)“R”寄存器

“R”寄存器是一組八個寄存器,即 R0、R1 到 R7。這些寄存器在許多操作中用作輔助或臨時存儲寄存器??紤] 10 和 20 之和的示例。將變量 10

存儲在累加器中,并將另一個變量 20 存儲在寄存器 R4 中。要處理加法操作,請執(zhí)行以下命令:

ADD A,R4

執(zhí)行此指令后,累加器將包含值

30。因此“R”寄存器是非常重要的輔助或幫助寄存器。如果不是這些“R”寄存器,單獨的累加器不會很有用?!癛”寄存器用于臨時存儲值。

讓我們再舉一個例子。我們將 R1 和 R2 的值相加,然后從結(jié)果中減去 R3 和 R4 的值。

MOV A,R3 ;Move the value of R3 into the accumulator

ADD A,R4 ;Add the value of R4

MOV R5,A ;Store the resulting value temporarily in R5

MOV A,R1 ;Move the value of R1 into the accumulator

ADD A,R2 ;Add the value of R2

SUBB A,R5 ;Subtract the value of R5 (which now contains R3 + R4)

如您所見,我們使用 R5 來臨時保存 R3 和 R4 的總和。當然,這不是計算 (R1 + R2) – (R3 + R4)

的最有效方法,但它確實說明了使用“R”寄存器作為臨時存儲值的方法。

8bit_registers.jpg

(3)“B”寄存器

“B”寄存器與累加器非常相似,因為它可以保存一個 8 位(1 字節(jié))的值?!癇”寄存器僅由兩條 8051指令使用:MUL AB和DIV

AB。為了快速輕松地將 A 乘以或除以另一個數(shù)字,您可以將另一個數(shù)字存儲在“B”中并使用這兩個指令。除了使用 MUL 和 DIV

指令外,“B”寄存器通常用作另一個臨時存儲寄存器,很像第九個 R 寄存器。

(4)數(shù)據(jù)指針

數(shù)據(jù)指針 (DPTR) 是 8051唯一的用戶可訪問的 16 位(2 字節(jié))寄存器。累加器、R0–R7 寄存器和 B 寄存器是 1

字節(jié)值寄存器。DPTR 用于指向數(shù)據(jù)。8051使用它來使用 DPTR 指示的地址訪問外部存儲器。DPTR 是唯一可用的 16 位寄存器,通常用于存儲 2

字節(jié)值。

(5)程序計數(shù)器

程序計數(shù)器 (PC) 是一個 2 字節(jié)的地址,它告訴 8051可以在內(nèi)存中找到下一條要執(zhí)行的指令。PC 在 8051初始化時從 0000h

開始,每次執(zhí)行指令后遞增。PC 并不總是加 1。有些指令可能需要 2 或 3 個字節(jié);在這種情況下,PC 將增加 2 或 3。

分支、跳轉(zhuǎn)和中斷操作將下一個順序位置以外的地址加載到程序計數(shù)器中。激活上電復位將導致寄存器中的所有值丟失。這意味著復位時 PC 的值為 0,迫使

CPU 從 ROM 位置 0000 獲取第一個操作碼。這意味著我們必須將上行代碼的第一個字節(jié)放在 ROM 位置 0000 中,因為這是 CPU

希望找到的位置第一條指令。

(6)堆棧指針(SP)

堆棧指針與除 DPTR 和 PC 之外的所有寄存器一樣,可以保存 8 位(1

字節(jié))值。堆棧指針告訴從堆棧中刪除下一個值的位置。當一個值被壓入堆棧時,SP 的值會增加,然后該值被存儲在結(jié)果內(nèi)存位置。當一個值從堆棧中彈出時,該值從SP

指示的內(nèi)存位置返回,然后SP 的值遞減。

這個操作順序很重要。8051初始化時,SP 會被初始化為 07h。如果同時將一個值壓入堆棧,則該值將存儲在內(nèi)部 RAM 地址 08h 中,因為

8051會先將 SP 的值(從 07h 到 08h)遞增,然后將壓入的值存儲在該內(nèi)存中地址 (08h)。8051直接通過 6 條指令修改

SP:PUSH、POP、ACALL、LCALL、RET 和 RETI。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6050

    文章

    44702

    瀏覽量

    641299
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5392

    瀏覽量

    121930
  • 8051單片機
    +關(guān)注

    關(guān)注

    5

    文章

    153

    瀏覽量

    25662
收藏 人收藏

    評論

    相關(guān)推薦

    51單片機寄存器如何賦值

    單片機在電學里面,屬于很簡單的一種器件,外表看,就是一個芯片,長著很多的腳。內(nèi)部,就是一堆寄存器。不同的單片機,外部表現(xiàn)就是形狀和引腳數(shù)量和引腳名稱可能不一,內(nèi)部,就是
    的頭像 發(fā)表于 12-31 08:32 ?2.4w次閱讀
    51<b class='flag-5'>單片機</b>的<b class='flag-5'>寄存器</b>如何賦值

    單片機教程七:單片機的特殊功能寄存器

    單片機教程七:單片機的特殊功能寄存器 通過前面的學習,我們已知單片機的內(nèi)部有ROM、有RAM、有并行I/O口,那么,除了這些東西之外,單片機
    發(fā)表于 05-15 23:01 ?2399次閱讀
    <b class='flag-5'>單片機</b>教程七:<b class='flag-5'>單片機</b>的特殊功能<b class='flag-5'>寄存器</b>

    51單片機匯編語言教程_單片機的特殊功能寄存器

    51單片機匯編語言教程:7課單片機的特殊功能寄存器
    發(fā)表于 01-19 15:26 ?0次下載

    51單片機寄存器說明

    本資料主要對51單片機常用寄存器配置作了說明
    發(fā)表于 11-18 17:59 ?15次下載

    8051單片機有哪些復位方法

    問題:8051單片機復位后,各寄存器的初始狀態(tài)如何?復位方法有幾種? 解答:8051單片機復位后機器的初始狀態(tài),即各
    發(fā)表于 12-19 15:09 ?1.2w次閱讀

    如何計算給單片機寄存器賦的值

    不同的單片機,外部表現(xiàn)就是形狀和引腳數(shù)量和引腳名稱可能不一,內(nèi)部,就是寄存器名稱不一。
    的頭像 發(fā)表于 02-13 15:59 ?4995次閱讀
    如何計算給<b class='flag-5'>單片機</b><b class='flag-5'>寄存器</b>賦的值

    51單片機經(jīng)常使用的寄存器功能總結(jié)

    本文檔的主要內(nèi)容詳細介紹的是51單片機經(jīng)常使用的寄存器功能總結(jié)。
    發(fā)表于 08-29 17:29 ?12次下載
    51<b class='flag-5'>單片機</b>經(jīng)常使用的<b class='flag-5'>寄存器</b>功能總結(jié)

    51單片機的一些特殊寄存器資料說明

    本文檔的主要內(nèi)容詳細介紹的是51單片機的一些特殊寄存器資料說明。包括了:中斷使能寄存器,中斷優(yōu)先級寄存器,電源控制PCON,PSW處理狀態(tài)
    發(fā)表于 07-26 17:36 ?2次下載
    51<b class='flag-5'>單片機</b>的一些特殊<b class='flag-5'>寄存器</b>資料說明

    如何寫單片機寄存器,這篇文章帶你入門。

    單片機在電學里面,屬于很簡單的一種器件,外表看,就是一個芯片,長著很多的腳。內(nèi)部,就是一堆寄存器。不同的單片機,外部表現(xiàn)就是形狀和引腳數(shù)量和引腳名稱可能不一,內(nèi)部,就是...
    發(fā)表于 11-14 17:06 ?0次下載
    如何寫<b class='flag-5'>單片機</b>的<b class='flag-5'>寄存器</b>,這篇文章帶你入門。

    MSP430單片機寄存器

    電子發(fā)燒友網(wǎng)站提供《MSP430單片機寄存器.pdf》資料免費下載
    發(fā)表于 11-19 15:36 ?3次下載
    MSP430<b class='flag-5'>單片機</b><b class='flag-5'>寄存器</b>

    32單片機 C語言 寄存器(四)

    32單片機C語言相關(guān)知識以及寄存器地址名稱映射分析
    發(fā)表于 11-29 10:06 ?12次下載
    32<b class='flag-5'>單片機</b> C語言 <b class='flag-5'>寄存器</b>(四)

    單片機定時寄存器

    標準的 51 單片機內(nèi)部有 T0 和 T1 這兩個定時,T 就是 Timer 的縮寫,現(xiàn)在很多 51 系列單片機還會增加額外的定時,在這里我們先講定時
    發(fā)表于 02-10 12:10 ?1次下載
    <b class='flag-5'>單片機</b>定時<b class='flag-5'>器</b>的<b class='flag-5'>寄存器</b>

    單片機寄存器和存儲哪個好

    單片機寄存器和存儲哪個好 單片機的運用在生活中是很常見的,隨著科技的發(fā)展,單片機更新速度和發(fā)展速度也非常快。對于
    發(fā)表于 03-21 15:18 ?749次閱讀

    單片機寄存器有哪些 單片機寄存器怎么理解 寄存器單片機的關(guān)系

    單片機寄存器是一種特殊的存儲器件,用于存儲和處理程序中的數(shù)據(jù)和指令。可以將單片機寄存器看作是CPU內(nèi)部的工作區(qū)域,類似于人的大腦,用于暫時存儲和處理當前的任務和信息。
    發(fā)表于 04-01 15:47 ?6604次閱讀

    單片機工作寄存器作用 單片機常用專用寄存器

    除了通用寄存器(如累加、通用寄存器等),單片機中還會有特定功能的寄存器,如定時
    的頭像 發(fā)表于 04-08 14:46 ?7883次閱讀