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