51单片机特殊功能寄存器(上)

合集下载

特殊功能寄存器

特殊功能寄存器

特殊功能寄存器(SFR)也称为专用寄存器,特殊功能寄存器反映了MCS-51单片机的运行状态。

很多功能也通过特殊功能寄存器来定义和控制程序的执行。

MCS-51有21个特殊功能寄存器,它们被离散地分布在内部RAM的80H—FFH地址中,这些寄存的功能已作了专门的规定,用户不能修改其结构。

表2是特殊功能寄存器分布一览表,我们对其主要的寄存器作一些简单的介绍。

表2 特殊功能寄存器标识符号地址寄存器名称ACC 0E0H 累加器B 0F0H B寄存器PSW 0D0H 程序状态字SP 81H 堆栈指针DPTR 82H、83H 数据指针(16位)含DPL和DPHIE 0A8H 中断允许控制寄存器IP 0B8H 中断优先控制寄存器P0 80H I/O口0寄存器P1 90H I/O口1寄存器P2 0A0H I/O口2寄存器P3 0B0H I/O口3寄存器PCON 87H 电源控制及波特率选择寄存器SCON 98H 串行口控制寄存器SBUF 99H 串行数据缓冲寄存器TCON 88H 定时控制寄存器TMOD 89H 定时器方式选择寄存器TL0 8AH 定时器0低8位TH0 8CH 定时器0高8位TL1 8BH 定时器1低8位TH1 8DH 定时器1高8位程序计数器PC(program Counter)程序计数器在物理上是独立的,它不属于特殊内部数据存储器块中。

PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。

PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按我们的要求去执行。

累加器ACC(Accumulator)累加器A是一个最常用的专用寄存器,大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。

加、减、乘、除法运算的指令,运算结果都存放于累加器A或AB累加器对中。

单片机寄存器_MCS-51单片机特殊功能寄存器详解

单片机寄存器_MCS-51单片机特殊功能寄存器详解

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位的状态有关。

STC89C51系列单片机的结构和原理

STC89C51系列单片机的结构和原理

输入/输出引脚
• P0口(P0.0-P0.7,32-39脚):是双向8位三态I/O口。可向 其写入1 使其状态为悬浮,用作高阻输入。P0口也可以在访 问外部程序存储器时作地址的低字节,在访问外部数据存储 器时作数据总线,此时通过内部强上拉传送1。
• P1口(P1.0-P1.7,1-8脚):是带内部上拉的双向I/O口。向 P1口写入1时,P1口被内部上拉为高电平,可用作输入口; 当作为输入脚时,被外部拉低的P1口会因为内部上拉而输出 电流。
14
PSW中各个位的功能: (1)Cy(PSW.7)进位标志位
可写为C。在算术和逻辑运算时,若有进位/借位,Cy=1; 否则,Cy=0。在位处理器中,它是位累加器。 (2)Ac(PSW.6)辅助进位标志位
在BCD码运算时,用作十进位调整。即当D3位向D4位产生进 位或借位时,Ac=1;否则,Ac=0。 (3)F0(PSW.5)用户设定标志位
端口2 可配置的I/O口
端口1 可配置的I/O口
端口0 可配置的I/O口
振荡器
4K / 8 K/ ... 64KB 程序FLASH
全双工增强型 UART
定时器0 定时器1
定时器2
看门狗定时器
51系列单片机结构框图
1. 电源引脚
VSS(20脚):接地,0V参考点。 VCC(40脚):电源,提供掉电、空闲、正常工作
因为寄存器名和地址单元的地址已经一一对应序号特殊功能寄存器符号字节地址位地址复位值a或acc累加器e0he7he0h00hb寄存器f0hf7hf0h00hdph数据指针dptr高字节83h00hdpl数据指针dptr低字节82h00hie中断允许控制寄存器a8hafha8h00hip中断优先级控制寄存器b8hbfhb8hx0000000bp0p0口寄存器80h87h80hffhp1p1口寄存器90h97h90hffhp2p2口寄存器a0ha7ha0hffh10p3p3口寄存器b0hb7hb0hffh11pcon电源控制寄存器87h00xxx000b12psw程序状态字寄存器d0hd7hd0h00h13sbuf串行发送数据缓冲器99hxxxxxxxxb14scon串行控制寄存器98h9fh98h00h15sp堆栈指针81h07h16tcon定时器计数器控制寄存器88h8fh88h00h17tl0定时器计数器0低字节8ah00h18th0定时器计数器0高字节8bh00h19tl1定时器计数器1低字节8ch00h20th1定时器计数器1高字节8dh00h21tmod定时器计数器方式控制89h00hsfr的分布情况如下

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

