51单片机常用寄存器速查表

合集下载

51单片机的寄存器及指令.

51单片机的寄存器及指令.

第一章一、51单片机的内部资源:运算器ALU:进行算术或则逻辑运算的部件布尔处理器:位处理,以进位标志位CY为累加器累加器 A状态寄存器PSW一个机器周期包含12个时钟震荡周期,6个S1-S6组成,每个转态有两个时相P1和P2二、并行ioP1、P2、P3为准双向口:做输入线时必须先写入“1”。

P2,P0地址线,16位P3的复用功能三、51单片机的片内存储器片内程序存储器(ROM):8051具有4kb的ROM,片内数据存储器(RAM):有128B内部RAM的编址为00H-7FH四、特殊功能寄存器下表中每两行描述一个寄存器,第一行为实际位,第二行表示位第二章指令编码格式:1)单字节指令:只表示操作码:空操作指令、表示操作码和寄存器编码:2)双字节指令3)三字节指令寻址方式:1)、立即寻址2)直接寻址3)4)5)6)指令数据传送类指令:内部数据传送指令:外部存储器数据传送指令:程序存储器数据传送指令:数据交换指令:堆栈操作:算术运算类指令:逻辑运算类指令1)只对累加器A进行操作的单操作数逻辑运算指令:累加器清零:CLR A累加器取反:CPLA累加器循环左移:RL累加器循环左移带CY进位:RLC累加器循环右移:RR累加器循环右移带CY进位:RRC2)双操作数逻辑运算指令:控制程序转移类指令:无条件转移:条件转移:JC:判断CY进位标志,为1则跳转,为0则跳过。

常用于循环。

子程序调用:位操作类指令伪指令。

51单片机汇编指令速查表

51单片机汇编指令速查表

51单片机汇编指令速查表指令格式功能简述字节数周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct ,#data 立即数送直接寻址单元 3 2MOV @Ri ,#data 立即数送内部RAM单元 2 1MOV direct ,Rn 寄存器送直接寻址单元 2 2MOV Rn ,direct 直接寻址单元送寄存器 2 2MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1XCH A ,@Ri 累加器与内部RAM单元交换 1 1XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2PUSH direct 直接寻址单元压入栈顶 2 2二、算术运算类指令ADD A, Rn 累加器加寄存器 1 1ADD A,@Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1SUBB A,@Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1 SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4三、逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A,@Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元 1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1CPL A 累加器取反 1 1CLR A 累加器清零 1 1四、控制转移类指令类ACCALL addr11 2KB范围内绝对调用 2 2AJMP addr11 2KB范围内绝对转移 2 2LCALL addr16 2KB范围内长调用 3 2LJMP addr16 2KB范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A ,#data ,rel 累加器与立即数不等转移 3 2 CJNE A ,direct ,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data ,rel 寄存器与立即数不等转移 3 2 CJNE @Ri ,#data,rel RAM单元与立即数不等转移 3 2 DJNZ Rn ,rel 寄存器减1不为零转移 2 2DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1五、布尔操作类指令(C表示进位标识)MOV C, bit 直接寻址位送C 2 1MOV bit, C C送直接寻址位 2 1CLR C C清零 1 1CLR bit 直接寻址位清零 2 1CPL C C取反 1 1CPL bit 直接寻址位取反 2 1SETB C C置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C逻辑与直接寻址位 2 2 ANL C, /bit C逻辑与直接寻址位的反 2 2 ORL C, bit C逻辑或直接寻址位 2 2 ORL C, /bit C逻辑或直接寻址位的反 2 2 JC rel C为1转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移。

51单片机查表指令

51单片机查表指令

51单⽚机查表指令51单⽚机查表指令51单⽚机具有两条查表指令,⽤于从 ROM 中读出预存的数据:MOVC A, @A + PCMOVC A, @A + DPTR问题:在“MOVC A,@A+DPTR”和“MOVC A,@A+PC”中,分别使⽤了DPTR和PC作基址,请问这两个基址代表什么地址?使⽤中有何不同?答案:使⽤@A+DPTR基址变址寻址时,DPTR为常数且是表格的⾸地址,A为从表格⾸址到被访问字节地址的偏移量。

