最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

特殊功能寄存器(SFR)詳解 ——以8051單片機為例

2022-08-22 14:59 作者:矢來美羽MIUYARAI  | 我要投稿

51/52系列單片機片內(nèi)有21/26個特殊功能寄存器。特殊功能寄存器(SFR,Special Function Register),又稱專用寄存器,位于80H~FFH,但僅有21個字節(jié)(MCS-51系列)或26個字節(jié)(MCS-52子系列)作為SFR離散分布在這128個字節(jié)范圍內(nèi),每個字節(jié)對應(yīng)一個SFR。其余字節(jié)無定義,用戶不能對這些單元進行讀/寫操作。

26個SFR中,有12個的地址可被8整除,支持位尋址(bit-addressable)。

注:后 5 個帶*的寄存器與定時器/計數(shù)器 2 有關(guān),僅在 52 子系列芯片中存在。

特殊功能寄存器反映了單片機的狀態(tài),是單片機的狀態(tài)及控制字寄存器??煞譃閮深悾?/p>

  • 芯片內(nèi)部功能的控制用寄存器:運算部件寄存器A、B、PSW、堆棧指針SP、數(shù)據(jù)指針DPTR、各種定時/計數(shù)器控制、中斷控制、串行口控制等;

  • 與芯片引腳有關(guān)的寄存器:P0、P1、P2、P3,它們實際上是4個鎖存器,每個鎖存器再附加上相應(yīng)的一個輸出驅(qū)動器和一個輸入緩沖器就構(gòu)成了一個并行口。

4.1 累加器ACC

Accumulator Register,應(yīng)用最廣泛的專用寄存器。許多單操作數(shù)指令的操作數(shù)、雙操作數(shù)指令的一個操作數(shù)取自累加器。加、減、乘、除算術(shù)運算指令的結(jié)果都存放在累加器A或寄存器B中。累加器ACC的助記符是A,當(dāng)對累加器的位進行操作時,常用符號是ACC,比如累加器D0位是“ACC.0”。

?

4.2 寄存器B

B Register,用于乘除運算或作為一般寄存器。

??乘:兩個操作數(shù)一個是累加器A,另一個必須是寄存器B,結(jié)果存在A和B中;

??除:被除數(shù)是累加器A,除數(shù)是寄存器B,商存在A中,余數(shù)存在B中。

?

4.3 程序狀態(tài)字PSW

Program State Word,存放著當(dāng)前ALU的操作狀態(tài)特征,其內(nèi)部定義如下表。


4.4?堆棧及堆棧指針SP

Stack Pointer,堆棧的特點是“先進后出”,是為程序調(diào)用和中斷操作而設(shè)立的,主要是保護斷點和保護現(xiàn)場。單片機中,CPU無論是執(zhí)行子程序調(diào)用操作還是執(zhí)行中斷操作,最終都要返回,因此需預(yù)先把主程序的被中斷的地方(稱為斷點)保護起來,為正確返回做準(zhǔn)備,實現(xiàn)保護現(xiàn)場的功能。為使CPU能進行多級中斷嵌套及多重子程序調(diào)用,堆棧必須有足夠容量。

堆棧指針SP,就是棧頂?shù)拇鎯卧刂?。?dāng)堆棧無數(shù)據(jù)時,棧頂?shù)刂放c棧底地址重合。51單片機的堆棧指針SP為8位寄存器,系統(tǒng)復(fù)位后,SP初值為07H,實際應(yīng)用中通常根據(jù)需要在主程序開始處對堆棧指針SP進行初始化,一般在片內(nèi)RAM的30H~7FH區(qū)域中開辟堆棧區(qū),一般將SP設(shè)置為60H。

堆棧有向上生長型和向下生長型。MCS-51單片機的堆棧結(jié)構(gòu)屬于向上生長型,遵循“先加后壓”規(guī)則:入棧時,先SP加1,然后數(shù)據(jù)寫入棧;出棧時,先讀出數(shù)據(jù),再SP減1。

堆棧的使用方式有兩種:

??自動方式,在調(diào)用子程序或斷點時,斷點地址自動進入棧,程序返回時,斷點地址再自動彈回PC,不需要用戶干涉。

??指令方式,使用專用的堆棧操作指令進行入、出棧操作。例如保護現(xiàn)場、恢復(fù)現(xiàn)場。需要保護的數(shù)據(jù)單元量由用戶設(shè)定。