MCS-51单片机的存储结构

MCS-51单片机的存储结构

MCS-51单片机存储器结构MCS-51的存储器可分为四类:程序存储器一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。

那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。

程序相当于给微处理器处理问题的一系列命令。

其实程序和数据一样,都是由机器码组成的代码串。

只是程序代码则存放于程序存储器中。

MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。

对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。

强制CPU从外部程序存储器读取程序。

对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。

8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H 单元开始执行程序。

但在程序存储中有些特殊的单元,这在使用中应加以注意:其中一组特殊是0000H—0002H单元,系统复位后,PC为0000H,单片机从0000H单元开始执行程序,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。

另一组特殊单元是0003H—002AH,这40个单元各有用途,它们被均匀地分为五段,它们的定义如下:0003H—000AH 外部中断0中断地址区。

000BH—0012H 定时/计数器0中断地址区。

0013H—001AH 外部中断1中断地址区。

001BH—0022H 定时/计数器1中断地址区。

0023H—002AH 串行中断地址区。

可见以上的40个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。

51单片机 特殊功能寄存器 SBUF使用方法

51单片机 特殊功能寄存器 SBUF使用方法

51单片机特殊功能寄存器(SFR)SBUF使用方法Posted on 2011-03-22 10:40 香格里拉\(^o^)/阅读(109) 评论(0)编辑收藏串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的。

它们都是字节寻址的寄存器,字节地址均为99H。

这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。

单片机串口#include <reg52.h>#include <absacc.h>#define unit unsigned int#define uchar unsigned charuchar date;uchar recFlag;//接收数据标识,0 未接收数据1 接收数据void init_serial();void send();void receive();main(){init_serial();IE=0; //屏蔽中断while(1){ receive(); send();}}void init_serial() //初始化串口{ TMOD=0x20; //定时器T1使用工作方式2TH1=250; //设置初值TH0=250;TR1=1; //开始计时PCON=0x80; //SMOD=1;SCON=0x50; //工作方式1,波特率9600bit/s,允许接收TI=1;}void send(){ if(TI==1) //检测输出是否READY{ if(recFlag==1) //是否接收过数据{ SBUF=date; //发送数据recFlag=0;TI=0;}}}void receive(){ if(RI==1) //检测是否有数据接收{ date=SBUF; //接收数据recFlag=1; //设置接收标识符RI=0;}}。

(完整版)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,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。

这样就没事了。

MCS-51单片机的特殊功能寄存器

MCS-51单片机的特殊功能寄存器

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-----程序状态字。

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

说明
门控制位
门控制位
定时器0
1=打开、0=关闭 GATE=0,定时/计数器启动与停止仅受TCON寄存器中TRX(X=0,1)来控制。 GATE=1,定时/计数器启动与停止由TCON寄存器中TRX(X=0,1)和外部中断引脚( 上的电平状态来共同控制。 定时器/计数器的4种工作方式 M1 0 0 1 M0 0 1 0 方式0,为13位定时器/计数器 方式1,为16位定时器/计数器 方式2,为8位初值自动重装的8位定时器/计数器 工作方式
电源管理寄存器PCON 位序号 位符号 位地址 说明 该位与串 口通信波 特率有关 SMOD=0:串口方式1、2、3时,波特率正常。 SMOD=1:串口方式1、2、3时,波特率加倍。 D7 SMOD D6 (SMOD0) D5 (LVDF) D4 (P0F) D3 GF1 通用工作标志位,用户 可自由使用
1 中断允许寄存器IE 位序号 位符号 位地址 说明
2
3
4
5
6
D7 EA AFH 全局中断 允许位 1=打开、0=关闭
D6 -
D5 ET2
D4 ES
D3 ET1 ABH 定时/计数 器1中断允 许位
ADH ACH 定时/计数 串口中断 器2中断允 允许位 许位
中断优先级寄存器IP 位序号 位符号 位地址 说明 1=高优先级、0=低优先级 定时/计数器工作方式寄存器TMOD 位序号 位符号 位地址 D7 GATE D6 C/T 定时器1 不能位寻址 定时器模 式(C/T=0) 工作方式选择位 和计数器 模式 (C/T=1)选 定时器1 D5 M1 D4 M0 D3 GATE 定时器0 D7 D6 D5 D4 PS BCH 串口中断 优先级控 制位 D3 PT1 BBH 定时/计数 器1中断优 先级控制
在方式0时,当串口发送第8位数据结束时或在其它方式,串口发送停止位的开始时 TI置1,向CPU发出中断申请,在中断服务程序中,必须用软件将其清0,取消此中断
在方式0时,当串口接收第8位数据结束时或在其它方式,串口接收停止位的中间时 RI置1,向CPU发出中断申请,在中断服务程序中,必须用软件将其清0,取消此中断 SM1 0 1 0 1 方式 0 1 2 3 功能说明
REN
TB8 TR8 TI RI 串行口工作方式 SM0 0 0 1 1
在方式2、3中,是发送数据的第9位,可以用软件规定其作用。可以用做数据的奇偶 在多机通信中,作为地址帧/数据帧的标志位。在方式0、1中,该位未用。
在方式2、3中,是接收数据的第9位,要作为奇偶校验位或地址帧/数据帧的标志位 时,若SM2=0,则RB8是接收到的停止位。
),波特率可变(由定时器1的溢出率控制)
),波特率固定
),波特率可变(由定时器1的溢出率控制)
通用工作标志位,用户 掉电模式 可自由使用 设定位 PD=0,正 常模式。 PD=1,掉 电模式。
D2 TR8
D1 TI
D0 RI 98H 接收中断 标志位
9AH 99H 方式2、3 发送中断 中接收数 标志位 据的第9位
以利用收到的RB8来控制是否激活RI(RB8=0时不 入SBUF,并激活RI,进而在中断服务中将数据从 1,均可以使收到的数据进入SBUF,并激活RI 制SM2,可能实现多机通信。在方式0时,SM2必 停止位时,RI才置1.
工作方式
数器
数器
装的8位定时器/计数器
成两个8位计数器,T1停止计数
D2 IT1
D1 IE0
D0 IT0
8AH 89H 88H 外部中断1 外部中断0 外部中断0 触发方式 触发方式 请求标志 选择位 选择位
D2 GF0
D1 PD
D0 IDL
寻址 空闲模式 设定位 IDL=0,正 常模式。 IDL=1,空 闲模式。
不能位寻址
串口控制寄存器SCON 位序号 位符号 位地址 说明 D7 SM0 9FH D6 SM1 9EH D5 SM2 9DH 多机通信 控制位 D4 REN 9CH 允许串行 接收位 D3 TB8 9BH 方式2、3 中发送数 据的第9位
工作方式选择位 SM0和SM1设定4种工作 方式
SM2
SM2主要用于方式2和3,当接收机的SM2=1时,可以利用收到的RB8来控制是否激活R 激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务 SBUF读走)。当SM2=1时,不论收到的RB8是0还是1,均可以使收到的数据进入SBUF (即此时RB8不具有控制RI激活的功能)。通过控制SM2,可能实现多机通信。在方 须是0,在方式1时,若SM2=1,则只有接收到有效停止位时,RI才置1. REN=1:允许串行口接收数据;REN=0:禁止串口接收数据。
1 定时/计数器控制寄存器TCON 位序号 位符号 位地址 说明 D7 TF1 8FH
1
方式3,仅适用于T0,分成两个8位计数器,T1停止计数
D6 TR1 8EH
D5 TF0 8DH
D4 TR0 8CH
D3 IE1 8BH
定时器1溢 定时器1运 定时器0溢 定时器0运 外部中断1 出标志位 行控制位 出标志位 行控制位 请求标志 1=打开、0=关闭
接收数据。
规定其作用。可以用做数据的奇偶校验位,或 方式0、1中,该位未用。
校验位或地址帧/数据帧的标志位。在方式1
它方式,串口发送停止位的开始时由内部硬件使 ,必须用软件将其清0,取消此中断申请。
它方式,串口接收停止位的中间时由内部硬件使 ,必须用软件将其清0,取消此中断申请。 功能说明
常用于扩展I/O口),波特率固定
同步移位寄存器方式(通常用于扩展I/O口),波特率固定 11位异步收发(9位数据),波特率固定
10位异步收发(8位数据),波特率可变(由定时器1的溢出
11位异步收发(9位数据),波特率可变(由定时器1的溢出
7
8
9
10
11
D2 EX1
D1 ET0
D0 EX0
AAH A9H A8H 外部中断1 定时/计数 外部中断0 中断允许 器0中断允 中断允许 位 许位 位
D2 PX1

D1 PT0
D0 PX0
BAH B9H B8H 外部中断1 定时/计数 外部中断0 中断优先 器0中断优 中断优先 级控制位 先级控制 级控制位
D2 C/T 定时器0
D1 M1
D0 M0
寻址 定时器模 式(C/T=0) 工作方式选择位 和计数器 模式 (C/T=1)选 定时器0
中TRX(X=0,1)来控制。 TRX(X=0,1)和外部中断引脚(INT0或INT1)
相关文档
最新文档