使⽤@A+PC基址变址寻址时,PC仍是下条指令⾸地址,⽽A则是从下条指令⾸地址到常数表格中的被访问字节的偏移量。

PC是程序计数器,DPTR是数据指针。

⽤这个MOVC A,@A+DPTR⽐较⽅便的,DPTR是16位。

范围⼴。

建议使⽤。

这两条都是查表指令,MOVC A,@A+PC,只能给累加器A赋值,所以只能查这条指令所在地址以后256字节范围内的代码或常数。

⽽MOVC A,@A+DPTR,可以给DPTR赋给任何⼀个16位的地址值,所以查表范围可达整个程序存储器64K字节空间的代码或常数。

其中前⼀条指令的⽤法,⽐较难,使⽤的时候,需要计算⼀个“偏移量”。

不了解“指令的字节数”的⼈,都不清楚应该如何计算。

做⽽论道曾在以前的⽂章中,介绍过“偏移量”的⾃动计算⽅法,可见如下链接:--------------------最佳答案:51单⽚机汇编语⾔有⼀条查表指令是:MOVC A, @A + DPTR它不是单独使⽤的,要和 DB 伪指令配套使⽤。

例如:若累加器A中有⼀个0~9的数,请⽤查表法求出该数的平⽅值,设平⽅表表头地址为1000H。

程序如下:;-------------------------------------MOV DPTR, #1000HMOVC A, @A + DPTR……ORG 1000HDB 0, 1, 4, 9, 16, 25......;-------------------------------------DB 伪指令从 ROM 1000H 开始,顺序存放了⼀系列的“平⽅”数据。

51单片机寄存器汇总表

51单片机寄存器汇总表

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单片机寄存器(个人整理)

51单片机寄存器(个人整理)

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中的缘故吧。

51寄存器手册速查

51寄存器手册速查

51单片机寄存器详解状态寄存器: PSWCY 进位标志位 AC 辅助进位标志位F0 通用标志位RS1 寄存器组选择位高位 RS0 寄存器组选择位低位 0V 溢出标志位 USR 用户定义标志位 P 奇偶标志位电源控制寄存器:PCONSMOD 串行口通信波特率 控制位置位使波特率翻倍 -保留 -保留 -保留GF1 通用标志位 GF0 通用标志位PDWN 低功耗标志位置为进入 低功耗模式IDLE 空闲标志位置位进入空闲模式中断优先级寄存器:IP-保留-保留PT2 定时器2 中断优先级 PS 串行通信中断优先级 PT1 定时器1 中断优先级 PX1 外部中断1 优先级 PT0 定时器0中断优先级 PX0 外部中断0 优先级中断使能寄存器:IEEA 使能标志,位置位则所有中断使能,复位则进制所有中断 -保留ET2 定时器2中断使能ES 串行通信中断使能ET1 定时器1 中断时能EX1 外部中断1 使能ET0 定时器0 中断使能 EX0 外部中断0 使能定时器控制寄存器:TCONTF1 定时器1 溢出中断标志位响应中断后由处理器清零TR1 定时器1 控制置位时定时器1工作 ,复位时,定时器1停止工作 TF0定时器0 溢出标志位,定时器溢出时置位处理器响应中断后清除该位 TR0定时器0控制位置位时定时器0工作,复位时定时器0停止工作IE1 外部中断1 触发标志位当检测到P3.3有从高到低的跳变电平时置位处理器响应中断后由硬件清除该位 IIT1 中断1 触发方式控制位置位时跳变触发,复位时为低电平触发IE0 外部中断1触发标志位当检测到P3.3有从高到低的跳变电平时置位处理器响应中断后由硬件清除该位 IT0 中断1触发方式控制位置位时为跳变触发,复位时为低电平触发定时器工作模式寄存器:TMODGATE 当GA TE 置位时定时器仅当TR=1并且INT=1时才工作,如果GATE=0时,置位TR 定时器就开始工作C/T 定时器非那根好似选择,如果C/T=1 定时器以计数方式工作 C/T=0时以定时方式工作M1 模式选择位高位M0 模式选择为低位定时器2控制寄存器:T2CONTF2 定时器2溢出标志位,定时器2溢出时将置位,当TCLK或RCLK为1时,将不会被置位EXF2 定时器2外部标志,当EXEN2为1时,并在T2EX检测到负跳变时置位,如果定时器2中断被允许,将产生中断。