?

4.5 數(shù)據(jù)指針DPTR

Data Pointer,既可是一個16位專用寄存器(DPTR),有16位數(shù)加“1”功能;也可拆開作為兩個8位寄存器(高位字節(jié)寄存器DPH、低位字節(jié)寄存器DPL)。DPTR是繼程序計數(shù)器(PC)以外的第二個16位寄存器,主要用途是保存16位地址信息,常用于基址加變址間接寄存器尋址方式使用,尋址片外64KB的數(shù)據(jù)存儲器或程序存儲器空間。

?

4.7?端口寄存器P0~P3

專用寄存器P0~P3分別是I/O端口P0~P3的8位鎖存器,均為可位尋址寄存器。

?

4.15 定時/計數(shù)器TL0~TH1

51單片機有兩個16位定時/計數(shù)器T0和T1,52比51多一個16位定時/計數(shù)器T2。它們都是由兩個獨立的8位寄存器TH和TL組成的16位寄存器。

?

4.11 中斷允許寄存器IE

Interrupt Enable Register,字節(jié)地址為A8H。每一位對應(yīng)不同的中斷源,可設(shè)定為“允許(1)”或“禁止(0)”中斷。單片機復(fù)位后會被清0。欲使某中斷源允許中斷,設(shè)置IE對應(yīng)位的同時還必須設(shè)置IE中的最高位EA,使EA=1(CPU開放中斷)。EA相當(dāng)于中斷允許的“總開關(guān)”。

4.12 中斷優(yōu)先級寄存器IP

Interrupt Priority Register,字節(jié)地址為B8H。每一位對應(yīng)不同的中斷源,其復(fù)位清“0”會把對應(yīng)中斷源設(shè)置為低優(yōu)先級中斷;置“1”將把對應(yīng)中斷源設(shè)置為高優(yōu)先級。例如要使T0中斷的優(yōu)先級高于外部中斷請求0中斷,可將PX0清“0”、PTO置“1”。單片機復(fù)位后會被清0。


4.13 定時器工作方式寄存器TMOD

Timer Mode,D0~D3管理T0,D4~D7管理T1。


4.14 定時器控制寄存器TCON

Timer Control Register,屬于中斷標(biāo)志位寄存器。字節(jié)地址為88H,主要用來控制2個定時/計數(shù)器溢出中斷標(biāo)志及2個外部中斷INT0和INT1請求標(biāo)志。


4.19 串行口控制寄存器SCON

Serial Control Register,屬于中斷標(biāo)志位寄存器。字節(jié)地址為98H。與中斷相關(guān)是SCON的低2位,用來鎖存串行口的發(fā)送(Transmit)中斷和接收(Receive)中斷標(biāo)志。


4.20 串行數(shù)據(jù)寄存器SBUF

Serial Buffer,用于串行通信,存放發(fā)送和接收數(shù)據(jù)。邏輯上是一個寄存器,物理上是兩個寄存器:發(fā)送緩沖寄存器、接收緩沖寄存器,使用同一個邏輯地址,寫入時SBUF指向發(fā)送數(shù)據(jù)緩沖器、讀入時SBUF取自接收緩沖寄存器。

串行口對外有兩條獨立的收、發(fā)信號線:RXD和TXD,可以同時發(fā)送和接收數(shù)據(jù),實現(xiàn)全雙工傳送。例:

4.21 電源控制寄存器PCON

Power Control?Register,電源控制及波特率選擇寄存器,字節(jié)地址為87H。


特殊功能寄存器(SFR)詳解 ——以8051單片機為例的評論 (共 條)

分享到微博請遵守國家法律
阜城县| 瑞昌市| 祁门县| 庄河市| 治县。| 济南市| 丰原市| 桦甸市| 临海市| 祁东县| 盐城市| 都昌县| 万安县| 长白| 威信县| 穆棱市| 南昌县| 上犹县| 林州市| 赤峰市| 香河县| 台湾省| 峨山| 周至县| 法库县| 广西| 吐鲁番市| 湾仔区| 榕江县| 土默特右旗| 手游| 镇雄县| 文安县| 阳信县| 墨脱县| 沁水县| 武胜县| 德令哈市| 娄底市| 子长县| 海晏县|