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

发布者:CelestialLight最新更新时间:2013-06-06 来源: 21ic关键字:51单片机  特殊功能寄存器  SFR 手机看文章 扫描二维码
随时随地手机看文章

在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下:

符号

地址

功能介绍

B

F0H

B寄存器

ACC  

E0H

累加器

PSW  

D0H

程序状态字

IP  

B8H

中断优先级控制寄存器

P3  

B0H

P3口锁存器

IE  

A8H

中断允许控制寄存器

P2  

A0H

P2口锁存器

SBUF

99H

串行口锁存器

SCON

98H

串行口控制寄存器

P1  

90H

P1口锁存器

TH1  

8DH

定时器/计数器1(高8位)

TH0

8CH

定时器/计数器1(低8位)

TL1

8BH

定时器/计数器0(高8位)

TL0  

8AH

定时器/计数器0(低8位)

TMOD

89H

定时器/计数器方式控制寄存器

TCON

88H

定时器/计数器控制寄存器

DPH  

83H

数据地址指针(高8位)

DPL

82H

数据地址指针(低8位)

SP

81H

堆栈指针

P0

80H

P0口锁存器

PCON

87H

电源控制寄存器

分别说明如下:

1、ACC---是累加器,通常用A表示。

这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。

2、B--一个寄存器

在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。

3、PSW-----程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表:

D7

D6

D5

D4

D3

D2

D1

D0

CY  

AC

F0

RS1

RS0

OV

 

P

下面我们逐一介绍各位的用途

CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0[page]

例:78H+97H(01111000+10010111)

AC:辅助进、借位(高半字节与低半字节间的进、借位)。

例:57H+3AH(01010111+00111010)

F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。

RS1、RS0:工作寄存器组选择位。这个我们已知了。

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------这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。

6、IE-----中断充许寄存器

按位寻址,地址:A8H

B7

B6

B5

B4

B3

B2

B1

B0

EA  

-

ET2

ES

ET1

EX1

ET0

EX0

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

B7

B6

B5

B4

B3

B2

B1

B0

- 

-

PT2

PS

PT1

PX1

PT0

PX0