51指令速查表

51指令速查表
21
XCHD A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换
22
与外部RAM传送
MOVX @DPTR, A
将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内
23
MOVX A , @DPTR
将DPTR寄存器所指外部RAM地址单元内的数据送累加器A
24
MOVX A, @Ri
8051系列单片机汇编语言指令速查表
编号
指令名称
指令助记符
指令说明
数据传送类指令
1
一般传送
MOV A, #data
将立即数#data送累加器A
2
MOV direct, #data
将立即数#data送片内RAM direct地址单元内
3
Mov Rn,#data
将立即数#data送寄存器Rn
4
Mov @Ri, #data
将direct地址单元内的数据送累加器A
13
Mov direct, A
将累加器A内的数据送direct地址单元内
14
Mov A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A
15
Mov @Ri , A
寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内
16
目的地址传@Ri
寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中
57
ANL A, #data
将累加器A的值和立即数进行与操作,结果保存到累加器A中
58
ANL direct, A
将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内

51单片机寄存器汇总表

51单片机寄存器汇总表

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单片机汇编指令速查表

51单片机汇编指令速查表

51单片机汇编指令速查表指令格式功能简述字节数周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct ,#data 立即数送直接寻址单元 3 2MOV @Ri ,#data 立即数送内部RAM单元 2 1MOV direct ,Rn 寄存器送直接寻址单元 2 2MOV Rn ,direct 直接寻址单元送寄存器 2 2MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1XCH A ,@Ri 累加器与内部RAM单元交换 1 1XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2PUSH direct 直接寻址单元压入栈顶 2 2二、算术运算类指令ADD A, Rn 累加器加寄存器 1 1ADD A, @Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1ADDC A, @Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1SUBB A, @Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4三、逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A, @Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元 1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1CPL A 累加器取反 1 1CLR A 累加器清零 1 1四、控制转移类指令类ACCALL addr11 2KB范围内绝对调用 2 2AJMP addr11 2KB范围内绝对转移 2 2LCALL addr16 2KB范围内长调用 3 2LJMP addr16 2KB范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A ,#data ,rel 累加器与立即数不等转移 3 2CJNE A ,direct ,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data ,rel 寄存器与立即数不等转移 3 2CJNE @Ri ,#data,rel RAM单元与立即数不等转移 3 2 DJNZ Rn ,rel 寄存器减1不为零转移 2 2DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1五、布尔操作类指令 (C表示进位标识)MOV C, bit 直接寻址位送C 2 1MOV bit, C C送直接寻址位 2 1CLR C C清零 1 1CLR bit 直接寻址位清零 2 1CPL C C取反 1 1CPL bit 直接寻址位取反 2 1SETB C C置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C逻辑与直接寻址位 2 2ANL C, /bit C逻辑与直接寻址位的反 2 2ORL C, bit C逻辑或直接寻址位 2 2ORL C, /bit C逻辑或直接寻址位的反 2 2JC rel C为1转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移。

51单片机中的21个寄存器

51单片机中的21个寄存器

