`

51单片机内部控制寄存器

阅读更多

从图中我们可以看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、 P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机 的内部包含了这么多的东西。

对图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到相应I/O口的锁存器就可以了,那么对于定 时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们已接触过 P1这个特殊功能寄存器了,还有哪些呢?看表1

表1
符号
地址 功能介绍
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 电源控制寄存器

下面,我们介绍一下几个常用的SFR。

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

这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,

为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特

殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0

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

2、B--一个寄存器。

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

3、PSW-----程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并

作出相应的处理。它的各位功能请看表2

表2
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

例: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

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

10、SP------堆栈指针。

堆栈介绍:日常生活中,我们都注意到过这样的现象,家里洗的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放 上去 的则放在最下面,在取的时候正好相反,先从最上面取,这种现象我们用一句话来概括:“先进后出,后进先出”。请大家想想,还有什么地方有这种现象?其实比 比皆是,建筑工地上堆放的砖头、材料,仓库里放的货物,都是“先进后出,后进先出”这实际是一种存取物品的规则,我们称之为“堆栈”。

在单片机中,我们也可以在RAM中构造这样一个区域,用来存放数据,这个区域存放数据的规则就是“先进后出,后进先 出”,我们称之为“堆栈”。为什么需要这样来存放数据呢?存储器本身不是可以按地址来存放数据吗?对,知道了地址的确就可以知道里面的内容,但如果我们需 要存放的是一批数据,每一个数据都需要知道地址那不是麻烦吗?如果我们让数据一个接一个地放置,那么我们只要知道第一个数据所在地址单元就可以了(看图 2)如果第一个数据在27H,那么第二、三个就在28H、29H了。所以利用堆栈这种方法来放数据可以简化操作
那么51中堆栈什么地方呢?单片机中能存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM)中开辟一块地方,用于堆栈,但是用 内存的哪一块呢?还是不好定,因为51是一种通用的单片机,各人的实际需求各不相同,有人需要多一些堆栈,而有人则不需要那么多,所以怎么分配都不合适, 怎样来解决这个问题?分不好干脆就不分了,把分的权利给用户(编程者),根据自已的需要去定吧,所以51单片机中堆栈的位置是可以变化的。而这种变化就体 现在SP中值的变化,看图2,SP中的值等于27H不就相当于是一个指针指向27H单元吗?当然在真正的51机中,开始指针所指的位置并非就是数据存放的 位置,而是数据存放的前一个位置,比如一开始指针是指向27H单元的,那么第一个数据的位置是28H单元,而不是27H单元,为什么会这样,我们在学堆栈 命令时再说明。

图2如下图


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

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

由此可见,在特殊功能寄存器中,也有两套地址:字节地址和位地址。两者在地址空间上都是80H-FFH,但对字节地 址只有21个字节是有效的,对位地址只有83位是有效的,可以说,它们是内部数据存储器中字节地址与位地址的不连续延伸。其他无效地址单元是不能被访问 的,在使用时应加以注意。
21个特殊功能寄存器的名称及主要功用介绍如下,详细的用法在以下各节内容中予以介绍

IE、IP寄存器 作用:中断控制用

TMOD、TCON 作用:计时、定时、计数器用

SCON寄存器 作用:串行传输控制

PCON寄存器 作用:省电模式操作

 

转自:http://hi.baidu.com/%B1%BC%CC%DA%C1%F7/blog/item/5ee2c460c9b5e8700d33faf5.html

分享到:
评论

相关推荐

    51单片机寄存器详解

    51单片机寄存器详解,对通用51单片机内部寄存器资源进行了详细的介绍,可以作为学习51单片机的辅助参考手册

    51单片机内部所有寄存器详解

    ### 51单片机内部所有寄存器详解 #### 一、概述 51单片机作为一种广泛应用的微控制器,其内部结构包含了多种寄存器,这些寄存器对于控制单片机的工作状态和执行特定功能至关重要。本文将详细介绍51单片机内部的...

    89c51单片机内部所有寄存器功能介绍(89X5X.H),并有详细的中文资料-89c51

    89C51内部包含了一系列的寄存器,这些寄存器是单片机执行指令和控制硬件的重要组成部分。在89X5X.H头文件中,详细定义了这些寄存器的功能和使用方式,这对于理解和编程89C51至关重要。 1. **特殊功能寄存器(SFR)**...

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

    其中,特殊功能寄存器(Special Function Register, SFR)是51单片机中的一个重要组成部分,它提供了对单片机内部资源的直接访问途径。本文将重点介绍51单片机中的一个关键特殊功能寄存器——SBUF(串行缓冲寄存器),并...

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

    51单片机是微控制器领域中非常经典的一款产品,尤其适合初学者入门。它的特殊功能寄存器(Special Function Registers, SFRs)是控制和管理单片机硬件资源的核心部分。这些寄存器在单片机的内部RAM中占据特定地址,...

    51单片机寄存器汇总

    51单片机是微控制器领域中非常经典的一款产品,其内部结构紧凑,功能全面,适合初学者入门学习。在51单片机中,特殊功能寄存器(Special Function Register,简称SFR)扮演着至关重要的角色,它们用于控制和配置...

    51单片机寄存器功能一览表(最全)[汇编].pdf

    SFR包括了用于控制和监视51单片机工作的寄存器,如ACC(累加器)、B(B寄存器)、PSW(程序状态字)、IE(中断使能寄存器)、IP(中断优先级寄存器)、TCON(定时器控制寄存器)、TMOD(定时器模式寄存器)、SCON...

    51单片机寄存器汇总表.doc

    在51单片机的内部架构中,寄存器扮演着至关重要的角色,它们负责管理和控制单片机的各种硬件资源。本文将详细介绍51单片机的寄存器及其功能。 首先,51单片机拥有21个特殊功能寄存器(SFR),这些寄存器分布在80H-...

    单片机 C51 相关寄存器表

    单片机C51是基于8051内核的微控制器,其内部包含了一系列的寄存器,用于控制和管理各种硬件功能。在C51编程中,理解和使用这些寄存器至关重要,因为它们直接影响到单片机的运行模式、定时器、串行通信、中断系统等...

    单片机内部寄存器结构原理分析

    总而言之,单片机内部寄存器是实现复杂功能的核心部件,它们之间通过内部总线连接,形成了一个紧密协作的系统。学习和理解这些寄存器的功能,对于深入掌握单片机的工作原理和编程技巧至关重要。通过对寄存器的合理...

    51单片机寄存器功能一览表(最全).pdf

    在51单片机的内部架构中,寄存器扮演着至关重要的角色,它们负责存储数据和控制指令执行。下面我们将详细探讨51单片机中的特殊功能寄存器(SFR)及其功能。 首先,51单片机的SFR分布在80H-FFH的地址空间内,共有21...

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

    C51 单片机寄存器功能一览表,详细的介绍了目前正在使用的mcu 51系类的单片机的内部寄存器分派

    MCS51单片机寄存器表.doc

    在MCS51单片机中,寄存器是存储和控制指令执行的重要组成部分。以下是对MCS51单片机中一些关键寄存器的详细解释: 1. **程序状态字PSW (D0H)**: 这个寄存器包含了多个标志位,用于反映CPU执行算术和逻辑操作的结果...

    51系列单片机寄存器速查

    这些寄存器共同构成了51单片机的中断系统和定时/计数功能,通过设置它们的位可以实现各种复杂的控制逻辑,如定时任务、中断处理和串行通信等。理解并熟练掌握这些寄存器的使用是进行51单片机程序设计的基础。

    51单片机内部结构及内部寄存器简介

    "51单片机内部结构及内部寄存器简介" 单片机的内部结构是一种复杂的系统,除了ROM、RAM和并行I/O口之外,还有许多其他的组件和寄存器。这些组件和寄存器之间通过总线相连,形成了一个完整的系统。 首先,让我们来...

    51单片机与atmega16单片机寄存器总结

    这两款单片机都包含丰富的内部寄存器,用于控制和管理其硬件功能。下面我们将分别探讨51单片机和ATmega16单片机的寄存器结构及其相关知识点。 首先,51单片机是基于Intel 8051内核的微控制器,它的寄存器系统主要...

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

    特殊功能寄存器(Special Function Registers, SFRs)是指那些用于控制和监控51单片机内部硬件模块的寄存器。这些寄存器位于单片机的内部RAM中特定的位置,地址范围为80H-FFH。在这一地址范围内,共有21个特殊功能...

    用51单片机舵机控制

    51单片机是一款经典的微控制器,常用于教学和简单的电子项目,其在舵机控制中的应用是基础且重要的。 51单片机舵机控制的关键知识点包括以下几个方面: 1. **舵机工作原理**:舵机内部主要由电机、减速齿轮组、...

    MCS51单片机寄存器表

    下面将详细解析MCS51单片机的寄存器分配、中断控制以及特定寄存器的功能。 #### 寄存器分配 MCS51单片机的内部RAM被划分为几个不同的区域,每个区域都有其特定的用途: - **30H~7FH**:一般数据或堆栈使用区。这...

Global site tag (gtag.js) - Google Analytics