找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 575|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机常用寄存器说明汇总

[复制链接]
跳转到指定楼层
楼主
ID:577583 发表于 2024-2-22 17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序存储器 ROM







1、程序存储器的ROM的最大空间是64KB,因为地址线是16根,2^16 = 64 KB。80C51单片机,其内部有4KB  ROM,外部ROM的最大容量是60KB;    






2、80C51片内4 KB ROM 的地址为:0000H~0FFFH (2^12 = 4  KB),片外60 KB ROM的地址为:1000H~FFFFH(2^16 - 2^12 = 60 KB);






3、80C51单片机,正常运行时:EA(非)端接高电平,CPU从内部ROM中读取程序;当PC值超过内部ROM,才会转向外部ROM;






4、片内ROM的保留单元:
保留单元地址
入口地址
用途








0000H~0002H
0000H
复位后初始化引导程序








0003H~000AH
0003H
外部中断0中断服务程序








000BH~0012H
000BH
定时/计数器0中断服务程序








0013H~001AH
0013H
外部中断1中断服务程序








001BH~0022H
001BH
定时/计数器1中断服务程序








0023H~002AH
0023H
串行口中断服务程序








002BH~0032H
002BH
定时/计数器2中断服务程序








 










数据存储器 RAM






1、数据存储器用于存放运算的中间结果、暂存和缓冲数据及标志位等;






2、51系列单片机内部RAM有256B,地址为:00H~0FFH(2^8 = 256  B);可拓展的外部RAM最大空间为64KB,地址为:0000H~0FFFFH(2^16 = 64 KB);






3、片内256B的RAM又分为:低128单元(00H~7FH)(2^7 = 128  B)RAM区;高128单元(80H~0FFH)(2^8 - 2^7 = 128B)的特殊功能寄存器区(SFR区);






4、低128单元分为:①通用寄存器区(00H~1FH)(2^5 = 32  B):从第0组到第3组,共计有4组通用寄存器区;②位寻址区(20H~2FH)(16B = 128位);③用户RAM区(30H~7FH)(4FH =  80B);






5、通用寄存器区/工作寄存器区:常用于存放操作数及中间结果。32个寄存器分为4组,每组8个,每个寄存器都是8位,每组都以R0~R7作为寄存器单元编号。


















寄存器名称
地址







第0组
第1组
第2组
第3组







R0
00H
08H
10H
18H







R1
01H
09H
11H
19H







R2
02H
0AH
12H
1AH







R3
03H
0BH
13H
1BH







R4
04H
0CH
14H
1CH







R5
05H
0DH
15H
1DH







R6
06H
0EH
16H
1EH







R7
07H
0FH
17H
1FH



















6、第0组寄存器被默认为通用寄存器组,其他需要设置PSW中的RS1、RS0两位,没被选中的寄存器可作为一般的数据缓冲器使用。


















RS1
RS0
组号









1
1
3









1
0
2









0
1
1









0
0
0










    






7、位寻址区16个字节**(16B = 128位)**中的每一位都有一个特定的位地址






8、用户RAM区(30H~7FH)(80个单元),这些单元可以用作:数据缓冲器使用,也可作为堆栈以保存子程序调用或响应中断时的断点和现场。






9、特殊功能寄存器区(SFR区)(字节地址能被8和0整除)


















符号
名称
字节地址
D7
D6
D5
D4
D3
D2
D1
D0

TCON
定时/计数器状态字
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0


  8FH
8EH
8DH
8CH
8BH
8AH
89H
88H

TMOD
定时/计数器方式控制字
89H
GATE
C/T
M1
M0
GATE
C/T
M1
M0

SCON
串口控制寄存器
98H
SM0
SM1
SM2
REN
TB8
RB8
T1
R1


  9FH
9EH
9DH
9CH
9BH
9AH
99H
98H

IE
中断允许控制寄存器
A8H
EA
-
-
ES
ET1
EX1
ET0
EX0


  AFH
AEH
ADH
ACH
ABH
AAH
A9H
A8H

IP
中断优先级控制寄存器
B8H
-
-
-
PS
PT1
PX1
PT0
PX0


  BFH
BEH
BDH
BCH
BBH
BAH
B9H
B8H

PSW
程序状态字
D0H
CY
AC
F0
RS1
RS0
OV
-
P


  D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H

(1)累加器(A/ACC);










(2)B寄存器:主要与累加器配合完成乘法和除法运算;










(3)程序状态字(PSW):8位的寄存器,用于存放程序运行的状态信息及运算结果的标志
PSW
程序状态字
CY
AC
F0
RS1
RS0
OV
-
P


①CY:进位标志位,最高位有进位或借位时,CY置1;无进位或错位时,CY清0;
②AC:辅助进位标志位,低4位向高4位有进位或借位时,CY置1;无进位或错位时,CY清0;
​  ③F0:用户标志位
​  ④RS1和RS0:通用寄存器组选择位
​⑤OV:溢出标志位,溢出OV置1,没溢出OV清0