51单片机中的21个寄存器ACC 累加器B 用于辅助累加器做某些运算的寄存器PSW 程序状态字其中最高位是进/借位标志C;PSW.6 是辅助进位标志AC,用于标识加减运算中低四位向高四位的进位;PSW.4 和PSW.3 是寄存器组选择位RS1 和RS0,用于从00H--1FH 的32 个存储器单元(4 组)中选出当前准备使用的一组工作寄存器的映射地址;PSW.2 是溢出标志OV;PSW.0 是ACC 的偶校验位P;PSW 的其余位不用IP 中断优先级控制寄存器在51 中IP.0--IP.4 依次控制INT0、T0、INT1、T1、UART 中断的优先级,高三位不用IE 中断使能控制器IE.7 是所有中断的总开关EA,IE.0--IE.4 依次控制INT0、T0、INT1、T1、UART 中断功能的开放或关断P0、P1、P2、P3 这四个寄存器用于读写51 单片机的四个I/O 端口SBUF 串行数据缓冲器将数据写入SBUF,单片机就自动将数据从UART 口发送出去SCON 串行口功能控制器最高两位SM0、SM1 控制串行口工作模式;第5 位SM2 通常用于多机通信中区分地址帧和数据帧;第4 位REN 是控制串口接收数据的使能位;第3 位TB8 和第2 位RB8 分别是在串口的相关工作模式下要发送的和接收到的第9 位数据;次低位TI 和最低位RI 分别标识一个发送或接收过程已结束,这两个标志位都会触发串口中断TH0、TL0 定时器T0 的计数单元的高8 位和低8 位TH1、TL1 定时器T1 的计数单元的高8 位和低8 位TMOD 定时/计数器工作模式控制器低4 位和高4 位的内容对应相同,分别控制T0 和T1 的工作模式,次低位和最低位控制对应定时/计数器的工作模式;最高位控制定时/计数器的计数是否由外中断口线参与控制;次高位控制对应的定时器/计数器工作在定时方式还是对相应口线的脉冲进行计数的方式TCON 定时/计数器控制字TCON.0 和TCON.2 分别是外中断INT0 和INT1 的触发方式选择位IT0 和IT1;TCON.1 和TCON.3 分别是外中断INT0 和INT1 的中断触发标志位IE0 和IE1;TCON.4 和TCON.6 分别是T0 和T1 的计数开关TR0 和TR1;TCON.5 和TCON.7 分别是T0 和T1 的中断触发标志位TF0 和TF1PCON 电源模式控制器最高位SMOD 用于串行口通信的波特率加倍,低4 位用于选择不同的低功耗模式,比如空闲模式、掉电模式、时钟停止模式等,但具体每一位的用法没有找到相关资料DPH、DPL 数据指针DPTR 的高、低字节DPTR 可以用于指向程序存储器、片内RAM、片外RAM 来读取数据SP 堆栈指针堆栈都是分配在片内RAMtips:感谢大家的阅读,本文由我司收集整编。

51单片机指令速查

51单片机指令速查

51单片机速查指令AC|辅助进位。

程序状态寄存器PSW的D6位;当进行加(或减)法运算时.如果低半字节D3向高半字节进(或借)位ACALL|■ACALL addr11 子程序调用;地址11位;2字节2周期。

ACC|累加器AADD|■ADD A,#data 加法指令;data+A→A ■ADD A,direct ■ADD A,Rn ■ADD A,@Ri ADDC|■ADDC A,#data 带进位位的加法指令;data+A+C→A ■ADDC A,direct ■ADDC A,Rn ■ADDC A,@RiAJMP|■AJMP addr11 短转移指令;地址为11位;addr11→PC;2字节2周期。

ANL|■ANL A,direct 逻辑与操作指令;A∧(direct)→A ■ANL direct,#data ■ANL A,#data ■ANL A,Rn ■ANL direct,A ■ANL A,@Ri ■ANL C,bit 位逻辑运算;C∧bit→C ■ANL C,/bit 把指定位取反后再和CY执行与操作。

B|寄存器B,主要用于乘法和除法运算,也可以当作一般寄存器。

C|进位位CY,是程序状态寄存器PSW的D7位。

CJNE|■CJNE A,direct rel 条件转移指令;如果A≠(direct)则转移,即PC+rel→PC。

■CJNE A,#data rel ■CJNE Rn,#data,rel ■CJNE @Ri,#data relCLR|■CLR A 清零指令;00H→A ■CLR C ■CLR bitCPL|■CPL A 取反指令;累加器A中的内容按位取反。

■CPL C 把C取反。

■3) CPL bit 指定位取反。

DA|■DA A 这是BCD码调整指令;单字节单周期。

DB|定义字节伪指令DEC|■DEC A 减1指令;A-1→A ■DEC direct ■DEC @Ri ■DEC RnDIV|■DIV AB 除法指令;用A中的无符号数除B中的无符号数,商放在A中,余数放在B中。

51单片机寄存器表

51单片机寄存器表

