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