51单片机寄存器地址查询
- 格式:docx
- 大小:21.58 KB
- 文档页数:2
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,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。
这样就没事了。
51单片机寄存器功能一览表fe51单片机的CPU中,有21个特殊功能寄存器(52系列是26个)不连续地分布在128个字节的SF存储空间中,地址空间为80H-FFH,在这片SF空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作(这里介绍一个技巧:其地址能被8整除的都可以位寻址)。
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有OM,用来存放程序,有AM,用来存放中间结果,此外还有定时/计数器,串行I/O 口,中断系统,以及一个内部的时钟电路。
在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SF)。
这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下(其中带*号的为52系列所增加的特殊功能寄存器):MCS-51单片机的特殊功能寄存器符号地址功能介绍BF0HB寄存器ACCE0H累加器PSWD0H程序状态字TH2*CDH定时器/计数器2(高8位)TL2*CCH定时器/计数器2(低8位)CAP2H*CBH外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位CAP2L*CAH外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位T2CON*C8HT2定时器/计数器控制寄存器IPB8H中断优先级控制寄存器P3B0HP3口锁存器IEA8H中断允许控制寄存器P2A0HP2口锁存器SBUF99H串行口锁存器SCON98H串行口控制寄存器P190HP1口锁存器TH18DH定时器/计数器1(高8位)TH08CH定时器/计数器1(低8位)TL18BH定时器/计数器0(高8位)TL08AH定时器/计数器0(低8位)TMOD89HT0、T1定时器/计数器方式控制寄存器TCON88HT0、T1定时器/计数器控制寄存器DPH83H数据地址指针(高8位)DPL82H数据地址指针(低8位)SP81H堆栈指针P080HP0口锁存器PCON87H电源控制寄存器分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。
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-----程序状态字。
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-----程序状态字。
MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结MCS-51单片机寻址方式小结20__-08-2920:34:02|分类:エ程|标签:|字号大中小订阅MCS-51单片机指令系统共使用7中寻址方式,包括寄存器寻址、直接寻址、立即数寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址等。
寻址方式定义操作数存放(1)通用寄存器R0~R7;寄存器于寄存器中,(2)部分专用寄存器,例如累加器A、寄存器B以寻址指令中给出数据指针DPTR等名寄存器存放操作数的(1)内部RAM中的低128地址单元,地址范围为内存单元地址00H~FFH;直接寻址直接写在指令中立即数操作数直接寻址写在指令中(2)专用寄存器。
专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。
源操作数为立即数,立即数前面必须加“#”号,以区别立即数和直接地址(1)内部RAM的低128字节。
对内部RAM的低128字节单元的间接寻址,只能使用R0或R1做间将存放操作接寻址寄存器,其通过形式为@Ri(i=0或1);MOVP1,#55HMOVDPTR,#20__HMOVR1,20HMOVA,P1CLRAMOVP1,R4MOVA,R1寻址区域指令举例数的内存单元(2)外部RAM的64K字节。
对外部RAM的64KMOVA,@R0寄存器的地址放在寄字节的间接寻址,使用DPTR作间接寻址寄存器,MOVXA,@DPTR间接寻址存器中,指令其形式为@DPTR;MOVXA,@R0中只给出该寄(3)外部RAM的低256字节。
外部RAM的低256存器字节是一个特殊的寻址区,除了可以使用DPTR作间接寻址寄存器外,还可以使用R0或R1作间接寻址寄存器将基寄存器变址寻址与变址寄存器的内容相(1)变址寻址是专门针对程序存储器的寻址方式,所以只能对程序存储器进行寻址,寻址范围为64K字节;MOVCA,@A+PC加,结果作为操作数的地址(2)变址寻址指令只有2条:MOVCA,@A+PCMOVCA,@A+DPTR将程序计数器PC的当前内容与指令相对寻址中的操作数相加,其结果作为跳转指令的转移地址(1)内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,每个单元包括8个位,共按位进行的位寻址操作(2)特殊功能寄存器SFR中的11个寄存器可以位寻址,包括83个位计128个位,位地址为00H~7FH;MOVC,0D0HMOVC,0DOH.0MOVC,PMOVC,PSW.0专门为改变程序执行方向而设置的SJMP54H扩展阅读:课题MCS-51型单片机的寻址方式广告灯设计软件部分课题MCS-51型单片机的寻址方式授课方式:讲授教学目的:1.让学生了解汇编语言指令的格式;2.让学生掌握单片机指令的7种寻址方式。
51单片机串口通信相关寄存器及设置指引关键字SBUF:串口数据缓存寄存器SCON:串口通信状态控制寄存器Fosc:晶振的震荡频率PSW:程序状态字寄存器1、SBUF数据缓存寄存器SBUF可直接寻址专用寄存器,是个8位寄存器,不可进行位操作。
字节地址99H。
物理上它是两个寄存器,一个发送寄存器,一个接收寄存器。
写数据到SBUF中时(SBUF = 0x52;),单片机自己会判断是写到发送寄存器。
读取SBUF中数据时(rReg = SBUF;),单片机自己会判断是读取接收寄存器。
接收寄存器是双缓冲的,以避免在接收下一帧数据之前,单片机还来不及响应接收中断,没有把上一帧的数据读取走,而产生两次帧数据重叠问题。
发送寄存器,没有缓冲,发送时单片机直接主动发出数据,不会产生重叠问题。
(扩展知识:为了保持最大的传输速率,一般不需要发送寄存器建立双缓冲功能。
双缓冲功能有别于发送数据队列缓存区。
)2、SCON串口通讯状态控制寄存器SCON可直接寻址专用寄存器,是个8位寄存器,可以进行位操作。
SCON用于控制串行通信的模式选择、接收和发送,标识串口的状态。
SCON即可以字节寻址也可以位寻址,字节地址98H,地址位为98H~9FH。
系统复位时,SCON的所有位都被清除。
SCON串口通讯状态控制寄存器的格式及各位的功能定义如下:●SM0、SM1SM0和SM1是串口模式选择位。
SM0和SM1编码对应串口4种模式,如下表:●SM2SM2在模式2和模式3中是多机通信的使能位。
在模式0中,SM2必须为0。
在模式1中,若SM2=1且没有接收到有效的停止位,则接收中断标志位RI不会被激活。
在模式2和模式3中若SM2=1且接收到的第9位数据(RB8)为0,则接收中断标志RB8不会被激活,若接收到的第9位数据(RB8)为1,则RI置位。
此功能可用于多处理机通信。
●RENREN为允许串行接收位,由软件置位或清除。
置位时允许串行接收,清除时禁止串行接收。
51单片机的寻址方式寻址方式:指定操作数所在单元的方法。
在我们学习的8051单片机中,有7种寻址方法,下面我们将逐一进行分析。
一、立即寻址用“#”作前缀MOV A,#20H在这种寻址方式中,指令多是双字节的。
立即数就是存放在程序存储器中的常数,换句话说就是操作数(立即数)是包含在指令字节中的。
例如:MOV A,#3AH这条指令的指令代码为74H、3AH,是双字节指令,这条指令的功能是把立即数3AH送入累加器A中。
MOV DPTR,#8200H在前面学单片机的专用寄存器时,我们已学过,DPTR是一个16位的寄存器,它由DPH及DPL两个8位的寄存器组成。
这条指令的意思就是把立即数的高8位(即82H)送入DPH寄存器,把立即数的低8位(即00H)送入DPL寄存器。
二、直接寻址指令中直接给出操作数的地址。
MOV A,30H;这条指令中操作数就在30H单元中,也就是30H是操作数的地址,并非操作数。
MOV 30H,DPH在80C51单片机中,直接地址只能用来表示内部数据存储器、位地址空间以及特殊功能寄存器,具体的说就是:1、内部数据存储器RAM低128单元。
在指令中是以直接单元地址形式给出。
我们知道低128单元的地址是00H-7FH。
在指令中直接以单元地址形式给出这句话的意思就是这0-127共1 28位的任何一位,例如0位是以00H这个单元地址形式给出、1位就是以01H单元地址给出、127位就是以7FH形式给出。
2、位寻址区。
20H-2FH地址单元。
3、特殊功能寄存器。
专用寄存器除以单元地址形式给出外,还可以以寄存器符号形式给出。
例如下面我们分析的一条指令 MOV IE,#85H 前面的学习我们已知道,中断允许寄存器IE的地址是80H,那么也就是此指令也可以以 MOV 80H,#85H的形式表述。
直接寻址是唯一能访问特殊功能寄存器的寻址方式!大家来分析下面几条指令:MOV 65H,A ;将A的内容送入内部RAM的65H单元地址中MOV A,direct ;将直接地址单元的内容送入A中MOV direct,direct;将直接地址单元的内容送直接地址单元MOV IE,#85H ;将立即数85H送入中断允许寄存器IE前面我们已学过,数据前面加了“#”的,表示后面的数是立即数(如#85H,就表示85H就是一个立即数),数据前面没有加“#”号的,就表示后面的是一个地址地址(如,MOV 65H,A这条指令的65H就是一个单元地址)。
关于51单片机访问外部寄存器的方法在学习开发51+RC500的过程中发现了两种访问外部寄存器的操作方法一种是用XBYTE方法来直接访问外部寄存器一种是用基地址加偏移量的方法来访问外部寄存器两种方法的本质其实都一样,我可以看XBYTE的定义#define XBYTE ((unsigned char volatile xdata *) 0) XBYTE直接帮我们定义到了xdata我们再来看第二种方法unsigned char xdata ini _at_ 0x7f00; // move base address to 0x7f00unsigned char xdata *GpBase = &ini; // redirect pointer to base address#define ReadRawIO(addr) (*(GpBase + addr))#define WriteRawIO(addr,value) *(GpBase + addr) = value这里用了 xdata ini _at_ 0x7f00; xdata *GpBase=&ini;让*GpBase指向0x7f00(*(GpBase + addr))来表示外部寄存器地址我在读RC500的官方函数文件的时候发现老外的程序员在读写RC500寄存器的时候没有进行寄存器页的选择unsigned char ReadIO(unsigned char Address){static unsigned char c;c = ReadRawIO(Address); // read value at the specified// addressreturn c;}#define ReadRawIO(addr) (*(GpBase + addr))直接对外部寄存器进行读写网上流传的读写RC500的方法大多用第一种方法并且进行了寄存器页的选择unsigned char ReadRawIO(unsigned char Address) {return XBYTE[Address];}unsigned char ReadIO(unsigned char Address){WriteRawIO(0x00,GetRegPage(Address));return ReadRawIO(Address);}这种方法读起来容易理解相比第一种方法最大的区别就是进行了寄存器页的选择之所以要第一种方法不用进行页寻址是因为第一种方法采用的是绝对地址P2口作为高地址P0口作为低地址扩展了64K的空间其中unsigned char xdata ini _at_ 0x7f00; // move base address to 0x7f00这句话的意思是值选中了P2^7这个口扩展的8K空间是因为RC500的片选信号连接的是P2^7第二种方法XBYTE直接对外部寄存器进行读写但是没有对P2口的地址进行说明虽然连接了P2^7 物理上有了地址逻辑上却不知道所以不能进行绝对地址操作。
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单片机存储器结构介绍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从外部程序存储器读取程序。
51单片机的引脚功能及寄存器总是记不住,每当拿着一块单片机,总是要翻书查资料,放到这里以便以后查阅40:VCC 电源+5V20:VSS 接地19和18:XTL1和XTL2 振荡电路29: PSEN 片外ROM选通信号,低电平有效30:ALE/PROG 地址锁存信号输出端/EPROM编程脉冲输入端09: RST/VPD 复位信号输入端31: EA/VPP 内外部ROM选择端P0口双向I/O口驱动电流为10mAP1口准双向通用I/O口驱动电流为20mAP2口准双向I/O口驱动电流为20mAP3口多用途口驱动电流为20mAP0口当准双向口使用时,加上拉电阻(P0口作为输出口时,因输出级处于开漏极状态,所以必须加上拉电阻),输入是先将口置1.当数据总线使用时输入八位数据,当地址总线使用时输出8位地址。
P1口只能做I/O口使用,使用时不需要再加上拉电阻(P1口内置)。
P2口可以输出程序存储器或外部数据存储器的高8位地址,与P0口输出的低8位地址一起构成16位的地址线,从而可以分别寻址64K的程序存储器或外部存储器。
P3口端口位第二功能注释P3.0RXD串行口输入P3.1TXD串行口输出P3.2INTO外部中断0P3.3INT1外部中断1P3.4T0计数器0记数输入P3.5T1计数器1记数输入P3.6WR外部RAM写入选通信号P3.7RD外部RAM读出选通信号P0-P3做输出控制端时,低电平控制法,在低电平时I/O 口允许灌入的电流比高电平时要大,一般情况下低电平灌入的电流为高电平的4倍机器周期:计算机访问一次存储器的时间。
1个机器周期=12个振荡周期(晶振的时间周期)=1/fDJNZ=两个机器周期RAM 共分为两个部分,第一部分为 00H-7FH,在这128个字节中又分为三个区域,第一个区域为00H-1FH,有四组工作寄存器,每组8个字节,分别为R0-R7,同一时刻只能用其中的一组寄存器,通过程序状态字PW中的RS0,RS1两位来控制。
51单片机各寄存器地址中断使能寄存器IE中断总开关EA=1;启动有中断EA=0;关闭所有中断保留TF2中断开关ET2=1;启动ET2=0;关闭(8052) 串行口中断开关ES=1启动串口ES=0关闭串口TF1中断开关ET1=1;启动ET1=0;关闭INT1中断开关EX1=1; 启动EX1=0;关闭TF0中断开关ET0=1;启动ET0=0;关闭INT0中断开关EX0=1; 启动EX0=0;关闭中断优先级寄存器IPEA — ET2 ES ET1 EX1 ET0 EX0 IE 寄存器 IP.7 IP .6 IP .5 IP .4 IP .3 IP .2 IP .1IP .0 IP 寄存器——PT2PSPT1PX1PT0PX0保留保留TF2中断先级PT2=1;TF2为高优先级(8052)串行口中断优先级PS1=1;为高优先级TF1中断先级PT1=1;TF1为高优先级INT1中断优先级PX1=1;为最高优先级TF0中断先级PT0=1;TF1为高优先级INT0中断优先级PX0=1;为最高优先级INT0 高TF2/EXF2低定时器/计数器控制寄存器TCONTimer1中断标志CPU 设置Timer1启动开关TR1=1;启动Timer1 TR1=0;关闭Timer1Timer0中断标志CPU 设置Timer0启动开关TR0=1;启动Timer1 TR0=0;关闭Timer0INT1中断标志CPU 设置INT1信号种类IT1=1;负边沿触发IT1=0;低电平触发INT0中断标志CPU 设置INT0信号种类IT0=1;负边沿触发IT0=0;低电平触发定时器/计数器方式寄存器TMOD子程序Void 中断程序名(void)interrupt中断编号using 寄存器组8051/8052中断向量中断编号中断名称中断向量地址第一个外部中断INT0(P3.2)1 第一个定时器/计数器中断TF0(P3.4)0x000B2 第二个外部中断INT1(P3.3)0x00133 第二个定时器/计数器中断TF1(P3.5)0x001B电源管理寄存器PCON波特率倍增位SMOD=1;波特率加倍SMOD=0;波特率正常通用标志位常作为由中断唤醒待机方式中的8051系统掉电方式位PD=1;即可进入掉电方式PD=0;即可结束掉电方式待机方式位IDP=1;即可进入待机方式IDP=0;即可结束待机不可位控制看门狗电路WDTReg51中未声明应先声明WDTRST寄存器:Sfr WDTRST=0xa6;启用或复位命令如下:WDTRST=0x1e;WDTRST=0xe1;掉电方式下的WDTAUXR寄存器用来决定WDT在待机方式下是否计数在reg51中未声明先声明AUXR寄存器:Sfr AUXR=0xa2;预置状态在待机状态下WDT将继续计数,用以下命令可令其停止计数:AUXR=0x10;AUXR=0x00;即可开启。
(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,其结构格式如下:。
适合初学好东西一起分享 中断使能寄存器IE
中断总开关EA=1;启动有中断EA=0;关闭所有中断
保留
TF2中断开关ET2=1;启动ET2=0;关
闭(8052) 串行口中断开关ES=1启动串口ES=0
关闭串口
TF1中断开关ET1=1;启动ET1=0;关闭
INT1中断开关EX1=1; 启动EX1=0;关闭
TF0中断开关ET0=1;启动ET0=0;关闭
INT0中断开关EX0=1; 启动EX0=0;关闭
中断优先级寄存器IP
EA — ET2 ES ET1 EX1 ET0 EX0 IE 寄存器 IP.7
IP .6 IP .5 IP .4 IP .3 IP .2 IP .1
IP .0 IP 寄存器
—
—
PT2
PS
PT1
PX1
PT0
PX0
保留
保留
TF2中断先级
PT2=1;TF2为高优先级(8052)
串行口中断优先级PS1=1;为高优先级
TF1中断先级PT1=1;TF1为高优先级
INT1中断优先级PX1=1;为最高优先
级
TF0中断先级PT0=1;TF1为高优先级
INT0
中断优先级PX0=1;为最高优先
级
定时器/计数器控制寄存器TCON
Timer1中断标志CPU 设置
Timer1启
动开关TR1=1;启动Timer1 TR1=0;关闭Timer1
Timer0中断标志CPU 设置
Timer0启动开关TR0=1;启动Timer1 TR0=0;关闭Timer0
INT1中断标志CPU 设置
INT1信号种类IT1=1;负边沿触发IT1=0;低电平触发
INT0中断标志CPU 设置
INT0信号种类IT0=1;负边沿触发IT0=0;低电平触发
定时器/
子程序
Void 中断程序名(void ) interrupt 中断编号 using
寄存器组
8051/8052中断向量
中断编号 中断名称
中断向量地址 第一个外部中断INT0(P3.2) 1 第一个定时器/计数器中断TF0(P3.4)
0x000B 2 第二个外部中断INT1(P3.3) 0x0013 3 第二个定时器/计数器中断TF1(P3.5)
0x001B
电源管理寄存器PCON
波特率倍增位SMOD=1;波特率加倍SMOD=0;波特率正常
通用标志位常作为由中断唤醒待机方式中的8051系统
掉电方式位PD=1;即可进入掉电方式PD=0;即可结束掉电方式
待机方式位IDP=1;即可进入待机方式IDP=0;即可结
束待机
不可位控制
看门狗电路WDT
Reg51中未声明应先声明WDTRST 寄存器: Sfr WDTRST=0xa6; 启用或复位命令如下: WDTRST=0x1e ; WDTRST=0xe1; 掉电方式下的WDT
AUXR 寄存器用来决定WDT 在待机方式下是否计数 在reg51中未声明先声明AUXR 寄存器: Sfr AUXR=0xa2;
预置状态在待机状态下WDT 将继续计数,用以下命令可令其停止计数: AUXR=0x10;
AUXR=0x00;即可开启。