- (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

B7

B6

B5

B4

B3

B2

B1

B0

GATE  

C/T

M1

M0

GATE

C/T

M1

M

[page]

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 :模式选择位低位

M1

M0

工作模式

0

0

13位计数/计时器

0

1

16位计数/计时器

1

0

8位自动加载计数/计时器

1

1

定时器1停止工作,定时器0分为两个独立的8位定时器TH0及TL0

9、TCON-----定时器控制寄存器

按位寻址,地址
位88H B7

B6

B5

B4

B3

B2

B1

B0

TF1 

TR1

TF0

TR0

IE1

IT1

IE0

IT0

803l单片机共有21个字节的特殊功能寄存器(SFR),起着专用寄存器的作用,用来设置片内电路的运行方式,记录电路的运行状态,并表明有关标志等。此外,特殊功能寄存器中,还有把并行和串行I/O端口映射过来的寄存器,对这些寄存器的读写,可实现从相应I/O端口的输入、输出操作。

21个特殊功能寄存器不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作。

可位寻址的SFR的分布:

 

符号

地址

功能介绍

B

F0H

B寄存器

ACC  

E0H

累加器

PSW  

D0H

程序状态字

IP  

B8H

中断优先级控制寄存器

P3  

B0H

P3口锁存器

IE  

A8H

中断允许控制寄存器

P2  

A0H

P2口锁存器

SBUF

99H

串行口锁存器

SCON

98H

串行口控制寄存器

P1  

90H

P1口锁存器

TH1  

8DH

定时器/计数器1(高8位)

TH0

8CH

定时器/计数器1(低8位)

TL1

8BH

定时器/计数器0(高8位)

TL0  

8AH

定时器/计数器0(低8位)

TMOD

89H

定时器/计数器方式控制寄存器

TCON

88H

定时器/计数器控制寄存器

DPH  

83H

数据地址指针(高8位)

DPL

82H

数据地址指针(低8位)

SP

81H

堆栈指针

P0

80H

P0口锁存器

PCON

87H

电源控制寄存器

关键字:51单片机  特殊功能寄存器  SFR 引用地址:51单片机的特殊功能寄存器(SFR)

上一篇:51单片机寄存器功能一览表
下一篇:51单片机常用波特率初值表(12M晶振)

推荐阅读最新更新时间:2024-03-16 13:25

STC51单片机流水灯+外部中断蜂鸣器
闲暇之余做了一个简单的流水灯,设计思路先将LED灯从0-7逐个显示,然后再从7-0逐个显示。如果产生外部中断(即按钮按下),则8个LED灯全亮,之后又恢复流水灯状态。 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit K=P3^2;//启动按钮,外部中断 uchar led; void delay(uint x) { while(x--); } void XX()//中断设置 { EA=1; EX0=1; } void DD
[单片机]
51单片机普通定时器时钟参考程序
/* 1、按键可以调整当时时间 2、按键可以调节定时时间 *8位数码管显示 时间格式格式 12-08-00 标示12点08分00秒 S1 用于小时 加1操作 S2 用于小时减1操作 S3 用于分钟 加1操作 S4 用于分钟减1操作 */ #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; co de unsigned char tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07
[单片机]
MCS-51单片机与无线调制器的应用简介
   GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和
[单片机]
MCS-<font color='red'>51单片机</font>与无线调制器的应用简介
51单片机(STC89C52RC)小综合实验(续2)
  在上一次实验后的电路,拿到实际当中去测试,发现还是出现问题的,主要是电压的回落时间变得很慢,仔细检查电路发现,原因主要是由于变更了电容的容量大小,原来的采用了10uf的滤波电容,变更后采用了3300uf的滤波电容,按理来说滤波电容大点也是没有问题的.更有助于平滑波形不是吗?可是在这个电路当中,主要是希望lm393的电压变化作为信号,在上次实验的时候,采用的是初始电压为0,也就是相当于能够关闭供电电压的,实际是持续供给,初始电压不为0,于是采用大电容后,放电时间延迟严重.   得到的教训:滤波电容并不是越大越好的,需要根据电路的需求进行相应的调整.
[单片机]
51单片机-液晶1602
液晶是一种高分子材料,液晶显示器的主要原理是电流刺激液晶分子产生点,线,面并配合背面灯管构成画面。为叙述简单,把各种液晶显示器都直接叫做液晶。各种型号的液晶通常是按照显示字符的行数或液晶点阵的行列数来命名的。比如:1602的意思是每行显示16个字符,一共显示两行;类似的命名还有0801,0802,1601等,这类液晶通常都是字符型液晶,即只能显示ASCII码字符,如数字,大小写字母,各种符号等。12232液晶属于图形型液晶,他的意思是液晶有122列,32行组成。液晶的体积小,功耗低,显示操作简单,但是它有一个致命的弱点,其使用的温度范围很窄。 初始化设置: RAM地址映射图: 写操作时
[单片机]
<font color='red'>51单片机</font>-液晶1602
51单片机数字钟温度计的编程实例
#include reg51.h char disp ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; char disp_dot ={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xc0}; sbit DQ = P1^3; //定义通信端口 //晶振12MHz void delay_18B20(unsigned int i) { while(i--); } //初始化函数 Init_DS18B20(void) { unsigned char x=0; DQ = 1; //DQ复位 delay_1
[单片机]
<font color='red'>51单片机</font>数字钟温度计的编程实例
51单片机交通灯程序设计
采用51单片机作为系统的MCU,基本完成控制两组交通指示灯交替亮 每个街口有左拐、直行及行人三种指示灯。直行灯每个灯有红、黄、绿三种颜色。自行车与汽车共用左拐和直行灯。 首先东西向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒(同时南北向红灯亮95秒),然后东西向红灯亮95秒钟(同时首先南北向直行绿灯和行人灯亮1分钟,左转灯亮30秒,黄灯亮5秒),然后东西向的绿灯亮,依次类推。 每次绿灯亮的时候,对应的行人灯亮。 60S/30S/5S/60S/30S/5S 东西道 绿和行人/左转/黄/红/红/红 南北道 红/红/红/绿和行人/左转/黄 行人灯亮的时候有声音提示盲人能通过。 突发交通事故的时候能够紧急全红灯。 在有重要人物通过
[单片机]
基于51单片机的超声波测距系统的研究与设计
在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。超声波是指频率大于20 kHz的在弹性介质中产生的机械震荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距。由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力,此外超声波测量在实时、精度、价格也能得到很好的折衷。 为此,文中尝试以单片机AT89S52为核心,利用一对40 kHz压电超声传感器设计一款体积较小、价格低廉、精度较高、具有温度补偿、实时LCD显示和报警的超声波测距仪。 1 超声波测距原理 超声波传感器分机械方式和电气方式两类,它实际上是一种换能器,在发射端
[单片机]
基于<font color='red'>51单片机</font>的超声波测距系统的研究与设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved