51单片机特殊功能寄存器功能一览表
- 格式:doc
- 大小:140.00 KB
- 文档页数:7
1、定时器/计数器的方式寄存器TMODTMOD是一个8位的特殊功能寄存器,对应的地址是89H,不可位寻址。
A.主要完成三个功能:*确定选择定时器还是计数器;*选择何种工作方式;*是否借用外中断控制定时器和计数器的启停;B.TMOD的低4位是控制T0的字段(T0--P3.4 定时器/计数器0外部事件脉冲输入端);TMOD的高4位是控制T1的字段(T1--P3.5定时器/计数器1外部事件脉冲输入端)C.控制字的格式和含义a、GATE(TMOD.7)分为两种情况:GATE=0,定时器的启停和INT1无关,只取决于TR0;GATE=1,定时器的启停不仅要由TR0来控制,而且要INT1引脚的控制,只有二者都为高电平时定时器才开始工作;b、C/T(TMOD.6)分为两种情况:C/T=0,用作定时器;C/T=1,用作计数器;d、M1(TMOD.5), M0(TMOD.4)用M1,M0来控制定时器/计数器的4种工作方式:*方式0:M1=0,M0=0.13位定时/计数方式*方式1:M1=0,M0=1.16位定时/计数器*方式2,M1=1,M0=0.8位初值自动重新装入的8位定时/计数器*方式3,M1=1,M0=1.仅适用于T0,分为两个8位计数器,T1停止计数2、定时器/计数器控制寄存器TCONTCON是一个8位的特殊功能寄存器,对应的地址为88H,可为寻址。
A 控制字的格式和含义a、TF1(TCON.7),TF0(TCON.5)----T1、T0计数溢出标志位当计数器计数溢出时,该位置“1”。
使用查询方式时,此位作为状态位供cpu查询,但应注意在查询该位有效后应以软件方法及时将该位清“0”。
使用中断方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清0.b、TR1(TCON.6),TR0(TCON.4)----计数运行控制位TR1(TR0)=1,启动定时/计数器工作的必要条件,还与GATE位的状态有关。
MCS51单片机SFR特殊寄存器MCS51单片机SFR特殊寄存器功能说明程序壮态字PSW(Program Status Word)(可以位寻址)若P=1,表示累加器A中的个数为奇数。
若P=0,累加器A中的个数为偶数。
2.OV益出标志位若OV=1,表示运算时有益出产生。
否则OV=03.RS1 RS0寄存器选择位用户自行设置。
5.AC辅助进位位若AC=1,表示在加减法运算时,低4位A3有进位或借位。
否则CY=06.CY进位标志位若CY=1,表示在加减法运算时,最高位A7有进位或借位。
否则CY=0电源控制器&波特率(不可以位寻址)若IDL=1,进入空闲模式。
(硬件或重新上电可复位)。
若IDL=0,正常方式2.PD为停止运行控制位若PD=1,进入停止模式。
(硬件或外部中断可复位)。
若PD=0,正常方式3.GF0 CF1为通用标志位用户可通过指改变它的壮态。
4.SMOD为波特率倍率控制位若SMOD=1,则串行口的波特率为16位若SMOD=0, 则串行口的波特率为32位定时器/计数器模式寄存器TMOD(不可以位寻址)若使C/T=0,为内部定时器模式。
(由TH和TL做定时器)若使C/T=1,为外部计数器模式。
(从T0/P3.4口或从T1/P3.5口输入计数脉冲)(前一次检测为高电平,后一次检测为低电平时,才会使计数器加1。
由于二次的检测需要24个时钟脉冲,通常T0,或T1输入线上的计数脉冲频率总是<100KHZ)3.GATE为定时器/计数器控制位当GATE=1时,TR控制位置位1时,而且只有在INT0或(INT1)为高时,才可以打开定时器/计数器工作。
(与INT0或INT1有关)(当GATE=1时,则INT0或INT1作为辅助控制线,不再用作中断请求输入线。
GATE的这种控制作用可使定时器/计数器用来测量脉冲的宽度)当GATE=0时,定时器/计数器工作与INT0或INT1无关。
定时器初值的计算:TC=M-T X/T P 左公式可转换为TC=M-T X*fosc/ 12(12T)或6(6T)或1(1T)TC为实际定时时间初值M为模值 (M=8或M=13,或M=16)Fosc为时钟频率T X为定时器需要的定时时间T P为机器周期时钟周期 T CLK=1/Fosc (如:STC的开发板的Fosc是11.0592MHZ)T CLK =1/11.0592MHZT CLK≈0.09042us机器周期TP=12*T CLK或(6*T CLK)或(1*T CLK) 左公式转换为:≈12*0.09042us TP= 12/Fosc(12T CLK)或6/Fosc(6T CLK) 或1/Fosc (1T CLK)≈1.08507us1.IT0为外部中断INT0的中断触发标志位若使IT0=1,INT0为负边沿触发。
/* ------------------------------------------------------------------------REG51.HHeader file for generic 80C51 and 80C31 microcontroller.Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. ----------------------------------------------- *//* BYTE Register */程序状态字 累加器 B 寄存器 堆栈指针 数据指针低八位 数据指针高八位 波特率选择寄存器 定时器/计数器控制寄存器 定时器方式选择寄存器 定时器0低八位 定时器1低八位 定时器0高八位 定时器1高八位 中断允许寄存器 中断优先级寄存器 串行控制寄存器 串行数据缓冲器*//* PSW */sbit CY = 0xD7;sbit AC =0xD6;sbit F0 = :0xD5;sbit RS1 : =0xD4;sbit RS0 =0xD3;sbit OV =0xD2;sbit P = :0xD0;/* TCON */sbit TF1 = 0x8F;sbit TR1 = 0x8E;sbit TF0 = 0x8D; /* BIT Register 程序状态字 有无进位或者借位 Auxiliary Carry 有无低四位向高四位的进位或借位 用户管理的标志位,可根据自己的需求设定 这两位用于选择当前工作寄存器区。
8051有8个8位寄存器R0~R7,它 们在RAM 中的地址可以根据用户需要来确定。
RS1 RS0: R0~R7 的地址 0 0: 00H~07H 0: 10H~17H 1 1 : 18H~1FH 溢出标志位 奇偶校验位 1的个数为奇数 08H~0FH 定时器/计数器控制寄存器 定时器/计数器1溢出中断请求标志, 断时由硬件清0 启动定时器1 定时器/计数器0溢出中断请求标志 断时由硬件清0 当溢出时由硬件置位, ,当溢出时由硬件置位, 当CPU 响应中当CPU 响应中sfr P0 =0x80;sfr P1 =0x90;sfr P2 =0xA0;sfr P3 =0xB0;sfr PSW =0xD0;sfr ACC =0xE0;sfr B =0xF0;sfr SP =0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfrPCON : = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SCON = 0x98;sfr SBUF = 0x99;启动定时器0 外部中断1请求标志位,产生中断时由硬件置位,当 件清0 外部中断1的触发方式选择位,当IT1=1时,INT1弓I 脚上从高到低的负跳 变触发中断,当IT1=0时,INT1弓I 脚上的低电平触发中断 外部中断0请求标志位,产生中断时由硬件置位,当 CPU 响应中断时由硬 件清0 外部中断0的触发方式选择位,当IT0=1时,INT0弓I 脚上从高到低的负跳 变触发中断,当IT0=0时,INT1弓I 脚上的低电平触发中断 中断允许寄存器 中断总控制位 串行口中断允许位 定时器/计数器1溢出中断允许位 外部中断1的溢出允许位 定时器/计数器0溢出中断允许位 外部中断0的溢出允许位 中断优先级寄存器 串行口中断优先级控制位 定时器/计数器1中断优先级控制位 外部中断1中断优先级控制位 定时器/计数器0中断优先级控制位 外部中断0中断优先级控制位 外部RAM 写选通信号(输出) 外部RAM 写选通信号(输入) 计数器1计数输入 计数器0计数输入 外部中断1输入 外部中断0输入 串行数据发送口 串行数据接收口 串行口中断控制寄存器 SM0和SM1控制串行口的工作方式。
MCS-51单片机的特殊功能寄存器从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。
在一个51单片机的内部包含了这么多的东西。
对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O 口的锁存器就可以了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。
事实上,我们已接触过P1这个特殊功能寄存器了,还有哪些呢?看下表下面,我们介绍一下几个常用的SFR。
1、ACC---是累加器,通常用A表示。
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器。
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3指针寄存器(1)程序计数器PC指明即将执行的下一条指令的地址,16位,寻址64KB范围,复位时PC = 0000H(2)堆栈指针SP指明栈顶元素的地址,8位,可软件设置初值,复位时SP = 07H(3)数据指针DPTR@R0、@R1、@DPTR;指明访问的数据存储器的单元地址,16位,寻址范围64KB。
DPTR = DPH + DPL。
可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。
分成DPL(低8位)和DPH(高8位)两个寄存器。
用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作4、PSW-----程序状态字。
51单片机特殊功能寄存器(SFR)介绍 1、21个寄存器介绍51系列单片机内部主要有四大功能模块,分别是I/O口模块、中断模块、定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图:图1 51单片机结构和功能图51单片机掌握的好坏,其实就是能否正确操作这四个功能模块,而其操作的实质则又是能否对每个模块所对应寄存器的正确操纵。
所以下面重点介绍一下51系列单片机内部的特殊功能寄存器(简称SFR,以下说明以此代替)。
(关于什么叫特殊功能寄存器,这里先不作介绍,不懂的请查阅51单片机相关资料。
)51单片机内部共有21个SFR,其布局如图2,从图中可以看出,每个SFR占1个字节,多数字节单元中的每一位又有专用的“位名称”。
这21个SFR又按是否可以位寻址分为两大部分,ACC、IE、P1等11个可以位寻址,SP、TMOD等不可以位寻址。
图2 51单片机SFR布局图2、位寻址解释下面以P1、IE寄存器(可位寻)和TMOD(不可位发)为例解释一下位寻址。
能位寻址是指能够对它的每一位都可以进行位操作,如图3,如P1口接8个灯,灯阳极接正极,阴极接单片机的P1口的8个脚。
现在要让接P1口第1个引脚的灯亮,程序中可以写P1=0xfe,也可以先定义deng1=P1^0,即P1口的第1位,至于为什么写P1^0,是因为KEIL软件规定的,然后deng1=0。
也就是P1=0xfe和deng1=0都是可以点亮第一个灯,后者deng1=0属于位操作,前者P1=0xfe 属于总线操作,也就是8个引脚一起操作。
图3 8位灯接线图下面再以IE寄存器为例进行位操作的解释。
IE寄存器为中断允许寄存器,如各位的作用如图4.其中第7位EA是51单片机5个中断的总开关,如要进入任何一个中断时,需先把EA打开,因为可以进行位操作,此时程序有两种写法:1)IE=0x80(假如其它位为0,即1000 0000),也可以直接写EA=1,后者EA=1即属于位操作。
51单片机的专用寄存器21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。
这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):MCS-51单片机的特殊功能寄存器带“*”的在51系列是没有的。
分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。
它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。
8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
MCS-51单片机21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SF R存储空间中,地址空间为80H-FFH,在这片SF R空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有R OM,用来存放程序,有R AM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SF R)。
这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。
它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。
8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
这样就没事了。
51—52系列单片机特殊功能寄存器总结P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/V PD P3.0/RXD P3.1/TXD P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WR P3.7/RD XTAL2XTAL1V SSV CC P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/V PP ALE/PROG PSEN P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RST P3.0/RXD P3.1/TXDXTAL2XTAL1P3.2/INT0P3.3/INT1P3.4/T0P3.5/T1GNDV CC P1.7P1.6P1.5P1.4P1.3P1.2P1.1/AIN1P1.0/AIN0P3.7注:类似的还有Philips公司的 87LPC64,20引脚8XC748/750/(751),24引脚 8X749(752),28引脚 8XC754,28引脚 等等P3第二功能各引脚功能定义: P3.0:RXD 串行口输入 P3.1:TXD 串行口输出 P3.2:INT0外部中断0输入 P3.3:INT1外部中断1输入 P3.4:T0定时器0外部输入 P3.5:T1定时器1外部输入 P3.6:WR 外部写控制 P3.7:RD 外部读控制C -51的数据类型扩充定义 sfr:特殊功能寄存器声明 sfr16:sfr 的16位数据声明 sbit:特殊功能位声明 bit:位变量声明例:sfr SCON = 0X98; sfr16 T2 = 0xCC;sbit OV = PSW^2;第一节:片内RAM 映射:51:00H —7FH 128B 片内(DA TA ),其中00H —07H : bank0。
08H —0FH::bank1。
10H —17H :bank2。
18H —1FH :bank3。
20H —2FH::位寻址区(bdata )。
51单片机存储器结构介绍MCS-51单片机在物理结构上有四个存储空间:1、片内程序存储器2、片外程序存储器3、片内数据存储器4、片外数据存储器但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:1、片内外统一编址的64K的程序存储器地址空间(MOVC)2、256B的片内数据存储器的地址空间(MOV)3、以及64K片外数据存储器的地址空间(MOVX)在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
程序内存ROM寻址范围:0000H ~ FFFFH容量64KBEA = 1,寻址内部ROM;EA = 0,寻址外部ROM地址长度:16位作用:存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:0000H ——系统复位,PC指向此处;0003H ——外部中断0入口000BH —— T0溢出中断入口0013H ——外中断1入口001BH —— T1溢出中断入口0023H ——串口中断入口002BH —— T2溢出中断入口内部数据存储器RAM物理上分为两大区:00H ~ 7FH即128B内RAM和SFR区。
作用:作数据缓冲器用。
下图是8051单片机存储器的空间结构图程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。
那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。
程序相当于给微处理器处理问题的一系列命令。
其实程序和数据一样,都是由机器码组成的代码串。
只是程序代码则存放于程序存储器中。
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。
对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。
强制CPU从外部程序存储器读取程序。
(1)SM0、SM1:串行口工作方式控制位。
SM0,SM1 工作方式00 方式0-波特率由振荡器频率所定:振荡器频率/1201 方式1-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/3210 方式2-波特率由振荡器频率和SMOD所定:2SMOD ×振荡器频率/6411 方式3-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/32(2)SM2:多机通信控制位。
< br> 多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。
接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。
当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。
工作于方式0时,SM2必须为0。
(3)REN:允许接收位。
< br> REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。
(4)TB8:发送接收数据位8。
< br> 在方式2和方式3中,TB8是要发送的——即第9位数据位。
在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
(5)RB8:接收数据位8。
在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
(6)TI:发送中断标志位。
可寻址标志位。
方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
(7)RI:接收中断标志位。
可寻址标志位。
接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。
11、PCON-----电源管理寄存器PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:。
51系列单片机特殊功能寄存器总结第一节:片内RAM映射:51:00H_7FH 128B片内(DATA),其中00H-07H: bank0,08H-0FH: bank1, 10H-17H: bank2,18H-1FH:bank3. 20H-2FH: 位寻址区(bdata)30H-7FH: 堆栈区。
80H-FFH: SFR区52:增加了80H-FFH间接寻址的片内RAM(IDATA)第二节:特殊功能寄存器(51)①TCON,地址:88H,定时器计数器控制,中断控制IT0/1:外部中断触发方式控制,置0,为低电平触发,置1,为下降沿触发。
每个机器周期的S5P2器件多外部触发采样。
响应中断需要两个机器周期。
IE0/1:外部中断请求标志,CPU响应中断后,硬件自动将IE清0TFx,定时器Tx溢出标志,计数溢出时,硬件将其置位,响应中断后,硬件将其清0,该位可由程序查询。
TRx, 定时器x运行控制,置1则启动定时器,清0则停止定时器。
②TMOD,地址:89H, 定时器计数器工作方式控制counter对外部输入外冲计数,计一次数需要两个机器周期。
GATE: 取反后与外部中断输入或运算后再同TCON的TRx位相与控制计数器的启与停,GATE为0时,允许TRx开启或停止计数器,为1时,允许INTx开启或停止计数器。
③TL0, 地址:8AH, 定时器0低八位④TL1, 地址:8BH, 定时器1低八位⑤TH0, 地址:8CH, 定时器0高八位⑥TH1, 地址:8DH, 定时器1高八位1⑦SCON, 地址:98H,串行通信控制寄存器S M2:方式2和方式3的多机通信控制位,在方式0中,SM2应置0。
REN:允许串行接收位,由软件置1时,允许接收,清0时。
禁止接收TB8:方式2和方式3中,发送的第9位数据,需要时由软件置位或复位。
RB8: 方式2和方式3中,接收到的第9位数据,在方式1时,RB是接收到停止位,在方式0时,不使用RB8.TI:接收中断标志,由硬件置1,在方式0时,串行发送到第8位结束时置1;在其他方式,串行口发送停止位时置1。
51单片机特殊功能寄存器助记/速查总结PSW:程序状态字寄存器;地址:D0H,可位寻址P.3
IE:中断允许寄存器,地址:A8H,可位寻址P. 94
IP:中断优先级控制寄存器,地址:B8H,可位寻址P. 94
TCON:定时器控制寄存器,地址:88H,可位寻址P. 93 P. 104
PCON:电源控制寄存器,(电压控制及波特率选择)地址:87H, 不可位寻址
SCON:串行通信控制寄存器,地址:98H,可位寻址P. 127
TI:发送中断标志,由硬件置1,在方式0时,串行发送到第8位结束时置1;在其他方式,串行口发送停止位时置1。
TI必须由软件清0。
RI:接收中断标志,由硬件置1。
在方式0时(SM2应置0),接收到第8位结束时置1,当SM2=0的其他方式(方式0,1,3)时,接收到停止位置位“1”,当SM2=1时,若串口工作在方式2和3,接收到的第9位数据(RB8)为1时,才激活RI。
在方式1时,只有接收到有效的停止位时才会激活RI。
RI必须由软件清0
TMOD:定时器计数器工作方式控制,地址:89H, P.103
不可位寻址,只能以字节配置
对比记忆:
注:因时间仓促,其中可能会有错误,具体请以实际数据手册为准。
21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。
这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A ≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。
它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。
8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
这样就没事了。
有进、借位,CY=1;无进、借位,CY=0例:78H+97H(01111000+10010111)AC:辅助进、借位(高半字节与低半字节间的进、借位)。
51单片机特殊功能寄存器(SFR)介绍 1、21个寄存器介绍51系列单片机内部主要有四大功能模块,分别是I/O口模块、中断模块、定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图:图1 51单片机结构和功能图51单片机掌握的好坏,其实就是能否正确操作这四个功能模块,而其操作的实质则又是能否对每个模块所对应寄存器的正确操纵。
所以下面重点介绍一下51系列单片机内部的特殊功能寄存器(简称SFR,以下说明以此代替)。
(关于什么叫特殊功能寄存器,这里先不作介绍,不懂的请查阅51单片机相关资料。
)51单片机内部共有21个SFR,其布局如图2,从图中可以看出,每个SFR占1个字节,多数字节单元中的每一位又有专用的“位名称”。
这21个SFR又按是否可以位寻址分为两大部分,ACC、IE、P1等11个可以位寻址,SP、TMOD等不可以位寻址。
图2 51单片机SFR布局图2、位寻址解释下面以P1、IE寄存器(可位寻)和TMOD(不可位发)为例解释一下位寻址。
能位寻址是指能够对它的每一位都可以进行位操作,如图3,如P1口接8个灯,灯阳极接正极,阴极接单片机的P1口的8个脚。
现在要让接P1口第1个引脚的灯亮,程序中可以写P1=0xfe,也可以先定义deng1=P1^0,即P1口的第1位,至于为什么写P1^0,是因为KEIL软件规定的,然后deng1=0。
也就是P1=0xfe和deng1=0都是可以点亮第一个灯,后者deng1=0属于位操作,前者P1=0xfe 属于总线操作,也就是8个引脚一起操作。
图3 8位灯接线图下面再以IE寄存器为例进行位操作的解释。
IE寄存器为中断允许寄存器,如各位的作用如图4.其中第7位EA是51单片机5个中断的总开关,如要进入任何一个中断时,需先把EA打开,因为可以进行位操作,此时程序有两种写法:1)IE=0x80(假如其它位为0,即1000 0000),也可以直接写EA=1,后者EA=1即属于位操作。
(完整版)51单片机特殊功能寄存器功能一览表单片机特殊功能寄存器功能一览表21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻8整除的都可以位寻址)。
51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/,串行I/O口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的特殊功能寄存器(SFR)。
这样的特殊功能51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加-51单片机的特殊功能寄存器地址功能介绍F0H B寄存器E0H 累加器D0H 程序状态字CDH 定时器/计数器2(高8位)CCH 定时器/计数器2(低8位)CBH 外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位CAH 外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位C8H T2定时器/计数器控制寄存器B8H 中断优先级控制寄存器B0H P3口锁存器A8H 中断允许控制寄存器A0H P2口锁存器99H 串行口锁存器98H 串行口控制寄存器90H P1口锁存器8DH 定时器/计数器1(高8位)8CH 定时器/计数器1(低8位)8BH 定时器/计数器0(高8位)8AH 定时器/计数器0(低8位)89H T0、T1定时器/计数器方式控制寄存器88H T0、T1定时器/计数器控制寄存器83H 数据地址指针(高8位)82H 数据地址指针(低8位)81H 堆栈指针80H P0口锁存器87H 电源控制寄存器、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以Z,若A=0则Z=1;若A≠0z=0。
51单片机特殊功能寄存器功能一览表21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。
这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。
自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。
该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。
这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。
它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。
8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
这样就没事了。
有进、借位,CY=1;无进、借位,CY =0例:78H+97H(01111000+10010111)AC:辅助进、借位(高半字节与低半字节间的进、借位)。
例:57H+3AH(01010111+00111010)F0:用户标志位由用户(编程人员)决定什么时候用,什么时候不用。
RS1、RS0:工作寄存器组选择位通过修改PSW中的RS1、RS0两位的状态,就能任选一个工作寄存器区。
这个特点提高了MCS-51现场保护和现场恢复的速度。
对于提高CPU的工作效率和响应中断的速度是很有利的。
若在一个实际的应用系统中,不需要四组工作寄存器,那么这个区域中多余单元可以作为一般的数据缓冲器使用。
0V:溢出标志位运算结果按补码运算理解。
有溢出,OV=1;无溢出,OV=0。
什么是溢出我们后面的章节会讲到。
P:奇偶校验位它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。
若为奇数,则P=1,否则为0。
运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。
例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。
4、DPTR(DPH、DPL)--------数据指针可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。
分成DPL(低8位)和DPH(高8位)两个寄存器。
用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作。
5、P0、P1、P2、P3--------输入输出口(I/O)寄存器这个我们已经知道,是四个并行输入/输出口(I/O)的寄存器。
它里面的内容对应着管脚的输出。
6、IE-----中断充许寄存器可按位寻址,地址:A8H•EA (IE.7):EA=0时,所有中断禁止(即不产生中断);EA=1时,各中断的产生由个别的允许位决定•- (IE.6):保留•ET2(IE.5):定时2溢出中断允许(8052用)•ES (IE.4):串行口中断允许(ES=1允许,ES=0禁止)•ET1(IE.3):定时1中断允许•EX1(IE.2):外中断INT1中断允许•ET0(IE.1):定时器0中断允许•EX0(IE.0):外部中断INT0的中断允许7、IP-----中断优先级控制寄存器可按位寻址,地址位B8H•- (IP.7):保留•- (IP.6):保留•PT2(IP.5):定时2中断优先(8052用)•PS (IP.4):串行口中断优先•PT1(IP.3):定时1中断优先•PX1(IP.2):外中断INT1中断优先•PT0(IP.1):定时器0中断优先•PX0(IP.0):外部中断INT0的中断优先8、TMOD-----定时器控制寄存器不按位寻址,地址89H•GATE:定时操作开关控制位,当GATE=1时,INT0或INT1引脚为高电平,同时TCON中的TR0或TR1控制位为1时,计时/计数器0或1才开始工作。
若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1就开始工作。
•C/T:定时器或计数器功能的选择位。
C/T=1为计数器,通过外部引脚T0或T1输入计数脉冲。
C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。
•M1 、M0:T0、T1工作模式选择位9、TCON-----定时器控制寄存器可按位寻址,地址位88H•TF1:定时器T1溢出标志,可由程序查询和清零,TF1也是中断请求源,当CPU 响应T1中断时由硬件清零。
•TF0:定时器T0溢出标志,可由程序查询和清零,TF0也是中断请求源,当CPU 响应T0中断时由硬件清零。
•TR1:T1充许计数控制位,为1时充许T1计数。
•TR0:T0充许计数控制位,为1时充许T0计数。
•IE1:外部中断1请示源(INT1,P3.3)标志。
IE1=1,外部中断1正在向CPU 请求中断,当CPU响应该中断时由硬件清“0”IE1(边沿触发方式)。
•IT1:外部中断源1触发方式控制位。
IT1=0,外部中断1程控为电平触发方式,当INT1(P3.3)输入低电平时,置位IE1。
•IE0:外部中断0请示源(INT0,P3.2)标志。
IE0=1,外部中断1正在向CPU 请求中断,当CPU响应该中断时由硬件清“0”IE0(边沿触发方式)。
•IT0:外部中断源0触发方式控制位。
IT0=0,外部中断1程控为电平触发方式,当INT0(P3.2)输入低电平时,置位IE0。
10、SCON----串行通信控制寄存器它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:(1)SM0、SM1:串行口工作方式控制位。
SM0,SM1 工作方式00 方式0-波特率由振荡器频率所定:振荡器频率/1201 方式1-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/3210 方式2-波特率由振荡器频率和SMOD所定:2SMOD ×振荡器频率/6411 方式3-波特率由定时器T1或T2的溢出率和SMOD所定:2SMOD ×(T1溢出率)/32(2)SM2:多机通信控制位。
< br> 多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。
接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI 发出中断申请,否则会将接受到的数据放弃。
当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。
工作于方式0时,SM2必须为0。
(3)REN:允许接收位。
< br> REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。
(4)TB8:发送接收数据位8。
< br> 在方式2和方式3中,TB8是要发送的——即第9位数据位。
在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
(5)RB8:接收数据位8。
在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
(6)TI:发送中断标志位。
可寻址标志位。
方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
(7)RI:接收中断标志位。
可寻址标志位。
接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。
11、PCON-----电源管理寄存器PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。
系统复位默认为SMOD=0。
12、T2CON-----T2状态控制寄存器•TF2:T2溢出中断标志。
TF2必须由用户程序清“0”。
当T2作为串口波特率发生器时,TF2不会被置“1”。
•EXF2:定时器T2外部中断标志。
EXEN2为1时,当T2EX(P1.1)发生负跳变时置1中断标志DXF2,EXF2必须由用户程序清“0”。
•TCLK:串行接口的发送时钟选择标志。
TCLK=1时,T2工作于波特率发生器方式。
•RCLK:串行接口的接收时钟选择标志位。
RCLK=1时,T2工作于波特率发生器方式。
•EXEN2:T2的外部中断充许标志。
•C/T2:外部计数器/定时器选择位。
C/T2=1时,T2为外部事件计数器,计数脉冲来自T2(P1.0);C/T2=0时,T2为定时器,振荡脉冲的十二分频信号作为计数信号。
•TR2:T2计数/定时控制位。
TR1为1时充许计数,为0时禁止计数。
•CP/RL2:捕捉和常数自动再装入方式选择位。
为1时工作于捕捉方式,为0时T2工作于常数自动再装入方式。
当TCLK或RCLK为1时,CP/RL2被忽略,T2总是工作于常数自动再装入方式。
下面对T2CON的D0、D2、D4、D5几位主要控制T2的工作方式,下面对这几位的组合关系进行总结。