色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

          8051單片機(jī)特殊功能存儲器SFR基礎(chǔ)詳解

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

          共有21個專用寄存器,現(xiàn)把其中部分寄存器簡單介紹如下:

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

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

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

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

          8051單片機(jī)特殊功能存儲器SFR基礎(chǔ)詳解

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

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

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

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

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

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

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

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

          P(PSW.0)——奇偶標(biāo)志位。表明累加器A中內(nèi)容的奇偶性。如果A中有奇數(shù)個“1”,則P置“1”,否則置“0”。凡是改變累加器A中內(nèi)容的指令均會影響P標(biāo)志位。此標(biāo)志位對串行通信中的數(shù)據(jù)傳輸有重要的意義。在串行通信中常采用奇偶校驗(yàn)的辦法來校驗(yàn)數(shù)據(jù)傳輸?shù)目煽啃浴?/P>

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

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

          對專用寄存器的字節(jié)尋址問題作如下幾點(diǎn)說明:

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

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

          (3) 對專用寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器。

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


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


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


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