【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单片机的特殊功能寄存器符号地址功能介绍B F0H B寄存器ACC E0H 累加器PSW D0H 程序状态字TH2*CDH 定时器/计数器2(高8位)TL2*CCH 定时器/计数器2(低8位)RCAP2H*CBH 外部输入(P1.1)计数器/自动再装入模式时初值寄存器高八位RCAP2L*CAH 外部输入(P1.1)计数器/自动再装入模式时初值寄存器低八位T2CON*C8H T2定时器/计数器控制寄存器IP B8H 中断优先级控制寄存器P3B0H P3口锁存器IE A8H 中断允许控制寄存器P2A0H P2口锁存器SBUF99H 串行口锁存器SCON98H 串行口控制寄存器P190H P1口锁存器TH18DH 定时器/计数器1(高8位)TH08CH 定时器/计数器1(低8位)TL18BH 定时器/计数器0(高8位)TL08AH 定时器/计数器0(低8位)TMOD89H T0、T1定时器/计数器方式控制寄存器TCON88H T0、T1定时器/计数器控制寄存器DPH83H 数据地址指针(高8位)DPL82H 数据地址指针(低8位)SP81H 堆栈指针P080H P0口锁存器PCON87H 电源控制寄存器分别说明如下:1、ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。

MCS51单片机的特殊寄存器

MCS51单片机的特殊寄存器

MCS-51单片机的特殊寄存器寄存器列表(21个)3、PSW寄存器4、IP寄存器5、P3接口寄存器8、SCON串口控制寄存器97H 96H 95H 94H 93H 92H 91H 90H P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.010、TCON寄存器11、P0接口寄存器 87H 86H 85H 84H 83H 82H 81H 80H P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.012、TMOD 寄存器GATE C/T M 10M GATE C/T 1M 0M 控 制 T 1控 制 T 089H和T 类同01M 0M 00011011方 式方式0方式1方式2方式301定时器模式计数器模式01与INT 无关00与INT 有关13、PCON寄存器⏹SMOD:波特率倍增位。

当SMOD=1时,波特率加倍;当SMOD=0时,波特率不加倍。

⏹GF1、GF0:两个通用标志位,用户使用。

⏹当将PD置1的指令执行后,80C51进入掉电方式,此时片内振荡器停止工作,仅片内RAM内容被保持,SFR内容也被破坏。

掉电方式下Vcc可降到2V,耗电仅50μA。

退出掉电方式唯一方法是硬件复位。

应当保证进入掉电方式前Vcc不降下来,在通过硬件复位退出掉电方式之前应当先保证Vcc恢复到正常值。

⏹当将IDL位置1指令执行后,80C51进入节电方式。

这时供给CPU的时钟信号被切断,但时钟信号仍送给片内RAM、定时器、中断系统和串口,同时CPU状态被保存,即堆栈指针、程序计数器PC、程序状态字PSW、累加器ACC及通用寄存器的内容。

节电方式下Vcc仍为5V,但耗电从24mA降到3.7mA。

退出掉电方式有两种,一种是任一中断被激活,一种是硬件复位,前者较为常用。

51单片机常用特殊功能寄存器助记、速查总结

51单片机常用特殊功能寄存器助记、速查总结

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
不可位寻址,只能以字节配置
对比记忆:
注:因时间仓促,其中可能会有错误,具体请以实际数据手册为准。

51单片机寄存器地址查询

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.7IP .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;为最高优先级定时器/计数器控制寄存器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;低电平触发定时器/子程序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;即可结束待机不可位控制看门狗电路WDTReg51中未声明应先声明WDTRST 寄存器: Sfr WDTRST=0xa6; 启用或复位命令如下: WDTRST=0x1e ; WDTRST=0xe1; 掉电方式下的WDTAUXR 寄存器用来决定WDT 在待机方式下是否计数 在reg51中未声明先声明AUXR 寄存器: Sfr AUXR=0xa2;预置状态在待机状态下WDT 将继续计数,用以下命令可令其停止计数: AUXR=0x10;AUXR=0x00;即可开启。

51单片机寄存器功能一览表

51单片机寄存器功能一览表

51单片机寄存器功能一览表特殊功能寄存器(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系列所增加的特殊功能寄存器):分别说明如下:1ACC---是累加器,通常用A表示这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。