⑥P:奇偶校验位,如果A中有奇数个“1”,则P为1;否则P为0;
(4)数据指针(DPTR):唯一一个可寻址的16位寄存器。在访问外部RAM时,DPTR作为地址指针使用;
(5)堆栈指针(SP):堆栈的操作方式有两种:
​  ①自动方式:在调用子程序或者产生中断时,CPU自动将断点压入堆栈;程序返回时,断点自动弹回给PC指针;


​ ②指令方式:入栈指令PUSH,出栈指令POP;


PS:SP的复位值为07H,堆栈数据从08H开始存放,这样会导致通用寄存器无法使用,所以程序一开始就需要将SP设置为30H,这样堆栈就会开辟在用户RAM区(30H~7FH)。



(6)程序计数器(PC):PC是一个16位计数器,专门用于存放CPU将要执行的指令地址(即下一条指令的地址)。

 










I/O口
1、51单片机用4个8位并行I/O口(P0~P3)和一个串行I/O口。并行I/O口一次可传送8位二进制数据,串行I/O一次仅能传送1位二进制数据。2、P0口:
第一功能:准双向三态I/O口
特别注意:P0作为输入口时,必须先向锁存器写入高电平,使输出驱动电路中的T1截止,P0口处于高阻态,具有高阻抗输入特性。
第二功能:CPU在访问存储器时,可以作为地址/数据分时复用的端口,地址单向输出,数据双向传输。
PS:拓展外部RAM或者ROM时,P0口只能作为第二功能,输出低八位地址。
3、P1口:
第一功能:准双向I/O口
特别注意:P1作为输入口时,必须先向锁存器写入高电平,使输出驱动电路中的T截止。
第二功能:①P1.0:定时/计数器2的外部触发计数脉冲输入端;
    ②P1.1:定时/计数器2的捕获、重装触发控制输入端。
4、P2口:
第一功能:准双向I/O口
特别注意:P2作为输入口时,必须先向锁存器写入高电平,使输出驱动电路中的T截止。
第二功能:拓展外部存储器时,输出高8位地址,与P0口组成16位地址。
5、P3口:
第一功能:准双向I/O口
特别注意:P3作为输入口时,必须先向锁存器写入高电平,使输出驱动电路中的T截止。
第二功能:①中断信号,②外部RAM的读写控制口
引脚第二功能符号第二功能名称
P3.0RXD串行数据接受
P3.1TXD串行数据发送
P3.2INT0(非)外部中断0申请
P3.3INT1(非)外部中断1申请
P3.4T0定时/计数器0的计数输入
P3.5T1定时/计数器1的计数输入
P3.6WR(非)外部数据存储器写选通
P3.7RD(非)外部数据存储器读选通
时钟电路和时序
1、晶振周期/振荡周期/拍节: P = 1/Fosc;
eg:Fosc = 12 MHz P = 1/12us 机器周期  = 1us
2、时钟周期/状态:S = 2P;
3、机器周期/扫描周期 = 6S = 12P;
指令系统
1、七种寻址方式
1.立即寻址
MOV
A,#70H
;将立即数70H传送到累加器A
 
 
2.寄存器寻址:给出寄存器名字,将寄存器的内容取出来
MOV
A,R0
;将寄存器R0中的内容传送到累加器A


3.直接寻址:给出某一存储单元地址,对该单元的内容进行操作
MOV
A,70H
;将片内RAM地址为70H的单元的内容送到A中。

直接寻址方式用于访问以下存储空间:
①SFR
    ②片内数据存储器低于128字节
    ③位地址空间
4.寄存器间接寻址:给出寄存器名字,以该寄存器的内容为地址,将地址的数据取出。
MOV
A,@R1
;将以寄存器R1的内容为地址的片内RAM单元的数据传送到A
可用作寄存器间接寻址的寄存器:R0,R1,DPTR
5.变址寻址(基寄存器加变址寄存器间接寻址):给出基寄存器(DPTR或PC)和变址寄存器(累加器A),将基寄存器和变址寄存器的内容之和为地址,将该地址的数据取出。
MOVC
A,@A+DPTR



6.相对寻址:以当前程序计数器PC值加上指令中给出的偏移量rel,构成实际操作数地址。
目标地址=指令存储地址+指令字节数+rel
偏移量rel:有符号,单字节,补码表示,负数表示从当前地址向前转移,正数表示向后。
PC值:相对转移指令的存储地址+该指令字节数
7.位寻址:在位操作指令中直接给出操作数的地址。
MOV C,20H ;将20H位的值送给进位位CY,20H为位地址
适用范围:①内部RAM 20H2FH单元中的位(007FH)或者SFR中具有位地址的。
定时/计数器的特殊功能寄存器

