<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 8051單片機特殊功能存儲器SFR基礎詳解

8051單片機特殊功能存儲器SFR基礎詳解

作者: 時(shí)間:2013-05-08 來(lái)源:網(wǎng)絡(luò ) 收藏

共有21個(gè)專(zhuān)用寄存器,現把其中部分寄存器簡(jiǎn)單介紹如下:

程序計數器(PC—Program Counter)。在實(shí)訓中,我們已經(jīng)知道PC是一個(gè)16位的計數器,它的作用是控制程序的執行順序。其內容為將要執行指令的地址,尋址范圍達64 KB。PC有自動(dòng)加1功能,從而實(shí)現程序的順序執行。PC沒(méi)有地址,是不可尋址的,因此用戶(hù)無(wú)法對它進(jìn)行讀寫(xiě),但可以通過(guò)轉移、調用、返回等指令改變其內容,以實(shí)現程序的轉移。因地址不在(專(zhuān)用寄存器)之內,一般不計作專(zhuān)用寄存器。

累加器(ACC—Accumulator)。累加器為8位寄存器,是最常用的專(zhuān)用寄存器,功能較多,地位重要。它既可用于存放操作數,也可用來(lái)存放運算的中間結果。MCS-51中大部分單操作數指令的操作數就取自累加器,許多雙操作數指令中的一個(gè)操作數也取自累加器。

B寄存器。B寄存器是一個(gè)8位寄存器,主要用于乘除運算。乘法運算時(shí),B存乘數。乘法操作后,乘積的高8位存于B中,除法運算時(shí),B存除數。除法操作后,余數存于B中。此外,B寄存器也可作為一般數據寄存器使用。

程序狀態(tài)字(PSW—Program Status Word)。程序狀態(tài)字是一個(gè)8位寄存器,用于存放程序運行中的各種狀態(tài)信息。其中有些位的狀態(tài)是根據程序執行結果,由硬件自動(dòng)設置的,而有些位的狀態(tài)則使用軟件方法設定。PSW的位狀態(tài)可以用專(zhuān)門(mén)指令進(jìn)行測試,也可以用指令讀出。一些條件轉移指令將根據PSW有些位的狀態(tài),進(jìn)行程序轉移。PSW的各位定義如下:

8051單片機特殊功能存儲器SFR基礎詳解

除PSW.1位保留未用外,其余各位的定義及使用如下:

CY(PSW.7)——進(jìn)位標志位。CY是PSW中最常用的標志位。其功能有二:一是存放算術(shù)運算的進(jìn)位標志,在進(jìn)行加或減運算時(shí),如果操作結果的最高位有進(jìn)位或借位時(shí),CY由硬件置“1”,否則清“0”;二是在位操作中,作累加位使用。位傳送、位與位或等位操作,操作位之一固定是進(jìn)位標志位。

AC(PSW.6)——輔助進(jìn)位標志位。在進(jìn)行加減運算中,當低4位向高4位進(jìn)位或借位時(shí),AC由硬件置“1”,否則AC位被清“0”。在BCD碼調整中也要用到AC位狀態(tài)。

F0(PSW.5)——用戶(hù)標志位。這是一個(gè)供用戶(hù)定義的標志位,需要利用軟件方法置位或復位,用以控制程序的轉向。

RS1和RS0(PSW.4,PSW.3)——寄存器組選擇位。它們被用于選擇CPU當前使用的通用寄存器組。通用寄存器共有4組,其對應關(guān)系如下:

00:0組 01:1組 10:2組 11:3組

這兩個(gè)選擇位的狀態(tài)是由軟件設置的,被選中的寄存器組即為當前通用寄存器組。但當上電或復位后,RS1 RS0=00。

OV(PSW.2)——溢出標志位。在帶符號數加減運算中,OV=1表示加減運算超出了累加器A所能表示的符號數有效范圍(-128 ~ +127),即產(chǎn)生了溢出,因此運算結果是錯誤的,否則,OV=0表示運算正確,即無(wú)溢出產(chǎn)生。

P(PSW.0)——奇偶標志位。表明累加器A中內容的奇偶性。如果A中有奇數個(gè)“1”,則P置“1”,否則置“0”。凡是改變累加器A中內容的指令均會(huì )影響P標志位。此標志位對串行通信中的數據傳輸有重要的意義。在串行通信中常采用奇偶校驗的辦法來(lái)校驗數據傳輸的可靠性。

數據指針(DPTR)。數據指針為16位寄存器。編程時(shí),DPTR既可以按16位寄存器使用,也可以按兩個(gè)8位寄存器分開(kāi)使用,即:DPH DPTR高位字節,DPL DPTR低位字節。DPTR通常在訪(fǎng)問(wèn)外部數據存儲器時(shí)作地址指針使用。由于外部數據存儲器的尋址范圍為64 KB,故把DPTR設計為16位。

堆棧指針(SP—Stack Pointer)。堆棧是一個(gè)特殊的存儲區,用來(lái)暫存數據和地址,它是按“先進(jìn)后出”的原則存取數據的。堆棧共有兩種操作:進(jìn)棧和出棧。由于MCS-51單片機的堆棧設在內部RAM中,因此SP是一個(gè)8位寄存器。系統復位后,SP的內容為07H,從而復位后堆棧實(shí)際上是從08H單元開(kāi)始的。但08H~1FH單元分別屬于工作寄存器1~3區,如程序要用到這些區,最好把SP值改為1FH或更大的值。

對專(zhuān)用寄存器的字節尋址問(wèn)題作如下幾點(diǎn)說(shuō)明:

(1)21個(gè)可字節尋址的專(zhuān)用寄存器是不連續地分散在內部RAM高128單元之中,盡管還余有許多空閑地址,但用戶(hù)并不能使用。

(2) 程序計數器PC不占據RAM單元,它在物理上是獨立的,因此是不可尋址的寄存器。

(3) 對專(zhuān)用寄存器只能使用直接尋址方式,書(shū)寫(xiě)時(shí)既可使用寄存器符號,也可使用寄存器。

51單片機相關(guān)文章:51單片機教程


存儲器相關(guān)文章:存儲器原理


塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>