它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。

自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。

该标志常用作程序分枝转移的判断条件。

2B--一个寄存器在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。

3PSW-----程序状态字。

这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。

它的各位功能请看下表:下面我们逐一介绍各位的用途CY:进位标志。

8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。

这样就没事了。

有进、借位,CY=1;无进、借位,CY=0例:78H+97H(01111000+10010111)AC:辅助进、借位(高半字节与低半字节间的进、借位)。

51单片机寄存器表

51单片机寄存器表

OV位:益出位;OV=1表示运算时有益出产生。

AC位:补助进位位;AC=1表示运算时较低4位有进位产生。

CY位:进位位;CY=1表示运算时有进位产生。

ET2:T2中断允许位;ET2=1允许中断(S52才有)。

ES:串行中断允许位;ES=1允许中断。

ET1:T1中断允许位;ET1=1允许中断。

EX1:INT1中断允许位;EX1=1允许中断。

ET0:T0中断允许位;ET0=1允许中断。

EX0:INT0中断允许位;EX0=1允许中断。

入口地址(按优先级):外中断0—03H,定时器0—0BH,外中断1—13H,定时器1—1BH,串口—23H同过设订两个寄存器中每位代表的数值来决定定时值和计数值。

例:TH=#3CH ,TL=#0B0H 等于15536,它的定时值就为50000。

GATE:GATE=1时表示T0或T1必须在INT0或INT1是高点位时才会初始化。

C/T:C/T=1由外引脚T0或T1做计数脉冲,C/T=0由TH和TL做定时数。

TF1 :TF1=1表示T1有中断产生。

TR1:TR1=1表示T1开始运行。

TF0:TF0=1表示T0有中断产生。

TR0:TR0=1表示T0开始运行。

IE1:IE1=1表示INT1有中断产生。

IT1:IT1=1表示INT1为下降沿触发,IT1=0表示INT1为低电平触发。

IE0:IE0=1表示INT0有中断产生。

IT0:IT0=1表示INT0为下降沿(负跳变)触发,IT0=0表示INT0为低电平触发。

定时器T2:EXF2:T2外中断标志;EXF2=1,T2EX(P1.1)发生负跳变时置EXF2。

TCLK:串行口发送时钟选择标志。

RCLK:串行口接收时钟选择标志。

EXEN2=1,T2为捕获方式,T2EX(P1.1)发生负跳变时,TL2和TH2的当前值自动捕获到RCAP2L和RCAP2H中,同时置中断标志EXF2。

EXEN2=0,T2为自动装入方式,T2EX(P1.1)发生负跳变时,RCAP2L和RCAP2H自动装入TL2和TH2中,同时置中断标志EXF2。

51单片机寄存器

51单片机寄存器
字节地址
中断允许总控制位
未使用
T2中断允许位
串行口中断控制位
T1中断控制位
外部中断1控制位
T0中断控制位
外部中断0允许位
中断优先级寄存器IP
B8H
(D7) —
(D6) —
(D5) PT2
(D4) PS
(D3) PT1
(D2) PX1
(D1) PT0
(D0) PX0
字节地址
T2中断优先级选择位
串行口中断优先级选择位
(D5) M1
(D4) M0
(D3)GATE
(D2) C/T
(D1) M1
(D0) M0
字节地址
T1门控制位
T1功能选择位
T1方式选择位
T0门控制位
T0功能选择位
T0方式选择位
D6) TR1
(D5) TF0
(D4) TR0
(D3) IE1
(D2) IT1
(D2) RB8
(D1) TI
(D0) RI
字节地址
串行方式选择位
多机通讯控制位
允许串行接收位
发送数据第9位(d8)
接收数据第9位d8
发送中断标志位
接收断标志位
中断允许控制寄存器IE
A8H
(D7) EA
(D6) —
(D5)ET2*
(D4) ES
(D3) ET1
(D2) EX1
(D1) ET0
(D0) EX0
字节地址
0:选择DPTR0指针;1:选择DPTR1指针
电源控制寄存器PCON
87H
(D7)SMOD
(D6) —
(D5) —
(D4) —
(D3) GF1

