51单片机之特殊功能寄存器SFR
51單片機(jī)之特殊功能寄存器
- 全部的特殊功能寄存器:
- 特殊寄存器1、ACC(A):累加器
- 特殊寄存器2、B:輔助寄存器
- 特殊寄存器3、標(biāo)志寄存器PSW:
- PSW的內(nèi)部位含義:
- 舉個(gè)例子:不做解釋了
- 特殊寄存器4、PC:程序計(jì)數(shù)器
- 特殊寄存器5、SP:堆棧指針
- 特殊寄存器6、DPTR:數(shù)據(jù)指針
- 特殊寄存器7、TMOD:定時(shí)/計(jì)數(shù)器的方式寄存器
- 特殊寄存器8、TCON:定時(shí)/計(jì)數(shù)器控制寄存器
- 特殊寄存器9、SCON:串行口控制寄存器
- 特殊寄存器10、PCON:電源控制寄存器
- 特殊寄存器11、IE:中斷允許控制寄存器
- 特殊寄存器12、IP:中斷優(yōu)先級(jí)控制寄存器
全部的特殊功能寄存器:
特殊寄存器1、ACC(A):累加器
ALU(算數(shù)運(yùn)算邏輯單元,是運(yùn)算器的重要部件)在進(jìn)行運(yùn)算時(shí),數(shù)據(jù)絕大部分來(lái)源于累加器A,運(yùn)算的結(jié)果通常也送回累加器A
特殊寄存器2、B:輔助寄存器
此寄存器是為乘法和除法指令而設(shè)置的
以乘法為例:一個(gè)8bit的數(shù)和另一個(gè)8bit的數(shù)進(jìn)行乘法運(yùn)算,得到的結(jié)果為一個(gè)16bit的數(shù),此時(shí)就需要倆個(gè)8bit寄存器來(lái)存放結(jié)果,輔助寄存器B就派上了用場(chǎng),一般的,我們用B來(lái)存放高8bit,用A來(lái)存放低8bit。
以除法為例:在計(jì)算1除以3時(shí),所得的結(jié)果以商和余數(shù)的形式保存,一般的,A用于保存商,B用于保存余數(shù)
特殊寄存器3、標(biāo)志寄存器PSW:
一般用于保存指令執(zhí)行結(jié)果的狀態(tài),即當(dāng)前cpu所處的一些狀態(tài),是一個(gè)8bit寄存器
PSW的內(nèi)部位含義:
1、C: 進(jìn)位標(biāo)志位,當(dāng)累加器中從D7位向更高位進(jìn)位或借位時(shí),但由于寄存器大小限制不存在D8,此時(shí)用C來(lái)標(biāo)志,當(dāng)產(chǎn)生進(jìn)位或者借位時(shí)這一位置1。
2、AC:輔助進(jìn)位標(biāo)志位,當(dāng)D3位向D4位進(jìn)位或者借位時(shí),此標(biāo)志位置1
3、F0:用戶標(biāo)志位 ,用戶通過(guò)編程自定義使用
4、RS1\RS0: 寄存器組選擇位,在內(nèi)存中有8個(gè)為一組的通用寄存器,一共4組。但是同一時(shí)刻只能使用其中的某一組,RS0、RS1即用于選擇使用4組中的哪一組寄存器。下圖為具體對(duì)應(yīng)關(guān)系:
5、OV:溢出標(biāo)志位 ,一個(gè)8位寄存器可以表示的范圍為**-128~127** ,當(dāng)我們相加的結(jié)果不在這個(gè)范圍的時(shí)候,此時(shí)溢出位為1
6、P: 累加器運(yùn)算完成后,統(tǒng)計(jì)累加器中1的個(gè)數(shù),1為偶數(shù)個(gè),P為0。這里容易犯一個(gè)錯(cuò)誤,此標(biāo)志位的含義是一個(gè)數(shù)用二進(jìn)制表示的時(shí)候1的個(gè)數(shù),并不表示這個(gè)數(shù)是奇數(shù)還是偶數(shù),例如14,二進(jìn)制中有3個(gè)1,但數(shù)本身是偶數(shù)。
舉個(gè)例子:不做解釋了
特殊寄存器4、PC:程序計(jì)數(shù)器
51單片機(jī)專門(mén)設(shè)置一個(gè)16位的PC,用于指示下一時(shí)刻CPU將要執(zhí)行的程序指令在ROM中的位置,由于PC指針長(zhǎng)度位16位,所以單片機(jī)的程序存儲(chǔ)器ROM空間大小為2^16 = 64Kb,從0000~FFFFH
特殊寄存器5、SP:堆棧指針
為實(shí)現(xiàn)堆棧操作而設(shè)置的指針
特殊寄存器6、DPTR:數(shù)據(jù)指針
特殊寄存器7、TMOD:定時(shí)/計(jì)數(shù)器的方式寄存器
該寄存器是用于控制定時(shí)/計(jì)數(shù)器的工作方式的特殊寄存器,內(nèi)部詳細(xì)位如下圖:
1、M0、M1:用于確定定時(shí)器\計(jì)數(shù)器的工作方式:
2、C/T:定時(shí)或計(jì)數(shù)方式選擇位,用這一位來(lái)確定時(shí)鐘信號(hào)是來(lái)自內(nèi)部還是外部
當(dāng)C/T = 1,工作在計(jì)數(shù)器方式;反之工作在定時(shí)器方式
4、GATE:門(mén)控位,用于控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)(INT0,INT1)的影響,例如:當(dāng)T0想要工作且GATE位為1時(shí),就必須要求INT0位為1
特殊寄存器8、TCON:定時(shí)/計(jì)數(shù)器控制寄存器
該寄存器用來(lái)控制定時(shí)器/計(jì)數(shù)器的停止與啟動(dòng)
內(nèi)部位:
1、TF0、TF1:溢出標(biāo)志位,當(dāng)計(jì)數(shù)滿時(shí),由硬件使他值位
2、TR0、TR1:中斷啟動(dòng)位,1啟動(dòng),0停止
3、IE0、IE1:
4、IT0、IT1:
特殊寄存器9、SCON:串行口控制寄存器
用于串行通信的控制
1、SM0、SM1:串行口工作方式選擇位
2、SM2:多機(jī)通信控制位
3、REN:允許接受控制位,只有置1時(shí),單片機(jī)才允許接收外部串行數(shù)據(jù)
4、TB8:用于保存發(fā)送的第9位數(shù)據(jù)
5、RB8:用于保存接收的第9位數(shù)據(jù)
6、TI:發(fā)送中斷標(biāo)志位,完成一次發(fā)送時(shí)自動(dòng)由0變1
7、RI:接收中斷標(biāo)志位,完成一次接收時(shí)自動(dòng)由0變1
特殊寄存器10、PCON:電源控制寄存器
用于對(duì)波特率進(jìn)行控制
SMOD位為1時(shí),串行通信在方式1、2、3下波特率加倍
特殊寄存器11、IE:中斷允許控制寄存器
MCS-51單片機(jī)沒(méi)有專門(mén)的開(kāi)中斷和關(guān)中斷的指令,只能通過(guò)中斷允許寄存器IE的各位來(lái)控制
1、EA:總中斷允許控制位
2、ET2、ET1、ET0:定時(shí)器/計(jì)數(shù)器T2、T1、T0的溢出中斷允許位
3、ES:串行口中斷允許位
4、EX0、EX1:外部中斷INT1、INT0的中斷允許位
特殊寄存器12、IP:中斷優(yōu)先級(jí)控制寄存器
用于手動(dòng)修改優(yōu)先級(jí)順序
1、PT0、PT1、PT2:定時(shí)器T2、T1、T0的中斷優(yōu)先級(jí)控制位
2、PS:串行口的中斷優(yōu)先級(jí)控制位
3、PX0、PX1:外部中斷INT0、INT1的中斷優(yōu)先級(jí)控制位
當(dāng)IP中的某一位置1時(shí),所對(duì)應(yīng)的中斷源被設(shè)置為高優(yōu)先級(jí)。
總結(jié)
以上是生活随笔為你收集整理的51单片机之特殊功能寄存器SFR的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql优化之sakila测试数据库
- 下一篇: LeetCode:2. 两数相加(中等)