高手从菜鸟忽略作起之(三)
单片机共有21个特殊功能寄存器,下面从其功能,位结构,地址,读写方法对其作详细介绍。
一, 特殊功能寄存器总述。
二, 特殊功能寄存器分类:
1. CPU控制类(6个):Acc,B,PSW,DPL,DPH,SP.
3. 计数/定时类(6个):TMOD,TCON,TL0,TL1,TH0,TH1.
4. 并口端口类(4个):P0,P1,P2,P3.
5. 串口端口类(2个):SCON,SBUF.
6. 电源管理类(1个):PCON.
三, 特殊功能寄存器详述:
1. CPU控制类(6个):Acc,B,PSW,DPL,DPH,SP
1.1 Acc:累加器,可按位,字节访问。
1.2 B:辅助寄存器,用于进行乘除运算。
1.3 PSW=Program Status Word:存储程序状态字。
bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Flag | Cy | Ac | F0 | RS1 | RS0 | OV | --- | P |
Addr | D0.7 | D0.6 | D0.5 | D0.4 | D0.3 | D0.2 | D0.1 | D0.0 |
| | | | | | | | |
P:奇偶校验位:P=0:1的个数为奇数;P=1,1的个数为偶数。
---:保留位,没使用。
OV:Over flow,溢出标志,OV=0:没溢出;OV=1:溢出。
Rs0:Regedit select 0,寄存器选取0. RS1:Regedit select 1,寄存器选取1。
F0:User Flag bit:用户自定义位。
Ac: Auxiliary Carry,辅助进位标志,由低4位运算时,是否有向高4位进位。
Cy:Carry,进位标志。字节运算时,是否有进位。
1.4 DPTL:Data Pointer Register Low,数据指针寄存器低8位。
1.5 DPTH:Data Pointer Register High,数据指针寄存器高8位。
1.6 SP: Stock Pointer:栈指针寄存器。
2. 中断控制类寄存器(2个):IE,IP
2.1 IE: Interrupt Enable ,中断使能寄存器
bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Flag | EA | --- | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
Addr | A8.7 | A8.6 | A8.5 | A8.4 | A8.3 | A8.2 | A8.1 | A8.0 |
| | | | | | | | |
EX0: Enable Extra 0 ,INT0 中断允许位。
ET0: Enable Timer 0,C/T0 中断允许位。
EX1: Enable Extra 1 ,INT1 中断允许位。
ET1: Enable Timer 1,C/T1 中断允许位。
ES: Enable serial ,串行中断允许位。
ET2: Enable Timer 2,C/T2 中断允许位。
---: 保留。
EA: Enable All:全部中断允许位。
梅宁华2.2 IP: Interrupt Priority ,中断优先级寄存器
bit | D7 | D6 | 东菱克栓酶D5 | D4 | D3 | D2 | D1 | D0 |
出走十五年Flag | --- | --- | PT2 | PS | PT1 | PX1 | PT0 | 上海电视台体育频道PX0 |
Addr | B8.7 | B8.6 | B8.5 | B8.4 | B8.3 | B8.2 | B8.1 | B8.0 |
| | | | | | | | |
PX0: Priority Extra 0 , INT0 中断优先位。
PT0: Priority Timer 0 ,C/T0中断优先位。
PX1: Priority Extra 1, INT1 中断优先位。
PT1: Priority Timer 1, C/T1中断优先位。
PS: Priority Serial ,串行中断优先位。
PT2: Priority Timer 2, C/T2中断优先位。
---: 保留1
---: 保留2
3. 计数/定时类(6个):TMOD,TCON,TL0,TL1,TH0,TH1
bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Flag | Gate | C/T | M1 | M0 | Gate | C/T | M1 | M0 |
Addr | 89.7 | 89.6 | 89.5 | 89.4 | 89.3 | 89.2 | 89.1 | 89.0 |
unite | T1 | T0 |
| | | | | | | | |
T0_M0: C/T0 M0 Bit , C/T0 模式设置M0位。
T0_M1: C/T0 M1 Bit , C/T0 模式设置M1位。
T0_C/T: C/T0 C or T select ,C/T0计数或计时选取位。
T0_Gate: C/T0 Fire Mode ,运行方式选取位。
T1_M0: C/T1 M0 Bit , C/T1 模式设置M0位。
T1_M1: C/T1 M1 Bit , C/T1 模式设置M1位。
T1_C/T: C/T1 C or T select , C/T1计数或计时选取位。
T1_Gate: C/T1 Fire Mode , 运行方式选取位。
3.2 TCON:定时/计数控制寄存器
bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Flag | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
Addr | 88.7 | 88.6 | 88.5 | 88.4 | 88.3 | 88.2 | 88.1 | 88.0 |
| | | | | | | | |
IT0: Interrupt Timing 0 ,C/T0激活模式,0脉冲,1下降沿。
IE0: Interrupt Enable 0 ,C/T0使能。
IT1: Interrupt Timing 1 , C/T1激活模式,0脉冲,1下降沿。
IE1: Interrupt Enable 1 , C/T1使能。
TR0: Timer Run 0 ,C/T0 中断发生位。
TF0: Timer Over Flow 0 ,C/T0 中断溢出。
TR1: Timer Run 1 , C/T1 中断发生位。
TF1: Timer Over Flow 1 , C/T1 中断溢出。
3.3 TL0:C/T0初值设置低8位
3.4 TL1:C/T1初值设置低8位
3.5 TH0:C/T0初值设置高8位
3.6 TH1:C/T1初值设置高8位
4. 并口端口类(4个):P0,P1,P2,P3
4.1 P0: 作I/O时,需上拉电阻;作地址低8位。
4.2 P1:普通I/O.
4.3 P2:作I/O,作地址高8位。
4.4 P3:作I/O,具有第2功能。
5. 串口端口类(2个):SCON,SBUF
5.1 SCON:串口控制寄存器
bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Flag | SM0 | SM1 | SM2 | 万有引力定律及其应用REN | TB8 | RB8 | TI | RI |
Addr | 98.7 | 98.6 | 98.5 | 98.4 | 98.3 | 98.2 | 98.1 | 98.0 |
| | | | | | | | |
RI: Receive Interrupt, 数据接收中断位。
TI: Transform Interrupt,数据发送中断位。
RB8: Receive Bit 8,模式2、3时接收第8位。
TB8: Transform Bit 8,模式2、3时发送第8位。
REN: Run Enable,运行使能位。
SM2: Serial Mode 2,模式设定M2。
SM1: Serial Mode 1, 模式设定M2。
SM0: Serial Mode 0, 模式设定M2。
5.2 SBUF:串口缓冲寄存器
接收和发送同用此缓存寄存器。
6. 电源管理类(1个):PCON
bit | D7 | D6 | D5 | D4 | D3 | D2 | D1 | 冲绳海槽D0 |
Flag | SM1 | SM0 | LVDF | P0F | GF1 | GF0 | PD | IDL |
Addr | 87.7 | 87.6 | 87.5 | 87.4 | 87.3 | 87.2 | 87.1 | 87.0 |
| | | | | | | | |
IDL: idle ,挂起模式,0=工作,1=挂起
PD: power detach ,0=正常,1=掉电
GF0: general Flag 0,通用标志位0
GF1: general Flag 1,通用标志位1
P0F:其它用。
LVDF:其它用
SM0:晶振模式,0=正常,1=加倍
SM1: 晶振模式,0=正常,1=加倍