天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

8051單片機的寄存器

更新時間: 2021-08-28
閱讀量:12465

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

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

一、8051中的存儲寄存器

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

1.累加器;
2.寄存器;
3.B寄存器;
4.數據指針 (DPTR);
5.程序計數器 (PC);
6.堆棧指針 (SP)。

(1)累加器

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

(2)“R”寄存器

“R”寄存器是一組八個寄存器,即 R0、R1 到 R7。這些寄存器在許多操作中用作輔助或臨時存儲寄存器。考慮 10 和 20 之和的示例。將變量 10 存儲在累加器中,并將另一個變量 20 存儲在寄存器 R4 中。要處理加法操作,請執行以下命令:

ADD A,R4

執行此指令后,累加器將包含值 30。因此“R”寄存器是非常重要的輔助或幫助寄存器。如果不是這些“R”寄存器,單獨的累加器不會很有用。“R”寄存器用于臨時存儲值。

讓我們再舉一個例子。我們將 R1 和 R2 的值相加,然后從結果中減去 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 字節)的值。“B”寄存器僅由兩條 8051指令使用:MUL AB和DIV AB。為了快速輕松地將 A 乘以或除以另一個數字,您可以將另一個數字存儲在“B”中并使用這兩個指令。除了使用 MUL 和 DIV 指令外,“B”寄存器通常用作另一個臨時存儲寄存器,很像第九個 R 寄存器。

(4)數據指針

數據指針 (DPTR) 是 8051唯一的用戶可訪問的 16 位(2 字節)寄存器。累加器、R0–R7 寄存器和 B 寄存器是 1 字節值寄存器。DPTR 用于指向數據。8051使用它來使用 DPTR 指示的地址訪問外部存儲器。DPTR 是唯一可用的 16 位寄存器,通常用于存儲 2 字節值。

(5)程序計數器

程序計數器 (PC) 是一個 2 字節的地址,它告訴 8051可以在內存中找到下一條要執行的指令。PC 在 8051初始化時從 0000h 開始,每次執行指令后遞增。PC 并不總是加 1。有些指令可能需要 2 或 3 個字節;在這種情況下,PC 將增加 2 或 3。

分支、跳轉和中斷操作將下一個順序位置以外的地址加載到程序計數器中。激活上電復位將導致寄存器中的所有值丟失。這意味著復位時 PC 的值為 0,迫使 CPU 從 ROM 位置 0000 獲取第一個操作碼。這意味著我們必須將上行代碼的第一個字節放在 ROM 位置 0000 中,因為這是 CPU 希望找到的位置第一條指令。

(6)堆棧指針(SP)

堆棧指針與除 DPTR 和 PC 之外的所有寄存器一樣,可以保存 8 位(1 字節)值。堆棧指針告訴從堆棧中刪除下一個值的位置。當一個值被壓入堆棧時,SP 的值會增加,然后該值被存儲在結果內存位置。當一個值從堆棧中彈出時,該值從SP 指示的內存位置返回,然后SP 的值遞減。

這個操作順序很重要。8051初始化時,SP 會被初始化為 07h。如果同時將一個值壓入堆棧,則該值將存儲在內部 RAM 地址 08h 中,因為 8051會先將 SP 的值(從 07h 到 08h)遞增,然后將壓入的值存儲在該內存中地址 (08h)。8051直接通過 6 條指令修改 SP:PUSH、POP、ACALL、LCALL、RET 和 RETI。

以上就是英銳恩單片機開發工程師分享的8051單片機的寄存器。英銳恩專注單片機應用方案設計與開發,提供8位單片機、16位單片機、32位單片機。

联系我们: 秦皇岛市| 阿克陶县| 江达县| 南川市| 阜新| 南康市| 米易县| 太和县| 拉萨市| 光泽县| 栾川县| 庄河市| 黄大仙区| 涪陵区| 彭阳县| 安岳县| 东乡族自治县| 洛隆县| 门头沟区| 且末县| 德惠市| 堆龙德庆县| 嘉黎县| 正宁县| 富平县| 丰顺县| 汕头市| 改则县| 富阳市| 文昌市| 百色市| 邢台市| 汝南县| 瓦房店市| 临汾市| 芒康县| 巴马| 怀柔区| 龙岩市| 惠安县| 滦平县|