TCON定时/计数器状态字TF1TR1TF0TR0IE1IT1IE0IT0

TMOD定时/计数器方式控制字GATEC/TM1M0GATEC/TM1M0

SCON串口控制寄存器SM0SM1SM2RENTB8RB8T1R1

IE中断允许控制寄存器EA--ESET1EX1ET0EX0

IP中断优先级控制寄存器---PSPT1PX1PT0PX0

          
TCON:定时/计数器状态字
TF1
TR1TF0TR0IE1IT1IE0IT0
TR1和TF1同理
TF0溢出标志位:T0产生溢出信号,TF0置1;如果溢出,TF0需用软件清0。
TR0是T0的运行控制位:由软件置1和清0,当TR0 =  0时,停止计数;当TR0 = 1时,启动计数。
IT1和IE1同理
外部中断0中断请求标志位:在边沿触发方式下,IE0由硬件清零;在电平触发模式下,只能由软件清零。
外部中断0信号方式控制位:
    IT0 = 0时,外部中断0为电平触发,INT0(非)为低电平时有效;
    IT0 = 1时,外部中断0为边沿触发,INT0(非)为负跳变时有效。

TMOD:定时/计数器工作方式寄存器
GATE
C/T
M1
M0
GATE
C/T
M1
M0





GATE:门控位
C/T(非):功能选择位
M1  M0:定时器四种工作方式选择位
    GATE  = 0时,仅由TCON中的TR0(TR1)位启动/停止T0(T1);
    GATE = 1时,T0(T1)的启动或停止受外部中断信号INT0(非)(P3.2)或  INT1(非)(P3.3)的控制,此时TR0(TR1)需置位。
   
C/T(非)=0时为定时功能:  加1计数器对脉冲f进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;
    C/T(非)=1时为计数功能:  加1计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外信号脉冲进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;
M1  M0 = 00
工作方式0
13位定时/计数器工作方式
M1 M0 = 01
工作方式1
16位定时/计数器工作方式
M1 M0 = 10
工作方式2
自动重装载8位定时/计数器工作方式
M1 M0 = 11
工作方式3
两个独立8位定时/计数器(仅T0可用,T1停止工作)
IE
中断允许控制寄存器
EA
-
-
ES
ET1
EX1
ET0
EX0

EA:中断允许总控制位

ES:串行口中断允许位
ET1:定时/计数器0中断允许位
EX1:外部中断1允许位
ET0:定时/计数器1中断允许位
EX0:外部中断0允许位

IP:中断优先级控制寄存器IP中断优先级控制寄存器-
-
-
PS
PT1
PX1
PT0
PX0

中断自然优先级(由高到低):外部中断0、定时/计数器0、外部中断1、定时/计数器1、串行口中断,若某一位置1,则相应的中断源为高优先级;若某一位为0,则则相应的中断源为低优先级。
SCON:串行接口控制寄存器SCON串口控制寄存器
SM0
SM1
SM2
REN
TB8
RB8
T1
R1

(1)SM0和SM1:串行接口工作方式设置位
方式2和方式3主要用于多机通信控制:当串行接口工作在方式2或方式3时,若SM2=1,则允许多机通信。
   
    多机通信规定:第9位数据位为1 (即TB8=1),说明本帧数据为地址帧:第9位数据为0(即TB8=0),则本帧数据为数据帧。
   
     当从机接收到的第9位数据(在RB8中)为1时,数据才装入接收缓冲器SBUF,并置RI=1向CPU申请中断;如果接收到的第9位数据(在RB8中)为0,则不置位中断标志RI且信息丢失。
   
    当SM2=0时,则不管接收到第9位数据是否为1,都产生中断标志RI,并将接收到的数据装入SBUF。应用这一特点可以实现多机通信。
   
    串行口工作在方式0时,SM2必须设置为0;工作在方式1时,如SM2=1,则只有接收到有效的停止位时才会激活RI。
允许接收控制位:当REN=1时,允许接收;当REN=0时,禁止接收。此位由软件置1或清零
发送数据的第9位:在方式2和方式3中,在多机通信中作为发送地址帧或数据帧的标志。
    TB8=1,说明该发送帧为地址帧;TB8=0,说明该发送帧为数据帧。
    在许多通信协议中,它可作为奇偶校验位。此位由软件置1或清零。在方式0和方式1中,此位未使用
接收数据的第9位:
    在方式2和方式3中,接收到的第9位数据放在RB8中。它或是约定的奇/偶校验位,或是约定的地址/数据标志位。
    在方式2和方式3多机通信中,RB8=1,说明该接收帧为地址帧;RB8=0,说明该接收帧为数据帧
