常用特殊功能寄存器的功能總結(jié)
特殊功能寄存器是80C51單片機(jī)中各功能部件對應(yīng)的寄存器,用于存放相應(yīng)功能部件的控制命令,狀態(tài)或數(shù)據(jù)。
它是80C51單片機(jī)中最具有特色的部分,幾乎所有80C51系列功能的增加和擴(kuò)展都是通過增加特殊功能寄存器來達(dá)到目的的。英文縮寫為SFR,是Special Function Register(特殊功能寄存器)的縮寫。
SFR也是一種擴(kuò)充數(shù)據(jù)類型,占用一個(gè)內(nèi)存單元,值域?yàn)?~255。利用它可以訪問51單片機(jī)內(nèi)部的所有特殊功能寄存器。如用sfr P1=0x90這一句定P1為P1端口在片內(nèi)的寄存器,在后面的語句中我們可以用P1=255(對P1端口的所有引腳置高電平)之類的語句來操作特殊功能寄存器。
SFR的地址空間為80H~FFH,但是僅有21個(gè)(80C51子系列)或26個(gè)(80C52子系列)字節(jié)作為特殊功能寄存器離散分布在這128個(gè)字節(jié)范圍內(nèi),其余字節(jié)無定義,用戶也不能對這些單元進(jìn)行讀/寫操作。
在匯編語言程序設(shè)計(jì)中,比較常用的寄存器有累加器ACC、寄存器B、程序狀態(tài)寄存器PSW、堆棧寄存器SP和數(shù)據(jù)指針寄存器DPTR。下面簡要介紹這些寄存器。
(1)累加器A(Accumulator)
累加器A的名稱是ACC,是指令中用的最多的寄存器,特別是很多算術(shù)邏輯運(yùn)算指令必須使用該寄存器。需要注意的是,ACC和A都可以在指令中代表累加器A,但是指令中的ACC能代表累加器的字節(jié)地址,而A則不能。因此,在某些要求使用特殊功能寄存器地址的指令中,不能用A表示累加器。
(2)寄存器B
乘、除法指令必須使用寄存器B。除此之外,B與其他特殊功能寄存器沒有差別。(3)程序狀態(tài)寄存器PSW
PSW(見表2-6)可以記錄指令的執(zhí)行結(jié)果狀態(tài),比如:加法運(yùn)算是否產(chǎn)生進(jìn)位、借位等。PSW中各位的作用如下:
CY:進(jìn)位標(biāo)志位,當(dāng)運(yùn)算過程中累加器的最高位產(chǎn)生進(jìn)位或借位時(shí),被置為1,否則被清0。在位操作指令和移位指令中,該位起到類似于累加器A的作用,參與位操作或位運(yùn)算。
AC:輔助進(jìn)位標(biāo)志位,在加、減運(yùn)算過程中,運(yùn)算結(jié)果的低4位(第3位)向高4位(第4位)產(chǎn)生進(jìn)位時(shí),該位被置1,否則被清0。
OV:溢出標(biāo)志位,用于反映有符號(hào)數(shù)計(jì)算過程中是否溢出,0:無溢出,1:有溢出。
F0和F1:F0為用戶定義標(biāo)志位,供用戶使用,沒有特殊含義;F1為保留位,用戶不能使用。
RS1和RS0:用于選擇CPU當(dāng)前使用的工作寄存器區(qū)子區(qū),見表2-4。
P:奇偶標(biāo)志位,反映累加器A中“1”的個(gè)數(shù)的奇偶性,若“1”的個(gè)數(shù)為偶數(shù),則P為0,反之,P為1。每條指令執(zhí)行后,單片機(jī)都會(huì)自動(dòng)檢測累加器A,并設(shè)置P標(biāo)志位。
(4)堆棧寄存器SP
堆棧在片內(nèi)RAM區(qū)中用于存放數(shù)據(jù)。堆棧操作有寫和讀兩種,將數(shù)據(jù)存入堆棧稱為“入?!?,從堆棧中讀取數(shù)據(jù)稱為“出棧”,入棧、出棧必須遵循“先入后出,后入先出”的原則。所有堆棧操作之前,SP中存放的數(shù)值作為一個(gè)特殊的地址,該地址指向的字節(jié)存儲(chǔ)單元被稱為“棧底”。堆棧操作后,SP中的地址所指向的存儲(chǔ)單元是“棧頂”。
(5)數(shù)據(jù)指針寄存器DPTR
數(shù)據(jù)指針寄存器DPTR是一個(gè)16位寄存器,包含兩個(gè)8位寄存器DPH和DPL。訪問片外ROM、片外RAM和片外I/O接口時(shí),DPTR可在指令中提供地址。
(6)P0~P3寄存器
P0~P3是單片機(jī)的4個(gè)8位并行I/O口,表2-2和表2-3中的特殊功能寄存器P0~P3是這4個(gè)并行I/O口的端口寄存器。通過這幾個(gè)寄存器可以讀取或設(shè)置對應(yīng)的單片機(jī)引腳狀態(tài)。
(7)其他寄存器
單片機(jī)內(nèi)還有其他一些寄存器,如PCON、SBUF、SCON和TMOD等,與單片機(jī)內(nèi)的硬件接口有關(guān)。