51单片机的特殊功能寄存器(SFR)
閱讀前提醒: 文中提到的8051指的是8051微控制器,即51單片機
在上一篇文章51單片機的存儲結(jié)構(gòu)中,提到8051微控制器的RAM被劃分為通用寄存器、按位尋址寄存器、寄存器組、以及特殊功能寄存器。
這里講一下特殊功能寄存器(SFR)。
8051的特殊功能寄存器用于控制各種外圍硬件設(shè)備,包括定時器、串行端口、I/O端口。也可以用于更改和獲取微處理器的運行模式。
1 8051的特殊功能寄存器(SFR)
8051的特殊功能寄存器就像是一個控制臺,通過它既可以監(jiān)控8051微控制器的運行狀態(tài),課可以控制8051微處理器的功能。
如本文第一張圖所示,在8051微控制器的內(nèi)存結(jié)構(gòu)中,從80H到FFH的128字節(jié)被分配給了SFR,但是只有21個位置是真正分配。每一個SFR都有一個一字節(jié)地址和一個獨一無二的名字,這個名字同時也會指出該SFR的功能。
因為SFR是RAM的一部分,所以也可以像訪問內(nèi)部RAM一樣訪問SFR。兩者僅僅是地址存在不同,00H到7FH是常規(guī)RAM,80H到FFH是SFR。
但是,由于128個SFR中僅有21個被分配,建議不要訪問其他的SFR。
1.1 SFR的分類
這21個SFR分別是
- A or ACC
- B
- DPL
- DPH
- IE
- IP
- P0
- P1
- P2
- P3
- PCON
- PSW
- SCON
- SBUF
- SP
- TMOD
- TCON
- TL0
- TH0
- TL1
- TH1
1.2 SFR的分類
下圖列出了所有SFR的名字、功能、地址。
- 數(shù)學(xué)運算寄存器: ACC和B
- 狀態(tài)字寄存器: PSW(Program Status Word)
- 指針寄存器: 數(shù)據(jù)指針(DPL、DPH),和棧指針(SP)
- I/O端口鎖存器:P0,P1,P2,P3
- 外設(shè)控制寄存器: PCON, SCON, TCON, TMOD, IE and IP
- 外設(shè)數(shù)據(jù)寄存器:TL0, TH0, TL1, TH1 and SBUF
1.2.1 數(shù)學(xué)運算寄存器
AAC (累加器)
這個應(yīng)該不需要多介紹,CPU的幾乎每次操作都需要用到累加器。
B(乘商寄存器)
B寄存器用于乘除等運算,配合ACC使用。
1.2.2 PSW(程序狀態(tài)字)
顧名思義,適用于保存當(dāng)前程序運行狀態(tài)的。程序員可以通過瀏覽其中的信息。
下圖列出了每個標(biāo)志位所對應(yīng)的信息
1.2.3 指針寄存器
數(shù)據(jù)指針(DPTR: DPL和DPH)
DPL和DPH共同組成了一個16位的寄存器。它的主要作用是存儲外接存儲器的地址。
棧指針
棧指針指向堆棧的頂部,可以使用PUSH,POP,CALL,SET等指令來對其進行操作。
初始狀態(tài)下棧指針內(nèi)容為07H。
向棧指針中寫數(shù)據(jù)后棧指針?biāo)鎯Φ牡刂?#43;1,讀數(shù)據(jù)后地址-1。
1.2.4 I/O 端口寄存器
8051有4個用作I/O的端口,這四個端口分別是P0,P1,P2,P3。每一個端口都對應(yīng)一個名字相同的寄存器。四個寄存器的地址分別是P0 – 80H, P1 – 90H, P2 – A0H 以及P2 – B0H。
SFR的每一個比特位都對應(yīng)著8051微控制器的一個引腳,每一個端口寄存器都可以按字節(jié)尋址或者按位尋址。如果在端口寄存器上的某一個比特位上寫入1或0,那么對應(yīng)的引腳上電壓也會產(chǎn)生相應(yīng)的變化(5V或者0V)。
1.2.5 外設(shè)控制寄存器
PCON 電源控制(power control)
顧名思義,電源控制寄存器用于控制8051的電源模式。使用PCON寄存器中的兩個比特,可以將8051設(shè)置為空閑模式和掉電模式。
注意:PCON寄存器不支持按位尋址
SCON 串行控制
SCON用于控制8051的串行端口。使用SCON,可以控制串口的操作模式、串口的波特率以及使用串口發(fā)送或接收數(shù)據(jù)。
TCON 定時器控制
TCON寄存器用于啟動或停止8051單片機的定時器。它還包含指示定時器是否溢出的位。TCON SFR還包括與中斷相關(guān)的位。
TMOD 定時器模式
定時器模式SFR用于設(shè)置定時器T0和T1的操作模式。較低的四位用于配置定時器0,較高的四位用于配置定時器1。
1.2.5 外設(shè)數(shù)據(jù)寄存器
SBUF 串行數(shù)據(jù)緩沖區(qū)
用于串行通信時存儲串行數(shù)據(jù)。
TL0/TH0
定時器0由兩個SFR組成:TL0和TH0。TL0是低位字節(jié),TH0是高位字節(jié),它們共同構(gòu)成一個16位定時器0寄存器。
TL1/TH1同理
- 參考文章:https://www.electronicshub.org/8051-microcontroller-special-function-registers/
總結(jié)
以上是生活随笔為你收集整理的51单片机的特殊功能寄存器(SFR)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乐观锁和悲观锁的区别
- 下一篇: SCN HeadRoom 事件分析