发送中断标志位:
    在一帧数据发送完时,由硬件置位。
   
    TI=1,可申请中断,说明发送缓冲器SBUF已空,CPU可以发送下一帧数据。中断被响应后,TI不能自动清零,必须由软件清零
接收中断标志位:
    在接收到一帧有效数据后,由硬件置位。
   
    RI=1,可申请中断,表示一帧数据接收结束,并已装入接收缓冲器SBUF中。CPU响应中断,取走数据后,RI不能自动清零,必须由软件清零。










SM0
SM1
工作方式
功能说明
波特率




0
0
方式0
同步移位寄存器,用于I/O拓展
fosc/12
波特率  = fosc/12



0
1
方式1
10位异步收发器
由定时器T1溢出率控制

S  = SMOD
1
0
方式2
11位异步收发器
fosc/32或fosc/64
file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png  

  


1
1
方式3
11位异步收发器
由定时器T1溢出率控制
file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png  

  








 





 










PCON:电源控制寄存器控制字
D7
D6
D5
D4
D3
file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png  
D2
  
D1
D0




SMOD:串行接口波特率的倍率控制位。








 

在方式1、方式2和方式3下,当SMOD  = 1时,波特率加倍;当SMOD = 0时,波特率不加倍,即波特率和2^SMOD成正比。








 










中断计数初值的设定
晶振频率为fosc, 晶振周期:P = 1/fosc, 机器周期 = 12P = 12/fosc
设定计数初始值为X,定时时间Tc
在工作方式0的情况下,13位定时/计数器,溢出值为2^13 = 8192
① 计数值 = 溢出值 - 计数初值 = 8192  - X;






②  定时时间Tc = 机器 * 计数值 =





③计数值计算公式




在工作方式1的情况下,16位定时/计数器,溢出值为2^16 = 65536
① 计数值 = 溢出值 - 计数初值 = 65536  - X;






②  定时时间Tc = 机器 * 计数值 =
file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png  

  




③计数值计算公式:
file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png  

  




 
















  






file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png



file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png

  




 







































































名称
地址
D7
D6
D5
D4
D3
D2
D1
D0


WDCOND8h
SMOD_1
POR
EPFI
PFI
WDIF
WTRF
EWT
RWT



上电复位标志位
电源失效中断使能位
电源失效中断状态位PFI
看门狗中断标志位
看门狗复位超时后置位的复位标志位
看门狗复位使能
复位看门狗定时器


























名称
地址
D7
D6
D5
D4
D3
D2
D1
D0


PCON87h
SMOD_0
SMOD0
OFDF
OFDE
GF1
GF0
STOP
IDLE


UART0  波特率加倍使能
串口错误帧检测标志位
振荡器故障引起的复位标识
振荡器故障检测使能
通用标志位
通用标识位
停机模式使能
空闲模式使能














名称
地址
D7
D6
D5
D4
D3
D2
D1
D0


T2CONC8h
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
C/T2
CP/RL2


定时器2溢出标志位
定时器2外部标志位
串口接收波特率发生
串口发送波特率发生
外部使能
使能控制
计数(1)和计时选择(0)
捕获(P1.1)和重载选择[0]


























名称
地址
D7
D6
D5
D4
D3
D2
D1
D0


CKCON8Eh
WD1
WD0
T2M
T1M
T0M
MD2
MD1
MD0


看门狗定时选择
定时器2时钟选择
定时器1时钟选择
定时器0  时钟选择
MOVX 机器周期选择






 






file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png  

  




名称
地址
D7
D6
file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png  
D5
  
D4
D3
D2
D1
D0


file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png  
PMR
  
C4h
CD1
CD0
SWB
CTM
4X/2X
ALEON
DME1
DME0


时钟分配控制

乘法器使能
时钟倍频
外部内存使能
内存使能






















名称
地址
D7
D6
D5
D4
D3
D2
D1
D0


file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png  
CKMOD
  
96h


T2MH
T1MH
T0MH
file:///C:/Users/wangf/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png  
  






定时器高速选择




 























名称
地址
D7
D6
D5
D4
D3
D2
D1
D0


DPS86h
ID1
ID0
TSL
AID
SEL


DPTR1递增(0)和递减选择
DPTR递增(0)和递减选择
SEL位被DPTR影响控制(1)
递增递减使能



数据指针选择,0  DPL DPH
    1:DPL1 DPH1



0









名称
地址
D7
D6
D5
D4
D3
D2
D1
D0


EXIF91h
IE5
IE4
IE3
IE2
CKRY
RGMD
RGSL
BGS






Clock  Ready.
Ring  Mode Status.
Ring  Oscillator Select.
Bandgap  Select.


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1064915 发表于 2024-2-23 11:22 | 只看该作者
需要可下载文件
回复

使用道具 举报

板凳
ID:1108581 发表于 2024-2-23 13:49 | 只看该作者
感谢大佬分享,就是帖子的排版好像不太好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表