C51单片机21个特殊功能寄存器

C51单片机21个特殊功能寄存器

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:辅助进、借位(高半字节与低半字节间的进、借位)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机常用寄存器速查表
一 : 定时器 / 计数器方式选择 : TMOD 地址 (89H) 不可位寻址
D7 D6 D5 D4 D3 D2 D1 D0
GATE C/T M1 M0 GATE C/T M1 M0 GATE : 门控制位 GATE="0" 时于外部中断无关 GATE="1" 时无外部中断才允许启动。

即( INT 0/1 = 1 时) C/T : 定时、计数方式选择位。

C/T=0 时为定时方式 C/T=1 时计数方式
M1M0 : M0M1=00 时为方式 0 、 M1M0=10 时为方式 1 , M1M0=11 时为方式 3
二 : 中断标志与中断控制寄存器 : TCON 地址( 88H )可位寻址
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TR1 、 TR0 是 T1 、 T0 的启动控制位,置 1 起动。

置 0 停止定时 / 计数器。

TF1 、 TF0 是 T1 、 T0 的溢出标志位,溢出时由硬件置 1 , CPU 响应中断后由硬件清0 软件查询时由
软件清 0
IT0 、 IT1 为外部中断 0 、 1 的触发控制位 IT0/1 = 0 时为电平触发= 1 时下降沿触发
IE0 、 IE1 为外部中断 0 、 1 请求标志,当有中断信号时由硬件置 1 ,完成中断时由硬件清 0
三 : 中断允许控制寄存器 : IE 地址( A8H )可位寻址
D7 D6 D5 D4 D3 D2 D1 D0
EA ――――――ES ET1 EX1 ET0 EX0
EA : 总控位, EA="0" 时关所有中断。

EA="1" 时所有中断请求均被开放。

ES : 串行口, ES="1" 时开, ES="0" 时关串行中断
ET1 、 ET0 定时计数= 1 时开= 0 时关 EX1 、 EX0 外部中断= 1 时开= 0 时关
四 : 中断优先级控制寄存器 IP 地址 (B8H) 可位寻址
D7 D6 D5 D4 D3 D2 D1 D0 ―――――――――PS PT1 PX1 PT0 PX0
PS: 串口 PT1/0 定时 / 计数器 PX1/0 外部中断= 1 高优先= 0 低优先
五 : 串行控制寄存器 SCON 地址 (98H) 可位寻址
D7 D6 D5 D4 D3 D2 D1 D0
SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0/1 是串行工作方式选择位,共四种工作方式见表
SM0 SM1 工作方式说明波特率
0 0 方式 0 同步移位寄存器Fosc/12
0 1 方式 1 10 位异步收发由定时器控制
1 0 方式
2 11 位异步收发Fosc/32/64
1 1 方式 3 11 位异步收发由定时器控制
SM2 : 是多机通信控制位,主要用于 2 和 3 。

仅用于接收。

对于方式 2 和 3 若 SM2=1 ,允许多机通信,只有当接收到第 9 位数( RB8 )为 1 时,才接收前 8 位数送入 SBUF ,并向RI 位产生中断请求,否则前 8 位数丢弃。

SM2=0 时,无论 RB8 是 0/1 都将前 8 位数装入SBUF 中并产生中断请求。

在方式 0 进不用 SM2 时必须设为 0 。

在方式 1 时,若 SM2=1 时则只有接收到有效停止位时 RI 才置 1 。

REN 允许接收位, REN = 1 允许接收,否则不允许。

TB8: 为发送的第 9 位数(在方式 2 、 3 时),可用作校验位,在多机通信中,用 TB8 的状态表示主机发送的是地址还是数据。

TB8=1 时表示地址。

= 0 时表示数据。

RB8: 是接收数据第 9 位(方式 2 、 3 )还代表接收数据的特征,可能是校验或地址 / 数据标志
TI: 发关中断标志位 RI: 接收中断标志位。

由软件清 0 。

串行接收必须满足 REN="1",RI=0. 六:电源控制寄存器 PCON 地址( 87H ) SMOD =1 时波特率提高 1 倍, MOV PCON, #80H。

相关文档
最新文档